diff --git a/.swift-format b/.swift-format new file mode 100644 index 00000000..a4760cd6 --- /dev/null +++ b/.swift-format @@ -0,0 +1,11 @@ +{ + "version" : 1, + "indentation" : { + "spaces" : 4 + }, + "tabWidth" : 4, + "lineLength": 120, + "respectsExistingLineBreaks": false, + "lineBreakBeforeEachArgument": true, + "prioritizeKeepingFunctionOutputTogether": true +} diff --git a/Package.resolved b/Package.resolved index 5a2ab801..bdc2ca1e 100644 --- a/Package.resolved +++ b/Package.resolved @@ -1,16 +1,24 @@ { - "object": { - "pins": [ - { - "package": "JavaScriptKit", - "repositoryURL": "https://github.com/swiftwasm/JavaScriptKit.git", - "state": { - "branch": null, - "revision": "a129f62171bf3610633313c2db6acdca41cdb195", - "version": "0.16.0" - } + "originHash" : "18947974a1b626722bcc04768f7aba0f741b33a380004ff904cf94656ec9fcee", + "pins" : [ + { + "identity" : "javascriptkit", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swiftwasm/JavaScriptKit.git", + "state" : { + "revision" : "42ead29a698428efcbc65cda74b9926726fecec9", + "version" : "0.29.1" } - ] - }, - "version": 1 + }, + { + "identity" : "swift-syntax", + "kind" : "remoteSourceControl", + "location" : "https://github.com/swiftlang/swift-syntax", + "state" : { + "revision" : "0687f71944021d616d34d922343dcef086855920", + "version" : "600.0.1" + } + } + ], + "version" : 3 } diff --git a/Package.swift b/Package.swift index 6f9aecd9..477c1618 100644 --- a/Package.swift +++ b/Package.swift @@ -1,11 +1,11 @@ -// swift-tools-version:5.5 +// swift-tools-version: 6.1 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "WebAPIKit", - platforms: [.macOS(.v10_13)], + platforms: [.macOS(.v10_15)], products: [ .executable( name: "WebAPIKitDemo", @@ -64,7 +64,7 @@ let package = Package( dependencies: [ .package( url: "https://github.com/swiftwasm/JavaScriptKit.git", - .upToNextMajor(from: "0.16.0") + .upToNextMajor(from: "0.29.0") ), ], targets: [ @@ -135,5 +135,6 @@ let package = Package( name: "WebAPIKitTests", dependencies: ["DOM"] ), - ] + ], + swiftLanguageModes: [.v5] ) \ No newline at end of file diff --git a/Patches/CSSOM.patch b/Patches/CSSOM.patch index ff22788d..c5ed5648 100644 --- a/Patches/CSSOM.patch +++ b/Patches/CSSOM.patch @@ -1,41 +1,42 @@ +diff --git a/Sources/CSSOM/Generated.swift b/Sources/CSSOM/Generated.swift +index 9cd2fb3..7aec5a8 100644 --- a/Sources/CSSOM/Generated.swift +++ b/Sources/CSSOM/Generated.swift -@@ -379,7 +379,8 @@ public class CSSColorValue: CSSStyleValue { - super.init(unsafelyWrapping: jsObject) - } - +@@ -411,7 +411,7 @@ public class CSSColorValue: CSSStyleValue { + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + - @inlinable override public class func parse(cssText: String) -> CSSColorValue_or_CSSStyleValue { -+ // returns CSSStyleValue | CSSColorValue -+ @inlinable public class func parse(cssText: String) -> CSSStyleValue { ++ @inlinable public class func parse(cssText: String) -> CSSColorValue { let this = constructor! return this[Strings.parse].function!(this: this, arguments: [_toJSValue(cssText)]).fromJSValue()! } -@@ -944,7 +945,7 @@ public class CSSNumericValue: CSSStyleValue { +@@ -947,7 +947,7 @@ public class CSSNumericValue: CSSStyleValue { return this[Strings.type].function!(this: this, arguments: []).fromJSValue()! } - -- @inlinable override public class func parse(cssText: String) -> Self { -+ @inlinable public class func parse(cssText: String) -> Self { + +- @inlinable override public class func parse(cssText: String) -> CSSNumericValue { ++ @inlinable public class func parse(cssText: String) -> CSSNumericValue { let this = constructor! return this[Strings.parse].function!(this: this, arguments: [_toJSValue(cssText)]).fromJSValue()! } -@@ -1974,9 +1975,10 @@ public class StylePropertyMapReadOnly: JSBridgedClass, Sequence { +@@ -2072,9 +2072,10 @@ public class StylePropertyMapReadOnly: JSBridgedClass, Sequence { ValueIterableIterator(sequence: self) } - -- @inlinable public func get(property: String) -> CSSStyleValue_or_Void { + +- @inlinable final public func get(property: String) -> CSSStyleValue_or_Void { + // TODO: remove patch once https://github.com/w3c/css-houdini-drafts/issues/1095 is fixed -+ @inlinable public func get(property: String) -> CSSStyleValue? { ++ @inlinable final public func get(property: String) -> CSSStyleValue? { let this = jsObject - return this[Strings.get].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! + return this[Strings.get].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue() } - - @inlinable public func getAll(property: String) -> [CSSStyleValue] { -@@ -2646,58 +2648,6 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str + + @inlinable final public func getAll(property: String) -> [CSSStyleValue] { +@@ -2706,49 +2707,6 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str + } } } - -public protocol Any_CSSStyleValue_or_Void: ConvertibleToJSValue {} -extension CSSStyleValue: Any_CSSStyleValue_or_Void {} -extension Void: Any_CSSStyleValue_or_Void {} @@ -44,12 +45,11 @@ - case cssStyleValue(CSSStyleValue) - case void(Void) - -- init(_ cssStyleValue: CSSStyleValue) { +- public init(_ cssStyleValue: CSSStyleValue) { - let val: CSSStyleValue_or_Void = .cssStyleValue(cssStyleValue) - self = val - } -- -- init(_ void: Void) { +- public init(_ void: Void) { - let val: CSSStyleValue_or_Void = .void(void) - self = val - } @@ -60,7 +60,6 @@ - default: return nil - } - } -- - public var void: Void? { - switch self { - case let .void(void): return void @@ -69,25 +68,18 @@ - } - - public static func construct(from value: JSValue) -> Self? { -- if let cssStyleValue: CSSStyleValue = value.fromJSValue() { -- return .cssStyleValue(cssStyleValue) -- } -- if let void: Void = value.fromJSValue() { -- return .void(void) -- } +- if let cssStyleValue: CSSStyleValue = value.fromJSValue() { return .cssStyleValue(cssStyleValue) } +- if let void: Void = value.fromJSValue() { return .void(void) } - return nil - } - - public var jsValue: JSValue { - switch self { -- case let .cssStyleValue(cssStyleValue): -- return cssStyleValue.jsValue -- case let .void(void): -- return void.jsValue +- case let .cssStyleValue(cssStyleValue): return cssStyleValue.jsValue +- case let .void(void): return void.jsValue - } - } -} -- public protocol Any_CSSUnparsedSegment: ConvertibleToJSValue {} extension CSSVariableReferenceValue: Any_CSSUnparsedSegment {} extension String: Any_CSSUnparsedSegment {} diff --git a/Patches/DOM.patch b/Patches/DOM.patch index 494dbe46..21e09baa 100644 --- a/Patches/DOM.patch +++ b/Patches/DOM.patch @@ -1,90 +1,52 @@ +diff --git a/Sources/DOM/Generated.swift b/Sources/DOM/Generated.swift +index 9fa75ba..0339568 100644 --- a/Sources/DOM/Generated.swift +++ b/Sources/DOM/Generated.swift -@@ -1007,8 +1007,15 @@ public class BeforeUnloadEvent: Event { - super.init(unsafelyWrapping: jsObject) - } - +@@ -1094,6 +1094,17 @@ public class BeforeUnloadEvent: Event { + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @available(*, unavailable) + override public var returnValue: Bool { -+ get { !_returnValue.wrappedValue.isEmpty } ++ get { !self.returnValueAsString.isEmpty } + set {} + } + - @usableFromInline let _returnValue: ReadWriteAttribute -- @inlinable override public var returnValue: String { + // renamed because `String` is not compatible with `Bool` + @inlinable public var returnValueAsString: String { - get { _returnValue.wrappedValue } - set { _returnValue.wrappedValue = newValue } - } -@@ -7095,7 +7102,8 @@ public class HTMLFormControlsCollection: HTMLCollection { - jsObject[key].fromJSValue() - } - -- @inlinable override public func namedItem(name: String) -> Element_or_RadioNodeList? { -+ // `override` removed since the superclass returns a more constrained type `Element` -+ @inlinable func namedItem(name: String) -> Element_or_RadioNodeList? { - let this = jsObject - return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() - } -@@ -17153,7 +17161,6 @@ public class VisibilityStateEntry: PerformanceEntry { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _entryType = ReadonlyAttribute(jsObject: jsObject, name: Strings.entryType) - _startTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.startTime) -- _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - super.init(unsafelyWrapping: jsObject) - } - -@@ -17166,8 +17173,8 @@ public class VisibilityStateEntry: PerformanceEntry { - @usableFromInline let _startTime: ReadonlyAttribute - @inlinable override public var startTime: DOMHighResTimeStamp { _startTime.wrappedValue } - -- @usableFromInline let _duration: ReadonlyAttribute -- @inlinable override public var duration: UInt32 { _duration.wrappedValue } -+ // XXX: override of property `duration` removed because the type here is UInt32 but the -+ // type in the superclass is DOMHighResTimestamp (Double). ++ get { self.jsObject[Strings.returnValue].string! } ++ set { self.jsObject[Strings.returnValue] = .string(newValue) } ++ } } - - public class VisualViewport: EventTarget { -@@ -20687,19 +20694,9 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { + + public enum BitrateMode: JSString, JSValueCompatible { +@@ -24231,14 +24242,6 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { + let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) self = val } - -- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) { -- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) -- self = val -- } -- - init(_ htmlImageElement: HTMLImageElement) { +- public init(_ htmlImageElement: HTMLImageElement) { - let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement) - self = .init(val) - } -- -- init(_ svgImageElement: SVGImageElement) { +- public init(_ svgImageElement: SVGImageElement) { - let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement) - self = .init(val) -+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement) -+ self = val - } - - init(_ htmlVideoElement: HTMLVideoElement) { -@@ -21947,18 +21944,8 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { +- } + public init(_ htmlVideoElement: HTMLVideoElement) { + let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement) + self = val +@@ -25289,14 +25292,6 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { + let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) self = .init(val) } - -- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) { -- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) -- self = .init(val) -- } -- - init(_ htmlImageElement: HTMLImageElement) { +- public init(_ htmlImageElement: HTMLImageElement) { - let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement) - self = .init(val) - } -- -- init(_ svgImageElement: SVGImageElement) { +- public init(_ svgImageElement: SVGImageElement) { - let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement) -+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement) +- self = .init(val) +- } + public init(_ htmlVideoElement: HTMLVideoElement) { + let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement) self = .init(val) - } - diff --git a/Patches/SVG.patch b/Patches/SVG.patch index e8d7fdd7..99ed7816 100644 --- a/Patches/SVG.patch +++ b/Patches/SVG.patch @@ -1,21 +1,15 @@ +diff --git a/Sources/SVG/Generated.swift b/Sources/SVG/Generated.swift +index 176385b..bf8f1dd 100644 --- a/Sources/SVG/Generated.swift +++ b/Sources/SVG/Generated.swift -@@ -544,14 +544,16 @@ public class SVGElement: Element, GlobalEventHandlers, DocumentAndElementEventHa - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGElement].function } +@@ -524,7 +524,9 @@ public class SVGElement: Element, GlobalEventHandlers, SVGElementInstance, HTMLO - public required init(unsafelyWrapping jsObject: JSObject) { -- _className = ReadonlyAttribute(jsObject: jsObject, name: Strings.className) -+ _svgClassName = ReadonlyAttribute(jsObject: jsObject, name: Strings.className) - _ownerSVGElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerSVGElement) - _viewportElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.viewportElement) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } +- @inlinable public var className: SVGAnimatedString { jsObject[Strings.className].fromJSValue()! } + // Renamed because superclass has a `className` property of type `String` + // NOTE! Accessing `className` on an SVGElement will crash your app - @ReadonlyAttribute -- public var className: SVGAnimatedString -+ public var svgClassName: SVGAnimatedString ++ @inlinable public var svgClassName: SVGAnimatedString { jsObject[Strings.className].fromJSValue()! } + + @inlinable public var ownerSVGElement: SVGSVGElement? { jsObject[Strings.ownerSVGElement].fromJSValue() } - @ReadonlyAttribute - public var ownerSVGElement: SVGSVGElement? diff --git a/Patches/WebAudio.patch b/Patches/WebAudio.patch index 9222a713..5fd47ea9 100644 --- a/Patches/WebAudio.patch +++ b/Patches/WebAudio.patch @@ -1,21 +1,19 @@ +diff --git a/Sources/WebAudio/Generated.swift b/Sources/WebAudio/Generated.swift +index fff1563..d672d8c 100644 --- a/Sources/WebAudio/Generated.swift +++ b/Sources/WebAudio/Generated.swift -@@ -195,7 +195,8 @@ public class AudioBufferSourceNode: AudioScheduledSourceNode { - @ReadWriteAttribute - public var loopEnd: Double +@@ -535,11 +535,11 @@ public class AudioNode: EventTarget { -- @inlinable override public func start(when: Double? = nil, offset: Double? = nil, duration: Double? = nil) { -+ // `override` removed since the superclass function has fewer parameters -+ @inlinable func start(when: Double? = nil, offset: Double? = nil, duration: Double? = nil) { - let this = jsObject - _ = this[Strings.start].function!(this: this, arguments: [_toJSValue(when), _toJSValue(offset), _toJSValue(duration)]) - } -@@ -492,7 +493,7 @@ public class AudioNode: EventTarget { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } -- @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self { -+ @discardableResult @inlinable public func connect(destinationNode: NodeType, output: UInt32? = nil, input: UInt32? = nil) -> NodeType { +- @inlinable final public func connect( +- destinationNode: AudioNode, ++ @discardableResult @inlinable public final func connect( ++ destinationNode: NodeType, + output: UInt32? = nil, + input: UInt32? = nil +- ) -> AudioNode { ++ ) -> NodeType { let this = jsObject - return this[Strings.connect].function!(this: this, arguments: [_toJSValue(destinationNode), _toJSValue(output), _toJSValue(input)]).fromJSValue()! - } + return this[Strings.connect].function!( + this: this, diff --git a/Sources/CSSOM/Generated.swift b/Sources/CSSOM/Generated.swift index 10b24e14..7aec5a82 100644 --- a/Sources/CSSOM/Generated.swift +++ b/Sources/CSSOM/Generated.swift @@ -2,36 +2,41 @@ import DOM import ECMAScript -import JavaScriptEventLoop import JavaScriptKit import SVG import WebAPIBase -public class BoxQuadOptions: BridgedDictionary { - public convenience init(box: CSSBoxType, relativeTo: GeometryNode) { +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + +open class BoxQuadOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(box: CSSBoxType? = nil, relativeTo: GeometryNode? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.box] = _toJSValue(box) object[Strings.relativeTo] = _toJSValue(relativeTo) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _box = ReadWriteAttribute(jsObject: object, name: Strings.box) - _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var box: CSSBoxType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var relativeTo: GeometryNode + @inlinable public var box: CSSBoxType { + get { jsObject[Strings.box].fromJSValue()! } + set { jsObject[Strings.box] = _toJSValue(newValue) } + } + @inlinable public var relativeTo: GeometryNode { + get { jsObject[Strings.relativeTo].fromJSValue()! } + set { jsObject[Strings.relativeTo] = _toJSValue(newValue) } + } } - public enum CSS { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.CSS].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.CSS].object! } @inlinable public static func escape(ident: String) -> String { let this = JSObject.global[Strings.CSS].object! @@ -48,6 +53,16 @@ public enum CSS { return this[Strings.percent].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } + @inlinable public static func cap(value: Double) -> CSSUnitValue { + let this = JSObject.global[Strings.CSS].object! + return this[Strings.cap].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable public static func ch(value: Double) -> CSSUnitValue { + let this = JSObject.global[Strings.CSS].object! + return this[Strings.ch].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + @inlinable public static func em(value: Double) -> CSSUnitValue { let this = JSObject.global[Strings.CSS].object! return this[Strings.em].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! @@ -58,14 +73,24 @@ public enum CSS { return this[Strings.ex].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } - @inlinable public static func ch(value: Double) -> CSSUnitValue { + @inlinable public static func ic(value: Double) -> CSSUnitValue { let this = JSObject.global[Strings.CSS].object! - return this[Strings.ch].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + return this[Strings.ic].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } - @inlinable public static func ic(value: Double) -> CSSUnitValue { + @inlinable public static func lh(value: Double) -> CSSUnitValue { let this = JSObject.global[Strings.CSS].object! - return this[Strings.ic].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + return this[Strings.lh].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable public static func rcap(value: Double) -> CSSUnitValue { + let this = JSObject.global[Strings.CSS].object! + return this[Strings.rcap].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable public static func rch(value: Double) -> CSSUnitValue { + let this = JSObject.global[Strings.CSS].object! + return this[Strings.rch].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } @inlinable public static func rem(value: Double) -> CSSUnitValue { @@ -73,9 +98,14 @@ public enum CSS { return this[Strings.rem].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } - @inlinable public static func lh(value: Double) -> CSSUnitValue { + @inlinable public static func rex(value: Double) -> CSSUnitValue { let this = JSObject.global[Strings.CSS].object! - return this[Strings.lh].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + return this[Strings.rex].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable public static func ric(value: Double) -> CSSUnitValue { + let this = JSObject.global[Strings.CSS].object! + return this[Strings.ric].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } @inlinable public static func rlh(value: Double) -> CSSUnitValue { @@ -250,7 +280,7 @@ public enum CSS { @inlinable public static func `in`(value: Double) -> CSSUnitValue { let this = JSObject.global[Strings.CSS].object! - return this[Strings.in].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + return this[Strings.`in`].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } @inlinable public static func pt(value: Double) -> CSSUnitValue { @@ -328,7 +358,6 @@ public enum CSS { return this[Strings.fr].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } } - public enum CSSBoxType: JSString, JSValueCompatible { case margin = "margin" case border = "border" @@ -336,345 +365,343 @@ public enum CSSBoxType: JSString, JSValueCompatible { case content = "content" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class CSSColor: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSColor].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSColor].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _colorSpace = ReadWriteAttribute(jsObject: jsObject, name: Strings.colorSpace) - _channels = ReadWriteAttribute(jsObject: jsObject, name: Strings.channels) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(colorSpace: CSSKeywordish, channels: [CSSColorPercent], alpha: CSSNumberish? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(colorSpace), _toJSValue(channels), _toJSValue(alpha)])) + @inlinable public convenience init( + colorSpace: CSSKeywordish, + channels: [CSSColorPercent], + alpha: CSSNumberish? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(colorSpace), _toJSValue(channels), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var colorSpace: CSSKeywordish + @inlinable public var colorSpace: CSSKeywordish { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var channels: [CSSColorPercent] + @inlinable public var channels: [CSSColorPercent] { + get { jsObject[Strings.channels].fromJSValue()! } + set { jsObject[Strings.channels] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSNumberish + @inlinable public var alpha: CSSNumberish { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSColorValue: CSSStyleValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSColorValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSColorValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - // returns CSSStyleValue | CSSColorValue - @inlinable public class func parse(cssText: String) -> CSSStyleValue { + @inlinable public class func parse(cssText: String) -> CSSColorValue { let this = constructor! return this[Strings.parse].function!(this: this, arguments: [_toJSValue(cssText)]).fromJSValue()! } } public class CSSGroupingRule: CSSRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSGroupingRule].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSGroupingRule].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _cssRules = ReadonlyAttribute(jsObject: jsObject, name: Strings.cssRules) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var cssRules: CSSRuleList + @inlinable public var cssRules: CSSRuleList { jsObject[Strings.cssRules].fromJSValue()! } - @inlinable public func insertRule(rule: String, index: UInt32? = nil) -> UInt32 { + @inlinable final public func insertRule(rule: String, index: UInt32? = nil) -> UInt32 { let this = jsObject - return this[Strings.insertRule].function!(this: this, arguments: [_toJSValue(rule), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertRule].function!(this: this, arguments: [_toJSValue(rule), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func deleteRule(index: UInt32) { + @inlinable final public func deleteRule(index: UInt32) { let this = jsObject _ = this[Strings.deleteRule].function!(this: this, arguments: [_toJSValue(index)]) } } public class CSSHSL: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSHSL].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSHSL].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _h = ReadWriteAttribute(jsObject: jsObject, name: Strings.h) - _s = ReadWriteAttribute(jsObject: jsObject, name: Strings.s) - _l = ReadWriteAttribute(jsObject: jsObject, name: Strings.l) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(h: CSSColorAngle, s: CSSColorPercent, l: CSSColorPercent, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(h), _toJSValue(s), _toJSValue(l), _toJSValue(alpha)])) + @inlinable public convenience init( + h: CSSColorAngle, + s: CSSColorPercent, + l: CSSColorPercent, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(h), _toJSValue(s), _toJSValue(l), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var h: CSSColorAngle + @inlinable public var h: CSSColorAngle { + get { jsObject[Strings.h].fromJSValue()! } + set { jsObject[Strings.h] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var s: CSSColorPercent + @inlinable public var s: CSSColorPercent { + get { jsObject[Strings.s].fromJSValue()! } + set { jsObject[Strings.s] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var l: CSSColorPercent + @inlinable public var l: CSSColorPercent { + get { jsObject[Strings.l].fromJSValue()! } + set { jsObject[Strings.l] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSHWB: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSHWB].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSHWB].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _h = ReadWriteAttribute(jsObject: jsObject, name: Strings.h) - _w = ReadWriteAttribute(jsObject: jsObject, name: Strings.w) - _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(h: CSSNumericValue, w: CSSNumberish, b: CSSNumberish, alpha: CSSNumberish? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(h), _toJSValue(w), _toJSValue(b), _toJSValue(alpha)])) + @inlinable public convenience init(h: CSSNumericValue, w: CSSNumberish, b: CSSNumberish, alpha: CSSNumberish? = nil) + { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(h), _toJSValue(w), _toJSValue(b), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var h: CSSNumericValue + @inlinable public var h: CSSNumericValue { + get { jsObject[Strings.h].fromJSValue()! } + set { jsObject[Strings.h] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var w: CSSNumberish + @inlinable public var w: CSSNumberish { + get { jsObject[Strings.w].fromJSValue()! } + set { jsObject[Strings.w] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var b: CSSNumberish + @inlinable public var b: CSSNumberish { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSNumberish + @inlinable public var alpha: CSSNumberish { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSImageValue: CSSStyleValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSImageValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSImageValue].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class CSSImportRule: CSSRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSImportRule].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSImportRule].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadonlyAttribute(jsObject: jsObject, name: Strings.href) - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _styleSheet = ReadonlyAttribute(jsObject: jsObject, name: Strings.styleSheet) - _layerName = ReadonlyAttribute(jsObject: jsObject, name: Strings.layerName) - _supportsText = ReadonlyAttribute(jsObject: jsObject, name: Strings.supportsText) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var href: String + @inlinable public var href: String { jsObject[Strings.href].fromJSValue()! } - @ReadonlyAttribute - public var media: MediaList + @inlinable public var media: MediaList { jsObject[Strings.media].fromJSValue()! } - @ReadonlyAttribute - public var styleSheet: CSSStyleSheet? + @inlinable public var styleSheet: CSSStyleSheet? { jsObject[Strings.styleSheet].fromJSValue() } - @ReadonlyAttribute - public var layerName: String? + @inlinable public var layerName: String? { jsObject[Strings.layerName].fromJSValue() } - @ReadonlyAttribute - public var supportsText: String? + @inlinable public var supportsText: String? { jsObject[Strings.supportsText].fromJSValue() } } public class CSSKeywordValue: CSSStyleValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSKeywordValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSKeywordValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(value: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(value)])) } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } } public class CSSLCH: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSLCH].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSLCH].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _l = ReadWriteAttribute(jsObject: jsObject, name: Strings.l) - _c = ReadWriteAttribute(jsObject: jsObject, name: Strings.c) - _h = ReadWriteAttribute(jsObject: jsObject, name: Strings.h) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(l: CSSColorPercent, c: CSSColorPercent, h: CSSColorAngle, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(l), _toJSValue(c), _toJSValue(h), _toJSValue(alpha)])) + @inlinable public convenience init( + l: CSSColorPercent, + c: CSSColorPercent, + h: CSSColorAngle, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(l), _toJSValue(c), _toJSValue(h), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var l: CSSColorPercent + @inlinable public var l: CSSColorPercent { + get { jsObject[Strings.l].fromJSValue()! } + set { jsObject[Strings.l] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var c: CSSColorPercent + @inlinable public var c: CSSColorPercent { + get { jsObject[Strings.c].fromJSValue()! } + set { jsObject[Strings.c] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var h: CSSColorAngle + @inlinable public var h: CSSColorAngle { + get { jsObject[Strings.h].fromJSValue()! } + set { jsObject[Strings.h] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSLab: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSLab].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSLab].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _l = ReadWriteAttribute(jsObject: jsObject, name: Strings.l) - _a = ReadWriteAttribute(jsObject: jsObject, name: Strings.a) - _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(l: CSSColorPercent, a: CSSColorNumber, b: CSSColorNumber, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(l), _toJSValue(a), _toJSValue(b), _toJSValue(alpha)])) + @inlinable public convenience init( + l: CSSColorPercent, + a: CSSColorNumber, + b: CSSColorNumber, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(l), _toJSValue(a), _toJSValue(b), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var l: CSSColorPercent + @inlinable public var l: CSSColorPercent { + get { jsObject[Strings.l].fromJSValue()! } + set { jsObject[Strings.l] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var a: CSSColorNumber + @inlinable public var a: CSSColorNumber { + get { jsObject[Strings.a].fromJSValue()! } + set { jsObject[Strings.a] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var b: CSSColorNumber + @inlinable public var b: CSSColorNumber { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSMarginRule: CSSRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMarginRule].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMarginRule].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _style = ReadonlyAttribute(jsObject: jsObject, name: Strings.style) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var style: CSSStyleDeclaration + @inlinable public var style: CSSStyleDeclaration { jsObject[Strings.style].fromJSValue()! } } public class CSSMathClamp: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathClamp].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathClamp].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _lower = ReadonlyAttribute(jsObject: jsObject, name: Strings.lower) - _value = ReadonlyAttribute(jsObject: jsObject, name: Strings.value) - _upper = ReadonlyAttribute(jsObject: jsObject, name: Strings.upper) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(lower: CSSNumberish, value: CSSNumberish, upper: CSSNumberish) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(lower), _toJSValue(value), _toJSValue(upper)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(lower), _toJSValue(value), _toJSValue(upper), + ]) + ) } - @ReadonlyAttribute - public var lower: CSSNumericValue + @inlinable public var lower: CSSNumericValue { jsObject[Strings.lower].fromJSValue()! } - @ReadonlyAttribute - public var value: CSSNumericValue + @inlinable public var value: CSSNumericValue { jsObject[Strings.value].fromJSValue()! } - @ReadonlyAttribute - public var upper: CSSNumericValue + @inlinable public var upper: CSSNumericValue { jsObject[Strings.upper].fromJSValue()! } } public class CSSMathInvert: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathInvert].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathInvert].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadonlyAttribute(jsObject: jsObject, name: Strings.value) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(arg: CSSNumberish) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(arg)])) } - @ReadonlyAttribute - public var value: CSSNumericValue + @inlinable public var value: CSSNumericValue { jsObject[Strings.value].fromJSValue()! } } public class CSSMathMax: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathMax].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathMax].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _values = ReadonlyAttribute(jsObject: jsObject, name: Strings.values) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(args: CSSNumberish...) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: args.map(_toJSValue))) } - @ReadonlyAttribute - public var values: CSSNumericArray + @inlinable public var values: CSSNumericArray { jsObject[Strings.values].fromJSValue()! } } public class CSSMathMin: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathMin].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathMin].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _values = ReadonlyAttribute(jsObject: jsObject, name: Strings.values) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(args: CSSNumberish...) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: args.map(_toJSValue))) } - @ReadonlyAttribute - public var values: CSSNumericArray + @inlinable public var values: CSSNumericArray { jsObject[Strings.values].fromJSValue()! } } public class CSSMathNegate: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathNegate].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathNegate].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadonlyAttribute(jsObject: jsObject, name: Strings.value) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(arg: CSSNumberish) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(arg)])) } - @ReadonlyAttribute - public var value: CSSNumericValue + @inlinable public var value: CSSNumericValue { jsObject[Strings.value].fromJSValue()! } } public enum CSSMathOperator: JSString, JSValueCompatible { @@ -687,109 +714,88 @@ public enum CSSMathOperator: JSString, JSValueCompatible { case clamp = "clamp" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class CSSMathProduct: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathProduct].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathProduct].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _values = ReadonlyAttribute(jsObject: jsObject, name: Strings.values) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(args: CSSNumberish...) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: args.map(_toJSValue))) } - @ReadonlyAttribute - public var values: CSSNumericArray + @inlinable public var values: CSSNumericArray { jsObject[Strings.values].fromJSValue()! } } public class CSSMathSum: CSSMathValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathSum].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathSum].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _values = ReadonlyAttribute(jsObject: jsObject, name: Strings.values) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(args: CSSNumberish...) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: args.map(_toJSValue))) } - @ReadonlyAttribute - public var values: CSSNumericArray + @inlinable public var values: CSSNumericArray { jsObject[Strings.values].fromJSValue()! } } public class CSSMathValue: CSSNumericValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMathValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSMathValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _operator = ReadonlyAttribute(jsObject: jsObject, name: Strings.operator) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var `operator`: CSSMathOperator + @inlinable public var `operator`: CSSMathOperator { jsObject[Strings.`operator`].fromJSValue()! } } public class CSSMatrixComponent: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSMatrixComponent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _matrix = ReadWriteAttribute(jsObject: jsObject, name: Strings.matrix) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.CSSMatrixComponent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(matrix: DOMMatrixReadOnly, options: CSSMatrixComponentOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(matrix), _toJSValue(options)])) } - @ReadWriteAttribute - public var matrix: DOMMatrix + @inlinable public var matrix: DOMMatrix { + get { jsObject[Strings.matrix].fromJSValue()! } + set { jsObject[Strings.matrix] = _toJSValue(newValue) } + } } -public class CSSMatrixComponentOptions: BridgedDictionary { - public convenience init(is2D: Bool) { +open class CSSMatrixComponentOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(is2D: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.is2D] = _toJSValue(is2D) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _is2D = ReadWriteAttribute(jsObject: object, name: Strings.is2D) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var is2D: Bool + @inlinable public var is2D: Bool { + get { jsObject[Strings.is2D].fromJSValue()! } + set { jsObject[Strings.is2D] = _toJSValue(newValue) } + } } - public class CSSNamespaceRule: CSSRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSNamespaceRule].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSNamespaceRule].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _namespaceURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.namespaceURI) - _prefix = ReadonlyAttribute(jsObject: jsObject, name: Strings.prefix) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var namespaceURI: String + @inlinable public var namespaceURI: String { jsObject[Strings.namespaceURI].fromJSValue()! } - @ReadonlyAttribute - public var prefix: String + @inlinable public var prefix: String { jsObject[Strings.prefix].fromJSValue()! } } public class CSSNumericArray: JSBridgedClass, Sequence { @@ -797,22 +803,14 @@ public class CSSNumericArray: JSBridgedClass, Sequence { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public typealias Element = CSSNumericValue - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> CSSNumericValue { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> CSSNumericValue { jsObject[key].fromJSValue()! } } public enum CSSNumericBaseType: JSString, JSValueCompatible { @@ -825,21 +823,27 @@ public enum CSSNumericBaseType: JSString, JSValueCompatible { case percent = "percent" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class CSSNumericType: JSDictionaryCompatible { + public let jsObject: JSObject -public class CSSNumericType: BridgedDictionary { - public convenience init(length: Int32, angle: Int32, time: Int32, frequency: Int32, resolution: Int32, flex: Int32, percent: Int32, percentHint: CSSNumericBaseType) { + public convenience init( + length: Int32? = nil, + angle: Int32? = nil, + time: Int32? = nil, + frequency: Int32? = nil, + resolution: Int32? = nil, + flex: Int32? = nil, + percent: Int32? = nil, + percentHint: CSSNumericBaseType? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.length] = _toJSValue(length) object[Strings.angle] = _toJSValue(angle) @@ -849,255 +853,340 @@ public class CSSNumericType: BridgedDictionary { object[Strings.flex] = _toJSValue(flex) object[Strings.percent] = _toJSValue(percent) object[Strings.percentHint] = _toJSValue(percentHint) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _length = ReadWriteAttribute(jsObject: object, name: Strings.length) - _angle = ReadWriteAttribute(jsObject: object, name: Strings.angle) - _time = ReadWriteAttribute(jsObject: object, name: Strings.time) - _frequency = ReadWriteAttribute(jsObject: object, name: Strings.frequency) - _resolution = ReadWriteAttribute(jsObject: object, name: Strings.resolution) - _flex = ReadWriteAttribute(jsObject: object, name: Strings.flex) - _percent = ReadWriteAttribute(jsObject: object, name: Strings.percent) - _percentHint = ReadWriteAttribute(jsObject: object, name: Strings.percentHint) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var length: Int32 - - @ReadWriteAttribute - public var angle: Int32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var time: Int32 - - @ReadWriteAttribute - public var frequency: Int32 - - @ReadWriteAttribute - public var resolution: Int32 - - @ReadWriteAttribute - public var flex: Int32 - - @ReadWriteAttribute - public var percent: Int32 - - @ReadWriteAttribute - public var percentHint: CSSNumericBaseType + @inlinable public var length: Int32 { + get { jsObject[Strings.length].fromJSValue()! } + set { jsObject[Strings.length] = _toJSValue(newValue) } + } + @inlinable public var angle: Int32 { + get { jsObject[Strings.angle].fromJSValue()! } + set { jsObject[Strings.angle] = _toJSValue(newValue) } + } + @inlinable public var time: Int32 { + get { jsObject[Strings.time].fromJSValue()! } + set { jsObject[Strings.time] = _toJSValue(newValue) } + } + @inlinable public var frequency: Int32 { + get { jsObject[Strings.frequency].fromJSValue()! } + set { jsObject[Strings.frequency] = _toJSValue(newValue) } + } + @inlinable public var resolution: Int32 { + get { jsObject[Strings.resolution].fromJSValue()! } + set { jsObject[Strings.resolution] = _toJSValue(newValue) } + } + @inlinable public var flex: Int32 { + get { jsObject[Strings.flex].fromJSValue()! } + set { jsObject[Strings.flex] = _toJSValue(newValue) } + } + @inlinable public var percent: Int32 { + get { jsObject[Strings.percent].fromJSValue()! } + set { jsObject[Strings.percent] = _toJSValue(newValue) } + } + @inlinable public var percentHint: CSSNumericBaseType { + get { jsObject[Strings.percentHint].fromJSValue()! } + set { jsObject[Strings.percentHint] = _toJSValue(newValue) } + } } - public class CSSNumericValue: CSSStyleValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSNumericValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSNumericValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func add(values: CSSNumberish...) -> Self { + @inlinable final public func add(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.add].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func sub(values: CSSNumberish...) -> Self { + @inlinable final public func sub(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.sub].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func mul(values: CSSNumberish...) -> Self { + @inlinable final public func mul(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.mul].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func div(values: CSSNumberish...) -> Self { + @inlinable final public func div(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.div].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func min(values: CSSNumberish...) -> Self { + @inlinable final public func min(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.min].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func max(values: CSSNumberish...) -> Self { + @inlinable final public func max(values: CSSNumberish...) -> CSSNumericValue { let this = jsObject return this[Strings.max].function!(this: this, arguments: values.map(_toJSValue)).fromJSValue()! } - @inlinable public func equals(value: CSSNumberish...) -> Bool { + @inlinable final public func equals(value: CSSNumberish...) -> Bool { let this = jsObject return this[Strings.equals].function!(this: this, arguments: value.map(_toJSValue)).fromJSValue()! } - @inlinable public func to(unit: String) -> CSSUnitValue { + @inlinable final public func to(unit: String) -> CSSUnitValue { let this = jsObject return this[Strings.to].function!(this: this, arguments: [_toJSValue(unit)]).fromJSValue()! } - @inlinable public func toSum(units: String...) -> CSSMathSum { + @inlinable final public func toSum(units: String...) -> CSSMathSum { let this = jsObject return this[Strings.toSum].function!(this: this, arguments: units.map(_toJSValue)).fromJSValue()! } - @inlinable public func type() -> CSSNumericType { + @inlinable final public func type() -> CSSNumericType { let this = jsObject return this[Strings.type].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public class func parse(cssText: String) -> Self { + @inlinable public class func parse(cssText: String) -> CSSNumericValue { let this = constructor! return this[Strings.parse].function!(this: this, arguments: [_toJSValue(cssText)]).fromJSValue()! } } public class CSSOKLCH: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSOKLCH].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSOKLCH].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _l = ReadWriteAttribute(jsObject: jsObject, name: Strings.l) - _c = ReadWriteAttribute(jsObject: jsObject, name: Strings.c) - _h = ReadWriteAttribute(jsObject: jsObject, name: Strings.h) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(l: CSSColorPercent, c: CSSColorPercent, h: CSSColorAngle, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(l), _toJSValue(c), _toJSValue(h), _toJSValue(alpha)])) + @inlinable public convenience init( + l: CSSColorPercent, + c: CSSColorPercent, + h: CSSColorAngle, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(l), _toJSValue(c), _toJSValue(h), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var l: CSSColorPercent + @inlinable public var l: CSSColorPercent { + get { jsObject[Strings.l].fromJSValue()! } + set { jsObject[Strings.l] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var c: CSSColorPercent + @inlinable public var c: CSSColorPercent { + get { jsObject[Strings.c].fromJSValue()! } + set { jsObject[Strings.c] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var h: CSSColorAngle + @inlinable public var h: CSSColorAngle { + get { jsObject[Strings.h].fromJSValue()! } + set { jsObject[Strings.h] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSOKLab: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSOKLab].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSOKLab].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init( + l: CSSColorPercent, + a: CSSColorNumber, + b: CSSColorNumber, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(l), _toJSValue(a), _toJSValue(b), _toJSValue(alpha), + ]) + ) + } + + @inlinable public var l: CSSColorPercent { + get { jsObject[Strings.l].fromJSValue()! } + set { jsObject[Strings.l] = _toJSValue(newValue) } + } + + @inlinable public var a: CSSColorNumber { + get { jsObject[Strings.a].fromJSValue()! } + set { jsObject[Strings.a] = _toJSValue(newValue) } + } + + @inlinable public var b: CSSColorNumber { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } + + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } +} + +public class CSSPageDescriptors: CSSStyleDeclaration { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.CSSPageDescriptors].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var margin: String { + get { jsObject[Strings.margin].fromJSValue()! } + set { jsObject[Strings.margin] = _toJSValue(newValue) } + } + + @inlinable public var marginTop: String { + get { jsObject[Strings.marginTop].fromJSValue()! } + set { jsObject[Strings.marginTop] = _toJSValue(newValue) } + } - public required init(unsafelyWrapping jsObject: JSObject) { - _l = ReadWriteAttribute(jsObject: jsObject, name: Strings.l) - _a = ReadWriteAttribute(jsObject: jsObject, name: Strings.a) - _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) + @inlinable public var marginRight: String { + get { jsObject[Strings.marginRight].fromJSValue()! } + set { jsObject[Strings.marginRight] = _toJSValue(newValue) } } - @inlinable public convenience init(l: CSSColorPercent, a: CSSColorNumber, b: CSSColorNumber, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(l), _toJSValue(a), _toJSValue(b), _toJSValue(alpha)])) + @inlinable public var marginBottom: String { + get { jsObject[Strings.marginBottom].fromJSValue()! } + set { jsObject[Strings.marginBottom] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var l: CSSColorPercent + @inlinable public var marginLeft: String { + get { jsObject[Strings.marginLeft].fromJSValue()! } + set { jsObject[Strings.marginLeft] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var a: CSSColorNumber + @inlinable public var size: String { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var b: CSSColorNumber + @inlinable public var pageOrientation: String { + get { jsObject[Strings.pageOrientation].fromJSValue()! } + set { jsObject[Strings.pageOrientation] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var marks: String { + get { jsObject[Strings.marks].fromJSValue()! } + set { jsObject[Strings.marks] = _toJSValue(newValue) } + } + + @inlinable public var bleed: String { + get { jsObject[Strings.bleed].fromJSValue()! } + set { jsObject[Strings.bleed] = _toJSValue(newValue) } + } } public class CSSPageRule: CSSGroupingRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSPageRule].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSPageRule].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _selectorText = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectorText) - _style = ReadonlyAttribute(jsObject: jsObject, name: Strings.style) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var selectorText: String + @inlinable public var selectorText: String { + get { jsObject[Strings.selectorText].fromJSValue()! } + set { jsObject[Strings.selectorText] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var style: CSSStyleDeclaration + @inlinable public var style: CSSPageDescriptors { jsObject[Strings.style].fromJSValue()! } } public class CSSPerspective: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSPerspective].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSPerspective].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadWriteAttribute(jsObject: jsObject, name: Strings.length) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(length: CSSPerspectiveValue) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(length)])) } - @ReadWriteAttribute - public var length: CSSPerspectiveValue + @inlinable public var length: CSSPerspectiveValue { + get { jsObject[Strings.length].fromJSValue()! } + set { jsObject[Strings.length] = _toJSValue(newValue) } + } } public class CSSRGB: CSSColorValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSRGB].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSRGB].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _r = ReadWriteAttribute(jsObject: jsObject, name: Strings.r) - _g = ReadWriteAttribute(jsObject: jsObject, name: Strings.g) - _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) - _alpha = ReadWriteAttribute(jsObject: jsObject, name: Strings.alpha) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(r: CSSColorRGBComp, g: CSSColorRGBComp, b: CSSColorRGBComp, alpha: CSSColorPercent? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(r), _toJSValue(g), _toJSValue(b), _toJSValue(alpha)])) + @inlinable public convenience init( + r: CSSColorRGBComp, + g: CSSColorRGBComp, + b: CSSColorRGBComp, + alpha: CSSColorPercent? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(r), _toJSValue(g), _toJSValue(b), _toJSValue(alpha), + ]) + ) } - @ReadWriteAttribute - public var r: CSSColorRGBComp + @inlinable public var r: CSSColorRGBComp { + get { jsObject[Strings.r].fromJSValue()! } + set { jsObject[Strings.r] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var g: CSSColorRGBComp + @inlinable public var g: CSSColorRGBComp { + get { jsObject[Strings.g].fromJSValue()! } + set { jsObject[Strings.g] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var b: CSSColorRGBComp + @inlinable public var b: CSSColorRGBComp { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alpha: CSSColorPercent + @inlinable public var alpha: CSSColorPercent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } public class CSSRotate: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSRotate].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSRotate].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadWriteAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadWriteAttribute(jsObject: jsObject, name: Strings.y) - _z = ReadWriteAttribute(jsObject: jsObject, name: Strings.z) - _angle = ReadWriteAttribute(jsObject: jsObject, name: Strings.angle) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(angle: CSSNumericValue) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(angle)])) } @inlinable public convenience init(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish, angle: CSSNumericValue) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle), + ]) + ) } - @ReadWriteAttribute - public var x: CSSNumberish + @inlinable public var x: CSSNumberish { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var y: CSSNumberish + @inlinable public var y: CSSNumberish { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var z: CSSNumberish + @inlinable public var z: CSSNumberish { + get { jsObject[Strings.z].fromJSValue()! } + set { jsObject[Strings.z] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var angle: CSSNumericValue + @inlinable public var angle: CSSNumericValue { + get { jsObject[Strings.angle].fromJSValue()! } + set { jsObject[Strings.angle] = _toJSValue(newValue) } + } } public class CSSRule: JSBridgedClass { @@ -1105,25 +1194,18 @@ public class CSSRule: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _cssText = ReadWriteAttribute(jsObject: jsObject, name: Strings.cssText) - _parentRule = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentRule) - _parentStyleSheet = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentStyleSheet) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var cssText: String + @inlinable public var cssText: String { + get { jsObject[Strings.cssText].fromJSValue()! } + set { jsObject[Strings.cssText] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var parentRule: CSSRule? + @inlinable public var parentRule: CSSRule? { jsObject[Strings.parentRule].fromJSValue() } - @ReadonlyAttribute - public var parentStyleSheet: CSSStyleSheet? + @inlinable public var parentStyleSheet: CSSStyleSheet? { jsObject[Strings.parentStyleSheet].fromJSValue() } - @ReadonlyAttribute - public var type: UInt16 + @inlinable public var type: UInt16 { jsObject[Strings.type].fromJSValue()! } public static let STYLE_RULE: UInt16 = 1 @@ -1147,98 +1229,91 @@ public class CSSRuleList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public subscript(key: Int) -> CSSRule? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> CSSRule? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> CSSRule? { + @inlinable final public func item(index: UInt32) -> CSSRule? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } } public class CSSScale: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSScale].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSScale].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadWriteAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadWriteAttribute(jsObject: jsObject, name: Strings.y) - _z = ReadWriteAttribute(jsObject: jsObject, name: Strings.z) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(x: CSSNumberish, y: CSSNumberish, z: CSSNumberish? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)])) } - @ReadWriteAttribute - public var x: CSSNumberish + @inlinable public var x: CSSNumberish { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var y: CSSNumberish + @inlinable public var y: CSSNumberish { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var z: CSSNumberish + @inlinable public var z: CSSNumberish { + get { jsObject[Strings.z].fromJSValue()! } + set { jsObject[Strings.z] = _toJSValue(newValue) } + } } public class CSSSkew: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSSkew].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSSkew].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _ax = ReadWriteAttribute(jsObject: jsObject, name: Strings.ax) - _ay = ReadWriteAttribute(jsObject: jsObject, name: Strings.ay) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(ax: CSSNumericValue, ay: CSSNumericValue) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(ax), _toJSValue(ay)])) } - @ReadWriteAttribute - public var ax: CSSNumericValue + @inlinable public var ax: CSSNumericValue { + get { jsObject[Strings.ax].fromJSValue()! } + set { jsObject[Strings.ax] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ay: CSSNumericValue + @inlinable public var ay: CSSNumericValue { + get { jsObject[Strings.ay].fromJSValue()! } + set { jsObject[Strings.ay] = _toJSValue(newValue) } + } } public class CSSSkewX: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSSkewX].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSSkewX].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _ax = ReadWriteAttribute(jsObject: jsObject, name: Strings.ax) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(ax: CSSNumericValue) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(ax)])) } - @ReadWriteAttribute - public var ax: CSSNumericValue + @inlinable public var ax: CSSNumericValue { + get { jsObject[Strings.ax].fromJSValue()! } + set { jsObject[Strings.ax] = _toJSValue(newValue) } + } } public class CSSSkewY: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSSkewY].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSSkewY].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _ay = ReadWriteAttribute(jsObject: jsObject, name: Strings.ay) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(ay: CSSNumericValue) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(ay)])) } - @ReadWriteAttribute - public var ay: CSSNumericValue + @inlinable public var ay: CSSNumericValue { + get { jsObject[Strings.ay].fromJSValue()! } + set { jsObject[Strings.ay] = _toJSValue(newValue) } + } } public class CSSStyleDeclaration: JSBridgedClass { @@ -1246,184 +1321,183 @@ public class CSSStyleDeclaration: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _cssText = ReadWriteAttribute(jsObject: jsObject, name: Strings.cssText) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _parentRule = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentRule) - _cssFloat = ReadWriteAttribute(jsObject: jsObject, name: Strings.cssFloat) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var cssText: String + @inlinable public var cssText: String { + get { jsObject[Strings.cssText].fromJSValue()! } + set { jsObject[Strings.cssText] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> String { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> String { jsObject[key].fromJSValue()! } - @inlinable public func item(index: UInt32) -> String { + @inlinable final public func item(index: UInt32) -> String { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func getPropertyValue(property: String) -> String { + @inlinable final public func getPropertyValue(property: String) -> String { let this = jsObject return this[Strings.getPropertyValue].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! } - @inlinable public func getPropertyPriority(property: String) -> String { + @inlinable final public func getPropertyPriority(property: String) -> String { let this = jsObject return this[Strings.getPropertyPriority].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! } - @inlinable public func setProperty(property: String, value: String, priority: String? = nil) { + @inlinable final public func setProperty(property: String, value: String, priority: String? = nil) { let this = jsObject - _ = this[Strings.setProperty].function!(this: this, arguments: [_toJSValue(property), _toJSValue(value), _toJSValue(priority)]) + _ = this[Strings.setProperty].function!( + this: this, + arguments: [_toJSValue(property), _toJSValue(value), _toJSValue(priority)] + ) } - @inlinable public func removeProperty(property: String) -> String { + @inlinable final public func removeProperty(property: String) -> String { let this = jsObject return this[Strings.removeProperty].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! } - @ReadonlyAttribute - public var parentRule: CSSRule? - - @ReadWriteAttribute - public var cssFloat: String + @inlinable public var parentRule: CSSRule? { jsObject[Strings.parentRule].fromJSValue() } } -public class CSSStyleRule: CSSRule { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSStyleRule].function } +public class CSSStyleProperties: CSSStyleDeclaration { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.CSSStyleProperties].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - _selectorText = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectorText) - _style = ReadonlyAttribute(jsObject: jsObject, name: Strings.style) - _styleMap = ReadonlyAttribute(jsObject: jsObject, name: Strings.styleMap) - super.init(unsafelyWrapping: jsObject) + @inlinable public var cssFloat: String { + get { jsObject[Strings.cssFloat].fromJSValue()! } + set { jsObject[Strings.cssFloat] = _toJSValue(newValue) } } +} - @ReadWriteAttribute - public var selectorText: String +public class CSSStyleRule: CSSGroupingRule { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSStyleRule].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var selectorText: String { + get { jsObject[Strings.selectorText].fromJSValue()! } + set { jsObject[Strings.selectorText] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var style: CSSStyleDeclaration + @inlinable public var style: CSSStyleProperties { jsObject[Strings.style].fromJSValue()! } - @ReadonlyAttribute - public var styleMap: StylePropertyMap + @inlinable public var styleMap: StylePropertyMap { jsObject[Strings.styleMap].fromJSValue()! } } public class CSSStyleSheet: StyleSheet { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSStyleSheet].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSStyleSheet].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _ownerRule = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerRule) - _cssRules = ReadonlyAttribute(jsObject: jsObject, name: Strings.cssRules) - _rules = ReadonlyAttribute(jsObject: jsObject, name: Strings.rules) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(options: CSSStyleSheetInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(options)])) } - @ReadonlyAttribute - public var ownerRule: CSSRule? + @inlinable public var ownerRule: CSSRule? { jsObject[Strings.ownerRule].fromJSValue() } - @ReadonlyAttribute - public var cssRules: CSSRuleList + @inlinable public var cssRules: CSSRuleList { jsObject[Strings.cssRules].fromJSValue()! } - @inlinable public func insertRule(rule: String, index: UInt32? = nil) -> UInt32 { + @inlinable final public func insertRule(rule: String, index: UInt32? = nil) -> UInt32 { let this = jsObject - return this[Strings.insertRule].function!(this: this, arguments: [_toJSValue(rule), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertRule].function!(this: this, arguments: [_toJSValue(rule), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func deleteRule(index: UInt32) { + @inlinable final public func deleteRule(index: UInt32) { let this = jsObject _ = this[Strings.deleteRule].function!(this: this, arguments: [_toJSValue(index)]) } - @inlinable public func replace(text: String) -> JSPromise { + @inlinable final public func replace(text: String) -> JSPromise { let this = jsObject return this[Strings.replace].function!(this: this, arguments: [_toJSValue(text)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func replace(text: String) async throws -> CSSStyleSheet { - let this = jsObject - let _promise: JSPromise = this[Strings.replace].function!(this: this, arguments: [_toJSValue(text)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func replace( + text: String + ) async throws(JSException) -> CSSStyleSheet { + let this = jsObject + let _promise: JSPromise = this[Strings.replace].function!(this: this, arguments: [_toJSValue(text)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func replaceSync(text: String) { + @inlinable final public func replaceSync(text: String) { let this = jsObject _ = this[Strings.replaceSync].function!(this: this, arguments: [_toJSValue(text)]) } - @ReadonlyAttribute - public var rules: CSSRuleList + @inlinable public var rules: CSSRuleList { jsObject[Strings.rules].fromJSValue()! } - @inlinable public func addRule(selector: String? = nil, style: String? = nil, index: UInt32? = nil) -> Int32 { + @inlinable final public func addRule(selector: String? = nil, style: String? = nil, index: UInt32? = nil) -> Int32 { let this = jsObject - return this[Strings.addRule].function!(this: this, arguments: [_toJSValue(selector), _toJSValue(style), _toJSValue(index)]).fromJSValue()! + return this[Strings.addRule].function!( + this: this, + arguments: [_toJSValue(selector), _toJSValue(style), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func removeRule(index: UInt32? = nil) { + @inlinable final public func removeRule(index: UInt32? = nil) { let this = jsObject _ = this[Strings.removeRule].function!(this: this, arguments: [_toJSValue(index)]) } } -public class CSSStyleSheetInit: BridgedDictionary { - public convenience init(baseURL: String, media: MediaList_or_String, disabled: Bool) { +open class CSSStyleSheetInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(baseURL: String? = nil, media: MediaList_or_String? = nil, disabled: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.baseURL] = _toJSValue(baseURL) object[Strings.media] = _toJSValue(media) object[Strings.disabled] = _toJSValue(disabled) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _baseURL = ReadWriteAttribute(jsObject: object, name: Strings.baseURL) - _media = ReadWriteAttribute(jsObject: object, name: Strings.media) - _disabled = ReadWriteAttribute(jsObject: object, name: Strings.disabled) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var baseURL: String - - @ReadWriteAttribute - public var media: MediaList_or_String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var baseURL: String { + get { jsObject[Strings.baseURL].fromJSValue()! } + set { jsObject[Strings.baseURL] = _toJSValue(newValue) } + } + @inlinable public var media: MediaList_or_String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } } - public class CSSStyleValue: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CSSStyleValue].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! - } + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } - @inlinable public class func parse(property: String, cssText: String) -> Self { + @inlinable public class func parse(property: String, cssText: String) -> CSSStyleValue { let this = constructor! - return this[Strings.parse].function!(this: this, arguments: [_toJSValue(property), _toJSValue(cssText)]).fromJSValue()! + return this[Strings.parse].function!(this: this, arguments: [_toJSValue(property), _toJSValue(cssText)]) + .fromJSValue()! } @inlinable public class func parseAll(property: String, cssText: String) -> [CSSStyleValue] { let this = constructor! - return this[Strings.parseAll].function!(this: this, arguments: [_toJSValue(property), _toJSValue(cssText)]).fromJSValue()! + return this[Strings.parseAll].function!(this: this, arguments: [_toJSValue(property), _toJSValue(cssText)]) + .fromJSValue()! } } @@ -1432,134 +1506,109 @@ public class CSSTransformComponent: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _is2D = ReadWriteAttribute(jsObject: jsObject, name: Strings.is2D) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! - } + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } - @ReadWriteAttribute - public var is2D: Bool + @inlinable public var is2D: Bool { + get { jsObject[Strings.is2D].fromJSValue()! } + set { jsObject[Strings.is2D] = _toJSValue(newValue) } + } - @inlinable public func toMatrix() -> DOMMatrix { + @inlinable final public func toMatrix() -> DOMMatrix { let this = jsObject return this[Strings.toMatrix].function!(this: this, arguments: []).fromJSValue()! } } public class CSSTransformValue: CSSStyleValue, Sequence { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSTransformValue].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _is2D = ReadonlyAttribute(jsObject: jsObject, name: Strings.is2D) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.CSSTransformValue].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(transforms: [CSSTransformComponent]) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(transforms)])) } public typealias Element = CSSTransformComponent - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } @inlinable public subscript(key: Int) -> CSSTransformComponent { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } - @ReadonlyAttribute - public var is2D: Bool + @inlinable public var is2D: Bool { jsObject[Strings.is2D].fromJSValue()! } - @inlinable public func toMatrix() -> DOMMatrix { + @inlinable final public func toMatrix() -> DOMMatrix { let this = jsObject return this[Strings.toMatrix].function!(this: this, arguments: []).fromJSValue()! } } public class CSSTranslate: CSSTransformComponent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSTranslate].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSTranslate].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadWriteAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadWriteAttribute(jsObject: jsObject, name: Strings.y) - _z = ReadWriteAttribute(jsObject: jsObject, name: Strings.z) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(x: CSSNumericValue, y: CSSNumericValue, z: CSSNumericValue? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)])) } - @ReadWriteAttribute - public var x: CSSNumericValue + @inlinable public var x: CSSNumericValue { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var y: CSSNumericValue + @inlinable public var y: CSSNumericValue { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var z: CSSNumericValue + @inlinable public var z: CSSNumericValue { + get { jsObject[Strings.z].fromJSValue()! } + set { jsObject[Strings.z] = _toJSValue(newValue) } + } } public class CSSUnitValue: CSSNumericValue { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSUnitValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSUnitValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _unit = ReadonlyAttribute(jsObject: jsObject, name: Strings.unit) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(value: Double, unit: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(value), _toJSValue(unit)])) } - @ReadWriteAttribute - public var value: Double + @inlinable public var value: Double { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var unit: String + @inlinable public var unit: String { jsObject[Strings.unit].fromJSValue()! } } public class CSSUnparsedValue: CSSStyleValue, Sequence { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSUnparsedValue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSUnparsedValue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(members: [CSSUnparsedSegment]) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(members)])) } public typealias Element = CSSUnparsedSegment - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } @inlinable public subscript(key: Int) -> CSSUnparsedSegment { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } } @@ -1568,21 +1617,18 @@ public class CSSVariableReferenceValue: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _variable = ReadWriteAttribute(jsObject: jsObject, name: Strings.variable) - _fallback = ReadonlyAttribute(jsObject: jsObject, name: Strings.fallback) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(variable: String, fallback: CSSUnparsedValue? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(variable), _toJSValue(fallback)])) } - @ReadWriteAttribute - public var variable: String + @inlinable public var variable: String { + get { jsObject[Strings.variable].fromJSValue()! } + set { jsObject[Strings.variable] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var fallback: CSSUnparsedValue? + @inlinable public var fallback: CSSUnparsedValue? { jsObject[Strings.fallback].fromJSValue() } } public class CaretPosition: JSBridgedClass { @@ -1590,258 +1636,289 @@ public class CaretPosition: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _offsetNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetNode) - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var offsetNode: Node + @inlinable public var offsetNode: Node { jsObject[Strings.offsetNode].fromJSValue()! } - @ReadonlyAttribute - public var offset: UInt32 + @inlinable public var offset: UInt32 { jsObject[Strings.offset].fromJSValue()! } - @inlinable public func getClientRect() -> DOMRect? { + @inlinable final public func getClientRect() -> DOMRect? { let this = jsObject return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue() } } -public class CheckVisibilityOptions: BridgedDictionary { - public convenience init(checkOpacity: Bool, checkVisibilityCSS: Bool) { +open class CaretPositionFromPointOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(shadowRoots: [ShadowRoot]? = nil) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.checkOpacity] = _toJSValue(checkOpacity) - object[Strings.checkVisibilityCSS] = _toJSValue(checkVisibilityCSS) + object[Strings.shadowRoots] = _toJSValue(shadowRoots) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _checkOpacity = ReadWriteAttribute(jsObject: object, name: Strings.checkOpacity) - _checkVisibilityCSS = ReadWriteAttribute(jsObject: object, name: Strings.checkVisibilityCSS) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var shadowRoots: [ShadowRoot] { + get { jsObject[Strings.shadowRoots].fromJSValue()! } + set { jsObject[Strings.shadowRoots] = _toJSValue(newValue) } } +} +open class CheckVisibilityOptions: JSDictionaryCompatible { + public let jsObject: JSObject - @ReadWriteAttribute - public var checkOpacity: Bool + public convenience init( + checkOpacity: Bool? = nil, + checkVisibilityCSS: Bool? = nil, + contentVisibilityAuto: Bool? = nil, + opacityProperty: Bool? = nil, + visibilityProperty: Bool? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.checkOpacity] = _toJSValue(checkOpacity) + object[Strings.checkVisibilityCSS] = _toJSValue(checkVisibilityCSS) + object[Strings.contentVisibilityAuto] = _toJSValue(contentVisibilityAuto) + object[Strings.opacityProperty] = _toJSValue(opacityProperty) + object[Strings.visibilityProperty] = _toJSValue(visibilityProperty) - @ReadWriteAttribute - public var checkVisibilityCSS: Bool + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var checkOpacity: Bool { + get { jsObject[Strings.checkOpacity].fromJSValue()! } + set { jsObject[Strings.checkOpacity] = _toJSValue(newValue) } + } + @inlinable public var checkVisibilityCSS: Bool { + get { jsObject[Strings.checkVisibilityCSS].fromJSValue()! } + set { jsObject[Strings.checkVisibilityCSS] = _toJSValue(newValue) } + } + @inlinable public var contentVisibilityAuto: Bool { + get { jsObject[Strings.contentVisibilityAuto].fromJSValue()! } + set { jsObject[Strings.contentVisibilityAuto] = _toJSValue(newValue) } + } + @inlinable public var opacityProperty: Bool { + get { jsObject[Strings.opacityProperty].fromJSValue()! } + set { jsObject[Strings.opacityProperty] = _toJSValue(newValue) } + } + @inlinable public var visibilityProperty: Bool { + get { jsObject[Strings.visibilityProperty].fromJSValue()! } + set { jsObject[Strings.visibilityProperty] = _toJSValue(newValue) } + } } +open class ConvertCoordinateOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ConvertCoordinateOptions: BridgedDictionary { - public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) { + public convenience init(fromBox: CSSBoxType? = nil, toBox: CSSBoxType? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.fromBox] = _toJSValue(fromBox) object[Strings.toBox] = _toJSValue(toBox) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _fromBox = ReadWriteAttribute(jsObject: object, name: Strings.fromBox) - _toBox = ReadWriteAttribute(jsObject: object, name: Strings.toBox) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var fromBox: CSSBoxType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var toBox: CSSBoxType + @inlinable public var fromBox: CSSBoxType { + get { jsObject[Strings.fromBox].fromJSValue()! } + set { jsObject[Strings.fromBox] = _toJSValue(newValue) } + } + @inlinable public var toBox: CSSBoxType { + get { jsObject[Strings.toBox].fromJSValue()! } + set { jsObject[Strings.toBox] = _toJSValue(newValue) } + } } -public extension DocumentOrShadowRoot { - @inlinable var styleSheets: StyleSheetList { jsObject[Strings.styleSheets].fromJSValue()! } +extension DocumentOrShadowRoot { + @inlinable public var styleSheets: StyleSheetList { jsObject[Strings.styleSheets].fromJSValue()! } - @inlinable var adoptedStyleSheets: [CSSStyleSheet] { + @inlinable public var adoptedStyleSheets: [CSSStyleSheet] { get { jsObject[Strings.adoptedStyleSheets].fromJSValue()! } - nonmutating set { jsObject[Strings.adoptedStyleSheets] = _toJSValue(newValue) } + set { jsObject[Strings.adoptedStyleSheets] = _toJSValue(newValue) } } } - public protocol ElementCSSInlineStyle: JSBridgedClass {} -public extension ElementCSSInlineStyle { - @inlinable var style: CSSStyleDeclaration { jsObject[Strings.style].fromJSValue()! } +extension ElementCSSInlineStyle { + @inlinable public var style: CSSStyleDeclaration { jsObject[Strings.style].fromJSValue()! } - @inlinable var attributeStyleMap: StylePropertyMap { jsObject[Strings.attributeStyleMap].fromJSValue()! } + @inlinable public var attributeStyleMap: StylePropertyMap { jsObject[Strings.attributeStyleMap].fromJSValue()! } } - extension MathMLElement: ElementCSSInlineStyle {} extension SVGElement: ElementCSSInlineStyle {} public protocol GeometryUtils: JSBridgedClass {} -public extension GeometryUtils { - @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { +extension GeometryUtils { + @inlinable public func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { let this = jsObject return this[Strings.getBoxQuads].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + @inlinable public func convertQuadFromNode( + quad: DOMQuadInit, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMQuad { let this = jsObject - return this[Strings.convertQuadFromNode].function!(this: this, arguments: [_toJSValue(quad), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertQuadFromNode].function!( + this: this, + arguments: [_toJSValue(quad), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } - @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + @inlinable public func convertRectFromNode( + rect: DOMRectReadOnly, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMQuad { let this = jsObject - return this[Strings.convertRectFromNode].function!(this: this, arguments: [_toJSValue(rect), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertRectFromNode].function!( + this: this, + arguments: [_toJSValue(rect), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } - @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint { + @inlinable public func convertPointFromNode( + point: DOMPointInit, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMPoint { let this = jsObject - return this[Strings.convertPointFromNode].function!(this: this, arguments: [_toJSValue(point), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertPointFromNode].function!( + this: this, + arguments: [_toJSValue(point), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } } - extension CSSPseudoElement: GeometryUtils {} extension Text: GeometryUtils {} public protocol LinkStyle: JSBridgedClass {} -public extension LinkStyle { - @inlinable var sheet: CSSStyleSheet? { jsObject[Strings.sheet].fromJSValue() } -} - +extension LinkStyle { @inlinable public var sheet: CSSStyleSheet? { jsObject[Strings.sheet].fromJSValue() } } public class MediaList: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MediaList].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _mediaText = ReadWriteAttribute(jsObject: jsObject, name: Strings.mediaText) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var mediaText: String + @inlinable public var mediaText: String { + get { jsObject[Strings.mediaText].fromJSValue()! } + set { jsObject[Strings.mediaText] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> String? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> String? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> String? { + @inlinable final public func item(index: UInt32) -> String? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public func appendMedium(medium: String) { + @inlinable final public func appendMedium(medium: String) { let this = jsObject _ = this[Strings.appendMedium].function!(this: this, arguments: [_toJSValue(medium)]) } - @inlinable public func deleteMedium(medium: String) { + @inlinable final public func deleteMedium(medium: String) { let this = jsObject _ = this[Strings.deleteMedium].function!(this: this, arguments: [_toJSValue(medium)]) } } public class MediaQueryList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var media: String + @inlinable public var media: String { jsObject[Strings.media].fromJSValue()! } - @ReadonlyAttribute - public var matches: Bool + @inlinable public var matches: Bool { jsObject[Strings.matches].fromJSValue()! } - @inlinable public func addListener(callback: EventListener?) { + @inlinable final public func addListener(callback: EventListener?) { let this = jsObject _ = this[Strings.addListener].function!(this: this, arguments: [_toJSValue(callback)]) } - @inlinable public func removeListener(callback: EventListener?) { + @inlinable final public func removeListener(callback: EventListener?) { let this = jsObject _ = this[Strings.removeListener].function!(this: this, arguments: [_toJSValue(callback)]) } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } } public class MediaQueryListEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryListEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaQueryListEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var media: String + @inlinable public var media: String { jsObject[Strings.media].fromJSValue()! } - @ReadonlyAttribute - public var matches: Bool + @inlinable public var matches: Bool { jsObject[Strings.matches].fromJSValue()! } } -public class MediaQueryListEventInit: BridgedDictionary { - public convenience init(media: String, matches: Bool) { +open class MediaQueryListEventInit: EventInit { + + public convenience init(media: String? = nil, matches: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.media] = _toJSValue(media) object[Strings.matches] = _toJSValue(matches) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _media = ReadWriteAttribute(jsObject: object, name: Strings.media) - _matches = ReadWriteAttribute(jsObject: object, name: Strings.matches) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var media: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var matches: Bool + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } + @inlinable public var matches: Bool { + get { jsObject[Strings.matches].fromJSValue()! } + set { jsObject[Strings.matches] = _toJSValue(newValue) } + } } - public class Screen: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Screen].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _availWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.availWidth) - _availHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.availHeight) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _colorDepth = ReadonlyAttribute(jsObject: jsObject, name: Strings.colorDepth) - _pixelDepth = ReadonlyAttribute(jsObject: jsObject, name: Strings.pixelDepth) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var availWidth: Int32 + @inlinable public var availWidth: Int32 { jsObject[Strings.availWidth].fromJSValue()! } - @ReadonlyAttribute - public var availHeight: Int32 + @inlinable public var availHeight: Int32 { jsObject[Strings.availHeight].fromJSValue()! } - @ReadonlyAttribute - public var width: Int32 + @inlinable public var width: Int32 { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: Int32 + @inlinable public var height: Int32 { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var colorDepth: UInt32 + @inlinable public var colorDepth: UInt32 { jsObject[Strings.colorDepth].fromJSValue()! } - @ReadonlyAttribute - public var pixelDepth: UInt32 + @inlinable public var pixelDepth: UInt32 { jsObject[Strings.pixelDepth].fromJSValue()! } } public enum ScrollBehavior: JSString, JSValueCompatible { @@ -1850,40 +1927,59 @@ public enum ScrollBehavior: JSString, JSValueCompatible { case smooth = "smooth" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} +public enum ScrollIntoViewContainer: JSString, JSValueCompatible { + case all = "all" + case nearest = "nearest" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ScrollIntoViewOptions: ScrollOptions { -public class ScrollIntoViewOptions: BridgedDictionary { - public convenience init(block: ScrollLogicalPosition, inline: ScrollLogicalPosition) { + public convenience init( + behavior: ScrollBehavior? = nil, + block: ScrollLogicalPosition? = nil, + inline: ScrollLogicalPosition? = nil, + container: ScrollIntoViewContainer? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.behavior] = _toJSValue(behavior) object[Strings.block] = _toJSValue(block) object[Strings.inline] = _toJSValue(inline) - self.init(unsafelyWrapping: object) - } + object[Strings.container] = _toJSValue(container) - public required init(unsafelyWrapping object: JSObject) { - _block = ReadWriteAttribute(jsObject: object, name: Strings.block) - _inline = ReadWriteAttribute(jsObject: object, name: Strings.inline) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var block: ScrollLogicalPosition + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var inline: ScrollLogicalPosition + @inlinable public var block: ScrollLogicalPosition { + get { jsObject[Strings.block].fromJSValue()! } + set { jsObject[Strings.block] = _toJSValue(newValue) } + } + @inlinable public var inline: ScrollLogicalPosition { + get { jsObject[Strings.inline].fromJSValue()! } + set { jsObject[Strings.inline] = _toJSValue(newValue) } + } + @inlinable public var container: ScrollIntoViewContainer { + get { jsObject[Strings.container].fromJSValue()! } + set { jsObject[Strings.container] = _toJSValue(newValue) } + } } - public enum ScrollLogicalPosition: JSString, JSValueCompatible { case start = "start" case center = "center" @@ -1891,79 +1987,74 @@ public enum ScrollLogicalPosition: JSString, JSValueCompatible { case nearest = "nearest" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ScrollOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ScrollOptions: BridgedDictionary { - public convenience init(behavior: ScrollBehavior) { + public convenience init(behavior: ScrollBehavior? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.behavior] = _toJSValue(behavior) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _behavior = ReadWriteAttribute(jsObject: object, name: Strings.behavior) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var behavior: ScrollBehavior + @inlinable public var behavior: ScrollBehavior { + get { jsObject[Strings.behavior].fromJSValue()! } + set { jsObject[Strings.behavior] = _toJSValue(newValue) } + } } +open class ScrollToOptions: ScrollOptions { -public class ScrollToOptions: BridgedDictionary { - public convenience init(left: Double, top: Double) { + public convenience init(behavior: ScrollBehavior? = nil, left: Double? = nil, top: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.behavior] = _toJSValue(behavior) object[Strings.left] = _toJSValue(left) object[Strings.top] = _toJSValue(top) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _left = ReadWriteAttribute(jsObject: object, name: Strings.left) - _top = ReadWriteAttribute(jsObject: object, name: Strings.top) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var left: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var top: Double + @inlinable public var left: Double { + get { jsObject[Strings.left].fromJSValue()! } + set { jsObject[Strings.left] = _toJSValue(newValue) } + } + @inlinable public var top: Double { + get { jsObject[Strings.top].fromJSValue()! } + set { jsObject[Strings.top] = _toJSValue(newValue) } + } } - public class StylePropertyMap: StylePropertyMapReadOnly { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StylePropertyMap].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.StylePropertyMap].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func set(property: String, values: CSSStyleValue_or_String...) { + @inlinable final public func set(property: String, values: CSSStyleValue_or_String...) { let this = jsObject _ = this[Strings.set].function!(this: this, arguments: [_toJSValue(property)] + values.map(_toJSValue)) } - @inlinable public func append(property: String, values: CSSStyleValue_or_String...) { + @inlinable final public func append(property: String, values: CSSStyleValue_or_String...) { let this = jsObject _ = this[Strings.append].function!(this: this, arguments: [_toJSValue(property)] + values.map(_toJSValue)) } - @inlinable public func delete(property: String) { + @inlinable final public func delete(property: String) { let this = jsObject _ = this[Strings.delete].function!(this: this, arguments: [_toJSValue(property)]) } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } @@ -1974,10 +2065,7 @@ public class StylePropertyMapReadOnly: JSBridgedClass, Sequence { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public typealias Element = String public func makeIterator() -> ValueIterableIterator { @@ -1985,23 +2073,22 @@ public class StylePropertyMapReadOnly: JSBridgedClass, Sequence { } // TODO: remove patch once https://github.com/w3c/css-houdini-drafts/issues/1095 is fixed - @inlinable public func get(property: String) -> CSSStyleValue? { + @inlinable final public func get(property: String) -> CSSStyleValue? { let this = jsObject return this[Strings.get].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue() } - @inlinable public func getAll(property: String) -> [CSSStyleValue] { + @inlinable final public func getAll(property: String) -> [CSSStyleValue] { let this = jsObject return this[Strings.getAll].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! } - @inlinable public func has(property: String) -> Bool { + @inlinable final public func has(property: String) -> Bool { let this = jsObject return this[Strings.has].function!(this: this, arguments: [_toJSValue(property)]).fromJSValue()! } - @ReadonlyAttribute - public var size: UInt32 + @inlinable public var size: UInt32 { jsObject[Strings.size].fromJSValue()! } } public class StyleSheet: JSBridgedClass { @@ -2009,37 +2096,24 @@ public class StyleSheet: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _href = ReadonlyAttribute(jsObject: jsObject, name: Strings.href) - _ownerNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerNode) - _parentStyleSheet = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentStyleSheet) - _title = ReadonlyAttribute(jsObject: jsObject, name: Strings.title) - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var href: String? + @inlinable public var href: String? { jsObject[Strings.href].fromJSValue() } - @ReadonlyAttribute - public var ownerNode: Element_or_ProcessingInstruction? + @inlinable public var ownerNode: Element_or_ProcessingInstruction? { jsObject[Strings.ownerNode].fromJSValue() } - @ReadonlyAttribute - public var parentStyleSheet: CSSStyleSheet? + @inlinable public var parentStyleSheet: CSSStyleSheet? { jsObject[Strings.parentStyleSheet].fromJSValue() } - @ReadonlyAttribute - public var title: String? + @inlinable public var title: String? { jsObject[Strings.title].fromJSValue() } - @ReadonlyAttribute - public var media: MediaList + @inlinable public var media: MediaList { jsObject[Strings.media].fromJSValue()! } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } } public class StyleSheetList: JSBridgedClass { @@ -2047,326 +2121,353 @@ public class StyleSheetList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public subscript(key: Int) -> CSSStyleSheet? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> CSSStyleSheet? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> CSSStyleSheet? { + @inlinable final public func item(index: UInt32) -> CSSStyleSheet? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } } public typealias CSSColorPercent = CSSColorRGBComp public typealias CSSColorNumber = CSSColorRGBComp public typealias CSSColorAngle = CSSColorRGBComp public class VisualViewport: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VisualViewport].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.VisualViewport].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _offsetLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetLeft) - _offsetTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetTop) - _pageLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageLeft) - _pageTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageTop) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _scale = ReadonlyAttribute(jsObject: jsObject, name: Strings.scale) - _onresize = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onresize) - _onscroll = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onscroll) - _onscrollend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onscrollend) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var offsetLeft: Double + @inlinable public var offsetLeft: Double { jsObject[Strings.offsetLeft].fromJSValue()! } - @ReadonlyAttribute - public var offsetTop: Double + @inlinable public var offsetTop: Double { jsObject[Strings.offsetTop].fromJSValue()! } - @ReadonlyAttribute - public var pageLeft: Double + @inlinable public var pageLeft: Double { jsObject[Strings.pageLeft].fromJSValue()! } - @ReadonlyAttribute - public var pageTop: Double + @inlinable public var pageTop: Double { jsObject[Strings.pageTop].fromJSValue()! } - @ReadonlyAttribute - public var width: Double + @inlinable public var width: Double { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: Double + @inlinable public var height: Double { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var scale: Double + @inlinable public var scale: Double { jsObject[Strings.scale].fromJSValue()! } - @ClosureAttribute1Optional - public var onresize: EventHandler + @inlinable public var onresize: EventHandler { + get { + guard let function = jsObject[Strings.onresize].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onresize] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onresize] = .null + } + } + } - @ClosureAttribute1Optional - public var onscroll: EventHandler + @inlinable public var onscroll: EventHandler { + get { + guard let function = jsObject[Strings.onscroll].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscroll] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscroll] = .null + } + } + } - @ClosureAttribute1Optional - public var onscrollend: EventHandler + @inlinable public var onscrollend: EventHandler { + get { + guard let function = jsObject[Strings.onscrollend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscrollend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscrollend] = .null + } + } + } } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let CSS: JSString = "CSS" - @usableFromInline static let CSSColor: JSString = "CSSColor" - @usableFromInline static let CSSColorValue: JSString = "CSSColorValue" - @usableFromInline static let CSSGroupingRule: JSString = "CSSGroupingRule" - @usableFromInline static let CSSHSL: JSString = "CSSHSL" - @usableFromInline static let CSSHWB: JSString = "CSSHWB" - @usableFromInline static let CSSImageValue: JSString = "CSSImageValue" - @usableFromInline static let CSSImportRule: JSString = "CSSImportRule" - @usableFromInline static let CSSKeywordValue: JSString = "CSSKeywordValue" - @usableFromInline static let CSSLCH: JSString = "CSSLCH" - @usableFromInline static let CSSLab: JSString = "CSSLab" - @usableFromInline static let CSSMarginRule: JSString = "CSSMarginRule" - @usableFromInline static let CSSMathClamp: JSString = "CSSMathClamp" - @usableFromInline static let CSSMathInvert: JSString = "CSSMathInvert" - @usableFromInline static let CSSMathMax: JSString = "CSSMathMax" - @usableFromInline static let CSSMathMin: JSString = "CSSMathMin" - @usableFromInline static let CSSMathNegate: JSString = "CSSMathNegate" - @usableFromInline static let CSSMathProduct: JSString = "CSSMathProduct" - @usableFromInline static let CSSMathSum: JSString = "CSSMathSum" - @usableFromInline static let CSSMathValue: JSString = "CSSMathValue" - @usableFromInline static let CSSMatrixComponent: JSString = "CSSMatrixComponent" - @usableFromInline static let CSSNamespaceRule: JSString = "CSSNamespaceRule" - @usableFromInline static let CSSNumericArray: JSString = "CSSNumericArray" - @usableFromInline static let CSSNumericValue: JSString = "CSSNumericValue" - @usableFromInline static let CSSOKLCH: JSString = "CSSOKLCH" - @usableFromInline static let CSSOKLab: JSString = "CSSOKLab" - @usableFromInline static let CSSPageRule: JSString = "CSSPageRule" - @usableFromInline static let CSSPerspective: JSString = "CSSPerspective" - @usableFromInline static let CSSRGB: JSString = "CSSRGB" - @usableFromInline static let CSSRotate: JSString = "CSSRotate" - @usableFromInline static let CSSRule: JSString = "CSSRule" - @usableFromInline static let CSSRuleList: JSString = "CSSRuleList" - @usableFromInline static let CSSScale: JSString = "CSSScale" - @usableFromInline static let CSSSkew: JSString = "CSSSkew" - @usableFromInline static let CSSSkewX: JSString = "CSSSkewX" - @usableFromInline static let CSSSkewY: JSString = "CSSSkewY" - @usableFromInline static let CSSStyleDeclaration: JSString = "CSSStyleDeclaration" - @usableFromInline static let CSSStyleRule: JSString = "CSSStyleRule" - @usableFromInline static let CSSStyleSheet: JSString = "CSSStyleSheet" - @usableFromInline static let CSSStyleValue: JSString = "CSSStyleValue" - @usableFromInline static let CSSTransformComponent: JSString = "CSSTransformComponent" - @usableFromInline static let CSSTransformValue: JSString = "CSSTransformValue" - @usableFromInline static let CSSTranslate: JSString = "CSSTranslate" - @usableFromInline static let CSSUnitValue: JSString = "CSSUnitValue" - @usableFromInline static let CSSUnparsedValue: JSString = "CSSUnparsedValue" - @usableFromInline static let CSSVariableReferenceValue: JSString = "CSSVariableReferenceValue" - @usableFromInline static let CaretPosition: JSString = "CaretPosition" - @usableFromInline static let Hz: JSString = "Hz" - @usableFromInline static let MediaList: JSString = "MediaList" - @usableFromInline static let MediaQueryList: JSString = "MediaQueryList" - @usableFromInline static let MediaQueryListEvent: JSString = "MediaQueryListEvent" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let Q: JSString = "Q" - @usableFromInline static let Screen: JSString = "Screen" - @usableFromInline static let StylePropertyMap: JSString = "StylePropertyMap" - @usableFromInline static let StylePropertyMapReadOnly: JSString = "StylePropertyMapReadOnly" - @usableFromInline static let StyleSheet: JSString = "StyleSheet" - @usableFromInline static let StyleSheetList: JSString = "StyleSheetList" - @usableFromInline static let VisualViewport: JSString = "VisualViewport" - @usableFromInline static let a: JSString = "a" - @usableFromInline static let add: JSString = "add" - @usableFromInline static let addListener: JSString = "addListener" - @usableFromInline static let addRule: JSString = "addRule" - @usableFromInline static let adoptedStyleSheets: JSString = "adoptedStyleSheets" - @usableFromInline static let alpha: JSString = "alpha" - @usableFromInline static let angle: JSString = "angle" - @usableFromInline static let append: JSString = "append" - @usableFromInline static let appendMedium: JSString = "appendMedium" - @usableFromInline static let attributeStyleMap: JSString = "attributeStyleMap" - @usableFromInline static let availHeight: JSString = "availHeight" - @usableFromInline static let availWidth: JSString = "availWidth" - @usableFromInline static let ax: JSString = "ax" - @usableFromInline static let ay: JSString = "ay" - @usableFromInline static let b: JSString = "b" - @usableFromInline static let baseURL: JSString = "baseURL" - @usableFromInline static let behavior: JSString = "behavior" - @usableFromInline static let block: JSString = "block" - @usableFromInline static let box: JSString = "box" - @usableFromInline static let c: JSString = "c" - @usableFromInline static let ch: JSString = "ch" - @usableFromInline static let channels: JSString = "channels" - @usableFromInline static let checkOpacity: JSString = "checkOpacity" - @usableFromInline static let checkVisibilityCSS: JSString = "checkVisibilityCSS" - @usableFromInline static let clear: JSString = "clear" - @usableFromInline static let cm: JSString = "cm" - @usableFromInline static let colorDepth: JSString = "colorDepth" - @usableFromInline static let colorSpace: JSString = "colorSpace" - @usableFromInline static let convertPointFromNode: JSString = "convertPointFromNode" - @usableFromInline static let convertQuadFromNode: JSString = "convertQuadFromNode" - @usableFromInline static let convertRectFromNode: JSString = "convertRectFromNode" - @usableFromInline static let cqb: JSString = "cqb" - @usableFromInline static let cqh: JSString = "cqh" - @usableFromInline static let cqi: JSString = "cqi" - @usableFromInline static let cqmax: JSString = "cqmax" - @usableFromInline static let cqmin: JSString = "cqmin" - @usableFromInline static let cqw: JSString = "cqw" - @usableFromInline static let cssFloat: JSString = "cssFloat" - @usableFromInline static let cssRules: JSString = "cssRules" - @usableFromInline static let cssText: JSString = "cssText" - @usableFromInline static let deg: JSString = "deg" - @usableFromInline static let delete: JSString = "delete" - @usableFromInline static let deleteMedium: JSString = "deleteMedium" - @usableFromInline static let deleteRule: JSString = "deleteRule" - @usableFromInline static let disabled: JSString = "disabled" - @usableFromInline static let div: JSString = "div" - @usableFromInline static let dpcm: JSString = "dpcm" - @usableFromInline static let dpi: JSString = "dpi" - @usableFromInline static let dppx: JSString = "dppx" - @usableFromInline static let dvb: JSString = "dvb" - @usableFromInline static let dvh: JSString = "dvh" - @usableFromInline static let dvi: JSString = "dvi" - @usableFromInline static let dvmax: JSString = "dvmax" - @usableFromInline static let dvmin: JSString = "dvmin" - @usableFromInline static let dvw: JSString = "dvw" - @usableFromInline static let em: JSString = "em" - @usableFromInline static let equals: JSString = "equals" - @usableFromInline static let escape: JSString = "escape" - @usableFromInline static let ex: JSString = "ex" - @usableFromInline static let fallback: JSString = "fallback" - @usableFromInline static let flex: JSString = "flex" - @usableFromInline static let fr: JSString = "fr" - @usableFromInline static let frequency: JSString = "frequency" - @usableFromInline static let fromBox: JSString = "fromBox" - @usableFromInline static let g: JSString = "g" - @usableFromInline static let get: JSString = "get" - @usableFromInline static let getAll: JSString = "getAll" - @usableFromInline static let getBoxQuads: JSString = "getBoxQuads" - @usableFromInline static let getClientRect: JSString = "getClientRect" - @usableFromInline static let getPropertyPriority: JSString = "getPropertyPriority" - @usableFromInline static let getPropertyValue: JSString = "getPropertyValue" - @usableFromInline static let grad: JSString = "grad" - @usableFromInline static let h: JSString = "h" - @usableFromInline static let has: JSString = "has" - @usableFromInline static let height: JSString = "height" - @usableFromInline static let href: JSString = "href" - @usableFromInline static let ic: JSString = "ic" + @usableFromInline static let `CSS`: JSString = "CSS" + @usableFromInline static let `CSSColor`: JSString = "CSSColor" + @usableFromInline static let `CSSColorValue`: JSString = "CSSColorValue" + @usableFromInline static let `CSSGroupingRule`: JSString = "CSSGroupingRule" + @usableFromInline static let `CSSHSL`: JSString = "CSSHSL" + @usableFromInline static let `CSSHWB`: JSString = "CSSHWB" + @usableFromInline static let `CSSImageValue`: JSString = "CSSImageValue" + @usableFromInline static let `CSSImportRule`: JSString = "CSSImportRule" + @usableFromInline static let `CSSKeywordValue`: JSString = "CSSKeywordValue" + @usableFromInline static let `CSSLCH`: JSString = "CSSLCH" + @usableFromInline static let `CSSLab`: JSString = "CSSLab" + @usableFromInline static let `CSSMarginRule`: JSString = "CSSMarginRule" + @usableFromInline static let `CSSMathClamp`: JSString = "CSSMathClamp" + @usableFromInline static let `CSSMathInvert`: JSString = "CSSMathInvert" + @usableFromInline static let `CSSMathMax`: JSString = "CSSMathMax" + @usableFromInline static let `CSSMathMin`: JSString = "CSSMathMin" + @usableFromInline static let `CSSMathNegate`: JSString = "CSSMathNegate" + @usableFromInline static let `CSSMathProduct`: JSString = "CSSMathProduct" + @usableFromInline static let `CSSMathSum`: JSString = "CSSMathSum" + @usableFromInline static let `CSSMathValue`: JSString = "CSSMathValue" + @usableFromInline static let `CSSMatrixComponent`: JSString = "CSSMatrixComponent" + @usableFromInline static let `CSSNamespaceRule`: JSString = "CSSNamespaceRule" + @usableFromInline static let `CSSNumericArray`: JSString = "CSSNumericArray" + @usableFromInline static let `CSSNumericValue`: JSString = "CSSNumericValue" + @usableFromInline static let `CSSOKLCH`: JSString = "CSSOKLCH" + @usableFromInline static let `CSSOKLab`: JSString = "CSSOKLab" + @usableFromInline static let `CSSPageDescriptors`: JSString = "CSSPageDescriptors" + @usableFromInline static let `CSSPageRule`: JSString = "CSSPageRule" + @usableFromInline static let `CSSPerspective`: JSString = "CSSPerspective" + @usableFromInline static let `CSSRGB`: JSString = "CSSRGB" + @usableFromInline static let `CSSRotate`: JSString = "CSSRotate" + @usableFromInline static let `CSSRule`: JSString = "CSSRule" + @usableFromInline static let `CSSRuleList`: JSString = "CSSRuleList" + @usableFromInline static let `CSSScale`: JSString = "CSSScale" + @usableFromInline static let `CSSSkew`: JSString = "CSSSkew" + @usableFromInline static let `CSSSkewX`: JSString = "CSSSkewX" + @usableFromInline static let `CSSSkewY`: JSString = "CSSSkewY" + @usableFromInline static let `CSSStyleDeclaration`: JSString = "CSSStyleDeclaration" + @usableFromInline static let `CSSStyleProperties`: JSString = "CSSStyleProperties" + @usableFromInline static let `CSSStyleRule`: JSString = "CSSStyleRule" + @usableFromInline static let `CSSStyleSheet`: JSString = "CSSStyleSheet" + @usableFromInline static let `CSSStyleValue`: JSString = "CSSStyleValue" + @usableFromInline static let `CSSTransformComponent`: JSString = "CSSTransformComponent" + @usableFromInline static let `CSSTransformValue`: JSString = "CSSTransformValue" + @usableFromInline static let `CSSTranslate`: JSString = "CSSTranslate" + @usableFromInline static let `CSSUnitValue`: JSString = "CSSUnitValue" + @usableFromInline static let `CSSUnparsedValue`: JSString = "CSSUnparsedValue" + @usableFromInline static let `CSSVariableReferenceValue`: JSString = "CSSVariableReferenceValue" + @usableFromInline static let `CaretPosition`: JSString = "CaretPosition" + @usableFromInline static let `Hz`: JSString = "Hz" + @usableFromInline static let `MediaList`: JSString = "MediaList" + @usableFromInline static let `MediaQueryList`: JSString = "MediaQueryList" + @usableFromInline static let `MediaQueryListEvent`: JSString = "MediaQueryListEvent" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `Q`: JSString = "Q" + @usableFromInline static let `Screen`: JSString = "Screen" + @usableFromInline static let `StylePropertyMap`: JSString = "StylePropertyMap" + @usableFromInline static let `StylePropertyMapReadOnly`: JSString = "StylePropertyMapReadOnly" + @usableFromInline static let `StyleSheet`: JSString = "StyleSheet" + @usableFromInline static let `StyleSheetList`: JSString = "StyleSheetList" + @usableFromInline static let `VisualViewport`: JSString = "VisualViewport" + @usableFromInline static let `a`: JSString = "a" + @usableFromInline static let `add`: JSString = "add" + @usableFromInline static let `addListener`: JSString = "addListener" + @usableFromInline static let `addRule`: JSString = "addRule" + @usableFromInline static let `adoptedStyleSheets`: JSString = "adoptedStyleSheets" + @usableFromInline static let `alpha`: JSString = "alpha" + @usableFromInline static let `angle`: JSString = "angle" + @usableFromInline static let `append`: JSString = "append" + @usableFromInline static let `appendMedium`: JSString = "appendMedium" + @usableFromInline static let `attributeStyleMap`: JSString = "attributeStyleMap" + @usableFromInline static let `availHeight`: JSString = "availHeight" + @usableFromInline static let `availWidth`: JSString = "availWidth" + @usableFromInline static let `ax`: JSString = "ax" + @usableFromInline static let `ay`: JSString = "ay" + @usableFromInline static let `b`: JSString = "b" + @usableFromInline static let `baseURL`: JSString = "baseURL" + @usableFromInline static let `behavior`: JSString = "behavior" + @usableFromInline static let `bleed`: JSString = "bleed" + @usableFromInline static let `block`: JSString = "block" + @usableFromInline static let `box`: JSString = "box" + @usableFromInline static let `c`: JSString = "c" + @usableFromInline static let `cap`: JSString = "cap" + @usableFromInline static let `ch`: JSString = "ch" + @usableFromInline static let `channels`: JSString = "channels" + @usableFromInline static let `checkOpacity`: JSString = "checkOpacity" + @usableFromInline static let `checkVisibilityCSS`: JSString = "checkVisibilityCSS" + @usableFromInline static let `clear`: JSString = "clear" + @usableFromInline static let `cm`: JSString = "cm" + @usableFromInline static let `colorDepth`: JSString = "colorDepth" + @usableFromInline static let `colorSpace`: JSString = "colorSpace" + @usableFromInline static let `container`: JSString = "container" + @usableFromInline static let `contentVisibilityAuto`: JSString = "contentVisibilityAuto" + @usableFromInline static let `convertPointFromNode`: JSString = "convertPointFromNode" + @usableFromInline static let `convertQuadFromNode`: JSString = "convertQuadFromNode" + @usableFromInline static let `convertRectFromNode`: JSString = "convertRectFromNode" + @usableFromInline static let `cqb`: JSString = "cqb" + @usableFromInline static let `cqh`: JSString = "cqh" + @usableFromInline static let `cqi`: JSString = "cqi" + @usableFromInline static let `cqmax`: JSString = "cqmax" + @usableFromInline static let `cqmin`: JSString = "cqmin" + @usableFromInline static let `cqw`: JSString = "cqw" + @usableFromInline static let `cssFloat`: JSString = "cssFloat" + @usableFromInline static let `cssRules`: JSString = "cssRules" + @usableFromInline static let `cssText`: JSString = "cssText" + @usableFromInline static let `deg`: JSString = "deg" + @usableFromInline static let `delete`: JSString = "delete" + @usableFromInline static let `deleteMedium`: JSString = "deleteMedium" + @usableFromInline static let `deleteRule`: JSString = "deleteRule" + @usableFromInline static let `disabled`: JSString = "disabled" + @usableFromInline static let `div`: JSString = "div" + @usableFromInline static let `dpcm`: JSString = "dpcm" + @usableFromInline static let `dpi`: JSString = "dpi" + @usableFromInline static let `dppx`: JSString = "dppx" + @usableFromInline static let `dvb`: JSString = "dvb" + @usableFromInline static let `dvh`: JSString = "dvh" + @usableFromInline static let `dvi`: JSString = "dvi" + @usableFromInline static let `dvmax`: JSString = "dvmax" + @usableFromInline static let `dvmin`: JSString = "dvmin" + @usableFromInline static let `dvw`: JSString = "dvw" + @usableFromInline static let `em`: JSString = "em" + @usableFromInline static let `equals`: JSString = "equals" + @usableFromInline static let `escape`: JSString = "escape" + @usableFromInline static let `ex`: JSString = "ex" + @usableFromInline static let `fallback`: JSString = "fallback" + @usableFromInline static let `flex`: JSString = "flex" + @usableFromInline static let `fr`: JSString = "fr" + @usableFromInline static let `frequency`: JSString = "frequency" + @usableFromInline static let `fromBox`: JSString = "fromBox" + @usableFromInline static let `g`: JSString = "g" + @usableFromInline static let `get`: JSString = "get" + @usableFromInline static let `getAll`: JSString = "getAll" + @usableFromInline static let `getBoxQuads`: JSString = "getBoxQuads" + @usableFromInline static let `getClientRect`: JSString = "getClientRect" + @usableFromInline static let `getPropertyPriority`: JSString = "getPropertyPriority" + @usableFromInline static let `getPropertyValue`: JSString = "getPropertyValue" + @usableFromInline static let `grad`: JSString = "grad" + @usableFromInline static let `h`: JSString = "h" + @usableFromInline static let `has`: JSString = "has" + @usableFromInline static let `height`: JSString = "height" + @usableFromInline static let `href`: JSString = "href" + @usableFromInline static let `ic`: JSString = "ic" @usableFromInline static let `in`: JSString = "in" - @usableFromInline static let inline: JSString = "inline" - @usableFromInline static let insertRule: JSString = "insertRule" - @usableFromInline static let is2D: JSString = "is2D" - @usableFromInline static let item: JSString = "item" - @usableFromInline static let kHz: JSString = "kHz" - @usableFromInline static let l: JSString = "l" - @usableFromInline static let layerName: JSString = "layerName" - @usableFromInline static let left: JSString = "left" - @usableFromInline static let length: JSString = "length" - @usableFromInline static let lh: JSString = "lh" - @usableFromInline static let lower: JSString = "lower" - @usableFromInline static let lvb: JSString = "lvb" - @usableFromInline static let lvh: JSString = "lvh" - @usableFromInline static let lvi: JSString = "lvi" - @usableFromInline static let lvmax: JSString = "lvmax" - @usableFromInline static let lvmin: JSString = "lvmin" - @usableFromInline static let lvw: JSString = "lvw" - @usableFromInline static let matches: JSString = "matches" - @usableFromInline static let matrix: JSString = "matrix" - @usableFromInline static let max: JSString = "max" - @usableFromInline static let media: JSString = "media" - @usableFromInline static let mediaText: JSString = "mediaText" - @usableFromInline static let min: JSString = "min" - @usableFromInline static let mm: JSString = "mm" - @usableFromInline static let ms: JSString = "ms" - @usableFromInline static let mul: JSString = "mul" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let namespaceURI: JSString = "namespaceURI" - @usableFromInline static let number: JSString = "number" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let offsetLeft: JSString = "offsetLeft" - @usableFromInline static let offsetNode: JSString = "offsetNode" - @usableFromInline static let offsetTop: JSString = "offsetTop" - @usableFromInline static let onchange: JSString = "onchange" - @usableFromInline static let onresize: JSString = "onresize" - @usableFromInline static let onscroll: JSString = "onscroll" - @usableFromInline static let onscrollend: JSString = "onscrollend" + @usableFromInline static let `inline`: JSString = "inline" + @usableFromInline static let `insertRule`: JSString = "insertRule" + @usableFromInline static let `is2D`: JSString = "is2D" + @usableFromInline static let `item`: JSString = "item" + @usableFromInline static let `kHz`: JSString = "kHz" + @usableFromInline static let `l`: JSString = "l" + @usableFromInline static let `layerName`: JSString = "layerName" + @usableFromInline static let `left`: JSString = "left" + @usableFromInline static let `length`: JSString = "length" + @usableFromInline static let `lh`: JSString = "lh" + @usableFromInline static let `lower`: JSString = "lower" + @usableFromInline static let `lvb`: JSString = "lvb" + @usableFromInline static let `lvh`: JSString = "lvh" + @usableFromInline static let `lvi`: JSString = "lvi" + @usableFromInline static let `lvmax`: JSString = "lvmax" + @usableFromInline static let `lvmin`: JSString = "lvmin" + @usableFromInline static let `lvw`: JSString = "lvw" + @usableFromInline static let `margin`: JSString = "margin" + @usableFromInline static let `marginBottom`: JSString = "marginBottom" + @usableFromInline static let `marginLeft`: JSString = "marginLeft" + @usableFromInline static let `marginRight`: JSString = "marginRight" + @usableFromInline static let `marginTop`: JSString = "marginTop" + @usableFromInline static let `marks`: JSString = "marks" + @usableFromInline static let `matches`: JSString = "matches" + @usableFromInline static let `matrix`: JSString = "matrix" + @usableFromInline static let `max`: JSString = "max" + @usableFromInline static let `media`: JSString = "media" + @usableFromInline static let `mediaText`: JSString = "mediaText" + @usableFromInline static let `min`: JSString = "min" + @usableFromInline static let `mm`: JSString = "mm" + @usableFromInline static let `ms`: JSString = "ms" + @usableFromInline static let `mul`: JSString = "mul" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `namespaceURI`: JSString = "namespaceURI" + @usableFromInline static let `number`: JSString = "number" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `offsetLeft`: JSString = "offsetLeft" + @usableFromInline static let `offsetNode`: JSString = "offsetNode" + @usableFromInline static let `offsetTop`: JSString = "offsetTop" + @usableFromInline static let `onchange`: JSString = "onchange" + @usableFromInline static let `onresize`: JSString = "onresize" + @usableFromInline static let `onscroll`: JSString = "onscroll" + @usableFromInline static let `onscrollend`: JSString = "onscrollend" + @usableFromInline static let `opacityProperty`: JSString = "opacityProperty" @usableFromInline static let `operator`: JSString = "operator" - @usableFromInline static let ownerNode: JSString = "ownerNode" - @usableFromInline static let ownerRule: JSString = "ownerRule" - @usableFromInline static let pageLeft: JSString = "pageLeft" - @usableFromInline static let pageTop: JSString = "pageTop" - @usableFromInline static let parentRule: JSString = "parentRule" - @usableFromInline static let parentStyleSheet: JSString = "parentStyleSheet" - @usableFromInline static let parse: JSString = "parse" - @usableFromInline static let parseAll: JSString = "parseAll" - @usableFromInline static let pc: JSString = "pc" - @usableFromInline static let percent: JSString = "percent" - @usableFromInline static let percentHint: JSString = "percentHint" - @usableFromInline static let pixelDepth: JSString = "pixelDepth" - @usableFromInline static let prefix: JSString = "prefix" - @usableFromInline static let pt: JSString = "pt" - @usableFromInline static let px: JSString = "px" - @usableFromInline static let r: JSString = "r" - @usableFromInline static let rad: JSString = "rad" - @usableFromInline static let relativeTo: JSString = "relativeTo" - @usableFromInline static let rem: JSString = "rem" - @usableFromInline static let removeListener: JSString = "removeListener" - @usableFromInline static let removeProperty: JSString = "removeProperty" - @usableFromInline static let removeRule: JSString = "removeRule" - @usableFromInline static let replace: JSString = "replace" - @usableFromInline static let replaceSync: JSString = "replaceSync" - @usableFromInline static let resolution: JSString = "resolution" - @usableFromInline static let rlh: JSString = "rlh" - @usableFromInline static let rules: JSString = "rules" - @usableFromInline static let s: JSString = "s" - @usableFromInline static let scale: JSString = "scale" - @usableFromInline static let selectorText: JSString = "selectorText" - @usableFromInline static let set: JSString = "set" - @usableFromInline static let setProperty: JSString = "setProperty" - @usableFromInline static let sheet: JSString = "sheet" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let style: JSString = "style" - @usableFromInline static let styleMap: JSString = "styleMap" - @usableFromInline static let styleSheet: JSString = "styleSheet" - @usableFromInline static let styleSheets: JSString = "styleSheets" - @usableFromInline static let sub: JSString = "sub" - @usableFromInline static let supportsText: JSString = "supportsText" - @usableFromInline static let svb: JSString = "svb" - @usableFromInline static let svh: JSString = "svh" - @usableFromInline static let svi: JSString = "svi" - @usableFromInline static let svmax: JSString = "svmax" - @usableFromInline static let svmin: JSString = "svmin" - @usableFromInline static let svw: JSString = "svw" - @usableFromInline static let time: JSString = "time" - @usableFromInline static let title: JSString = "title" - @usableFromInline static let to: JSString = "to" - @usableFromInline static let toBox: JSString = "toBox" - @usableFromInline static let toMatrix: JSString = "toMatrix" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let toSum: JSString = "toSum" - @usableFromInline static let top: JSString = "top" - @usableFromInline static let turn: JSString = "turn" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let unit: JSString = "unit" - @usableFromInline static let upper: JSString = "upper" - @usableFromInline static let value: JSString = "value" - @usableFromInline static let values: JSString = "values" - @usableFromInline static let variable: JSString = "variable" - @usableFromInline static let vb: JSString = "vb" - @usableFromInline static let vh: JSString = "vh" - @usableFromInline static let vi: JSString = "vi" - @usableFromInline static let vmax: JSString = "vmax" - @usableFromInline static let vmin: JSString = "vmin" - @usableFromInline static let vw: JSString = "vw" - @usableFromInline static let w: JSString = "w" - @usableFromInline static let width: JSString = "width" - @usableFromInline static let x: JSString = "x" - @usableFromInline static let y: JSString = "y" - @usableFromInline static let z: JSString = "z" + @usableFromInline static let `ownerNode`: JSString = "ownerNode" + @usableFromInline static let `ownerRule`: JSString = "ownerRule" + @usableFromInline static let `pageLeft`: JSString = "pageLeft" + @usableFromInline static let `pageOrientation`: JSString = "pageOrientation" + @usableFromInline static let `pageTop`: JSString = "pageTop" + @usableFromInline static let `parentRule`: JSString = "parentRule" + @usableFromInline static let `parentStyleSheet`: JSString = "parentStyleSheet" + @usableFromInline static let `parse`: JSString = "parse" + @usableFromInline static let `parseAll`: JSString = "parseAll" + @usableFromInline static let `pc`: JSString = "pc" + @usableFromInline static let `percent`: JSString = "percent" + @usableFromInline static let `percentHint`: JSString = "percentHint" + @usableFromInline static let `pixelDepth`: JSString = "pixelDepth" + @usableFromInline static let `prefix`: JSString = "prefix" + @usableFromInline static let `pt`: JSString = "pt" + @usableFromInline static let `px`: JSString = "px" + @usableFromInline static let `r`: JSString = "r" + @usableFromInline static let `rad`: JSString = "rad" + @usableFromInline static let `rcap`: JSString = "rcap" + @usableFromInline static let `rch`: JSString = "rch" + @usableFromInline static let `relativeTo`: JSString = "relativeTo" + @usableFromInline static let `rem`: JSString = "rem" + @usableFromInline static let `removeListener`: JSString = "removeListener" + @usableFromInline static let `removeProperty`: JSString = "removeProperty" + @usableFromInline static let `removeRule`: JSString = "removeRule" + @usableFromInline static let `replace`: JSString = "replace" + @usableFromInline static let `replaceSync`: JSString = "replaceSync" + @usableFromInline static let `resolution`: JSString = "resolution" + @usableFromInline static let `rex`: JSString = "rex" + @usableFromInline static let `ric`: JSString = "ric" + @usableFromInline static let `rlh`: JSString = "rlh" + @usableFromInline static let `rules`: JSString = "rules" + @usableFromInline static let `s`: JSString = "s" + @usableFromInline static let `scale`: JSString = "scale" + @usableFromInline static let `selectorText`: JSString = "selectorText" + @usableFromInline static let `set`: JSString = "set" + @usableFromInline static let `setProperty`: JSString = "setProperty" + @usableFromInline static let `shadowRoots`: JSString = "shadowRoots" + @usableFromInline static let `sheet`: JSString = "sheet" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `style`: JSString = "style" + @usableFromInline static let `styleMap`: JSString = "styleMap" + @usableFromInline static let `styleSheet`: JSString = "styleSheet" + @usableFromInline static let `styleSheets`: JSString = "styleSheets" + @usableFromInline static let `sub`: JSString = "sub" + @usableFromInline static let `supportsText`: JSString = "supportsText" + @usableFromInline static let `svb`: JSString = "svb" + @usableFromInline static let `svh`: JSString = "svh" + @usableFromInline static let `svi`: JSString = "svi" + @usableFromInline static let `svmax`: JSString = "svmax" + @usableFromInline static let `svmin`: JSString = "svmin" + @usableFromInline static let `svw`: JSString = "svw" + @usableFromInline static let `time`: JSString = "time" + @usableFromInline static let `title`: JSString = "title" + @usableFromInline static let `to`: JSString = "to" + @usableFromInline static let `toBox`: JSString = "toBox" + @usableFromInline static let `toMatrix`: JSString = "toMatrix" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `toSum`: JSString = "toSum" + @usableFromInline static let `top`: JSString = "top" + @usableFromInline static let `turn`: JSString = "turn" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `unit`: JSString = "unit" + @usableFromInline static let `upper`: JSString = "upper" + @usableFromInline static let `value`: JSString = "value" + @usableFromInline static let `values`: JSString = "values" + @usableFromInline static let `variable`: JSString = "variable" + @usableFromInline static let `vb`: JSString = "vb" + @usableFromInline static let `vh`: JSString = "vh" + @usableFromInline static let `vi`: JSString = "vi" + @usableFromInline static let `visibilityProperty`: JSString = "visibilityProperty" + @usableFromInline static let `vmax`: JSString = "vmax" + @usableFromInline static let `vmin`: JSString = "vmin" + @usableFromInline static let `vw`: JSString = "vw" + @usableFromInline static let `w`: JSString = "w" + @usableFromInline static let `width`: JSString = "width" + @usableFromInline static let `x`: JSString = "x" + @usableFromInline static let `y`: JSString = "y" + @usableFromInline static let `z`: JSString = "z" } - public protocol Any_CSSColorRGBComp: ConvertibleToJSValue {} extension CSSKeywordish: Any_CSSColorRGBComp {} extension CSSNumberish: Any_CSSColorRGBComp {} @@ -2375,32 +2476,27 @@ public enum CSSColorRGBComp: JSValueCompatible, Any_CSSColorRGBComp { case cssKeywordish(CSSKeywordish) case cssNumberish(CSSNumberish) - init(_ cssKeywordish: CSSKeywordish) { + public init(_ cssKeywordish: CSSKeywordish) { let val: CSSColorRGBComp = .cssKeywordish(cssKeywordish) self = val } - - init(_ cssKeywordValue: CSSKeywordValue) { + public init(_ cssKeywordValue: CSSKeywordValue) { let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: CSSKeywordish = .string(string) self = .init(val) } - - init(_ cssNumberish: CSSNumberish) { + public init(_ cssNumberish: CSSNumberish) { let val: CSSColorRGBComp = .cssNumberish(cssNumberish) self = val } - - init(_ cssNumericValue: CSSNumericValue) { + public init(_ cssNumericValue: CSSNumericValue) { let val: CSSNumberish = .cssNumericValue(cssNumericValue) self = .init(val) } - - init(_ double: Double) { + public init(_ double: Double) { let val: CSSNumberish = .double(double) self = .init(val) } @@ -2411,7 +2507,6 @@ public enum CSSColorRGBComp: JSValueCompatible, Any_CSSColorRGBComp { default: return nil } } - public var cssNumberish: CSSNumberish? { switch self { case let .cssNumberish(cssNumberish): return cssNumberish @@ -2420,25 +2515,18 @@ public enum CSSColorRGBComp: JSValueCompatible, Any_CSSColorRGBComp { } public static func construct(from value: JSValue) -> Self? { - if let cssKeywordish: CSSKeywordish = value.fromJSValue() { - return .cssKeywordish(cssKeywordish) - } - if let cssNumberish: CSSNumberish = value.fromJSValue() { - return .cssNumberish(cssNumberish) - } + if let cssKeywordish: CSSKeywordish = value.fromJSValue() { return .cssKeywordish(cssKeywordish) } + if let cssNumberish: CSSNumberish = value.fromJSValue() { return .cssNumberish(cssNumberish) } return nil } public var jsValue: JSValue { switch self { - case let .cssKeywordish(cssKeywordish): - return cssKeywordish.jsValue - case let .cssNumberish(cssNumberish): - return cssNumberish.jsValue + case let .cssKeywordish(cssKeywordish): return cssKeywordish.jsValue + case let .cssNumberish(cssNumberish): return cssNumberish.jsValue } } } - public protocol Any_CSSKeywordish: ConvertibleToJSValue {} extension CSSKeywordValue: Any_CSSKeywordish {} extension String: Any_CSSKeywordish {} @@ -2447,12 +2535,11 @@ public enum CSSKeywordish: JSValueCompatible, Any_CSSKeywordish { case cssKeywordValue(CSSKeywordValue) case string(String) - init(_ cssKeywordValue: CSSKeywordValue) { + public init(_ cssKeywordValue: CSSKeywordValue) { let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: CSSKeywordish = .string(string) self = val } @@ -2463,7 +2550,6 @@ public enum CSSKeywordish: JSValueCompatible, Any_CSSKeywordish { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2472,25 +2558,18 @@ public enum CSSKeywordish: JSValueCompatible, Any_CSSKeywordish { } public static func construct(from value: JSValue) -> Self? { - if let cssKeywordValue: CSSKeywordValue = value.fromJSValue() { - return .cssKeywordValue(cssKeywordValue) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let cssKeywordValue: CSSKeywordValue = value.fromJSValue() { return .cssKeywordValue(cssKeywordValue) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .cssKeywordValue(cssKeywordValue): - return cssKeywordValue.jsValue - case let .string(string): - return string.jsValue + case let .cssKeywordValue(cssKeywordValue): return cssKeywordValue.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_CSSNumberish: ConvertibleToJSValue {} extension CSSNumericValue: Any_CSSNumberish {} extension Double: Any_CSSNumberish {} @@ -2499,12 +2578,11 @@ public enum CSSNumberish: JSValueCompatible, Any_CSSNumberish { case cssNumericValue(CSSNumericValue) case double(Double) - init(_ cssNumericValue: CSSNumericValue) { + public init(_ cssNumericValue: CSSNumericValue) { let val: CSSNumberish = .cssNumericValue(cssNumericValue) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: CSSNumberish = .double(double) self = val } @@ -2515,7 +2593,6 @@ public enum CSSNumberish: JSValueCompatible, Any_CSSNumberish { default: return nil } } - public var double: Double? { switch self { case let .double(double): return double @@ -2524,25 +2601,18 @@ public enum CSSNumberish: JSValueCompatible, Any_CSSNumberish { } public static func construct(from value: JSValue) -> Self? { - if let cssNumericValue: CSSNumericValue = value.fromJSValue() { - return .cssNumericValue(cssNumericValue) - } - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let cssNumericValue: CSSNumericValue = value.fromJSValue() { return .cssNumericValue(cssNumericValue) } + if let double: Double = value.fromJSValue() { return .double(double) } return nil } public var jsValue: JSValue { switch self { - case let .cssNumericValue(cssNumericValue): - return cssNumericValue.jsValue - case let .double(double): - return double.jsValue + case let .cssNumericValue(cssNumericValue): return cssNumericValue.jsValue + case let .double(double): return double.jsValue } } } - public protocol Any_CSSPerspectiveValue: ConvertibleToJSValue {} extension CSSKeywordish: Any_CSSPerspectiveValue {} extension CSSNumericValue: Any_CSSPerspectiveValue {} @@ -2551,22 +2621,19 @@ public enum CSSPerspectiveValue: JSValueCompatible, Any_CSSPerspectiveValue { case cssKeywordish(CSSKeywordish) case cssNumericValue(CSSNumericValue) - init(_ cssKeywordish: CSSKeywordish) { + public init(_ cssKeywordish: CSSKeywordish) { let val: CSSPerspectiveValue = .cssKeywordish(cssKeywordish) self = val } - - init(_ cssKeywordValue: CSSKeywordValue) { + public init(_ cssKeywordValue: CSSKeywordValue) { let val: CSSKeywordish = .cssKeywordValue(cssKeywordValue) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: CSSKeywordish = .string(string) self = .init(val) } - - init(_ cssNumericValue: CSSNumericValue) { + public init(_ cssNumericValue: CSSNumericValue) { let val: CSSPerspectiveValue = .cssNumericValue(cssNumericValue) self = val } @@ -2577,7 +2644,6 @@ public enum CSSPerspectiveValue: JSValueCompatible, Any_CSSPerspectiveValue { default: return nil } } - public var cssNumericValue: CSSNumericValue? { switch self { case let .cssNumericValue(cssNumericValue): return cssNumericValue @@ -2586,25 +2652,18 @@ public enum CSSPerspectiveValue: JSValueCompatible, Any_CSSPerspectiveValue { } public static func construct(from value: JSValue) -> Self? { - if let cssKeywordish: CSSKeywordish = value.fromJSValue() { - return .cssKeywordish(cssKeywordish) - } - if let cssNumericValue: CSSNumericValue = value.fromJSValue() { - return .cssNumericValue(cssNumericValue) - } + if let cssKeywordish: CSSKeywordish = value.fromJSValue() { return .cssKeywordish(cssKeywordish) } + if let cssNumericValue: CSSNumericValue = value.fromJSValue() { return .cssNumericValue(cssNumericValue) } return nil } public var jsValue: JSValue { switch self { - case let .cssKeywordish(cssKeywordish): - return cssKeywordish.jsValue - case let .cssNumericValue(cssNumericValue): - return cssNumericValue.jsValue + case let .cssKeywordish(cssKeywordish): return cssKeywordish.jsValue + case let .cssNumericValue(cssNumericValue): return cssNumericValue.jsValue } } } - public protocol Any_CSSStyleValue_or_String: ConvertibleToJSValue {} extension CSSStyleValue: Any_CSSStyleValue_or_String {} extension String: Any_CSSStyleValue_or_String {} @@ -2613,12 +2672,11 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str case cssStyleValue(CSSStyleValue) case string(String) - init(_ cssStyleValue: CSSStyleValue) { + public init(_ cssStyleValue: CSSStyleValue) { let val: CSSStyleValue_or_String = .cssStyleValue(cssStyleValue) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: CSSStyleValue_or_String = .string(string) self = val } @@ -2629,7 +2687,6 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2638,25 +2695,18 @@ public enum CSSStyleValue_or_String: JSValueCompatible, Any_CSSStyleValue_or_Str } public static func construct(from value: JSValue) -> Self? { - if let cssStyleValue: CSSStyleValue = value.fromJSValue() { - return .cssStyleValue(cssStyleValue) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let cssStyleValue: CSSStyleValue = value.fromJSValue() { return .cssStyleValue(cssStyleValue) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .cssStyleValue(cssStyleValue): - return cssStyleValue.jsValue - case let .string(string): - return string.jsValue + case let .cssStyleValue(cssStyleValue): return cssStyleValue.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_CSSUnparsedSegment: ConvertibleToJSValue {} extension CSSVariableReferenceValue: Any_CSSUnparsedSegment {} extension String: Any_CSSUnparsedSegment {} @@ -2665,12 +2715,11 @@ public enum CSSUnparsedSegment: JSValueCompatible, Any_CSSUnparsedSegment { case cssVariableReferenceValue(CSSVariableReferenceValue) case string(String) - init(_ cssVariableReferenceValue: CSSVariableReferenceValue) { + public init(_ cssVariableReferenceValue: CSSVariableReferenceValue) { let val: CSSUnparsedSegment = .cssVariableReferenceValue(cssVariableReferenceValue) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: CSSUnparsedSegment = .string(string) self = val } @@ -2681,7 +2730,6 @@ public enum CSSUnparsedSegment: JSValueCompatible, Any_CSSUnparsedSegment { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2693,22 +2741,17 @@ public enum CSSUnparsedSegment: JSValueCompatible, Any_CSSUnparsedSegment { if let cssVariableReferenceValue: CSSVariableReferenceValue = value.fromJSValue() { return .cssVariableReferenceValue(cssVariableReferenceValue) } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .cssVariableReferenceValue(cssVariableReferenceValue): - return cssVariableReferenceValue.jsValue - case let .string(string): - return string.jsValue + case let .cssVariableReferenceValue(cssVariableReferenceValue): return cssVariableReferenceValue.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_Element_or_ProcessingInstruction: ConvertibleToJSValue {} extension Element: Any_Element_or_ProcessingInstruction {} extension ProcessingInstruction: Any_Element_or_ProcessingInstruction {} @@ -2717,12 +2760,11 @@ public enum Element_or_ProcessingInstruction: JSValueCompatible, Any_Element_or_ case element(Element) case processingInstruction(ProcessingInstruction) - init(_ element: Element) { + public init(_ element: Element) { let val: Element_or_ProcessingInstruction = .element(element) self = val } - - init(_ processingInstruction: ProcessingInstruction) { + public init(_ processingInstruction: ProcessingInstruction) { let val: Element_or_ProcessingInstruction = .processingInstruction(processingInstruction) self = val } @@ -2733,7 +2775,6 @@ public enum Element_or_ProcessingInstruction: JSValueCompatible, Any_Element_or_ default: return nil } } - public var processingInstruction: ProcessingInstruction? { switch self { case let .processingInstruction(processingInstruction): return processingInstruction @@ -2742,9 +2783,7 @@ public enum Element_or_ProcessingInstruction: JSValueCompatible, Any_Element_or_ } public static func construct(from value: JSValue) -> Self? { - if let element: Element = value.fromJSValue() { - return .element(element) - } + if let element: Element = value.fromJSValue() { return .element(element) } if let processingInstruction: ProcessingInstruction = value.fromJSValue() { return .processingInstruction(processingInstruction) } @@ -2753,14 +2792,11 @@ public enum Element_or_ProcessingInstruction: JSValueCompatible, Any_Element_or_ public var jsValue: JSValue { switch self { - case let .element(element): - return element.jsValue - case let .processingInstruction(processingInstruction): - return processingInstruction.jsValue + case let .element(element): return element.jsValue + case let .processingInstruction(processingInstruction): return processingInstruction.jsValue } } } - public protocol Any_GeometryNode: ConvertibleToJSValue {} extension CSSPseudoElement: Any_GeometryNode {} extension Document: Any_GeometryNode {} @@ -2773,22 +2809,19 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { case element(Element) case text(Text) - init(_ cssPseudoElement: CSSPseudoElement) { + public init(_ cssPseudoElement: CSSPseudoElement) { let val: GeometryNode = .cssPseudoElement(cssPseudoElement) self = val } - - init(_ document: Document) { + public init(_ document: Document) { let val: GeometryNode = .document(document) self = val } - - init(_ element: Element) { + public init(_ element: Element) { let val: GeometryNode = .element(element) self = val } - - init(_ text: Text) { + public init(_ text: Text) { let val: GeometryNode = .text(text) self = val } @@ -2799,21 +2832,18 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { default: return nil } } - public var document: Document? { switch self { case let .document(document): return document default: return nil } } - public var element: Element? { switch self { case let .element(element): return element default: return nil } } - public var text: Text? { switch self { case let .text(text): return text @@ -2822,35 +2852,22 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { } public static func construct(from value: JSValue) -> Self? { - if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { - return .cssPseudoElement(cssPseudoElement) - } - if let document: Document = value.fromJSValue() { - return .document(document) - } - if let element: Element = value.fromJSValue() { - return .element(element) - } - if let text: Text = value.fromJSValue() { - return .text(text) - } + if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { return .cssPseudoElement(cssPseudoElement) } + if let document: Document = value.fromJSValue() { return .document(document) } + if let element: Element = value.fromJSValue() { return .element(element) } + if let text: Text = value.fromJSValue() { return .text(text) } return nil } public var jsValue: JSValue { switch self { - case let .cssPseudoElement(cssPseudoElement): - return cssPseudoElement.jsValue - case let .document(document): - return document.jsValue - case let .element(element): - return element.jsValue - case let .text(text): - return text.jsValue + case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement.jsValue + case let .document(document): return document.jsValue + case let .element(element): return element.jsValue + case let .text(text): return text.jsValue } } } - public protocol Any_MediaList_or_String: ConvertibleToJSValue {} extension MediaList: Any_MediaList_or_String {} extension String: Any_MediaList_or_String {} @@ -2859,12 +2876,11 @@ public enum MediaList_or_String: JSValueCompatible, Any_MediaList_or_String { case mediaList(MediaList) case string(String) - init(_ mediaList: MediaList) { + public init(_ mediaList: MediaList) { let val: MediaList_or_String = .mediaList(mediaList) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: MediaList_or_String = .string(string) self = val } @@ -2875,7 +2891,6 @@ public enum MediaList_or_String: JSValueCompatible, Any_MediaList_or_String { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2884,21 +2899,15 @@ public enum MediaList_or_String: JSValueCompatible, Any_MediaList_or_String { } public static func construct(from value: JSValue) -> Self? { - if let mediaList: MediaList = value.fromJSValue() { - return .mediaList(mediaList) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let mediaList: MediaList = value.fromJSValue() { return .mediaList(mediaList) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .mediaList(mediaList): - return mediaList.jsValue - case let .string(string): - return string.jsValue + case let .mediaList(mediaList): return mediaList.jsValue + case let .string(string): return string.jsValue } } } diff --git a/Sources/DOM/Generated.swift b/Sources/DOM/Generated.swift index 7c2f76e8..03395687 100644 --- a/Sources/DOM/Generated.swift +++ b/Sources/DOM/Generated.swift @@ -2,319 +2,337 @@ import ECMAScript import JavaScriptBigIntSupport -import JavaScriptEventLoop import JavaScriptKit import WebAPIBase +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public protocol ARIAMixin: JSBridgedClass {} -public extension ARIAMixin { - @inlinable var role: String? { +extension ARIAMixin { + @inlinable public var role: String? { get { jsObject[Strings.role].fromJSValue() } - nonmutating set { jsObject[Strings.role] = _toJSValue(newValue) } + set { jsObject[Strings.role] = _toJSValue(newValue) } } - @inlinable var ariaActiveDescendantElement: Element? { + @inlinable public var ariaActiveDescendantElement: Element? { get { jsObject[Strings.ariaActiveDescendantElement].fromJSValue() } - nonmutating set { jsObject[Strings.ariaActiveDescendantElement] = _toJSValue(newValue) } + set { jsObject[Strings.ariaActiveDescendantElement] = _toJSValue(newValue) } } - @inlinable var ariaAtomic: String? { + @inlinable public var ariaAtomic: String? { get { jsObject[Strings.ariaAtomic].fromJSValue() } - nonmutating set { jsObject[Strings.ariaAtomic] = _toJSValue(newValue) } + set { jsObject[Strings.ariaAtomic] = _toJSValue(newValue) } } - @inlinable var ariaAutoComplete: String? { + @inlinable public var ariaAutoComplete: String? { get { jsObject[Strings.ariaAutoComplete].fromJSValue() } - nonmutating set { jsObject[Strings.ariaAutoComplete] = _toJSValue(newValue) } + set { jsObject[Strings.ariaAutoComplete] = _toJSValue(newValue) } + } + + @inlinable public var ariaBrailleLabel: String? { + get { jsObject[Strings.ariaBrailleLabel].fromJSValue() } + set { jsObject[Strings.ariaBrailleLabel] = _toJSValue(newValue) } + } + + @inlinable public var ariaBrailleRoleDescription: String? { + get { jsObject[Strings.ariaBrailleRoleDescription].fromJSValue() } + set { jsObject[Strings.ariaBrailleRoleDescription] = _toJSValue(newValue) } } - @inlinable var ariaBusy: String? { + @inlinable public var ariaBusy: String? { get { jsObject[Strings.ariaBusy].fromJSValue() } - nonmutating set { jsObject[Strings.ariaBusy] = _toJSValue(newValue) } + set { jsObject[Strings.ariaBusy] = _toJSValue(newValue) } } - @inlinable var ariaChecked: String? { + @inlinable public var ariaChecked: String? { get { jsObject[Strings.ariaChecked].fromJSValue() } - nonmutating set { jsObject[Strings.ariaChecked] = _toJSValue(newValue) } + set { jsObject[Strings.ariaChecked] = _toJSValue(newValue) } } - @inlinable var ariaColCount: String? { + @inlinable public var ariaColCount: String? { get { jsObject[Strings.ariaColCount].fromJSValue() } - nonmutating set { jsObject[Strings.ariaColCount] = _toJSValue(newValue) } + set { jsObject[Strings.ariaColCount] = _toJSValue(newValue) } } - @inlinable var ariaColIndex: String? { + @inlinable public var ariaColIndex: String? { get { jsObject[Strings.ariaColIndex].fromJSValue() } - nonmutating set { jsObject[Strings.ariaColIndex] = _toJSValue(newValue) } + set { jsObject[Strings.ariaColIndex] = _toJSValue(newValue) } } - @inlinable var ariaColIndexText: String? { + @inlinable public var ariaColIndexText: String? { get { jsObject[Strings.ariaColIndexText].fromJSValue() } - nonmutating set { jsObject[Strings.ariaColIndexText] = _toJSValue(newValue) } + set { jsObject[Strings.ariaColIndexText] = _toJSValue(newValue) } } - @inlinable var ariaColSpan: String? { + @inlinable public var ariaColSpan: String? { get { jsObject[Strings.ariaColSpan].fromJSValue() } - nonmutating set { jsObject[Strings.ariaColSpan] = _toJSValue(newValue) } + set { jsObject[Strings.ariaColSpan] = _toJSValue(newValue) } } - @inlinable var ariaControlsElements: [Element]? { + @inlinable public var ariaControlsElements: [Element]? { get { jsObject[Strings.ariaControlsElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaControlsElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaControlsElements] = _toJSValue(newValue) } } - @inlinable var ariaCurrent: String? { + @inlinable public var ariaCurrent: String? { get { jsObject[Strings.ariaCurrent].fromJSValue() } - nonmutating set { jsObject[Strings.ariaCurrent] = _toJSValue(newValue) } + set { jsObject[Strings.ariaCurrent] = _toJSValue(newValue) } } - @inlinable var ariaDescribedByElements: [Element]? { + @inlinable public var ariaDescribedByElements: [Element]? { get { jsObject[Strings.ariaDescribedByElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaDescribedByElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaDescribedByElements] = _toJSValue(newValue) } } - @inlinable var ariaDescription: String? { + @inlinable public var ariaDescription: String? { get { jsObject[Strings.ariaDescription].fromJSValue() } - nonmutating set { jsObject[Strings.ariaDescription] = _toJSValue(newValue) } + set { jsObject[Strings.ariaDescription] = _toJSValue(newValue) } } - @inlinable var ariaDetailsElements: [Element]? { + @inlinable public var ariaDetailsElements: [Element]? { get { jsObject[Strings.ariaDetailsElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaDetailsElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaDetailsElements] = _toJSValue(newValue) } } - @inlinable var ariaDisabled: String? { + @inlinable public var ariaDisabled: String? { get { jsObject[Strings.ariaDisabled].fromJSValue() } - nonmutating set { jsObject[Strings.ariaDisabled] = _toJSValue(newValue) } + set { jsObject[Strings.ariaDisabled] = _toJSValue(newValue) } } - @inlinable var ariaErrorMessageElements: [Element]? { + @inlinable public var ariaErrorMessageElements: [Element]? { get { jsObject[Strings.ariaErrorMessageElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaErrorMessageElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaErrorMessageElements] = _toJSValue(newValue) } } - @inlinable var ariaExpanded: String? { + @inlinable public var ariaExpanded: String? { get { jsObject[Strings.ariaExpanded].fromJSValue() } - nonmutating set { jsObject[Strings.ariaExpanded] = _toJSValue(newValue) } + set { jsObject[Strings.ariaExpanded] = _toJSValue(newValue) } } - @inlinable var ariaFlowToElements: [Element]? { + @inlinable public var ariaFlowToElements: [Element]? { get { jsObject[Strings.ariaFlowToElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaFlowToElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaFlowToElements] = _toJSValue(newValue) } } - @inlinable var ariaHasPopup: String? { + @inlinable public var ariaHasPopup: String? { get { jsObject[Strings.ariaHasPopup].fromJSValue() } - nonmutating set { jsObject[Strings.ariaHasPopup] = _toJSValue(newValue) } + set { jsObject[Strings.ariaHasPopup] = _toJSValue(newValue) } } - @inlinable var ariaHidden: String? { + @inlinable public var ariaHidden: String? { get { jsObject[Strings.ariaHidden].fromJSValue() } - nonmutating set { jsObject[Strings.ariaHidden] = _toJSValue(newValue) } + set { jsObject[Strings.ariaHidden] = _toJSValue(newValue) } } - @inlinable var ariaInvalid: String? { + @inlinable public var ariaInvalid: String? { get { jsObject[Strings.ariaInvalid].fromJSValue() } - nonmutating set { jsObject[Strings.ariaInvalid] = _toJSValue(newValue) } + set { jsObject[Strings.ariaInvalid] = _toJSValue(newValue) } } - @inlinable var ariaKeyShortcuts: String? { + @inlinable public var ariaKeyShortcuts: String? { get { jsObject[Strings.ariaKeyShortcuts].fromJSValue() } - nonmutating set { jsObject[Strings.ariaKeyShortcuts] = _toJSValue(newValue) } + set { jsObject[Strings.ariaKeyShortcuts] = _toJSValue(newValue) } } - @inlinable var ariaLabel: String? { + @inlinable public var ariaLabel: String? { get { jsObject[Strings.ariaLabel].fromJSValue() } - nonmutating set { jsObject[Strings.ariaLabel] = _toJSValue(newValue) } + set { jsObject[Strings.ariaLabel] = _toJSValue(newValue) } } - @inlinable var ariaLabelledByElements: [Element]? { + @inlinable public var ariaLabelledByElements: [Element]? { get { jsObject[Strings.ariaLabelledByElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaLabelledByElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaLabelledByElements] = _toJSValue(newValue) } } - @inlinable var ariaLevel: String? { + @inlinable public var ariaLevel: String? { get { jsObject[Strings.ariaLevel].fromJSValue() } - nonmutating set { jsObject[Strings.ariaLevel] = _toJSValue(newValue) } + set { jsObject[Strings.ariaLevel] = _toJSValue(newValue) } } - @inlinable var ariaLive: String? { + @inlinable public var ariaLive: String? { get { jsObject[Strings.ariaLive].fromJSValue() } - nonmutating set { jsObject[Strings.ariaLive] = _toJSValue(newValue) } + set { jsObject[Strings.ariaLive] = _toJSValue(newValue) } } - @inlinable var ariaModal: String? { + @inlinable public var ariaModal: String? { get { jsObject[Strings.ariaModal].fromJSValue() } - nonmutating set { jsObject[Strings.ariaModal] = _toJSValue(newValue) } + set { jsObject[Strings.ariaModal] = _toJSValue(newValue) } } - @inlinable var ariaMultiLine: String? { + @inlinable public var ariaMultiLine: String? { get { jsObject[Strings.ariaMultiLine].fromJSValue() } - nonmutating set { jsObject[Strings.ariaMultiLine] = _toJSValue(newValue) } + set { jsObject[Strings.ariaMultiLine] = _toJSValue(newValue) } } - @inlinable var ariaMultiSelectable: String? { + @inlinable public var ariaMultiSelectable: String? { get { jsObject[Strings.ariaMultiSelectable].fromJSValue() } - nonmutating set { jsObject[Strings.ariaMultiSelectable] = _toJSValue(newValue) } + set { jsObject[Strings.ariaMultiSelectable] = _toJSValue(newValue) } } - @inlinable var ariaOrientation: String? { + @inlinable public var ariaOrientation: String? { get { jsObject[Strings.ariaOrientation].fromJSValue() } - nonmutating set { jsObject[Strings.ariaOrientation] = _toJSValue(newValue) } + set { jsObject[Strings.ariaOrientation] = _toJSValue(newValue) } } - @inlinable var ariaOwnsElements: [Element]? { + @inlinable public var ariaOwnsElements: [Element]? { get { jsObject[Strings.ariaOwnsElements].fromJSValue() } - nonmutating set { jsObject[Strings.ariaOwnsElements] = _toJSValue(newValue) } + set { jsObject[Strings.ariaOwnsElements] = _toJSValue(newValue) } } - @inlinable var ariaPlaceholder: String? { + @inlinable public var ariaPlaceholder: String? { get { jsObject[Strings.ariaPlaceholder].fromJSValue() } - nonmutating set { jsObject[Strings.ariaPlaceholder] = _toJSValue(newValue) } + set { jsObject[Strings.ariaPlaceholder] = _toJSValue(newValue) } } - @inlinable var ariaPosInSet: String? { + @inlinable public var ariaPosInSet: String? { get { jsObject[Strings.ariaPosInSet].fromJSValue() } - nonmutating set { jsObject[Strings.ariaPosInSet] = _toJSValue(newValue) } + set { jsObject[Strings.ariaPosInSet] = _toJSValue(newValue) } } - @inlinable var ariaPressed: String? { + @inlinable public var ariaPressed: String? { get { jsObject[Strings.ariaPressed].fromJSValue() } - nonmutating set { jsObject[Strings.ariaPressed] = _toJSValue(newValue) } + set { jsObject[Strings.ariaPressed] = _toJSValue(newValue) } } - @inlinable var ariaReadOnly: String? { + @inlinable public var ariaReadOnly: String? { get { jsObject[Strings.ariaReadOnly].fromJSValue() } - nonmutating set { jsObject[Strings.ariaReadOnly] = _toJSValue(newValue) } + set { jsObject[Strings.ariaReadOnly] = _toJSValue(newValue) } + } + + @inlinable public var ariaRelevant: String? { + get { jsObject[Strings.ariaRelevant].fromJSValue() } + set { jsObject[Strings.ariaRelevant] = _toJSValue(newValue) } } - @inlinable var ariaRequired: String? { + @inlinable public var ariaRequired: String? { get { jsObject[Strings.ariaRequired].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRequired] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRequired] = _toJSValue(newValue) } } - @inlinable var ariaRoleDescription: String? { + @inlinable public var ariaRoleDescription: String? { get { jsObject[Strings.ariaRoleDescription].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRoleDescription] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRoleDescription] = _toJSValue(newValue) } } - @inlinable var ariaRowCount: String? { + @inlinable public var ariaRowCount: String? { get { jsObject[Strings.ariaRowCount].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRowCount] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRowCount] = _toJSValue(newValue) } } - @inlinable var ariaRowIndex: String? { + @inlinable public var ariaRowIndex: String? { get { jsObject[Strings.ariaRowIndex].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRowIndex] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRowIndex] = _toJSValue(newValue) } } - @inlinable var ariaRowIndexText: String? { + @inlinable public var ariaRowIndexText: String? { get { jsObject[Strings.ariaRowIndexText].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRowIndexText] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRowIndexText] = _toJSValue(newValue) } } - @inlinable var ariaRowSpan: String? { + @inlinable public var ariaRowSpan: String? { get { jsObject[Strings.ariaRowSpan].fromJSValue() } - nonmutating set { jsObject[Strings.ariaRowSpan] = _toJSValue(newValue) } + set { jsObject[Strings.ariaRowSpan] = _toJSValue(newValue) } } - @inlinable var ariaSelected: String? { + @inlinable public var ariaSelected: String? { get { jsObject[Strings.ariaSelected].fromJSValue() } - nonmutating set { jsObject[Strings.ariaSelected] = _toJSValue(newValue) } + set { jsObject[Strings.ariaSelected] = _toJSValue(newValue) } } - @inlinable var ariaSetSize: String? { + @inlinable public var ariaSetSize: String? { get { jsObject[Strings.ariaSetSize].fromJSValue() } - nonmutating set { jsObject[Strings.ariaSetSize] = _toJSValue(newValue) } + set { jsObject[Strings.ariaSetSize] = _toJSValue(newValue) } } - @inlinable var ariaSort: String? { + @inlinable public var ariaSort: String? { get { jsObject[Strings.ariaSort].fromJSValue() } - nonmutating set { jsObject[Strings.ariaSort] = _toJSValue(newValue) } + set { jsObject[Strings.ariaSort] = _toJSValue(newValue) } } - @inlinable var ariaValueMax: String? { + @inlinable public var ariaValueMax: String? { get { jsObject[Strings.ariaValueMax].fromJSValue() } - nonmutating set { jsObject[Strings.ariaValueMax] = _toJSValue(newValue) } + set { jsObject[Strings.ariaValueMax] = _toJSValue(newValue) } } - @inlinable var ariaValueMin: String? { + @inlinable public var ariaValueMin: String? { get { jsObject[Strings.ariaValueMin].fromJSValue() } - nonmutating set { jsObject[Strings.ariaValueMin] = _toJSValue(newValue) } + set { jsObject[Strings.ariaValueMin] = _toJSValue(newValue) } } - @inlinable var ariaValueNow: String? { + @inlinable public var ariaValueNow: String? { get { jsObject[Strings.ariaValueNow].fromJSValue() } - nonmutating set { jsObject[Strings.ariaValueNow] = _toJSValue(newValue) } + set { jsObject[Strings.ariaValueNow] = _toJSValue(newValue) } } - @inlinable var ariaValueText: String? { + @inlinable public var ariaValueText: String? { get { jsObject[Strings.ariaValueText].fromJSValue() } - nonmutating set { jsObject[Strings.ariaValueText] = _toJSValue(newValue) } + set { jsObject[Strings.ariaValueText] = _toJSValue(newValue) } } } - public class AbortController: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AbortController].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _signal = ReadonlyAttribute(jsObject: jsObject, name: Strings.signal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var signal: AbortSignal + @inlinable public var signal: AbortSignal { jsObject[Strings.signal].fromJSValue()! } - @inlinable public func abort(reason: JSValue? = nil) { + @inlinable final public func abort(reason: JSValue? = nil) { let this = jsObject _ = this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]) } } public class AbortSignal: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AbortSignal].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AbortSignal].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _aborted = ReadonlyAttribute(jsObject: jsObject, name: Strings.aborted) - _reason = ReadonlyAttribute(jsObject: jsObject, name: Strings.reason) - _onabort = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onabort) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public class func abort(reason: JSValue? = nil) -> Self { + @inlinable public class func abort(reason: JSValue? = nil) -> AbortSignal { let this = constructor! return this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! } - @inlinable public class func timeout(milliseconds: UInt64) -> Self { + @inlinable public class func timeout(milliseconds: UInt64) -> AbortSignal { let this = constructor! return this[Strings.timeout].function!(this: this, arguments: [_toJSValue(milliseconds)]).fromJSValue()! } - @inlinable public class func any(signals: [AbortSignal]) -> Self { + @inlinable public class func any(signals: [AbortSignal]) -> AbortSignal { let this = constructor! return this[Strings.any].function!(this: this, arguments: [_toJSValue(signals)]).fromJSValue()! } - @ReadonlyAttribute - public var aborted: Bool + @inlinable public var aborted: Bool { jsObject[Strings.aborted].fromJSValue()! } - @ReadonlyAttribute - public var reason: JSValue + @inlinable public var reason: JSValue { jsObject[Strings.reason].fromJSValue()! } - @inlinable public func throwIfAborted() { + @inlinable final public func throwIfAborted() { let this = jsObject _ = this[Strings.throwIfAborted].function!(this: this, arguments: []) } - @ClosureAttribute1Optional - public var onabort: EventHandler + @inlinable public var onabort: EventHandler { + get { + guard let function = jsObject[Strings.onabort].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onabort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onabort] = .null + } + } + } } public class AbstractRange: JSBridgedClass { @@ -322,164 +340,139 @@ public class AbstractRange: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _startContainer = ReadonlyAttribute(jsObject: jsObject, name: Strings.startContainer) - _startOffset = ReadonlyAttribute(jsObject: jsObject, name: Strings.startOffset) - _endContainer = ReadonlyAttribute(jsObject: jsObject, name: Strings.endContainer) - _endOffset = ReadonlyAttribute(jsObject: jsObject, name: Strings.endOffset) - _collapsed = ReadonlyAttribute(jsObject: jsObject, name: Strings.collapsed) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var startContainer: Node + @inlinable public var startContainer: Node { jsObject[Strings.startContainer].fromJSValue()! } - @ReadonlyAttribute - public var startOffset: UInt32 + @inlinable public var startOffset: UInt32 { jsObject[Strings.startOffset].fromJSValue()! } - @ReadonlyAttribute - public var endContainer: Node + @inlinable public var endContainer: Node { jsObject[Strings.endContainer].fromJSValue()! } - @ReadonlyAttribute - public var endOffset: UInt32 + @inlinable public var endOffset: UInt32 { jsObject[Strings.endOffset].fromJSValue()! } - @ReadonlyAttribute - public var collapsed: Bool + @inlinable public var collapsed: Bool { jsObject[Strings.collapsed].fromJSValue()! } } public protocol AbstractWorker: JSBridgedClass {} -public extension AbstractWorker { - @inlinable var onerror: EventHandler { - get { ClosureAttribute1Optional[Strings.onerror, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onerror, in: jsObject] = newValue } +extension AbstractWorker { + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } } } +open class AddEventListenerOptions: EventListenerOptions { -public class AddEventListenerOptions: BridgedDictionary { - public convenience init(passive: Bool, once: Bool, signal: AbortSignal) { + public convenience init(capture: Bool? = nil, passive: Bool? = nil, once: Bool? = nil, signal: AbortSignal? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.capture] = _toJSValue(capture) object[Strings.passive] = _toJSValue(passive) object[Strings.once] = _toJSValue(once) object[Strings.signal] = _toJSValue(signal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _passive = ReadWriteAttribute(jsObject: object, name: Strings.passive) - _once = ReadWriteAttribute(jsObject: object, name: Strings.once) - _signal = ReadWriteAttribute(jsObject: object, name: Strings.signal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var passive: Bool - - @ReadWriteAttribute - public var once: Bool + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var signal: AbortSignal + @inlinable public var passive: Bool { + get { jsObject[Strings.passive].fromJSValue()! } + set { jsObject[Strings.passive] = _toJSValue(newValue) } + } + @inlinable public var once: Bool { + get { jsObject[Strings.once].fromJSValue()! } + set { jsObject[Strings.once] = _toJSValue(newValue) } + } + @inlinable public var signal: AbortSignal { + get { jsObject[Strings.signal].fromJSValue()! } + set { jsObject[Strings.signal] = _toJSValue(newValue) } + } } - public enum AlphaOption: JSString, JSValueCompatible { case keep = "keep" case discard = "discard" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol AnimationFrameProvider: JSBridgedClass {} -public extension AnimationFrameProvider { - @inlinable func requestAnimationFrame(callback: @escaping FrameRequestCallback) -> UInt32 { +extension AnimationFrameProvider { + @inlinable public func requestAnimationFrame(callback: @escaping FrameRequestCallback) -> UInt32 { let this = jsObject - return this[Strings.requestAnimationFrame].function!(this: this, arguments: [_toJSValue(callback)]).fromJSValue()! + return this[Strings.requestAnimationFrame].function!(this: this, arguments: [_toJSValue(callback)]) + .fromJSValue()! } - @inlinable func cancelAnimationFrame(handle: UInt32) { + @inlinable public func cancelAnimationFrame(handle: UInt32) { let this = jsObject _ = this[Strings.cancelAnimationFrame].function!(this: this, arguments: [_toJSValue(handle)]) } } - public enum AppendMode: JSString, JSValueCompatible { case segments = "segments" case sequence = "sequence" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class AssignedNodesOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class AssignedNodesOptions: BridgedDictionary { - public convenience init(flatten: Bool) { + public convenience init(flatten: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.flatten] = _toJSValue(flatten) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _flatten = ReadWriteAttribute(jsObject: object, name: Strings.flatten) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var flatten: Bool + @inlinable public var flatten: Bool { + get { jsObject[Strings.flatten].fromJSValue()! } + set { jsObject[Strings.flatten] = _toJSValue(newValue) } + } } - public class Attr: Node { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Attr].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Attr].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _namespaceURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.namespaceURI) - _prefix = ReadonlyAttribute(jsObject: jsObject, name: Strings.prefix) - _localName = ReadonlyAttribute(jsObject: jsObject, name: Strings.localName) - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _ownerElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerElement) - _specified = ReadonlyAttribute(jsObject: jsObject, name: Strings.specified) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var namespaceURI: String? + @inlinable public var namespaceURI: String? { jsObject[Strings.namespaceURI].fromJSValue() } - @ReadonlyAttribute - public var prefix: String? + @inlinable public var prefix: String? { jsObject[Strings.prefix].fromJSValue() } - @ReadonlyAttribute - public var localName: String + @inlinable public var localName: String { jsObject[Strings.localName].fromJSValue()! } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var ownerElement: Element? + @inlinable public var ownerElement: Element? { jsObject[Strings.ownerElement].fromJSValue() } - @ReadonlyAttribute - public var specified: Bool + @inlinable public var specified: Bool { jsObject[Strings.specified].fromJSValue()! } } public class AudioData: JSBridgedClass { @@ -487,92 +480,94 @@ public class AudioData: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format) - _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) - _numberOfFrames = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfFrames) - _numberOfChannels = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfChannels) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: AudioDataInit) { + @inlinable public convenience init(`init`: AudioDataInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var format: AudioSampleFormat? + @inlinable public var format: AudioSampleFormat? { jsObject[Strings.format].fromJSValue() } - @ReadonlyAttribute - public var sampleRate: Float + @inlinable public var sampleRate: Float { jsObject[Strings.sampleRate].fromJSValue()! } - @ReadonlyAttribute - public var numberOfFrames: UInt32 + @inlinable public var numberOfFrames: UInt32 { jsObject[Strings.numberOfFrames].fromJSValue()! } - @ReadonlyAttribute - public var numberOfChannels: UInt32 + @inlinable public var numberOfChannels: UInt32 { jsObject[Strings.numberOfChannels].fromJSValue()! } - @ReadonlyAttribute - public var duration: UInt64 + @inlinable public var duration: UInt64 { jsObject[Strings.duration].fromJSValue()! } - @ReadonlyAttribute - public var timestamp: Int64 + @inlinable public var timestamp: Int64 { jsObject[Strings.timestamp].fromJSValue()! } - @inlinable public func allocationSize(options: AudioDataCopyToOptions) -> UInt32 { + @inlinable final public func allocationSize(options: AudioDataCopyToOptions) -> UInt32 { let this = jsObject return this[Strings.allocationSize].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions) { + @inlinable final public func copyTo(destination: AllowSharedBufferSource, options: AudioDataCopyToOptions) { let this = jsObject _ = this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]) } - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> AudioData { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } } -public class AudioDataCopyToOptions: BridgedDictionary { - public convenience init(planeIndex: UInt32, frameOffset: UInt32, frameCount: UInt32, format: AudioSampleFormat) { +open class AudioDataCopyToOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + planeIndex: UInt32, + frameOffset: UInt32? = nil, + frameCount: UInt32? = nil, + format: AudioSampleFormat? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.planeIndex] = _toJSValue(planeIndex) object[Strings.frameOffset] = _toJSValue(frameOffset) object[Strings.frameCount] = _toJSValue(frameCount) object[Strings.format] = _toJSValue(format) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _planeIndex = ReadWriteAttribute(jsObject: object, name: Strings.planeIndex) - _frameOffset = ReadWriteAttribute(jsObject: object, name: Strings.frameOffset) - _frameCount = ReadWriteAttribute(jsObject: object, name: Strings.frameCount) - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var planeIndex: UInt32 - - @ReadWriteAttribute - public var frameOffset: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var frameCount: UInt32 - - @ReadWriteAttribute - public var format: AudioSampleFormat + @inlinable public var planeIndex: UInt32 { + get { jsObject[Strings.planeIndex].fromJSValue()! } + set { jsObject[Strings.planeIndex] = _toJSValue(newValue) } + } + @inlinable public var frameOffset: UInt32 { + get { jsObject[Strings.frameOffset].fromJSValue()! } + set { jsObject[Strings.frameOffset] = _toJSValue(newValue) } + } + @inlinable public var frameCount: UInt32 { + get { jsObject[Strings.frameCount].fromJSValue()! } + set { jsObject[Strings.frameCount] = _toJSValue(newValue) } + } + @inlinable public var format: AudioSampleFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } } +open class AudioDataInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioDataInit: BridgedDictionary { - public convenience init(format: AudioSampleFormat, sampleRate: Float, numberOfFrames: UInt32, numberOfChannels: UInt32, timestamp: Int64, data: BufferSource, transfer: [ArrayBuffer]) { + public convenience init( + format: AudioSampleFormat, + sampleRate: Float, + numberOfFrames: UInt32, + numberOfChannels: UInt32, + timestamp: Int64, + data: BufferSource, + transfer: [ArrayBuffer]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.format] = _toJSValue(format) object[Strings.sampleRate] = _toJSValue(sampleRate) @@ -581,93 +576,99 @@ public class AudioDataInit: BridgedDictionary { object[Strings.timestamp] = _toJSValue(timestamp) object[Strings.data] = _toJSValue(data) object[Strings.transfer] = _toJSValue(transfer) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _numberOfFrames = ReadWriteAttribute(jsObject: object, name: Strings.numberOfFrames) - _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: AudioSampleFormat - - @ReadWriteAttribute - public var sampleRate: Float - - @ReadWriteAttribute - public var numberOfFrames: UInt32 - - @ReadWriteAttribute - public var numberOfChannels: UInt32 - - @ReadWriteAttribute - public var timestamp: Int64 - - @ReadWriteAttribute - public var data: BufferSource + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var transfer: [ArrayBuffer] + @inlinable public var format: AudioSampleFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: Float { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var numberOfFrames: UInt32 { + get { jsObject[Strings.numberOfFrames].fromJSValue()! } + set { jsObject[Strings.numberOfFrames] = _toJSValue(newValue) } + } + @inlinable public var numberOfChannels: UInt32 { + get { jsObject[Strings.numberOfChannels].fromJSValue()! } + set { jsObject[Strings.numberOfChannels] = _toJSValue(newValue) } + } + @inlinable public var timestamp: Int64 { + get { jsObject[Strings.timestamp].fromJSValue()! } + set { jsObject[Strings.timestamp] = _toJSValue(newValue) } + } + @inlinable public var data: BufferSource { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var transfer: [ArrayBuffer] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } } - public class AudioDecoder: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioDecoder].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioDecoder].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize) - _ondequeue = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondequeue) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(init: AudioDecoderInit) { + @inlinable public convenience init(`init`: AudioDecoderInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var state: CodecState + @inlinable public var state: CodecState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var decodeQueueSize: UInt32 + @inlinable public var decodeQueueSize: UInt32 { jsObject[Strings.decodeQueueSize].fromJSValue()! } - @ClosureAttribute1Optional - public var ondequeue: EventHandler + @inlinable public var ondequeue: EventHandler { + get { + guard let function = jsObject[Strings.ondequeue].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondequeue] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondequeue] = .null + } + } + } - @inlinable public func configure(config: AudioDecoderConfig) { + @inlinable final public func configure(config: AudioDecoderConfig) { let this = jsObject _ = this[Strings.configure].function!(this: this, arguments: [_toJSValue(config)]) } - @inlinable public func decode(chunk: EncodedAudioChunk) { + @inlinable final public func decode(chunk: EncodedAudioChunk) { let this = jsObject _ = this[Strings.decode].function!(this: this, arguments: [_toJSValue(chunk)]) } - @inlinable public func flush() -> JSPromise { + @inlinable final public func flush() -> JSPromise { let this = jsObject return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func flush() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func flush() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } @@ -677,138 +678,177 @@ public class AudioDecoder: EventTarget { return this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public class func isConfigSupported(config: AudioDecoderConfig) async throws -> AudioDecoderSupport { - let this = constructor! - let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public class func isConfigSupported( + config: AudioDecoderConfig + ) async throws(JSException) -> AudioDecoderSupport { + let this = constructor! + let _promise: JSPromise = this[Strings.isConfigSupported].function!( + this: this, + arguments: [_toJSValue(config)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class AudioDecoderConfig: BridgedDictionary { - public convenience init(codec: String, sampleRate: UInt32, numberOfChannels: UInt32, description: BufferSource) { +open class AudioDecoderConfig: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + codec: String, + sampleRate: UInt32, + numberOfChannels: UInt32, + description: BufferSource? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.codec] = _toJSValue(codec) object[Strings.sampleRate] = _toJSValue(sampleRate) object[Strings.numberOfChannels] = _toJSValue(numberOfChannels) object[Strings.description] = _toJSValue(description) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) - _description = ReadWriteAttribute(jsObject: object, name: Strings.description) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var codec: String - - @ReadWriteAttribute - public var sampleRate: UInt32 - - @ReadWriteAttribute - public var numberOfChannels: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var description: BufferSource + @inlinable public var codec: String { + get { jsObject[Strings.codec].fromJSValue()! } + set { jsObject[Strings.codec] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: UInt32 { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var numberOfChannels: UInt32 { + get { jsObject[Strings.numberOfChannels].fromJSValue()! } + set { jsObject[Strings.numberOfChannels] = _toJSValue(newValue) } + } + @inlinable public var description: BufferSource { + get { jsObject[Strings.description].fromJSValue()! } + set { jsObject[Strings.description] = _toJSValue(newValue) } + } } +open class AudioDecoderInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioDecoderInit: BridgedDictionary { public convenience init(output: @escaping AudioDataOutputCallback, error: @escaping WebCodecsErrorCallback) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1Void[Strings.output, in: object] = output - ClosureAttribute1Void[Strings.error, in: object] = error - self.init(unsafelyWrapping: object) - } + object[Strings.output] = _toJSValue(output) + object[Strings.error] = _toJSValue(error) - public required init(unsafelyWrapping object: JSObject) { - _output = ClosureAttribute1Void(jsObject: object, name: Strings.output) - _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute1Void - public var output: AudioDataOutputCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1Void - public var error: WebCodecsErrorCallback + @inlinable public var output: AudioDataOutputCallback { + get { + let function = jsObject[Strings.output].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.output] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } + @inlinable public var error: WebCodecsErrorCallback { + get { + let function = jsObject[Strings.error].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.error] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } } +open class AudioDecoderSupport: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioDecoderSupport: BridgedDictionary { - public convenience init(supported: Bool, config: AudioDecoderConfig) { + public convenience init(supported: Bool? = nil, config: AudioDecoderConfig? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.supported] = _toJSValue(supported) object[Strings.config] = _toJSValue(config) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) - _config = ReadWriteAttribute(jsObject: object, name: Strings.config) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var supported: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var config: AudioDecoderConfig + @inlinable public var supported: Bool { + get { jsObject[Strings.supported].fromJSValue()! } + set { jsObject[Strings.supported] = _toJSValue(newValue) } + } + @inlinable public var config: AudioDecoderConfig { + get { jsObject[Strings.config].fromJSValue()! } + set { jsObject[Strings.config] = _toJSValue(newValue) } + } } - public class AudioEncoder: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioEncoder].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioEncoder].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize) - _ondequeue = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondequeue) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(init: AudioEncoderInit) { + @inlinable public convenience init(`init`: AudioEncoderInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var state: CodecState + @inlinable public var state: CodecState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var encodeQueueSize: UInt32 + @inlinable public var encodeQueueSize: UInt32 { jsObject[Strings.encodeQueueSize].fromJSValue()! } - @ClosureAttribute1Optional - public var ondequeue: EventHandler + @inlinable public var ondequeue: EventHandler { + get { + guard let function = jsObject[Strings.ondequeue].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondequeue] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondequeue] = .null + } + } + } - @inlinable public func configure(config: AudioEncoderConfig) { + @inlinable final public func configure(config: AudioEncoderConfig) { let this = jsObject _ = this[Strings.configure].function!(this: this, arguments: [_toJSValue(config)]) } - @inlinable public func encode(data: AudioData) { + @inlinable final public func encode(data: AudioData) { let this = jsObject _ = this[Strings.encode].function!(this: this, arguments: [_toJSValue(data)]) } - @inlinable public func flush() -> JSPromise { + @inlinable final public func flush() -> JSPromise { let this = jsObject return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func flush() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func flush() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } @@ -818,92 +858,126 @@ public class AudioEncoder: EventTarget { return this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public class func isConfigSupported(config: AudioEncoderConfig) async throws -> AudioEncoderSupport { - let this = constructor! - let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public class func isConfigSupported( + config: AudioEncoderConfig + ) async throws(JSException) -> AudioEncoderSupport { + let this = constructor! + let _promise: JSPromise = this[Strings.isConfigSupported].function!( + this: this, + arguments: [_toJSValue(config)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class AudioEncoderConfig: BridgedDictionary { - public convenience init(codec: String, sampleRate: UInt32, numberOfChannels: UInt32, bitrate: UInt64, bitrateMode: BitrateMode) { +open class AudioEncoderConfig: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + codec: String, + sampleRate: UInt32, + numberOfChannels: UInt32, + bitrate: UInt64? = nil, + bitrateMode: BitrateMode? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.codec] = _toJSValue(codec) object[Strings.sampleRate] = _toJSValue(sampleRate) object[Strings.numberOfChannels] = _toJSValue(numberOfChannels) object[Strings.bitrate] = _toJSValue(bitrate) object[Strings.bitrateMode] = _toJSValue(bitrateMode) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) - _bitrate = ReadWriteAttribute(jsObject: object, name: Strings.bitrate) - _bitrateMode = ReadWriteAttribute(jsObject: object, name: Strings.bitrateMode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var codec: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var sampleRate: UInt32 - - @ReadWriteAttribute - public var numberOfChannels: UInt32 - - @ReadWriteAttribute - public var bitrate: UInt64 - - @ReadWriteAttribute - public var bitrateMode: BitrateMode + @inlinable public var codec: String { + get { jsObject[Strings.codec].fromJSValue()! } + set { jsObject[Strings.codec] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: UInt32 { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var numberOfChannels: UInt32 { + get { jsObject[Strings.numberOfChannels].fromJSValue()! } + set { jsObject[Strings.numberOfChannels] = _toJSValue(newValue) } + } + @inlinable public var bitrate: UInt64 { + get { jsObject[Strings.bitrate].fromJSValue()! } + set { jsObject[Strings.bitrate] = _toJSValue(newValue) } + } + @inlinable public var bitrateMode: BitrateMode { + get { jsObject[Strings.bitrateMode].fromJSValue()! } + set { jsObject[Strings.bitrateMode] = _toJSValue(newValue) } + } } +open class AudioEncoderInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioEncoderInit: BridgedDictionary { - public convenience init(output: @escaping EncodedAudioChunkOutputCallback, error: @escaping WebCodecsErrorCallback) { + public convenience init(output: @escaping EncodedAudioChunkOutputCallback, error: @escaping WebCodecsErrorCallback) + { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute2Void[Strings.output, in: object] = output - ClosureAttribute1Void[Strings.error, in: object] = error - self.init(unsafelyWrapping: object) - } + object[Strings.output] = _toJSValue(output) + object[Strings.error] = _toJSValue(error) - public required init(unsafelyWrapping object: JSObject) { - _output = ClosureAttribute2Void(jsObject: object, name: Strings.output) - _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute2Void - public var output: EncodedAudioChunkOutputCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1Void - public var error: WebCodecsErrorCallback + @inlinable public var output: EncodedAudioChunkOutputCallback { + get { + let function = jsObject[Strings.output].function! + return { function(_toJSValue($0), _toJSValue($1)) } + } + set { + jsObject[Strings.output] = + JSClosure { + newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!) + return .undefined + }.jsValue + } + } + @inlinable public var error: WebCodecsErrorCallback { + get { + let function = jsObject[Strings.error].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.error] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } } +open class AudioEncoderSupport: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioEncoderSupport: BridgedDictionary { - public convenience init(supported: Bool, config: AudioEncoderConfig) { + public convenience init(supported: Bool? = nil, config: AudioEncoderConfig? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.supported] = _toJSValue(supported) object[Strings.config] = _toJSValue(config) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) - _config = ReadWriteAttribute(jsObject: object, name: Strings.config) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var supported: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var config: AudioEncoderConfig + @inlinable public var supported: Bool { + get { jsObject[Strings.supported].fromJSValue()! } + set { jsObject[Strings.supported] = _toJSValue(newValue) } + } + @inlinable public var config: AudioEncoderConfig { + get { jsObject[Strings.config].fromJSValue()! } + set { jsObject[Strings.config] = _toJSValue(newValue) } + } } - public enum AudioSampleFormat: JSString, JSValueCompatible { case u8 = "u8" case s16 = "s16" @@ -915,84 +989,92 @@ public enum AudioSampleFormat: JSString, JSValueCompatible { case f32Planar = "f32-planar" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class AudioTrack: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioTrack].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _language = ReadonlyAttribute(jsObject: jsObject, name: Strings.language) - _enabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.enabled) - _sourceBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.sourceBuffer) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var kind: String + @inlinable public var kind: String { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var label: String + @inlinable public var label: String { jsObject[Strings.label].fromJSValue()! } - @ReadonlyAttribute - public var language: String + @inlinable public var language: String { jsObject[Strings.language].fromJSValue()! } - @ReadWriteAttribute - public var enabled: Bool + @inlinable public var enabled: Bool { + get { jsObject[Strings.enabled].fromJSValue()! } + set { jsObject[Strings.enabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var sourceBuffer: SourceBuffer? + @inlinable public var sourceBuffer: SourceBuffer? { jsObject[Strings.sourceBuffer].fromJSValue() } } public class AudioTrackList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioTrackList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioTrackList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) - _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> AudioTrack { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> AudioTrack { jsObject[key].fromJSValue()! } - @inlinable public func getTrackById(id: String) -> AudioTrack? { + @inlinable final public func getTrackById(id: String) -> AudioTrack? { let this = jsObject return this[Strings.getTrackById].function!(this: this, arguments: [_toJSValue(id)]).fromJSValue() } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } - @ClosureAttribute1Optional - public var onaddtrack: EventHandler + @inlinable public var onaddtrack: EventHandler { + get { + guard let function = jsObject[Strings.onaddtrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaddtrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaddtrack] = .null + } + } + } - @ClosureAttribute1Optional - public var onremovetrack: EventHandler + @inlinable public var onremovetrack: EventHandler { + get { + guard let function = jsObject[Strings.onremovetrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremovetrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremovetrack] = .null + } + } + } } public class BarProp: JSBridgedClass { @@ -1000,34 +1082,28 @@ public class BarProp: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var visible: Bool + @inlinable public var visible: Bool { jsObject[Strings.visible].fromJSValue()! } } public class BeforeUnloadEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BeforeUnloadEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _returnValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.returnValue) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.BeforeUnloadEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @available(*, unavailable) override public var returnValue: Bool { - get { !_returnValue.wrappedValue.isEmpty } + get { !self.returnValueAsString.isEmpty } set {} } - @usableFromInline let _returnValue: ReadWriteAttribute // renamed because `String` is not compatible with `Bool` @inlinable public var returnValueAsString: String { - get { _returnValue.wrappedValue } - set { _returnValue.wrappedValue = newValue } + get { self.jsObject[Strings.returnValue].string! } + set { self.jsObject[Strings.returnValue] = .string(newValue) } } } @@ -1036,287 +1112,381 @@ public enum BitrateMode: JSString, JSValueCompatible { case variable = "variable" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class Blob: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Blob].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(blobParts), _toJSValue(options)])) } - @ReadonlyAttribute - public var size: UInt64 + @inlinable public var size: UInt64 { jsObject[Strings.size].fromJSValue()! } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @inlinable public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Self { + @inlinable final public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Blob { let this = jsObject - return this[Strings.slice].function!(this: this, arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(contentType)]).fromJSValue()! + return this[Strings.slice].function!( + this: this, + arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(contentType)] + ).fromJSValue()! } - @inlinable public func stream() -> ReadableStream { + @inlinable final public func stream() -> ReadableStream { let this = jsObject return this[Strings.stream].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func text() -> JSPromise { + @inlinable final public func text() -> JSPromise { let this = jsObject return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func text() async throws -> String { - let this = jsObject - let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func text() + async throws(JSException) -> String + { + let this = jsObject + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func arrayBuffer() -> JSPromise { + @inlinable final public func arrayBuffer() -> JSPromise { let this = jsObject return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func arrayBuffer() async throws -> ArrayBuffer { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func arrayBuffer() + async throws(JSException) -> ArrayBuffer + { + let this = jsObject + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable final public func bytes() -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.bytes].function!(this: this, arguments: []).fromJSValue()! } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func bytes() + async throws(JSException) -> Uint8Array + { + let this = jsObject + let _promise: JSPromise = this[Strings.bytes].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public class BlobEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BlobEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.BlobEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _timecode = ReadonlyAttribute(jsObject: jsObject, name: Strings.timecode) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: BlobEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var data: Blob + @inlinable public var data: Blob { jsObject[Strings.data].fromJSValue()! } - @ReadonlyAttribute - public var timecode: DOMHighResTimeStamp + @inlinable public var timecode: DOMHighResTimeStamp { jsObject[Strings.timecode].fromJSValue()! } } -public class BlobEventInit: BridgedDictionary { - public convenience init(data: Blob, timecode: DOMHighResTimeStamp) { +open class BlobEventInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(data: Blob, timecode: DOMHighResTimeStamp? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.data] = _toJSValue(data) object[Strings.timecode] = _toJSValue(timecode) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var data: Blob + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var timecode: DOMHighResTimeStamp + @inlinable public var data: Blob { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var timecode: DOMHighResTimeStamp { + get { jsObject[Strings.timecode].fromJSValue()! } + set { jsObject[Strings.timecode] = _toJSValue(newValue) } + } } +open class BlobPropertyBag: JSDictionaryCompatible { + public let jsObject: JSObject -public class BlobPropertyBag: BridgedDictionary { - public convenience init(type: String, endings: EndingType) { + public convenience init(type: String? = nil, endings: EndingType? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.endings] = _toJSValue(endings) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var endings: EndingType + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var endings: EndingType { + get { jsObject[Strings.endings].fromJSValue()! } + set { jsObject[Strings.endings] = _toJSValue(newValue) } + } } - public protocol Body: JSBridgedClass {} -public extension Body { - @inlinable var body: ReadableStream? { jsObject[Strings.body].fromJSValue() } +extension Body { + @inlinable public var body: ReadableStream? { jsObject[Strings.body].fromJSValue() } - @inlinable var bodyUsed: Bool { jsObject[Strings.bodyUsed].fromJSValue()! } + @inlinable public var bodyUsed: Bool { jsObject[Strings.bodyUsed].fromJSValue()! } - @inlinable func arrayBuffer() -> JSPromise { + @inlinable public func arrayBuffer() -> JSPromise { let this = jsObject return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func arrayBuffer() async throws -> ArrayBuffer { - let this = jsObject - let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func arrayBuffer() + async throws(JSException) -> ArrayBuffer + { + let this = jsObject + let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable func blob() -> JSPromise { + @inlinable public func blob() -> JSPromise { let this = jsObject return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func blob() async throws -> Blob { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func blob() + async throws(JSException) -> Blob + { + let this = jsObject + let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable public func bytes() -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.bytes].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func formData() -> JSPromise { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func bytes() + async throws(JSException) -> Uint8Array + { + let this = jsObject + let _promise: JSPromise = this[Strings.bytes].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable public func formData() -> JSPromise { let this = jsObject return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func formData() async throws -> FormData { - let this = jsObject - let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func formData() + async throws(JSException) -> FormData + { + let this = jsObject + let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable func json() -> JSPromise { + @inlinable public func json() -> JSPromise { let this = jsObject return this[Strings.json].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func json() async throws -> JSValue { - let this = jsObject - let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func json() + async throws(JSException) -> JSValue + { + let this = jsObject + let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable func text() -> JSPromise { + @inlinable public func text() -> JSPromise { let this = jsObject return this[Strings.text].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func text() async throws -> String { - let this = jsObject - let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func text() + async throws(JSException) -> String + { + let this = jsObject + let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } +open class BoxQuadOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class BoxQuadOptions: BridgedDictionary { - public convenience init(box: CSSBoxType, relativeTo: GeometryNode) { + public convenience init(box: CSSBoxType? = nil, relativeTo: GeometryNode? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.box] = _toJSValue(box) object[Strings.relativeTo] = _toJSValue(relativeTo) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _box = ReadWriteAttribute(jsObject: object, name: Strings.box) - _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var box: CSSBoxType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var relativeTo: GeometryNode + @inlinable public var box: CSSBoxType { + get { jsObject[Strings.box].fromJSValue()! } + set { jsObject[Strings.box] = _toJSValue(newValue) } + } + @inlinable public var relativeTo: GeometryNode { + get { jsObject[Strings.relativeTo].fromJSValue()! } + set { jsObject[Strings.relativeTo] = _toJSValue(newValue) } + } } - public class BroadcastChannel: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BroadcastChannel].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.BroadcastChannel].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(name: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(name)])) } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @inlinable public func postMessage(message: JSValue) { + @inlinable final public func postMessage(message: JSValue) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message)]) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @ClosureAttribute1Optional - public var onmessage: EventHandler + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } + } - @ClosureAttribute1Optional - public var onmessageerror: EventHandler + @inlinable public var onmessageerror: EventHandler { + get { + guard let function = jsObject[Strings.onmessageerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessageerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessageerror] = .null + } + } + } } -public class ByteLengthQueuingStrategy: JSBridgedClass { +public class BufferedChangeEvent: Event { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.BufferedChangeEvent].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(type: String, eventInitDict: BufferedChangeEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) + } + + @inlinable public var addedRanges: TimeRanges { jsObject[Strings.addedRanges].fromJSValue()! } + + @inlinable public var removedRanges: TimeRanges { jsObject[Strings.removedRanges].fromJSValue()! } +} + +open class BufferedChangeEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + addedRanges: TimeRanges? = nil, + removedRanges: TimeRanges? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) + object[Strings.addedRanges] = _toJSValue(addedRanges) + object[Strings.removedRanges] = _toJSValue(removedRanges) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var addedRanges: TimeRanges { + get { jsObject[Strings.addedRanges].fromJSValue()! } + set { jsObject[Strings.addedRanges] = _toJSValue(newValue) } + } + @inlinable public var removedRanges: TimeRanges { + get { jsObject[Strings.removedRanges].fromJSValue()! } + set { jsObject[Strings.removedRanges] = _toJSValue(newValue) } + } +} +public class ByteLengthQueuingStrategy: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ByteLengthQueuingStrategy].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark) - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: QueuingStrategyInit) { + @inlinable public convenience init(`init`: QueuingStrategyInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var highWaterMark: Double + @inlinable public var highWaterMark: Double { jsObject[Strings.highWaterMark].fromJSValue()! } - @ReadonlyAttribute - public var size: JSFunction + @inlinable public var size: JSFunction { jsObject[Strings.size].fromJSValue()! } } public class CDATASection: Text { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CDATASection].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CDATASection].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public enum CSSBoxType: JSString, JSValueCompatible { @@ -1326,39 +1496,26 @@ public enum CSSBoxType: JSString, JSValueCompatible { case content = "content" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class CSSPseudoElement: EventTarget, GeometryUtils { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSPseudoElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CSSPseudoElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _element = ReadonlyAttribute(jsObject: jsObject, name: Strings.element) - _parent = ReadonlyAttribute(jsObject: jsObject, name: Strings.parent) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var element: Element + @inlinable public var element: Element { jsObject[Strings.element].fromJSValue()! } - @ReadonlyAttribute - public var parent: CSSPseudoElement_or_Element + @inlinable public var parent: CSSPseudoElement_or_Element { jsObject[Strings.parent].fromJSValue()! } - @inlinable public func pseudo(type: String) -> CSSPseudoElement? { + @inlinable final public func pseudo(type: String) -> CSSPseudoElement? { let this = jsObject return this[Strings.pseudo].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue() } @@ -1369,412 +1526,520 @@ public class Cache: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable final public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! + return this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Response? { - let this = jsObject - let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func match( + request: RequestInfo, + options: CacheQueryOptions? = nil + ) async throws(JSException) -> Response? { + let this = jsObject + let _promise: JSPromise = this[Strings.match].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable final public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.matchAll].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! + return this[Strings.matchAll].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Response] { - let this = jsObject - let _promise: JSPromise = this[Strings.matchAll].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func matchAll( + request: RequestInfo? = nil, + options: CacheQueryOptions? = nil + ) async throws(JSException) -> [Response] { + let this = jsObject + let _promise: JSPromise = this[Strings.matchAll].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func add(request: RequestInfo) -> JSPromise { + @inlinable final public func add(request: RequestInfo) -> JSPromise { let this = jsObject return this[Strings.add].function!(this: this, arguments: [_toJSValue(request)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func add(request: RequestInfo) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [_toJSValue(request)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func add( + request: RequestInfo + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [_toJSValue(request)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise { + @inlinable final public func addAll(requests: [RequestInfo]) -> JSPromise { let this = jsObject return this[Strings.addAll].function!(this: this, arguments: [_toJSValue(requests)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func addAll(requests: [RequestInfo]) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [_toJSValue(requests)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func addAll( + requests: [RequestInfo] + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [_toJSValue(requests)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise { + @inlinable final public func put(request: RequestInfo, response: Response) -> JSPromise { let this = jsObject - return this[Strings.put].function!(this: this, arguments: [_toJSValue(request), _toJSValue(response)]).fromJSValue()! + return this[Strings.put].function!(this: this, arguments: [_toJSValue(request), _toJSValue(response)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func put(request: RequestInfo, response: Response) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.put].function!(this: this, arguments: [_toJSValue(request), _toJSValue(response)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func put( + request: RequestInfo, + response: Response + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.put].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(response)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable final public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.delete].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! + return this[Strings.delete].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func delete( + request: RequestInfo, + options: CacheQueryOptions? = nil + ) async throws(JSException) -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.delete].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { + @inlinable final public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.keys].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! + return this[Strings.keys].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) async throws -> [Request] { - let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func keys( + request: RequestInfo? = nil, + options: CacheQueryOptions? = nil + ) async throws(JSException) -> [Request] { + let this = jsObject + let _promise: JSPromise = this[Strings.keys].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class CacheQueryOptions: BridgedDictionary { - public convenience init(ignoreSearch: Bool, ignoreMethod: Bool, ignoreVary: Bool) { +open class CacheQueryOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(ignoreSearch: Bool? = nil, ignoreMethod: Bool? = nil, ignoreVary: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.ignoreSearch] = _toJSValue(ignoreSearch) object[Strings.ignoreMethod] = _toJSValue(ignoreMethod) object[Strings.ignoreVary] = _toJSValue(ignoreVary) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _ignoreSearch = ReadWriteAttribute(jsObject: object, name: Strings.ignoreSearch) - _ignoreMethod = ReadWriteAttribute(jsObject: object, name: Strings.ignoreMethod) - _ignoreVary = ReadWriteAttribute(jsObject: object, name: Strings.ignoreVary) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var ignoreSearch: Bool - - @ReadWriteAttribute - public var ignoreMethod: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var ignoreVary: Bool + @inlinable public var ignoreSearch: Bool { + get { jsObject[Strings.ignoreSearch].fromJSValue()! } + set { jsObject[Strings.ignoreSearch] = _toJSValue(newValue) } + } + @inlinable public var ignoreMethod: Bool { + get { jsObject[Strings.ignoreMethod].fromJSValue()! } + set { jsObject[Strings.ignoreMethod] = _toJSValue(newValue) } + } + @inlinable public var ignoreVary: Bool { + get { jsObject[Strings.ignoreVary].fromJSValue()! } + set { jsObject[Strings.ignoreVary] = _toJSValue(newValue) } + } } - public class CacheStorage: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CacheStorage].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise { + @inlinable final public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! + return this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) async throws -> Response? { - let this = jsObject - let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [_toJSValue(request), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func match( + request: RequestInfo, + options: MultiCacheQueryOptions? = nil + ) async throws(JSException) -> Response? { + let this = jsObject + let _promise: JSPromise = this[Strings.match].function!( + this: this, + arguments: [_toJSValue(request), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func has(cacheName: String) -> JSPromise { + @inlinable final public func has(cacheName: String) -> JSPromise { let this = jsObject return this[Strings.has].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func has(cacheName: String) async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func has( + cacheName: String + ) async throws(JSException) -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [_toJSValue(cacheName)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func open(cacheName: String) -> JSPromise { + @inlinable final public func open(cacheName: String) -> JSPromise { let this = jsObject return this[Strings.open].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func open(cacheName: String) async throws -> Cache { - let this = jsObject - let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func open( + cacheName: String + ) async throws(JSException) -> Cache { + let this = jsObject + let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [_toJSValue(cacheName)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func delete(cacheName: String) -> JSPromise { + @inlinable final public func delete(cacheName: String) -> JSPromise { let this = jsObject return this[Strings.delete].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func delete(cacheName: String) async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [_toJSValue(cacheName)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func delete( + cacheName: String + ) async throws(JSException) -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [_toJSValue(cacheName)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func keys() -> JSPromise { + @inlinable final public func keys() -> JSPromise { let this = jsObject return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func keys() async throws -> [String] { - let this = jsObject - let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func keys() + async throws(JSException) -> [String] + { + let this = jsObject + let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class CameraDevicePermissionDescriptor: BridgedDictionary { - public convenience init(panTiltZoom: Bool) { +open class CameraDevicePermissionDescriptor: PermissionDescriptor { + + public convenience init(name: String, panTiltZoom: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.name] = _toJSValue(name) object[Strings.panTiltZoom] = _toJSValue(panTiltZoom) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var panTiltZoom: Bool + @inlinable public var panTiltZoom: Bool { + get { jsObject[Strings.panTiltZoom].fromJSValue()! } + set { jsObject[Strings.panTiltZoom] = _toJSValue(newValue) } + } } - public enum CanPlayTypeResult: JSString, JSValueCompatible { case _empty = "" case maybe = "maybe" case probably = "probably" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public enum CanvasColorType: JSString, JSValueCompatible { + case unorm8 = "unorm8" + case float16 = "float16" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} public protocol CanvasCompositing: JSBridgedClass {} -public extension CanvasCompositing { - @inlinable var globalAlpha: Double { +extension CanvasCompositing { + @inlinable public var globalAlpha: Double { get { jsObject[Strings.globalAlpha].fromJSValue()! } - nonmutating set { jsObject[Strings.globalAlpha] = _toJSValue(newValue) } + set { jsObject[Strings.globalAlpha] = _toJSValue(newValue) } } - @inlinable var globalCompositeOperation: String { + @inlinable public var globalCompositeOperation: String { get { jsObject[Strings.globalCompositeOperation].fromJSValue()! } - nonmutating set { jsObject[Strings.globalCompositeOperation] = _toJSValue(newValue) } + set { jsObject[Strings.globalCompositeOperation] = _toJSValue(newValue) } } } - public enum CanvasDirection: JSString, JSValueCompatible { case ltr = "ltr" case rtl = "rtl" case inherit = "inherit" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol CanvasDrawImage: JSBridgedClass {} -public extension CanvasDrawImage { - @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double) { +extension CanvasDrawImage { + @inlinable public func drawImage(image: CanvasImageSource, dx: Double, dy: Double) { let this = jsObject - _ = this[Strings.drawImage].function!(this: this, arguments: [_toJSValue(image), _toJSValue(dx), _toJSValue(dy)]) + _ = this[Strings.drawImage].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(dx), _toJSValue(dy)] + ) } - @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) { + @inlinable public func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) { let this = jsObject - _ = this[Strings.drawImage].function!(this: this, arguments: [_toJSValue(image), _toJSValue(dx), _toJSValue(dy), _toJSValue(dw), _toJSValue(dh)]) + _ = this[Strings.drawImage].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(dx), _toJSValue(dy), _toJSValue(dw), _toJSValue(dh)] + ) } - @inlinable func drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) { + @inlinable public func drawImage( + image: CanvasImageSource, + sx: Double, + sy: Double, + sw: Double, + sh: Double, + dx: Double, + dy: Double, + dw: Double, + dh: Double + ) { let this = jsObject - _ = this[Strings.drawImage].function!(this: this, arguments: [_toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(dx), _toJSValue(dy), _toJSValue(dw), _toJSValue(dh)]) + _ = this[Strings.drawImage].function!( + this: this, + arguments: [ + _toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(dx), + _toJSValue(dy), _toJSValue(dw), _toJSValue(dh), + ] + ) } } - public protocol CanvasDrawPath: JSBridgedClass {} -public extension CanvasDrawPath { - @inlinable func beginPath() { +extension CanvasDrawPath { + @inlinable public func beginPath() { let this = jsObject _ = this[Strings.beginPath].function!(this: this, arguments: []) } - @inlinable func fill(fillRule: CanvasFillRule? = nil) { + @inlinable public func fill(fillRule: CanvasFillRule? = nil) { let this = jsObject _ = this[Strings.fill].function!(this: this, arguments: [_toJSValue(fillRule)]) } - @inlinable func fill(path: Path2D, fillRule: CanvasFillRule? = nil) { + @inlinable public func fill(path: Path2D, fillRule: CanvasFillRule? = nil) { let this = jsObject _ = this[Strings.fill].function!(this: this, arguments: [_toJSValue(path), _toJSValue(fillRule)]) } - @inlinable func stroke() { + @inlinable public func stroke() { let this = jsObject _ = this[Strings.stroke].function!(this: this, arguments: []) } - @inlinable func stroke(path: Path2D) { + @inlinable public func stroke(path: Path2D) { let this = jsObject _ = this[Strings.stroke].function!(this: this, arguments: [_toJSValue(path)]) } - @inlinable func clip(fillRule: CanvasFillRule? = nil) { + @inlinable public func clip(fillRule: CanvasFillRule? = nil) { let this = jsObject _ = this[Strings.clip].function!(this: this, arguments: [_toJSValue(fillRule)]) } - @inlinable func clip(path: Path2D, fillRule: CanvasFillRule? = nil) { + @inlinable public func clip(path: Path2D, fillRule: CanvasFillRule? = nil) { let this = jsObject _ = this[Strings.clip].function!(this: this, arguments: [_toJSValue(path), _toJSValue(fillRule)]) } - @inlinable func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + @inlinable public func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { let this = jsObject - return this[Strings.isPointInPath].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(fillRule)]).fromJSValue()! + return this[Strings.isPointInPath].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(fillRule)] + ).fromJSValue()! } - @inlinable func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { + @inlinable public func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool { let this = jsObject - return this[Strings.isPointInPath].function!(this: this, arguments: [_toJSValue(path), _toJSValue(x), _toJSValue(y), _toJSValue(fillRule)]).fromJSValue()! + return this[Strings.isPointInPath].function!( + this: this, + arguments: [_toJSValue(path), _toJSValue(x), _toJSValue(y), _toJSValue(fillRule)] + ).fromJSValue()! } - @inlinable func isPointInStroke(x: Double, y: Double) -> Bool { + @inlinable public func isPointInStroke(x: Double, y: Double) -> Bool { let this = jsObject - return this[Strings.isPointInStroke].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.isPointInStroke].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) + .fromJSValue()! } - @inlinable func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool { + @inlinable public func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool { let this = jsObject - return this[Strings.isPointInStroke].function!(this: this, arguments: [_toJSValue(path), _toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.isPointInStroke].function!( + this: this, + arguments: [_toJSValue(path), _toJSValue(x), _toJSValue(y)] + ).fromJSValue()! } } - public enum CanvasFillRule: JSString, JSValueCompatible { case nonzero = "nonzero" case evenodd = "evenodd" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol CanvasFillStrokeStyles: JSBridgedClass {} -public extension CanvasFillStrokeStyles { - @inlinable var strokeStyle: CanvasGradient_or_CanvasPattern_or_String { +extension CanvasFillStrokeStyles { + @inlinable public var strokeStyle: CanvasGradient_or_CanvasPattern_or_String { get { jsObject[Strings.strokeStyle].fromJSValue()! } - nonmutating set { jsObject[Strings.strokeStyle] = _toJSValue(newValue) } + set { jsObject[Strings.strokeStyle] = _toJSValue(newValue) } } - @inlinable var fillStyle: CanvasGradient_or_CanvasPattern_or_String { + @inlinable public var fillStyle: CanvasGradient_or_CanvasPattern_or_String { get { jsObject[Strings.fillStyle].fromJSValue()! } - nonmutating set { jsObject[Strings.fillStyle] = _toJSValue(newValue) } + set { jsObject[Strings.fillStyle] = _toJSValue(newValue) } } - @inlinable func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient { + @inlinable public func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient { let this = jsObject - return this[Strings.createLinearGradient].function!(this: this, arguments: [_toJSValue(x0), _toJSValue(y0), _toJSValue(x1), _toJSValue(y1)]).fromJSValue()! + return this[Strings.createLinearGradient].function!( + this: this, + arguments: [_toJSValue(x0), _toJSValue(y0), _toJSValue(x1), _toJSValue(y1)] + ).fromJSValue()! } - @inlinable func createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double) -> CanvasGradient { + @inlinable public func createRadialGradient( + x0: Double, + y0: Double, + r0: Double, + x1: Double, + y1: Double, + r1: Double + ) -> CanvasGradient { let this = jsObject - return this[Strings.createRadialGradient].function!(this: this, arguments: [_toJSValue(x0), _toJSValue(y0), _toJSValue(r0), _toJSValue(x1), _toJSValue(y1), _toJSValue(r1)]).fromJSValue()! + return this[Strings.createRadialGradient].function!( + this: this, + arguments: [_toJSValue(x0), _toJSValue(y0), _toJSValue(r0), _toJSValue(x1), _toJSValue(y1), _toJSValue(r1)] + ).fromJSValue()! } - @inlinable func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient { + @inlinable public func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient { let this = jsObject - return this[Strings.createConicGradient].function!(this: this, arguments: [_toJSValue(startAngle), _toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.createConicGradient].function!( + this: this, + arguments: [_toJSValue(startAngle), _toJSValue(x), _toJSValue(y)] + ).fromJSValue()! } - @inlinable func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? { + @inlinable public func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? { let this = jsObject - return this[Strings.createPattern].function!(this: this, arguments: [_toJSValue(image), _toJSValue(repetition)]).fromJSValue() + return this[Strings.createPattern].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(repetition)] + ).fromJSValue() } } - public protocol CanvasFilters: JSBridgedClass {} -public extension CanvasFilters { - @inlinable var filter: String { +extension CanvasFilters { + @inlinable public var filter: String { get { jsObject[Strings.filter].fromJSValue()! } - nonmutating set { jsObject[Strings.filter] = _toJSValue(newValue) } + set { jsObject[Strings.filter] = _toJSValue(newValue) } } } - public enum CanvasFontKerning: JSString, JSValueCompatible { case auto = "auto" case normal = "normal" case none = "none" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum CanvasFontStretch: JSString, JSValueCompatible { case ultraCondensed = "ultra-condensed" case extraCondensed = "extra-condensed" @@ -1787,19 +2052,14 @@ public enum CanvasFontStretch: JSString, JSValueCompatible { case ultraExpanded = "ultra-expanded" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum CanvasFontVariantCaps: JSString, JSValueCompatible { case normal = "normal" case smallCaps = "small-caps" @@ -1810,351 +2070,433 @@ public enum CanvasFontVariantCaps: JSString, JSValueCompatible { case titlingCaps = "titling-caps" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class CanvasGradient: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasGradient].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func addColorStop(offset: Double, color: String) { + @inlinable final public func addColorStop(offset: Double, color: String) { let this = jsObject _ = this[Strings.addColorStop].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(color)]) } } public protocol CanvasImageData: JSBridgedClass {} -public extension CanvasImageData { - @inlinable func createImageData(sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData { +extension CanvasImageData { + @inlinable public func createImageData(sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData { let this = jsObject - return this[Strings.createImageData].function!(this: this, arguments: [_toJSValue(sw), _toJSValue(sh), _toJSValue(settings)]).fromJSValue()! + return this[Strings.createImageData].function!( + this: this, + arguments: [_toJSValue(sw), _toJSValue(sh), _toJSValue(settings)] + ).fromJSValue()! } - @inlinable func createImageData(imagedata: ImageData) -> ImageData { + @inlinable public func createImageData(imageData: ImageData) -> ImageData { let this = jsObject - return this[Strings.createImageData].function!(this: this, arguments: [_toJSValue(imagedata)]).fromJSValue()! + return this[Strings.createImageData].function!(this: this, arguments: [_toJSValue(imageData)]).fromJSValue()! } - @inlinable func getImageData(sx: Int32, sy: Int32, sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData { + @inlinable public func getImageData( + sx: Int32, + sy: Int32, + sw: Int32, + sh: Int32, + settings: ImageDataSettings? = nil + ) -> ImageData { let this = jsObject - return this[Strings.getImageData].function!(this: this, arguments: [_toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(settings)]).fromJSValue()! + return this[Strings.getImageData].function!( + this: this, + arguments: [_toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(settings)] + ).fromJSValue()! } - @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32) { + @inlinable public func putImageData(imageData: ImageData, dx: Int32, dy: Int32) { let this = jsObject - _ = this[Strings.putImageData].function!(this: this, arguments: [_toJSValue(imagedata), _toJSValue(dx), _toJSValue(dy)]) + _ = this[Strings.putImageData].function!( + this: this, + arguments: [_toJSValue(imageData), _toJSValue(dx), _toJSValue(dy)] + ) } - @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32, dirtyX: Int32, dirtyY: Int32, dirtyWidth: Int32, dirtyHeight: Int32) { + @inlinable public func putImageData( + imageData: ImageData, + dx: Int32, + dy: Int32, + dirtyX: Int32, + dirtyY: Int32, + dirtyWidth: Int32, + dirtyHeight: Int32 + ) { let this = jsObject - _ = this[Strings.putImageData].function!(this: this, arguments: [_toJSValue(imagedata), _toJSValue(dx), _toJSValue(dy), _toJSValue(dirtyX), _toJSValue(dirtyY), _toJSValue(dirtyWidth), _toJSValue(dirtyHeight)]) + _ = this[Strings.putImageData].function!( + this: this, + arguments: [ + _toJSValue(imageData), _toJSValue(dx), _toJSValue(dy), _toJSValue(dirtyX), _toJSValue(dirtyY), + _toJSValue(dirtyWidth), _toJSValue(dirtyHeight), + ] + ) } } - public protocol CanvasImageSmoothing: JSBridgedClass {} -public extension CanvasImageSmoothing { - @inlinable var imageSmoothingEnabled: Bool { +extension CanvasImageSmoothing { + @inlinable public var imageSmoothingEnabled: Bool { get { jsObject[Strings.imageSmoothingEnabled].fromJSValue()! } - nonmutating set { jsObject[Strings.imageSmoothingEnabled] = _toJSValue(newValue) } + set { jsObject[Strings.imageSmoothingEnabled] = _toJSValue(newValue) } } - @inlinable var imageSmoothingQuality: ImageSmoothingQuality { + @inlinable public var imageSmoothingQuality: ImageSmoothingQuality { get { jsObject[Strings.imageSmoothingQuality].fromJSValue()! } - nonmutating set { jsObject[Strings.imageSmoothingQuality] = _toJSValue(newValue) } + set { jsObject[Strings.imageSmoothingQuality] = _toJSValue(newValue) } } } - public enum CanvasLineCap: JSString, JSValueCompatible { case butt = "butt" case round = "round" case square = "square" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum CanvasLineJoin: JSString, JSValueCompatible { case round = "round" case bevel = "bevel" case miter = "miter" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol CanvasPath: JSBridgedClass {} -public extension CanvasPath { - @inlinable func closePath() { +extension CanvasPath { + @inlinable public func closePath() { let this = jsObject _ = this[Strings.closePath].function!(this: this, arguments: []) } - @inlinable func moveTo(x: Double, y: Double) { + @inlinable public func moveTo(x: Double, y: Double) { let this = jsObject _ = this[Strings.moveTo].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable func lineTo(x: Double, y: Double) { + @inlinable public func lineTo(x: Double, y: Double) { let this = jsObject _ = this[Strings.lineTo].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable func quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) { + @inlinable public func quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) { let this = jsObject - _ = this[Strings.quadraticCurveTo].function!(this: this, arguments: [_toJSValue(cpx), _toJSValue(cpy), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.quadraticCurveTo].function!( + this: this, + arguments: [_toJSValue(cpx), _toJSValue(cpy), _toJSValue(x), _toJSValue(y)] + ) } - @inlinable func bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) { + @inlinable public func bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) { let this = jsObject - _ = this[Strings.bezierCurveTo].function!(this: this, arguments: [_toJSValue(cp1x), _toJSValue(cp1y), _toJSValue(cp2x), _toJSValue(cp2y), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.bezierCurveTo].function!( + this: this, + arguments: [ + _toJSValue(cp1x), _toJSValue(cp1y), _toJSValue(cp2x), _toJSValue(cp2y), _toJSValue(x), _toJSValue(y), + ] + ) } - @inlinable func arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) { + @inlinable public func arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) { let this = jsObject - _ = this[Strings.arcTo].function!(this: this, arguments: [_toJSValue(x1), _toJSValue(y1), _toJSValue(x2), _toJSValue(y2), _toJSValue(radius)]) + _ = this[Strings.arcTo].function!( + this: this, + arguments: [_toJSValue(x1), _toJSValue(y1), _toJSValue(x2), _toJSValue(y2), _toJSValue(radius)] + ) } - @inlinable func rect(x: Double, y: Double, w: Double, h: Double) { + @inlinable public func rect(x: Double, y: Double, w: Double, h: Double) { let this = jsObject - _ = this[Strings.rect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)]) + _ = this[Strings.rect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)] + ) } - @inlinable func roundRect(x: Double, y: Double, w: Double, h: Double, radii: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double? = nil) { + @inlinable public func roundRect( + x: Double, + y: Double, + w: Double, + h: Double, + radii: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double? = nil + ) { let this = jsObject - _ = this[Strings.roundRect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h), _toJSValue(radii)]) + _ = this[Strings.roundRect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h), _toJSValue(radii)] + ) } - @inlinable func arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) { + @inlinable public func arc( + x: Double, + y: Double, + radius: Double, + startAngle: Double, + endAngle: Double, + counterclockwise: Bool? = nil + ) { let this = jsObject - _ = this[Strings.arc].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(radius), _toJSValue(startAngle), _toJSValue(endAngle), _toJSValue(counterclockwise)]) + _ = this[Strings.arc].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(radius), _toJSValue(startAngle), _toJSValue(endAngle), + _toJSValue(counterclockwise), + ] + ) } - @inlinable func ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) { + @inlinable public func ellipse( + x: Double, + y: Double, + radiusX: Double, + radiusY: Double, + rotation: Double, + startAngle: Double, + endAngle: Double, + counterclockwise: Bool? = nil + ) { let this = jsObject - _ = this[Strings.ellipse].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(radiusX), _toJSValue(radiusY), _toJSValue(rotation), _toJSValue(startAngle), _toJSValue(endAngle), _toJSValue(counterclockwise)]) + _ = this[Strings.ellipse].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(radiusX), _toJSValue(radiusY), _toJSValue(rotation), + _toJSValue(startAngle), _toJSValue(endAngle), _toJSValue(counterclockwise), + ] + ) } } - public protocol CanvasPathDrawingStyles: JSBridgedClass {} -public extension CanvasPathDrawingStyles { - @inlinable var lineWidth: Double { +extension CanvasPathDrawingStyles { + @inlinable public var lineWidth: Double { get { jsObject[Strings.lineWidth].fromJSValue()! } - nonmutating set { jsObject[Strings.lineWidth] = _toJSValue(newValue) } + set { jsObject[Strings.lineWidth] = _toJSValue(newValue) } } - @inlinable var lineCap: CanvasLineCap { + @inlinable public var lineCap: CanvasLineCap { get { jsObject[Strings.lineCap].fromJSValue()! } - nonmutating set { jsObject[Strings.lineCap] = _toJSValue(newValue) } + set { jsObject[Strings.lineCap] = _toJSValue(newValue) } } - @inlinable var lineJoin: CanvasLineJoin { + @inlinable public var lineJoin: CanvasLineJoin { get { jsObject[Strings.lineJoin].fromJSValue()! } - nonmutating set { jsObject[Strings.lineJoin] = _toJSValue(newValue) } + set { jsObject[Strings.lineJoin] = _toJSValue(newValue) } } - @inlinable var miterLimit: Double { + @inlinable public var miterLimit: Double { get { jsObject[Strings.miterLimit].fromJSValue()! } - nonmutating set { jsObject[Strings.miterLimit] = _toJSValue(newValue) } + set { jsObject[Strings.miterLimit] = _toJSValue(newValue) } } - @inlinable func setLineDash(segments: [Double]) { + @inlinable public func setLineDash(segments: [Double]) { let this = jsObject _ = this[Strings.setLineDash].function!(this: this, arguments: [_toJSValue(segments)]) } - @inlinable func getLineDash() -> [Double] { + @inlinable public func getLineDash() -> [Double] { let this = jsObject return this[Strings.getLineDash].function!(this: this, arguments: []).fromJSValue()! } - @inlinable var lineDashOffset: Double { + @inlinable public var lineDashOffset: Double { get { jsObject[Strings.lineDashOffset].fromJSValue()! } - nonmutating set { jsObject[Strings.lineDashOffset] = _toJSValue(newValue) } + set { jsObject[Strings.lineDashOffset] = _toJSValue(newValue) } } } - public class CanvasPattern: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasPattern].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func setTransform(transform: DOMMatrix2DInit? = nil) { + @inlinable final public func setTransform(transform: DOMMatrix2DInit? = nil) { let this = jsObject _ = this[Strings.setTransform].function!(this: this, arguments: [_toJSValue(transform)]) } } public protocol CanvasRect: JSBridgedClass {} -public extension CanvasRect { - @inlinable func clearRect(x: Double, y: Double, w: Double, h: Double) { +extension CanvasRect { + @inlinable public func clearRect(x: Double, y: Double, w: Double, h: Double) { let this = jsObject - _ = this[Strings.clearRect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)]) + _ = this[Strings.clearRect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)] + ) } - @inlinable func fillRect(x: Double, y: Double, w: Double, h: Double) { + @inlinable public func fillRect(x: Double, y: Double, w: Double, h: Double) { let this = jsObject - _ = this[Strings.fillRect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)]) + _ = this[Strings.fillRect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)] + ) } - @inlinable func strokeRect(x: Double, y: Double, w: Double, h: Double) { + @inlinable public func strokeRect(x: Double, y: Double, w: Double, h: Double) { let this = jsObject - _ = this[Strings.strokeRect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)]) + _ = this[Strings.strokeRect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(w), _toJSValue(h)] + ) } } - -public class CanvasRenderingContext2D: JSBridgedClass, CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath { +public class CanvasRenderingContext2D: JSBridgedClass, CanvasSettings, CanvasState, CanvasTransform, CanvasCompositing, + CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, + CanvasUserInterface, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, + CanvasPath +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasRenderingContext2D].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var canvas: HTMLCanvasElement + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func getContextAttributes() -> CanvasRenderingContext2DSettings { - let this = jsObject - return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()! - } + @inlinable public var canvas: HTMLCanvasElement { jsObject[Strings.canvas].fromJSValue()! } } -public class CanvasRenderingContext2DSettings: BridgedDictionary { - public convenience init(alpha: Bool, desynchronized: Bool, colorSpace: PredefinedColorSpace, willReadFrequently: Bool) { +open class CanvasRenderingContext2DSettings: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + alpha: Bool? = nil, + desynchronized: Bool? = nil, + colorSpace: PredefinedColorSpace? = nil, + colorType: CanvasColorType? = nil, + willReadFrequently: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.alpha] = _toJSValue(alpha) object[Strings.desynchronized] = _toJSValue(desynchronized) object[Strings.colorSpace] = _toJSValue(colorSpace) + object[Strings.colorType] = _toJSValue(colorType) object[Strings.willReadFrequently] = _toJSValue(willReadFrequently) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - _desynchronized = ReadWriteAttribute(jsObject: object, name: Strings.desynchronized) - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - _willReadFrequently = ReadWriteAttribute(jsObject: object, name: Strings.willReadFrequently) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var alpha: Bool - - @ReadWriteAttribute - public var desynchronized: Bool - - @ReadWriteAttribute - public var colorSpace: PredefinedColorSpace + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var willReadFrequently: Bool + @inlinable public var alpha: Bool { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } + @inlinable public var desynchronized: Bool { + get { jsObject[Strings.desynchronized].fromJSValue()! } + set { jsObject[Strings.desynchronized] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } + @inlinable public var colorType: CanvasColorType { + get { jsObject[Strings.colorType].fromJSValue()! } + set { jsObject[Strings.colorType] = _toJSValue(newValue) } + } + @inlinable public var willReadFrequently: Bool { + get { jsObject[Strings.willReadFrequently].fromJSValue()! } + set { jsObject[Strings.willReadFrequently] = _toJSValue(newValue) } + } +} +public protocol CanvasSettings: JSBridgedClass {} +extension CanvasSettings { + @inlinable public func getContextAttributes() -> CanvasRenderingContext2DSettings { + let this = jsObject + return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()! + } } - public protocol CanvasShadowStyles: JSBridgedClass {} -public extension CanvasShadowStyles { - @inlinable var shadowOffsetX: Double { +extension CanvasShadowStyles { + @inlinable public var shadowOffsetX: Double { get { jsObject[Strings.shadowOffsetX].fromJSValue()! } - nonmutating set { jsObject[Strings.shadowOffsetX] = _toJSValue(newValue) } + set { jsObject[Strings.shadowOffsetX] = _toJSValue(newValue) } } - @inlinable var shadowOffsetY: Double { + @inlinable public var shadowOffsetY: Double { get { jsObject[Strings.shadowOffsetY].fromJSValue()! } - nonmutating set { jsObject[Strings.shadowOffsetY] = _toJSValue(newValue) } + set { jsObject[Strings.shadowOffsetY] = _toJSValue(newValue) } } - @inlinable var shadowBlur: Double { + @inlinable public var shadowBlur: Double { get { jsObject[Strings.shadowBlur].fromJSValue()! } - nonmutating set { jsObject[Strings.shadowBlur] = _toJSValue(newValue) } + set { jsObject[Strings.shadowBlur] = _toJSValue(newValue) } } - @inlinable var shadowColor: String { + @inlinable public var shadowColor: String { get { jsObject[Strings.shadowColor].fromJSValue()! } - nonmutating set { jsObject[Strings.shadowColor] = _toJSValue(newValue) } + set { jsObject[Strings.shadowColor] = _toJSValue(newValue) } } } - public protocol CanvasState: JSBridgedClass {} -public extension CanvasState { - @inlinable func save() { +extension CanvasState { + @inlinable public func save() { let this = jsObject _ = this[Strings.save].function!(this: this, arguments: []) } - @inlinable func restore() { + @inlinable public func restore() { let this = jsObject _ = this[Strings.restore].function!(this: this, arguments: []) } - @inlinable func reset() { + @inlinable public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable func isContextLost() -> Bool { + @inlinable public func isContextLost() -> Bool { let this = jsObject return this[Strings.isContextLost].function!(this: this, arguments: []).fromJSValue()! } } - public protocol CanvasText: JSBridgedClass {} -public extension CanvasText { - @inlinable func fillText(text: String, x: Double, y: Double, maxWidth: Double? = nil) { +extension CanvasText { + @inlinable public func fillText(text: String, x: Double, y: Double, maxWidth: Double? = nil) { let this = jsObject - _ = this[Strings.fillText].function!(this: this, arguments: [_toJSValue(text), _toJSValue(x), _toJSValue(y), _toJSValue(maxWidth)]) + _ = this[Strings.fillText].function!( + this: this, + arguments: [_toJSValue(text), _toJSValue(x), _toJSValue(y), _toJSValue(maxWidth)] + ) } - @inlinable func strokeText(text: String, x: Double, y: Double, maxWidth: Double? = nil) { + @inlinable public func strokeText(text: String, x: Double, y: Double, maxWidth: Double? = nil) { let this = jsObject - _ = this[Strings.strokeText].function!(this: this, arguments: [_toJSValue(text), _toJSValue(x), _toJSValue(y), _toJSValue(maxWidth)]) + _ = this[Strings.strokeText].function!( + this: this, + arguments: [_toJSValue(text), _toJSValue(x), _toJSValue(y), _toJSValue(maxWidth)] + ) } - @inlinable func measureText(text: String) -> TextMetrics { + @inlinable public func measureText(text: String) -> TextMetrics { let this = jsObject return this[Strings.measureText].function!(this: this, arguments: [_toJSValue(text)]).fromJSValue()! } } - public enum CanvasTextAlign: JSString, JSValueCompatible { case start = "start" case end = "end" @@ -2163,19 +2505,14 @@ public enum CanvasTextAlign: JSString, JSValueCompatible { case center = "center" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum CanvasTextBaseline: JSString, JSValueCompatible { case top = "top" case hanging = "hanging" @@ -2185,72 +2522,71 @@ public enum CanvasTextBaseline: JSString, JSValueCompatible { case bottom = "bottom" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol CanvasTextDrawingStyles: JSBridgedClass {} -public extension CanvasTextDrawingStyles { - @inlinable var font: String { +extension CanvasTextDrawingStyles { + @inlinable public var lang: String { + get { jsObject[Strings.lang].fromJSValue()! } + set { jsObject[Strings.lang] = _toJSValue(newValue) } + } + + @inlinable public var font: String { get { jsObject[Strings.font].fromJSValue()! } - nonmutating set { jsObject[Strings.font] = _toJSValue(newValue) } + set { jsObject[Strings.font] = _toJSValue(newValue) } } - @inlinable var textAlign: CanvasTextAlign { + @inlinable public var textAlign: CanvasTextAlign { get { jsObject[Strings.textAlign].fromJSValue()! } - nonmutating set { jsObject[Strings.textAlign] = _toJSValue(newValue) } + set { jsObject[Strings.textAlign] = _toJSValue(newValue) } } - @inlinable var textBaseline: CanvasTextBaseline { + @inlinable public var textBaseline: CanvasTextBaseline { get { jsObject[Strings.textBaseline].fromJSValue()! } - nonmutating set { jsObject[Strings.textBaseline] = _toJSValue(newValue) } + set { jsObject[Strings.textBaseline] = _toJSValue(newValue) } } - @inlinable var direction: CanvasDirection { + @inlinable public var direction: CanvasDirection { get { jsObject[Strings.direction].fromJSValue()! } - nonmutating set { jsObject[Strings.direction] = _toJSValue(newValue) } + set { jsObject[Strings.direction] = _toJSValue(newValue) } } - @inlinable var letterSpacing: String { + @inlinable public var letterSpacing: String { get { jsObject[Strings.letterSpacing].fromJSValue()! } - nonmutating set { jsObject[Strings.letterSpacing] = _toJSValue(newValue) } + set { jsObject[Strings.letterSpacing] = _toJSValue(newValue) } } - @inlinable var fontKerning: CanvasFontKerning { + @inlinable public var fontKerning: CanvasFontKerning { get { jsObject[Strings.fontKerning].fromJSValue()! } - nonmutating set { jsObject[Strings.fontKerning] = _toJSValue(newValue) } + set { jsObject[Strings.fontKerning] = _toJSValue(newValue) } } - @inlinable var fontStretch: CanvasFontStretch { + @inlinable public var fontStretch: CanvasFontStretch { get { jsObject[Strings.fontStretch].fromJSValue()! } - nonmutating set { jsObject[Strings.fontStretch] = _toJSValue(newValue) } + set { jsObject[Strings.fontStretch] = _toJSValue(newValue) } } - @inlinable var fontVariantCaps: CanvasFontVariantCaps { + @inlinable public var fontVariantCaps: CanvasFontVariantCaps { get { jsObject[Strings.fontVariantCaps].fromJSValue()! } - nonmutating set { jsObject[Strings.fontVariantCaps] = _toJSValue(newValue) } + set { jsObject[Strings.fontVariantCaps] = _toJSValue(newValue) } } - @inlinable var textRendering: CanvasTextRendering { + @inlinable public var textRendering: CanvasTextRendering { get { jsObject[Strings.textRendering].fromJSValue()! } - nonmutating set { jsObject[Strings.textRendering] = _toJSValue(newValue) } + set { jsObject[Strings.textRendering] = _toJSValue(newValue) } } - @inlinable var wordSpacing: String { + @inlinable public var wordSpacing: String { get { jsObject[Strings.wordSpacing].fromJSValue()! } - nonmutating set { jsObject[Strings.wordSpacing] = _toJSValue(newValue) } + set { jsObject[Strings.wordSpacing] = _toJSValue(newValue) } } } - public enum CanvasTextRendering: JSString, JSValueCompatible { case auto = "auto" case optimizeSpeed = "optimizeSpeed" @@ -2258,214 +2594,237 @@ public enum CanvasTextRendering: JSString, JSValueCompatible { case geometricPrecision = "geometricPrecision" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol CanvasTransform: JSBridgedClass {} -public extension CanvasTransform { - @inlinable func scale(x: Double, y: Double) { +extension CanvasTransform { + @inlinable public func scale(x: Double, y: Double) { let this = jsObject _ = this[Strings.scale].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable func rotate(angle: Double) { + @inlinable public func rotate(angle: Double) { let this = jsObject _ = this[Strings.rotate].function!(this: this, arguments: [_toJSValue(angle)]) } - @inlinable func translate(x: Double, y: Double) { + @inlinable public func translate(x: Double, y: Double) { let this = jsObject _ = this[Strings.translate].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable func transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) { + @inlinable public func transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) { let this = jsObject - _ = this[Strings.transform].function!(this: this, arguments: [_toJSValue(a), _toJSValue(b), _toJSValue(c), _toJSValue(d), _toJSValue(e), _toJSValue(f)]) + _ = this[Strings.transform].function!( + this: this, + arguments: [_toJSValue(a), _toJSValue(b), _toJSValue(c), _toJSValue(d), _toJSValue(e), _toJSValue(f)] + ) } - @inlinable func getTransform() -> DOMMatrix { + @inlinable public func getTransform() -> DOMMatrix { let this = jsObject return this[Strings.getTransform].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) { + @inlinable public func setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) { let this = jsObject - _ = this[Strings.setTransform].function!(this: this, arguments: [_toJSValue(a), _toJSValue(b), _toJSValue(c), _toJSValue(d), _toJSValue(e), _toJSValue(f)]) + _ = this[Strings.setTransform].function!( + this: this, + arguments: [_toJSValue(a), _toJSValue(b), _toJSValue(c), _toJSValue(d), _toJSValue(e), _toJSValue(f)] + ) } - @inlinable func setTransform(transform: DOMMatrix2DInit? = nil) { + @inlinable public func setTransform(transform: DOMMatrix2DInit? = nil) { let this = jsObject _ = this[Strings.setTransform].function!(this: this, arguments: [_toJSValue(transform)]) } - @inlinable func resetTransform() { + @inlinable public func resetTransform() { let this = jsObject _ = this[Strings.resetTransform].function!(this: this, arguments: []) } } - public protocol CanvasUserInterface: JSBridgedClass {} -public extension CanvasUserInterface { - @inlinable func drawFocusIfNeeded(element: Element) { +extension CanvasUserInterface { + @inlinable public func drawFocusIfNeeded(element: Element) { let this = jsObject _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [_toJSValue(element)]) } - @inlinable func drawFocusIfNeeded(path: Path2D, element: Element) { + @inlinable public func drawFocusIfNeeded(path: Path2D, element: Element) { let this = jsObject _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [_toJSValue(path), _toJSValue(element)]) } - - @inlinable func scrollPathIntoView() { - let this = jsObject - _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: []) - } - - @inlinable func scrollPathIntoView(path: Path2D) { - let this = jsObject - _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: [_toJSValue(path)]) - } } - public class CaretPosition: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CaretPosition].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _offsetNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetNode) - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var offsetNode: Node + @inlinable public var offsetNode: Node { jsObject[Strings.offsetNode].fromJSValue()! } - @ReadonlyAttribute - public var offset: UInt32 + @inlinable public var offset: UInt32 { jsObject[Strings.offset].fromJSValue()! } - @inlinable public func getClientRect() -> DOMRect? { + @inlinable final public func getClientRect() -> DOMRect? { let this = jsObject return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue() } } -public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CharacterData].function } +open class CaretPositionFromPointOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(shadowRoots: [ShadowRoot]? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.shadowRoots] = _toJSValue(shadowRoots) + + self.init(unsafelyWrapping: object) + } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadWriteAttribute(jsObject: jsObject, name: Strings.data) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - super.init(unsafelyWrapping: jsObject) + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var shadowRoots: [ShadowRoot] { + get { jsObject[Strings.shadowRoots].fromJSValue()! } + set { jsObject[Strings.shadowRoots] = _toJSValue(newValue) } } +} +public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CharacterData].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var data: String + @inlinable public var data: String { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public func substringData(offset: UInt32, count: UInt32) -> String { + @inlinable final public func substringData(offset: UInt32, count: UInt32) -> String { let this = jsObject - return this[Strings.substringData].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(count)]).fromJSValue()! + return this[Strings.substringData].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(count)]) + .fromJSValue()! } - @inlinable public func appendData(data: String) { + @inlinable final public func appendData(data: String) { let this = jsObject _ = this[Strings.appendData].function!(this: this, arguments: [_toJSValue(data)]) } - @inlinable public func insertData(offset: UInt32, data: String) { + @inlinable final public func insertData(offset: UInt32, data: String) { let this = jsObject _ = this[Strings.insertData].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(data)]) } - @inlinable public func deleteData(offset: UInt32, count: UInt32) { + @inlinable final public func deleteData(offset: UInt32, count: UInt32) { let this = jsObject _ = this[Strings.deleteData].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(count)]) } - @inlinable public func replaceData(offset: UInt32, count: UInt32, data: String) { + @inlinable final public func replaceData(offset: UInt32, count: UInt32, data: String) { let this = jsObject - _ = this[Strings.replaceData].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(count), _toJSValue(data)]) + _ = this[Strings.replaceData].function!( + this: this, + arguments: [_toJSValue(offset), _toJSValue(count), _toJSValue(data)] + ) } } -public class CheckVisibilityOptions: BridgedDictionary { - public convenience init(checkOpacity: Bool, checkVisibilityCSS: Bool) { +open class CheckVisibilityOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + checkOpacity: Bool? = nil, + checkVisibilityCSS: Bool? = nil, + contentVisibilityAuto: Bool? = nil, + opacityProperty: Bool? = nil, + visibilityProperty: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.checkOpacity] = _toJSValue(checkOpacity) object[Strings.checkVisibilityCSS] = _toJSValue(checkVisibilityCSS) - self.init(unsafelyWrapping: object) - } + object[Strings.contentVisibilityAuto] = _toJSValue(contentVisibilityAuto) + object[Strings.opacityProperty] = _toJSValue(opacityProperty) + object[Strings.visibilityProperty] = _toJSValue(visibilityProperty) - public required init(unsafelyWrapping object: JSObject) { - _checkOpacity = ReadWriteAttribute(jsObject: object, name: Strings.checkOpacity) - _checkVisibilityCSS = ReadWriteAttribute(jsObject: object, name: Strings.checkVisibilityCSS) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var checkOpacity: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var checkVisibilityCSS: Bool + @inlinable public var checkOpacity: Bool { + get { jsObject[Strings.checkOpacity].fromJSValue()! } + set { jsObject[Strings.checkOpacity] = _toJSValue(newValue) } + } + @inlinable public var checkVisibilityCSS: Bool { + get { jsObject[Strings.checkVisibilityCSS].fromJSValue()! } + set { jsObject[Strings.checkVisibilityCSS] = _toJSValue(newValue) } + } + @inlinable public var contentVisibilityAuto: Bool { + get { jsObject[Strings.contentVisibilityAuto].fromJSValue()! } + set { jsObject[Strings.contentVisibilityAuto] = _toJSValue(newValue) } + } + @inlinable public var opacityProperty: Bool { + get { jsObject[Strings.opacityProperty].fromJSValue()! } + set { jsObject[Strings.opacityProperty] = _toJSValue(newValue) } + } + @inlinable public var visibilityProperty: Bool { + get { jsObject[Strings.visibilityProperty].fromJSValue()! } + set { jsObject[Strings.visibilityProperty] = _toJSValue(newValue) } + } } - public protocol ChildNode: JSBridgedClass {} -public extension ChildNode { - @inlinable func before(nodes: Node_or_String...) { +extension ChildNode { + @inlinable public func before(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.before].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func after(nodes: Node_or_String...) { + @inlinable public func after(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.after].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func replaceWith(nodes: Node_or_String...) { + @inlinable public func replaceWith(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.replaceWith].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func remove() { + @inlinable public func remove() { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: []) } } +open class ClientQueryOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ClientQueryOptions: BridgedDictionary { - public convenience init(includeUncontrolled: Bool, type: ClientType) { + public convenience init(includeUncontrolled: Bool? = nil, type: ClientType? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.includeUncontrolled] = _toJSValue(includeUncontrolled) object[Strings.type] = _toJSValue(type) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _includeUncontrolled = ReadWriteAttribute(jsObject: object, name: Strings.includeUncontrolled) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var includeUncontrolled: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: ClientType + @inlinable public var includeUncontrolled: Bool { + get { jsObject[Strings.includeUncontrolled].fromJSValue()! } + set { jsObject[Strings.includeUncontrolled] = _toJSValue(newValue) } + } + @inlinable public var type: ClientType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } - public enum ClientType: JSString, JSValueCompatible { case window = "window" case worker = "worker" @@ -2473,230 +2832,339 @@ public enum ClientType: JSString, JSValueCompatible { case all = "all" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class CloseWatcher: EventTarget { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CloseWatcher].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(options: CloseWatcherOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(options)])) + } + + @inlinable final public func requestClose() { + let this = jsObject + _ = this[Strings.requestClose].function!(this: this, arguments: []) + } + + @inlinable final public func close() { + let this = jsObject + _ = this[Strings.close].function!(this: this, arguments: []) + } + + @inlinable final public func destroy() { + let this = jsObject + _ = this[Strings.destroy].function!(this: this, arguments: []) + } + + @inlinable public var oncancel: EventHandler { + get { + guard let function = jsObject[Strings.oncancel].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncancel] = .null + } + } + } + + @inlinable public var onclose: EventHandler { + get { + guard let function = jsObject[Strings.onclose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onclose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onclose] = .null + } + } + } +} + +open class CloseWatcherOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(signal: AbortSignal? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.signal] = _toJSValue(signal) + + self.init(unsafelyWrapping: object) + } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var signal: AbortSignal { + get { jsObject[Strings.signal].fromJSValue()! } + set { jsObject[Strings.signal] = _toJSValue(newValue) } + } +} public enum CodecState: JSString, JSValueCompatible { case unconfigured = "unconfigured" case configured = "configured" case closed = "closed" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ColorSpaceConversion: JSString, JSValueCompatible { case none = "none" case `default` = "default" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class CommandEvent: Event { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CommandEvent].function } -public class Comment: CharacterData { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Comment].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public convenience init(type: String, eventInitDict: CommandEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @inlinable public convenience init(data: String? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(data)])) + @inlinable public var source: Element? { jsObject[Strings.source].fromJSValue() } + + @inlinable public var command: String { jsObject[Strings.command].fromJSValue()! } +} + +open class CommandEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + source: Element?, + command: String? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) + object[Strings.source] = _toJSValue(source) + object[Strings.command] = _toJSValue(command) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var source: Element? { + get { jsObject[Strings.source].fromJSValue() } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } + @inlinable public var command: String { + get { jsObject[Strings.command].fromJSValue()! } + set { jsObject[Strings.command] = _toJSValue(newValue) } + } +} +public class Comment: CharacterData { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Comment].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(data: String? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(data)])) } } public class CompositionEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CompositionEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CompositionEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: CompositionEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var data: String + @inlinable public var data: String { jsObject[Strings.data].fromJSValue()! } - @inlinable public func initCompositionEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: WindowProxy? = nil, dataArg: String? = nil) { + @inlinable final public func initCompositionEvent( + typeArg: String, + bubblesArg: Bool? = nil, + cancelableArg: Bool? = nil, + viewArg: WindowProxy? = nil, + dataArg: String? = nil + ) { let this = jsObject - _ = this[Strings.initCompositionEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), _toJSValue(dataArg)]) + _ = this[Strings.initCompositionEvent].function!( + this: this, + arguments: [ + _toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), + _toJSValue(dataArg), + ] + ) } } -public class CompositionEventInit: BridgedDictionary { - public convenience init(data: String) { +open class CompositionEventInit: UIEventInit { + + public convenience init(view: Window?, detail: Int32? = nil, which: UInt32? = nil, data: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.view] = _toJSValue(view) + object[Strings.detail] = _toJSValue(detail) + object[Strings.which] = _toJSValue(which) object[Strings.data] = _toJSValue(data) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var data: String + @inlinable public var data: String { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } } +open class ConstrainBooleanParameters: JSDictionaryCompatible { + public let jsObject: JSObject -public class ConstrainBooleanParameters: BridgedDictionary { - public convenience init(exact: Bool, ideal: Bool) { + public convenience init(exact: Bool? = nil, ideal: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.exact] = _toJSValue(exact) object[Strings.ideal] = _toJSValue(ideal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) - _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var exact: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var ideal: Bool + @inlinable public var exact: Bool { + get { jsObject[Strings.exact].fromJSValue()! } + set { jsObject[Strings.exact] = _toJSValue(newValue) } + } + @inlinable public var ideal: Bool { + get { jsObject[Strings.ideal].fromJSValue()! } + set { jsObject[Strings.ideal] = _toJSValue(newValue) } + } } +open class ConstrainDOMStringParameters: JSDictionaryCompatible { + public let jsObject: JSObject -public class ConstrainDOMStringParameters: BridgedDictionary { - public convenience init(exact: String_or_seq_of_String, ideal: String_or_seq_of_String) { + public convenience init(exact: String_or_seq_of_String? = nil, ideal: String_or_seq_of_String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.exact] = _toJSValue(exact) object[Strings.ideal] = _toJSValue(ideal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) - _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var exact: String_or_seq_of_String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var ideal: String_or_seq_of_String + @inlinable public var exact: String_or_seq_of_String { + get { jsObject[Strings.exact].fromJSValue()! } + set { jsObject[Strings.exact] = _toJSValue(newValue) } + } + @inlinable public var ideal: String_or_seq_of_String { + get { jsObject[Strings.ideal].fromJSValue()! } + set { jsObject[Strings.ideal] = _toJSValue(newValue) } + } } +open class ConstrainDoubleRange: DoubleRange { -public class ConstrainDoubleRange: BridgedDictionary { - public convenience init(exact: Double, ideal: Double) { + public convenience init(max: Double? = nil, min: Double? = nil, exact: Double? = nil, ideal: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.max] = _toJSValue(max) + object[Strings.min] = _toJSValue(min) object[Strings.exact] = _toJSValue(exact) object[Strings.ideal] = _toJSValue(ideal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) - _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var exact: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var ideal: Double + @inlinable public var exact: Double { + get { jsObject[Strings.exact].fromJSValue()! } + set { jsObject[Strings.exact] = _toJSValue(newValue) } + } + @inlinable public var ideal: Double { + get { jsObject[Strings.ideal].fromJSValue()! } + set { jsObject[Strings.ideal] = _toJSValue(newValue) } + } } +open class ConstrainULongRange: ULongRange { -public class ConstrainULongRange: BridgedDictionary { - public convenience init(exact: UInt32, ideal: UInt32) { + public convenience init(max: UInt32? = nil, min: UInt32? = nil, exact: UInt32? = nil, ideal: UInt32? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.max] = _toJSValue(max) + object[Strings.min] = _toJSValue(min) object[Strings.exact] = _toJSValue(exact) object[Strings.ideal] = _toJSValue(ideal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact) - _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var exact: UInt32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var ideal: UInt32 + @inlinable public var exact: UInt32 { + get { jsObject[Strings.exact].fromJSValue()! } + set { jsObject[Strings.exact] = _toJSValue(newValue) } + } + @inlinable public var ideal: UInt32 { + get { jsObject[Strings.ideal].fromJSValue()! } + set { jsObject[Strings.ideal] = _toJSValue(newValue) } + } } +open class ConvertCoordinateOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ConvertCoordinateOptions: BridgedDictionary { - public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) { + public convenience init(fromBox: CSSBoxType? = nil, toBox: CSSBoxType? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.fromBox] = _toJSValue(fromBox) object[Strings.toBox] = _toJSValue(toBox) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _fromBox = ReadWriteAttribute(jsObject: object, name: Strings.fromBox) - _toBox = ReadWriteAttribute(jsObject: object, name: Strings.toBox) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var fromBox: CSSBoxType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var toBox: CSSBoxType + @inlinable public var fromBox: CSSBoxType { + get { jsObject[Strings.fromBox].fromJSValue()! } + set { jsObject[Strings.fromBox] = _toJSValue(newValue) } + } + @inlinable public var toBox: CSSBoxType { + get { jsObject[Strings.toBox].fromJSValue()! } + set { jsObject[Strings.toBox] = _toJSValue(newValue) } + } } - public class CountQueuingStrategy: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CountQueuingStrategy].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark) - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: QueuingStrategyInit) { + @inlinable public convenience init(`init`: QueuingStrategyInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var highWaterMark: Double + @inlinable public var highWaterMark: Double { jsObject[Strings.highWaterMark].fromJSValue()! } - @ReadonlyAttribute - public var size: JSFunction + @inlinable public var size: JSFunction { jsObject[Strings.size].fromJSValue()! } } public class CustomElementRegistry: JSBridgedClass { @@ -2704,78 +3172,109 @@ public class CustomElementRegistry: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func define(name: String, constructor: CustomElementConstructor, options: ElementDefinitionOptions? = nil) { + @inlinable final public func define( + name: String, + constructor: CustomElementConstructor, + options: ElementDefinitionOptions? = nil + ) { let this = jsObject - _ = this[Strings.define].function!(this: this, arguments: [_toJSValue(name), _toJSValue(constructor), _toJSValue(options)]) + _ = this[Strings.define].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(constructor), _toJSValue(options)] + ) } - @inlinable public func get(name: String) -> CustomElementConstructor? { + @inlinable final public func get(name: String) -> CustomElementConstructor? { let this = jsObject return this[Strings.get].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @inlinable public func getName(constructor: CustomElementConstructor) -> String? { + @inlinable final public func getName(constructor: CustomElementConstructor) -> String? { let this = jsObject return this[Strings.getName].function!(this: this, arguments: [_toJSValue(constructor)]).fromJSValue() } - @inlinable public func whenDefined(name: String) -> JSPromise { + @inlinable final public func whenDefined(name: String) -> JSPromise { let this = jsObject return this[Strings.whenDefined].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func whenDefined(name: String) async throws -> CustomElementConstructor { - let this = jsObject - let _promise: JSPromise = this[Strings.whenDefined].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func whenDefined( + name: String + ) async throws(JSException) -> CustomElementConstructor { + let this = jsObject + let _promise: JSPromise = this[Strings.whenDefined].function!(this: this, arguments: [_toJSValue(name)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func upgrade(root: Node) { + @inlinable final public func upgrade(root: Node) { let this = jsObject _ = this[Strings.upgrade].function!(this: this, arguments: [_toJSValue(root)]) } } public class CustomEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CustomEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CustomEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: CustomEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var detail: JSValue + @inlinable public var detail: JSValue { jsObject[Strings.detail].fromJSValue()! } - @inlinable public func initCustomEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, detail: JSValue? = nil) { + @inlinable final public func initCustomEvent( + type: String, + bubbles: Bool? = nil, + cancelable: Bool? = nil, + detail: JSValue? = nil + ) { let this = jsObject - _ = this[Strings.initCustomEvent].function!(this: this, arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(detail)]) + _ = this[Strings.initCustomEvent].function!( + this: this, + arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(detail)] + ) } } -public class CustomEventInit: BridgedDictionary { - public convenience init(detail: JSValue) { +open class CustomEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + detail: JSValue? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.detail] = _toJSValue(detail) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var detail: JSValue { + get { jsObject[Strings.detail].fromJSValue()! } + set { jsObject[Strings.detail] = _toJSValue(newValue) } } +} +public class CustomStateSet: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CustomStateSet].function } - @ReadWriteAttribute - public var detail: JSValue + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + // XXX: make me Set-like! } public class DOMImplementation: JSBridgedClass { @@ -2783,274 +3282,182 @@ public class DOMImplementation: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func createDocumentType(qualifiedName: String, publicId: String, systemId: String) -> DocumentType { + @inlinable final public func createDocumentType( + qualifiedName: String, + publicId: String, + systemId: String + ) -> DocumentType { let this = jsObject - return this[Strings.createDocumentType].function!(this: this, arguments: [_toJSValue(qualifiedName), _toJSValue(publicId), _toJSValue(systemId)]).fromJSValue()! + return this[Strings.createDocumentType].function!( + this: this, + arguments: [_toJSValue(qualifiedName), _toJSValue(publicId), _toJSValue(systemId)] + ).fromJSValue()! } - @inlinable public func createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType? = nil) -> XMLDocument { + @inlinable final public func createDocument( + namespace: String?, + qualifiedName: String, + doctype: DocumentType? = nil + ) -> XMLDocument { let this = jsObject - return this[Strings.createDocument].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(doctype)]).fromJSValue()! + return this[Strings.createDocument].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(doctype)] + ).fromJSValue()! } - @inlinable public func createHTMLDocument(title: String? = nil) -> Document { + @inlinable final public func createHTMLDocument(title: String? = nil) -> Document { let this = jsObject return this[Strings.createHTMLDocument].function!(this: this, arguments: [_toJSValue(title)]).fromJSValue()! } - @inlinable public func hasFeature() -> Bool { + @inlinable final public func hasFeature() -> Bool { let this = jsObject return this[Strings.hasFeature].function!(this: this, arguments: []).fromJSValue()! } } public class DOMMatrix: DOMMatrixReadOnly { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrix].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _a = ReadWriteAttribute(jsObject: jsObject, name: Strings.a) - _b = ReadWriteAttribute(jsObject: jsObject, name: Strings.b) - _c = ReadWriteAttribute(jsObject: jsObject, name: Strings.c) - _d = ReadWriteAttribute(jsObject: jsObject, name: Strings.d) - _e = ReadWriteAttribute(jsObject: jsObject, name: Strings.e) - _f = ReadWriteAttribute(jsObject: jsObject, name: Strings.f) - _m11 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m11) - _m12 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m12) - _m13 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m13) - _m14 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m14) - _m21 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m21) - _m22 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m22) - _m23 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m23) - _m24 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m24) - _m31 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m31) - _m32 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m32) - _m33 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m33) - _m34 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m34) - _m41 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m41) - _m42 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m42) - _m43 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m43) - _m44 = ReadWriteAttribute(jsObject: jsObject, name: Strings.m44) - super.init(unsafelyWrapping: jsObject) - } - - @inlinable public convenience init(init: String_or_seq_of_Double? = nil) { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrix].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(`init`: String_or_seq_of_Double? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @inlinable override public class func fromMatrix(other: DOMMatrixInit? = nil) -> Self { + @inlinable override public class func fromMatrix(other: DOMMatrixInit? = nil) -> DOMMatrix { let this = constructor! return this[Strings.fromMatrix].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable override public class func fromFloat32Array(array32: Float32Array) -> Self { + @inlinable override public class func fromFloat32Array(array32: Float32Array) -> DOMMatrix { let this = constructor! return this[Strings.fromFloat32Array].function!(this: this, arguments: [_toJSValue(array32)]).fromJSValue()! } - @inlinable override public class func fromFloat64Array(array64: Float64Array) -> Self { + @inlinable override public class func fromFloat64Array(array64: Float64Array) -> DOMMatrix { let this = constructor! return this[Strings.fromFloat64Array].function!(this: this, arguments: [_toJSValue(array64)]).fromJSValue()! } - @usableFromInline let _a: ReadWriteAttribute - @inlinable override public var a: Double { - get { _a.wrappedValue } - set { _a.wrappedValue = newValue } - } - - @usableFromInline let _b: ReadWriteAttribute - @inlinable override public var b: Double { - get { _b.wrappedValue } - set { _b.wrappedValue = newValue } - } - - @usableFromInline let _c: ReadWriteAttribute - @inlinable override public var c: Double { - get { _c.wrappedValue } - set { _c.wrappedValue = newValue } - } - - @usableFromInline let _d: ReadWriteAttribute - @inlinable override public var d: Double { - get { _d.wrappedValue } - set { _d.wrappedValue = newValue } - } - - @usableFromInline let _e: ReadWriteAttribute - @inlinable override public var e: Double { - get { _e.wrappedValue } - set { _e.wrappedValue = newValue } - } - - @usableFromInline let _f: ReadWriteAttribute - @inlinable override public var f: Double { - get { _f.wrappedValue } - set { _f.wrappedValue = newValue } - } - - @usableFromInline let _m11: ReadWriteAttribute - @inlinable override public var m11: Double { - get { _m11.wrappedValue } - set { _m11.wrappedValue = newValue } - } - - @usableFromInline let _m12: ReadWriteAttribute - @inlinable override public var m12: Double { - get { _m12.wrappedValue } - set { _m12.wrappedValue = newValue } - } - - @usableFromInline let _m13: ReadWriteAttribute - @inlinable override public var m13: Double { - get { _m13.wrappedValue } - set { _m13.wrappedValue = newValue } - } - - @usableFromInline let _m14: ReadWriteAttribute - @inlinable override public var m14: Double { - get { _m14.wrappedValue } - set { _m14.wrappedValue = newValue } - } - - @usableFromInline let _m21: ReadWriteAttribute - @inlinable override public var m21: Double { - get { _m21.wrappedValue } - set { _m21.wrappedValue = newValue } - } - - @usableFromInline let _m22: ReadWriteAttribute - @inlinable override public var m22: Double { - get { _m22.wrappedValue } - set { _m22.wrappedValue = newValue } - } - - @usableFromInline let _m23: ReadWriteAttribute - @inlinable override public var m23: Double { - get { _m23.wrappedValue } - set { _m23.wrappedValue = newValue } - } - - @usableFromInline let _m24: ReadWriteAttribute - @inlinable override public var m24: Double { - get { _m24.wrappedValue } - set { _m24.wrappedValue = newValue } - } - - @usableFromInline let _m31: ReadWriteAttribute - @inlinable override public var m31: Double { - get { _m31.wrappedValue } - set { _m31.wrappedValue = newValue } - } - - @usableFromInline let _m32: ReadWriteAttribute - @inlinable override public var m32: Double { - get { _m32.wrappedValue } - set { _m32.wrappedValue = newValue } - } - - @usableFromInline let _m33: ReadWriteAttribute - @inlinable override public var m33: Double { - get { _m33.wrappedValue } - set { _m33.wrappedValue = newValue } - } - - @usableFromInline let _m34: ReadWriteAttribute - @inlinable override public var m34: Double { - get { _m34.wrappedValue } - set { _m34.wrappedValue = newValue } - } - - @usableFromInline let _m41: ReadWriteAttribute - @inlinable override public var m41: Double { - get { _m41.wrappedValue } - set { _m41.wrappedValue = newValue } - } - - @usableFromInline let _m42: ReadWriteAttribute - @inlinable override public var m42: Double { - get { _m42.wrappedValue } - set { _m42.wrappedValue = newValue } - } - - @usableFromInline let _m43: ReadWriteAttribute - @inlinable override public var m43: Double { - get { _m43.wrappedValue } - set { _m43.wrappedValue = newValue } - } - - @usableFromInline let _m44: ReadWriteAttribute - @inlinable override public var m44: Double { - get { _m44.wrappedValue } - set { _m44.wrappedValue = newValue } - } - - @inlinable public func multiplySelf(other: DOMMatrixInit? = nil) -> Self { + @inlinable final public func multiplySelf(other: DOMMatrixInit? = nil) -> DOMMatrix { let this = jsObject return this[Strings.multiplySelf].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public func preMultiplySelf(other: DOMMatrixInit? = nil) -> Self { + @inlinable final public func preMultiplySelf(other: DOMMatrixInit? = nil) -> DOMMatrix { let this = jsObject return this[Strings.preMultiplySelf].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public func translateSelf(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> Self { + @inlinable final public func translateSelf(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.translateSelf].function!(this: this, arguments: [_toJSValue(tx), _toJSValue(ty), _toJSValue(tz)]).fromJSValue()! + return this[Strings.translateSelf].function!( + this: this, + arguments: [_toJSValue(tx), _toJSValue(ty), _toJSValue(tz)] + ).fromJSValue()! } - @inlinable public func scaleSelf(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self { + @inlinable final public func scaleSelf( + scaleX: Double? = nil, + scaleY: Double? = nil, + scaleZ: Double? = nil, + originX: Double? = nil, + originY: Double? = nil, + originZ: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.scaleSelf].function!(this: this, arguments: [_toJSValue(scaleX), _toJSValue(scaleY), _toJSValue(scaleZ), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)]).fromJSValue()! + return this[Strings.scaleSelf].function!( + this: this, + arguments: [ + _toJSValue(scaleX), _toJSValue(scaleY), _toJSValue(scaleZ), _toJSValue(originX), _toJSValue(originY), + _toJSValue(originZ), + ] + ).fromJSValue()! } - @inlinable public func scale3dSelf(scale: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self { + @inlinable final public func scale3dSelf( + scale: Double? = nil, + originX: Double? = nil, + originY: Double? = nil, + originZ: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.scale3dSelf].function!(this: this, arguments: [_toJSValue(scale), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)]).fromJSValue()! + return this[Strings.scale3dSelf].function!( + this: this, + arguments: [_toJSValue(scale), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)] + ).fromJSValue()! } - @inlinable public func rotateSelf(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> Self { + @inlinable final public func rotateSelf(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> DOMMatrix + { let this = jsObject - return this[Strings.rotateSelf].function!(this: this, arguments: [_toJSValue(rotX), _toJSValue(rotY), _toJSValue(rotZ)]).fromJSValue()! + return this[Strings.rotateSelf].function!( + this: this, + arguments: [_toJSValue(rotX), _toJSValue(rotY), _toJSValue(rotZ)] + ).fromJSValue()! } - @inlinable public func rotateFromVectorSelf(x: Double? = nil, y: Double? = nil) -> Self { + @inlinable final public func rotateFromVectorSelf(x: Double? = nil, y: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.rotateFromVectorSelf].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.rotateFromVectorSelf].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) + .fromJSValue()! } - @inlinable public func rotateAxisAngleSelf(x: Double? = nil, y: Double? = nil, z: Double? = nil, angle: Double? = nil) -> Self { + @inlinable final public func rotateAxisAngleSelf( + x: Double? = nil, + y: Double? = nil, + z: Double? = nil, + angle: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.rotateAxisAngleSelf].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle)]).fromJSValue()! + return this[Strings.rotateAxisAngleSelf].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle)] + ).fromJSValue()! } - @inlinable public func skewXSelf(sx: Double? = nil) -> Self { + @inlinable final public func skewXSelf(sx: Double? = nil) -> DOMMatrix { let this = jsObject return this[Strings.skewXSelf].function!(this: this, arguments: [_toJSValue(sx)]).fromJSValue()! } - @inlinable public func skewYSelf(sy: Double? = nil) -> Self { + @inlinable final public func skewYSelf(sy: Double? = nil) -> DOMMatrix { let this = jsObject return this[Strings.skewYSelf].function!(this: this, arguments: [_toJSValue(sy)]).fromJSValue()! } - @inlinable public func invertSelf() -> Self { + @inlinable final public func invertSelf() -> DOMMatrix { let this = jsObject return this[Strings.invertSelf].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setMatrixValue(transformList: String) -> Self { + @inlinable final public func setMatrixValue(transformList: String) -> DOMMatrix { let this = jsObject return this[Strings.setMatrixValue].function!(this: this, arguments: [_toJSValue(transformList)]).fromJSValue()! } } -public class DOMMatrix2DInit: BridgedDictionary { - public convenience init(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double, m11: Double, m12: Double, m21: Double, m22: Double, m41: Double, m42: Double) { +open class DOMMatrix2DInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + a: Double? = nil, + b: Double? = nil, + c: Double? = nil, + d: Double? = nil, + e: Double? = nil, + f: Double? = nil, + m11: Double? = nil, + m12: Double? = nil, + m21: Double? = nil, + m22: Double? = nil, + m41: Double? = nil, + m42: Double? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.a] = _toJSValue(a) object[Strings.b] = _toJSValue(b) @@ -3064,65 +3471,101 @@ public class DOMMatrix2DInit: BridgedDictionary { object[Strings.m22] = _toJSValue(m22) object[Strings.m41] = _toJSValue(m41) object[Strings.m42] = _toJSValue(m42) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _a = ReadWriteAttribute(jsObject: object, name: Strings.a) - _b = ReadWriteAttribute(jsObject: object, name: Strings.b) - _c = ReadWriteAttribute(jsObject: object, name: Strings.c) - _d = ReadWriteAttribute(jsObject: object, name: Strings.d) - _e = ReadWriteAttribute(jsObject: object, name: Strings.e) - _f = ReadWriteAttribute(jsObject: object, name: Strings.f) - _m11 = ReadWriteAttribute(jsObject: object, name: Strings.m11) - _m12 = ReadWriteAttribute(jsObject: object, name: Strings.m12) - _m21 = ReadWriteAttribute(jsObject: object, name: Strings.m21) - _m22 = ReadWriteAttribute(jsObject: object, name: Strings.m22) - _m41 = ReadWriteAttribute(jsObject: object, name: Strings.m41) - _m42 = ReadWriteAttribute(jsObject: object, name: Strings.m42) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var a: Double - - @ReadWriteAttribute - public var b: Double - - @ReadWriteAttribute - public var c: Double - - @ReadWriteAttribute - public var d: Double - - @ReadWriteAttribute - public var e: Double - - @ReadWriteAttribute - public var f: Double - - @ReadWriteAttribute - public var m11: Double - - @ReadWriteAttribute - public var m12: Double - - @ReadWriteAttribute - public var m21: Double - - @ReadWriteAttribute - public var m22: Double - - @ReadWriteAttribute - public var m41: Double - - @ReadWriteAttribute - public var m42: Double -} - -public class DOMMatrixInit: BridgedDictionary { - public convenience init(m13: Double, m14: Double, m23: Double, m24: Double, m31: Double, m32: Double, m33: Double, m34: Double, m43: Double, m44: Double, is2D: Bool) { + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var a: Double { + get { jsObject[Strings.a].fromJSValue()! } + set { jsObject[Strings.a] = _toJSValue(newValue) } + } + @inlinable public var b: Double { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } + @inlinable public var c: Double { + get { jsObject[Strings.c].fromJSValue()! } + set { jsObject[Strings.c] = _toJSValue(newValue) } + } + @inlinable public var d: Double { + get { jsObject[Strings.d].fromJSValue()! } + set { jsObject[Strings.d] = _toJSValue(newValue) } + } + @inlinable public var e: Double { + get { jsObject[Strings.e].fromJSValue()! } + set { jsObject[Strings.e] = _toJSValue(newValue) } + } + @inlinable public var f: Double { + get { jsObject[Strings.f].fromJSValue()! } + set { jsObject[Strings.f] = _toJSValue(newValue) } + } + @inlinable public var m11: Double { + get { jsObject[Strings.m11].fromJSValue()! } + set { jsObject[Strings.m11] = _toJSValue(newValue) } + } + @inlinable public var m12: Double { + get { jsObject[Strings.m12].fromJSValue()! } + set { jsObject[Strings.m12] = _toJSValue(newValue) } + } + @inlinable public var m21: Double { + get { jsObject[Strings.m21].fromJSValue()! } + set { jsObject[Strings.m21] = _toJSValue(newValue) } + } + @inlinable public var m22: Double { + get { jsObject[Strings.m22].fromJSValue()! } + set { jsObject[Strings.m22] = _toJSValue(newValue) } + } + @inlinable public var m41: Double { + get { jsObject[Strings.m41].fromJSValue()! } + set { jsObject[Strings.m41] = _toJSValue(newValue) } + } + @inlinable public var m42: Double { + get { jsObject[Strings.m42].fromJSValue()! } + set { jsObject[Strings.m42] = _toJSValue(newValue) } + } +} +open class DOMMatrixInit: DOMMatrix2DInit { + + public convenience init( + a: Double? = nil, + b: Double? = nil, + c: Double? = nil, + d: Double? = nil, + e: Double? = nil, + f: Double? = nil, + m11: Double? = nil, + m12: Double? = nil, + m21: Double? = nil, + m22: Double? = nil, + m41: Double? = nil, + m42: Double? = nil, + m13: Double? = nil, + m14: Double? = nil, + m23: Double? = nil, + m24: Double? = nil, + m31: Double? = nil, + m32: Double? = nil, + m33: Double? = nil, + m34: Double? = nil, + m43: Double? = nil, + m44: Double? = nil, + is2D: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.a] = _toJSValue(a) + object[Strings.b] = _toJSValue(b) + object[Strings.c] = _toJSValue(c) + object[Strings.d] = _toJSValue(d) + object[Strings.e] = _toJSValue(e) + object[Strings.f] = _toJSValue(f) + object[Strings.m11] = _toJSValue(m11) + object[Strings.m12] = _toJSValue(m12) + object[Strings.m21] = _toJSValue(m21) + object[Strings.m22] = _toJSValue(m22) + object[Strings.m41] = _toJSValue(m41) + object[Strings.m42] = _toJSValue(m42) object[Strings.m13] = _toJSValue(m13) object[Strings.m14] = _toJSValue(m14) object[Strings.m23] = _toJSValue(m23) @@ -3134,267 +3577,251 @@ public class DOMMatrixInit: BridgedDictionary { object[Strings.m43] = _toJSValue(m43) object[Strings.m44] = _toJSValue(m44) object[Strings.is2D] = _toJSValue(is2D) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _m13 = ReadWriteAttribute(jsObject: object, name: Strings.m13) - _m14 = ReadWriteAttribute(jsObject: object, name: Strings.m14) - _m23 = ReadWriteAttribute(jsObject: object, name: Strings.m23) - _m24 = ReadWriteAttribute(jsObject: object, name: Strings.m24) - _m31 = ReadWriteAttribute(jsObject: object, name: Strings.m31) - _m32 = ReadWriteAttribute(jsObject: object, name: Strings.m32) - _m33 = ReadWriteAttribute(jsObject: object, name: Strings.m33) - _m34 = ReadWriteAttribute(jsObject: object, name: Strings.m34) - _m43 = ReadWriteAttribute(jsObject: object, name: Strings.m43) - _m44 = ReadWriteAttribute(jsObject: object, name: Strings.m44) - _is2D = ReadWriteAttribute(jsObject: object, name: Strings.is2D) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var m13: Double - - @ReadWriteAttribute - public var m14: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var m23: Double - - @ReadWriteAttribute - public var m24: Double - - @ReadWriteAttribute - public var m31: Double - - @ReadWriteAttribute - public var m32: Double - - @ReadWriteAttribute - public var m33: Double - - @ReadWriteAttribute - public var m34: Double - - @ReadWriteAttribute - public var m43: Double - - @ReadWriteAttribute - public var m44: Double - - @ReadWriteAttribute - public var is2D: Bool + @inlinable public var m13: Double { + get { jsObject[Strings.m13].fromJSValue()! } + set { jsObject[Strings.m13] = _toJSValue(newValue) } + } + @inlinable public var m14: Double { + get { jsObject[Strings.m14].fromJSValue()! } + set { jsObject[Strings.m14] = _toJSValue(newValue) } + } + @inlinable public var m23: Double { + get { jsObject[Strings.m23].fromJSValue()! } + set { jsObject[Strings.m23] = _toJSValue(newValue) } + } + @inlinable public var m24: Double { + get { jsObject[Strings.m24].fromJSValue()! } + set { jsObject[Strings.m24] = _toJSValue(newValue) } + } + @inlinable public var m31: Double { + get { jsObject[Strings.m31].fromJSValue()! } + set { jsObject[Strings.m31] = _toJSValue(newValue) } + } + @inlinable public var m32: Double { + get { jsObject[Strings.m32].fromJSValue()! } + set { jsObject[Strings.m32] = _toJSValue(newValue) } + } + @inlinable public var m33: Double { + get { jsObject[Strings.m33].fromJSValue()! } + set { jsObject[Strings.m33] = _toJSValue(newValue) } + } + @inlinable public var m34: Double { + get { jsObject[Strings.m34].fromJSValue()! } + set { jsObject[Strings.m34] = _toJSValue(newValue) } + } + @inlinable public var m43: Double { + get { jsObject[Strings.m43].fromJSValue()! } + set { jsObject[Strings.m43] = _toJSValue(newValue) } + } + @inlinable public var m44: Double { + get { jsObject[Strings.m44].fromJSValue()! } + set { jsObject[Strings.m44] = _toJSValue(newValue) } + } + @inlinable public var is2D: Bool { + get { jsObject[Strings.is2D].fromJSValue()! } + set { jsObject[Strings.is2D] = _toJSValue(newValue) } + } } - public class DOMMatrixReadOnly: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrixReadOnly].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _a = ReadonlyAttribute(jsObject: jsObject, name: Strings.a) - _b = ReadonlyAttribute(jsObject: jsObject, name: Strings.b) - _c = ReadonlyAttribute(jsObject: jsObject, name: Strings.c) - _d = ReadonlyAttribute(jsObject: jsObject, name: Strings.d) - _e = ReadonlyAttribute(jsObject: jsObject, name: Strings.e) - _f = ReadonlyAttribute(jsObject: jsObject, name: Strings.f) - _m11 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m11) - _m12 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m12) - _m13 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m13) - _m14 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m14) - _m21 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m21) - _m22 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m22) - _m23 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m23) - _m24 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m24) - _m31 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m31) - _m32 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m32) - _m33 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m33) - _m34 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m34) - _m41 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m41) - _m42 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m42) - _m43 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m43) - _m44 = ReadonlyAttribute(jsObject: jsObject, name: Strings.m44) - _is2D = ReadonlyAttribute(jsObject: jsObject, name: Strings.is2D) - _isIdentity = ReadonlyAttribute(jsObject: jsObject, name: Strings.isIdentity) - self.jsObject = jsObject - } - - @inlinable public convenience init(init: String_or_seq_of_Double? = nil) { + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public convenience init(`init`: String_or_seq_of_Double? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @inlinable public class func fromMatrix(other: DOMMatrixInit? = nil) -> Self { + @inlinable public class func fromMatrix(other: DOMMatrixInit? = nil) -> DOMMatrixReadOnly { let this = constructor! return this[Strings.fromMatrix].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public class func fromFloat32Array(array32: Float32Array) -> Self { + @inlinable public class func fromFloat32Array(array32: Float32Array) -> DOMMatrixReadOnly { let this = constructor! return this[Strings.fromFloat32Array].function!(this: this, arguments: [_toJSValue(array32)]).fromJSValue()! } - @inlinable public class func fromFloat64Array(array64: Float64Array) -> Self { + @inlinable public class func fromFloat64Array(array64: Float64Array) -> DOMMatrixReadOnly { let this = constructor! return this[Strings.fromFloat64Array].function!(this: this, arguments: [_toJSValue(array64)]).fromJSValue()! } - @ReadonlyAttribute - public var a: Double + @inlinable public var a: Double { jsObject[Strings.a].fromJSValue()! } - @ReadonlyAttribute - public var b: Double + @inlinable public var b: Double { jsObject[Strings.b].fromJSValue()! } - @ReadonlyAttribute - public var c: Double + @inlinable public var c: Double { jsObject[Strings.c].fromJSValue()! } - @ReadonlyAttribute - public var d: Double + @inlinable public var d: Double { jsObject[Strings.d].fromJSValue()! } - @ReadonlyAttribute - public var e: Double + @inlinable public var e: Double { jsObject[Strings.e].fromJSValue()! } - @ReadonlyAttribute - public var f: Double + @inlinable public var f: Double { jsObject[Strings.f].fromJSValue()! } - @ReadonlyAttribute - public var m11: Double + @inlinable public var m11: Double { jsObject[Strings.m11].fromJSValue()! } - @ReadonlyAttribute - public var m12: Double + @inlinable public var m12: Double { jsObject[Strings.m12].fromJSValue()! } - @ReadonlyAttribute - public var m13: Double + @inlinable public var m13: Double { jsObject[Strings.m13].fromJSValue()! } - @ReadonlyAttribute - public var m14: Double + @inlinable public var m14: Double { jsObject[Strings.m14].fromJSValue()! } - @ReadonlyAttribute - public var m21: Double + @inlinable public var m21: Double { jsObject[Strings.m21].fromJSValue()! } - @ReadonlyAttribute - public var m22: Double + @inlinable public var m22: Double { jsObject[Strings.m22].fromJSValue()! } - @ReadonlyAttribute - public var m23: Double + @inlinable public var m23: Double { jsObject[Strings.m23].fromJSValue()! } - @ReadonlyAttribute - public var m24: Double + @inlinable public var m24: Double { jsObject[Strings.m24].fromJSValue()! } - @ReadonlyAttribute - public var m31: Double + @inlinable public var m31: Double { jsObject[Strings.m31].fromJSValue()! } - @ReadonlyAttribute - public var m32: Double + @inlinable public var m32: Double { jsObject[Strings.m32].fromJSValue()! } - @ReadonlyAttribute - public var m33: Double + @inlinable public var m33: Double { jsObject[Strings.m33].fromJSValue()! } - @ReadonlyAttribute - public var m34: Double + @inlinable public var m34: Double { jsObject[Strings.m34].fromJSValue()! } - @ReadonlyAttribute - public var m41: Double + @inlinable public var m41: Double { jsObject[Strings.m41].fromJSValue()! } - @ReadonlyAttribute - public var m42: Double + @inlinable public var m42: Double { jsObject[Strings.m42].fromJSValue()! } - @ReadonlyAttribute - public var m43: Double + @inlinable public var m43: Double { jsObject[Strings.m43].fromJSValue()! } - @ReadonlyAttribute - public var m44: Double + @inlinable public var m44: Double { jsObject[Strings.m44].fromJSValue()! } - @ReadonlyAttribute - public var is2D: Bool + @inlinable public var is2D: Bool { jsObject[Strings.is2D].fromJSValue()! } - @ReadonlyAttribute - public var isIdentity: Bool + @inlinable public var isIdentity: Bool { jsObject[Strings.isIdentity].fromJSValue()! } - @inlinable public func translate(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> DOMMatrix { + @inlinable final public func translate(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.translate].function!(this: this, arguments: [_toJSValue(tx), _toJSValue(ty), _toJSValue(tz)]).fromJSValue()! + return this[Strings.translate].function!( + this: this, + arguments: [_toJSValue(tx), _toJSValue(ty), _toJSValue(tz)] + ).fromJSValue()! } - @inlinable public func scale(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> DOMMatrix { + @inlinable final public func scale( + scaleX: Double? = nil, + scaleY: Double? = nil, + scaleZ: Double? = nil, + originX: Double? = nil, + originY: Double? = nil, + originZ: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.scale].function!(this: this, arguments: [_toJSValue(scaleX), _toJSValue(scaleY), _toJSValue(scaleZ), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)]).fromJSValue()! + return this[Strings.scale].function!( + this: this, + arguments: [ + _toJSValue(scaleX), _toJSValue(scaleY), _toJSValue(scaleZ), _toJSValue(originX), _toJSValue(originY), + _toJSValue(originZ), + ] + ).fromJSValue()! } - @inlinable public func scaleNonUniform(scaleX: Double? = nil, scaleY: Double? = nil) -> DOMMatrix { + @inlinable final public func scaleNonUniform(scaleX: Double? = nil, scaleY: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.scaleNonUniform].function!(this: this, arguments: [_toJSValue(scaleX), _toJSValue(scaleY)]).fromJSValue()! + return this[Strings.scaleNonUniform].function!(this: this, arguments: [_toJSValue(scaleX), _toJSValue(scaleY)]) + .fromJSValue()! } - @inlinable public func scale3d(scale: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> DOMMatrix { + @inlinable final public func scale3d( + scale: Double? = nil, + originX: Double? = nil, + originY: Double? = nil, + originZ: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.scale3d].function!(this: this, arguments: [_toJSValue(scale), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)]).fromJSValue()! + return this[Strings.scale3d].function!( + this: this, + arguments: [_toJSValue(scale), _toJSValue(originX), _toJSValue(originY), _toJSValue(originZ)] + ).fromJSValue()! } - @inlinable public func rotate(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> DOMMatrix { + @inlinable final public func rotate(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.rotate].function!(this: this, arguments: [_toJSValue(rotX), _toJSValue(rotY), _toJSValue(rotZ)]).fromJSValue()! + return this[Strings.rotate].function!( + this: this, + arguments: [_toJSValue(rotX), _toJSValue(rotY), _toJSValue(rotZ)] + ).fromJSValue()! } - @inlinable public func rotateFromVector(x: Double? = nil, y: Double? = nil) -> DOMMatrix { + @inlinable final public func rotateFromVector(x: Double? = nil, y: Double? = nil) -> DOMMatrix { let this = jsObject - return this[Strings.rotateFromVector].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.rotateFromVector].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) + .fromJSValue()! } - @inlinable public func rotateAxisAngle(x: Double? = nil, y: Double? = nil, z: Double? = nil, angle: Double? = nil) -> DOMMatrix { + @inlinable final public func rotateAxisAngle( + x: Double? = nil, + y: Double? = nil, + z: Double? = nil, + angle: Double? = nil + ) -> DOMMatrix { let this = jsObject - return this[Strings.rotateAxisAngle].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle)]).fromJSValue()! + return this[Strings.rotateAxisAngle].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(angle)] + ).fromJSValue()! } - @inlinable public func skewX(sx: Double? = nil) -> DOMMatrix { + @inlinable final public func skewX(sx: Double? = nil) -> DOMMatrix { let this = jsObject return this[Strings.skewX].function!(this: this, arguments: [_toJSValue(sx)]).fromJSValue()! } - @inlinable public func skewY(sy: Double? = nil) -> DOMMatrix { + @inlinable final public func skewY(sy: Double? = nil) -> DOMMatrix { let this = jsObject return this[Strings.skewY].function!(this: this, arguments: [_toJSValue(sy)]).fromJSValue()! } - @inlinable public func multiply(other: DOMMatrixInit? = nil) -> DOMMatrix { + @inlinable final public func multiply(other: DOMMatrixInit? = nil) -> DOMMatrix { let this = jsObject return this[Strings.multiply].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public func flipX() -> DOMMatrix { + @inlinable final public func flipX() -> DOMMatrix { let this = jsObject return this[Strings.flipX].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func flipY() -> DOMMatrix { + @inlinable final public func flipY() -> DOMMatrix { let this = jsObject return this[Strings.flipY].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func inverse() -> DOMMatrix { + @inlinable final public func inverse() -> DOMMatrix { let this = jsObject return this[Strings.inverse].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func transformPoint(point: DOMPointInit? = nil) -> DOMPoint { + @inlinable final public func transformPoint(point: DOMPointInit? = nil) -> DOMPoint { let this = jsObject return this[Strings.transformPoint].function!(this: this, arguments: [_toJSValue(point)]).fromJSValue()! } - @inlinable public func toFloat32Array() -> Float32Array { + @inlinable final public func toFloat32Array() -> Float32Array { let this = jsObject return this[Strings.toFloat32Array].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func toFloat64Array() -> Float64Array { + @inlinable final public func toFloat64Array() -> Float64Array { let this = jsObject return this[Strings.toFloat64Array].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! - } + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -3405,17 +3832,17 @@ public class DOMParser: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @inlinable public func parseFromString(string: String, type: DOMParserSupportedType) -> Document { + @inlinable final public func parseFromString( + string: String_or_TrustedHTML, + type: DOMParserSupportedType + ) -> Document { let this = jsObject - return this[Strings.parseFromString].function!(this: this, arguments: [_toJSValue(string), _toJSValue(type)]).fromJSValue()! + return this[Strings.parseFromString].function!(this: this, arguments: [_toJSValue(string), _toJSValue(type)]) + .fromJSValue()! } } @@ -3427,135 +3854,100 @@ public enum DOMParserSupportedType: JSString, JSValueCompatible { case imageSvgXml = "image/svg+xml" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class DOMPoint: DOMPointReadOnly { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMPoint].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DOMPoint].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadWriteAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadWriteAttribute(jsObject: jsObject, name: Strings.y) - _z = ReadWriteAttribute(jsObject: jsObject, name: Strings.z) - _w = ReadWriteAttribute(jsObject: jsObject, name: Strings.w) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w), + ]) + ) } - @inlinable override public class func fromPoint(other: DOMPointInit? = nil) -> Self { + @inlinable override public class func fromPoint(other: DOMPointInit? = nil) -> DOMPoint { let this = constructor! return this[Strings.fromPoint].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @usableFromInline let _x: ReadWriteAttribute - @inlinable override public var x: Double { - get { _x.wrappedValue } - set { _x.wrappedValue = newValue } - } - - @usableFromInline let _y: ReadWriteAttribute - @inlinable override public var y: Double { - get { _y.wrappedValue } - set { _y.wrappedValue = newValue } - } - - @usableFromInline let _z: ReadWriteAttribute - @inlinable override public var z: Double { - get { _z.wrappedValue } - set { _z.wrappedValue = newValue } - } - - @usableFromInline let _w: ReadWriteAttribute - @inlinable override public var w: Double { - get { _w.wrappedValue } - set { _w.wrappedValue = newValue } - } } -public class DOMPointInit: BridgedDictionary { - public convenience init(x: Double, y: Double, z: Double, w: Double) { +open class DOMPointInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.x] = _toJSValue(x) object[Strings.y] = _toJSValue(y) object[Strings.z] = _toJSValue(z) object[Strings.w] = _toJSValue(w) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _x = ReadWriteAttribute(jsObject: object, name: Strings.x) - _y = ReadWriteAttribute(jsObject: object, name: Strings.y) - _z = ReadWriteAttribute(jsObject: object, name: Strings.z) - _w = ReadWriteAttribute(jsObject: object, name: Strings.w) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var x: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var y: Double - - @ReadWriteAttribute - public var z: Double - - @ReadWriteAttribute - public var w: Double + @inlinable public var x: Double { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } + @inlinable public var y: Double { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } + @inlinable public var z: Double { + get { jsObject[Strings.z].fromJSValue()! } + set { jsObject[Strings.z] = _toJSValue(newValue) } + } + @inlinable public var w: Double { + get { jsObject[Strings.w].fromJSValue()! } + set { jsObject[Strings.w] = _toJSValue(newValue) } + } } - public class DOMPointReadOnly: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMPointReadOnly].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _z = ReadonlyAttribute(jsObject: jsObject, name: Strings.z) - _w = ReadonlyAttribute(jsObject: jsObject, name: Strings.w) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w), + ]) + ) } - @inlinable public class func fromPoint(other: DOMPointInit? = nil) -> Self { + @inlinable public class func fromPoint(other: DOMPointInit? = nil) -> DOMPointReadOnly { let this = constructor! return this[Strings.fromPoint].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @ReadonlyAttribute - public var x: Double + @inlinable public var x: Double { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: Double + @inlinable public var y: Double { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var z: Double + @inlinable public var z: Double { jsObject[Strings.z].fromJSValue()! } - @ReadonlyAttribute - public var w: Double + @inlinable public var w: Double { jsObject[Strings.w].fromJSValue()! } - @inlinable public func matrixTransform(matrix: DOMMatrixInit? = nil) -> DOMPoint { + @inlinable final public func matrixTransform(matrix: DOMMatrixInit? = nil) -> DOMPoint { let this = jsObject return this[Strings.matrixTransform].function!(this: this, arguments: [_toJSValue(matrix)]).fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -3566,176 +3958,152 @@ public class DOMQuad: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _p1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.p1) - _p2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.p2) - _p3 = ReadonlyAttribute(jsObject: jsObject, name: Strings.p3) - _p4 = ReadonlyAttribute(jsObject: jsObject, name: Strings.p4) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(p1: DOMPointInit? = nil, p2: DOMPointInit? = nil, p3: DOMPointInit? = nil, p4: DOMPointInit? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(p1), _toJSValue(p2), _toJSValue(p3), _toJSValue(p4)])) + @inlinable public convenience init( + p1: DOMPointInit? = nil, + p2: DOMPointInit? = nil, + p3: DOMPointInit? = nil, + p4: DOMPointInit? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(p1), _toJSValue(p2), _toJSValue(p3), _toJSValue(p4), + ]) + ) } - @inlinable public class func fromRect(other: DOMRectInit? = nil) -> Self { + @inlinable public class func fromRect(other: DOMRectInit? = nil) -> DOMQuad { let this = constructor! return this[Strings.fromRect].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public class func fromQuad(other: DOMQuadInit? = nil) -> Self { + @inlinable public class func fromQuad(other: DOMQuadInit? = nil) -> DOMQuad { let this = constructor! return this[Strings.fromQuad].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @ReadonlyAttribute - public var p1: DOMPoint + @inlinable public var p1: DOMPoint { jsObject[Strings.p1].fromJSValue()! } - @ReadonlyAttribute - public var p2: DOMPoint + @inlinable public var p2: DOMPoint { jsObject[Strings.p2].fromJSValue()! } - @ReadonlyAttribute - public var p3: DOMPoint + @inlinable public var p3: DOMPoint { jsObject[Strings.p3].fromJSValue()! } - @ReadonlyAttribute - public var p4: DOMPoint + @inlinable public var p4: DOMPoint { jsObject[Strings.p4].fromJSValue()! } - @inlinable public func getBounds() -> DOMRect { + @inlinable final public func getBounds() -> DOMRect { let this = jsObject return this[Strings.getBounds].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } } -public class DOMQuadInit: BridgedDictionary { - public convenience init(p1: DOMPointInit, p2: DOMPointInit, p3: DOMPointInit, p4: DOMPointInit) { +open class DOMQuadInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + p1: DOMPointInit? = nil, + p2: DOMPointInit? = nil, + p3: DOMPointInit? = nil, + p4: DOMPointInit? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.p1] = _toJSValue(p1) object[Strings.p2] = _toJSValue(p2) object[Strings.p3] = _toJSValue(p3) object[Strings.p4] = _toJSValue(p4) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _p1 = ReadWriteAttribute(jsObject: object, name: Strings.p1) - _p2 = ReadWriteAttribute(jsObject: object, name: Strings.p2) - _p3 = ReadWriteAttribute(jsObject: object, name: Strings.p3) - _p4 = ReadWriteAttribute(jsObject: object, name: Strings.p4) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var p1: DOMPointInit - - @ReadWriteAttribute - public var p2: DOMPointInit - - @ReadWriteAttribute - public var p3: DOMPointInit + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var p4: DOMPointInit + @inlinable public var p1: DOMPointInit { + get { jsObject[Strings.p1].fromJSValue()! } + set { jsObject[Strings.p1] = _toJSValue(newValue) } + } + @inlinable public var p2: DOMPointInit { + get { jsObject[Strings.p2].fromJSValue()! } + set { jsObject[Strings.p2] = _toJSValue(newValue) } + } + @inlinable public var p3: DOMPointInit { + get { jsObject[Strings.p3].fromJSValue()! } + set { jsObject[Strings.p3] = _toJSValue(newValue) } + } + @inlinable public var p4: DOMPointInit { + get { jsObject[Strings.p4].fromJSValue()! } + set { jsObject[Strings.p4] = _toJSValue(newValue) } + } } - public class DOMRect: DOMRectReadOnly { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMRect].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DOMRect].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadWriteAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadWriteAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)])) + @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) + { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), + ]) + ) } - @inlinable override public class func fromRect(other: DOMRectInit? = nil) -> Self { + @inlinable override public class func fromRect(other: DOMRectInit? = nil) -> DOMRect { let this = constructor! return this[Strings.fromRect].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @usableFromInline let _x: ReadWriteAttribute - @inlinable override public var x: Double { - get { _x.wrappedValue } - set { _x.wrappedValue = newValue } - } - - @usableFromInline let _y: ReadWriteAttribute - @inlinable override public var y: Double { - get { _y.wrappedValue } - set { _y.wrappedValue = newValue } - } - - @usableFromInline let _width: ReadWriteAttribute - @inlinable override public var width: Double { - get { _width.wrappedValue } - set { _width.wrappedValue = newValue } - } - - @usableFromInline let _height: ReadWriteAttribute - @inlinable override public var height: Double { - get { _height.wrappedValue } - set { _height.wrappedValue = newValue } - } } -public class DOMRectInit: BridgedDictionary { - public convenience init(x: Double, y: Double, width: Double, height: Double) { +open class DOMRectInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.x] = _toJSValue(x) object[Strings.y] = _toJSValue(y) object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _x = ReadWriteAttribute(jsObject: object, name: Strings.x) - _y = ReadWriteAttribute(jsObject: object, name: Strings.y) - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var x: Double - - @ReadWriteAttribute - public var y: Double - - @ReadWriteAttribute - public var width: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var height: Double + @inlinable public var x: Double { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } + @inlinable public var y: Double { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } + @inlinable public var width: Double { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: Double { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } } - public class DOMRectList: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMRectList].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> DOMRect? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> DOMRect? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> DOMRect? { + @inlinable final public func item(index: UInt32) -> DOMRect? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } @@ -3746,52 +4114,39 @@ public class DOMRectReadOnly: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _top = ReadonlyAttribute(jsObject: jsObject, name: Strings.top) - _right = ReadonlyAttribute(jsObject: jsObject, name: Strings.right) - _bottom = ReadonlyAttribute(jsObject: jsObject, name: Strings.bottom) - _left = ReadonlyAttribute(jsObject: jsObject, name: Strings.left) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)])) + @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) + { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), + ]) + ) } - @inlinable public class func fromRect(other: DOMRectInit? = nil) -> Self { + @inlinable public class func fromRect(other: DOMRectInit? = nil) -> DOMRectReadOnly { let this = constructor! return this[Strings.fromRect].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @ReadonlyAttribute - public var x: Double + @inlinable public var x: Double { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: Double + @inlinable public var y: Double { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: Double + @inlinable public var width: Double { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: Double + @inlinable public var height: Double { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var top: Double + @inlinable public var top: Double { jsObject[Strings.top].fromJSValue()! } - @ReadonlyAttribute - public var right: Double + @inlinable public var right: Double { jsObject[Strings.right].fromJSValue()! } - @ReadonlyAttribute - public var bottom: Double + @inlinable public var bottom: Double { jsObject[Strings.bottom].fromJSValue()! } - @ReadonlyAttribute - public var left: Double + @inlinable public var left: Double { jsObject[Strings.left].fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -3802,24 +4157,18 @@ public class DOMStringList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> String? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> String? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> String? { + @inlinable final public func item(index: UInt32) -> String? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public func contains(string: String) -> Bool { + @inlinable final public func contains(string: String) -> Bool { let this = jsObject return this[Strings.contains].function!(this: this, arguments: [_toJSValue(string)]).fromJSValue()! } @@ -3830,17 +4179,11 @@ public class DOMStringMap: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public subscript(key: String) -> String { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } @inlinable public func removeValue(forKey key: String) { @@ -3853,61 +4196,56 @@ public class DOMTokenList: JSBridgedClass, Sequence { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> String? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> String? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> String? { + @inlinable final public func item(index: UInt32) -> String? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public func contains(token: String) -> Bool { + @inlinable final public func contains(token: String) -> Bool { let this = jsObject return this[Strings.contains].function!(this: this, arguments: [_toJSValue(token)]).fromJSValue()! } - @inlinable public func add(tokens: String...) { + @inlinable final public func add(tokens: String...) { let this = jsObject _ = this[Strings.add].function!(this: this, arguments: tokens.map(_toJSValue)) } - @inlinable public func remove(tokens: String...) { + @inlinable final public func remove(tokens: String...) { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: tokens.map(_toJSValue)) } - @inlinable public func toggle(token: String, force: Bool? = nil) -> Bool { + @inlinable final public func toggle(token: String, force: Bool? = nil) -> Bool { let this = jsObject - return this[Strings.toggle].function!(this: this, arguments: [_toJSValue(token), _toJSValue(force)]).fromJSValue()! + return this[Strings.toggle].function!(this: this, arguments: [_toJSValue(token), _toJSValue(force)]) + .fromJSValue()! } - @inlinable public func replace(token: String, newToken: String) -> Bool { + @inlinable final public func replace(token: String, newToken: String) -> Bool { let this = jsObject - return this[Strings.replace].function!(this: this, arguments: [_toJSValue(token), _toJSValue(newToken)]).fromJSValue()! + return this[Strings.replace].function!(this: this, arguments: [_toJSValue(token), _toJSValue(newToken)]) + .fromJSValue()! } - @inlinable public func supports(token: String) -> Bool { + @inlinable final public func supports(token: String) -> Bool { let this = jsObject return this[Strings.supports].function!(this: this, arguments: [_toJSValue(token)]).fromJSValue()! } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } public typealias Element = String - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } } public class DataTransfer: JSBridgedClass { @@ -3915,53 +4253,48 @@ public class DataTransfer: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _dropEffect = ReadWriteAttribute(jsObject: jsObject, name: Strings.dropEffect) - _effectAllowed = ReadWriteAttribute(jsObject: jsObject, name: Strings.effectAllowed) - _items = ReadonlyAttribute(jsObject: jsObject, name: Strings.items) - _types = ReadonlyAttribute(jsObject: jsObject, name: Strings.types) - _files = ReadonlyAttribute(jsObject: jsObject, name: Strings.files) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var dropEffect: String + @inlinable public var dropEffect: String { + get { jsObject[Strings.dropEffect].fromJSValue()! } + set { jsObject[Strings.dropEffect] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var effectAllowed: String + @inlinable public var effectAllowed: String { + get { jsObject[Strings.effectAllowed].fromJSValue()! } + set { jsObject[Strings.effectAllowed] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var items: DataTransferItemList + @inlinable public var items: DataTransferItemList { jsObject[Strings.items].fromJSValue()! } - @inlinable public func setDragImage(image: Element, x: Int32, y: Int32) { + @inlinable final public func setDragImage(image: Element, x: Int32, y: Int32) { let this = jsObject - _ = this[Strings.setDragImage].function!(this: this, arguments: [_toJSValue(image), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.setDragImage].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(x), _toJSValue(y)] + ) } - @ReadonlyAttribute - public var types: [String] + @inlinable public var types: [String] { jsObject[Strings.types].fromJSValue()! } - @inlinable public func getData(format: String) -> String { + @inlinable final public func getData(format: String) -> String { let this = jsObject return this[Strings.getData].function!(this: this, arguments: [_toJSValue(format)]).fromJSValue()! } - @inlinable public func setData(format: String, data: String) { + @inlinable final public func setData(format: String, data: String) { let this = jsObject _ = this[Strings.setData].function!(this: this, arguments: [_toJSValue(format), _toJSValue(data)]) } - @inlinable public func clearData(format: String? = nil) { + @inlinable final public func clearData(format: String? = nil) { let this = jsObject _ = this[Strings.clearData].function!(this: this, arguments: [_toJSValue(format)]) } - @ReadonlyAttribute - public var files: FileList + @inlinable public var files: FileList { jsObject[Strings.files].fromJSValue()! } } public class DataTransferItem: JSBridgedClass { @@ -3969,24 +4302,18 @@ public class DataTransferItem: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var kind: String + @inlinable public var kind: String { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @inlinable public func getAsString(callback: FunctionStringCallback?) { + @inlinable final public func getAsString(callback: FunctionStringCallback?) { let this = jsObject _ = this[Strings.getAsString].function!(this: this, arguments: [_toJSValue(callback)]) } - @inlinable public func getAsFile() -> File? { + @inlinable final public func getAsFile() -> File? { let this = jsObject return this[Strings.getAsFile].function!(this: this, arguments: []).fromJSValue() } @@ -3997,214 +4324,205 @@ public class DataTransferItemList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> DataTransferItem { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> DataTransferItem { jsObject[key].fromJSValue()! } - @inlinable public func add(data: String, type: String) -> DataTransferItem? { + @inlinable final public func add(data: String, type: String) -> DataTransferItem? { let this = jsObject return this[Strings.add].function!(this: this, arguments: [_toJSValue(data), _toJSValue(type)]).fromJSValue() } - @inlinable public func add(data: File) -> DataTransferItem? { + @inlinable final public func add(data: File) -> DataTransferItem? { let this = jsObject return this[Strings.add].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue() } - @inlinable public func remove(index: UInt32) { + @inlinable final public func remove(index: UInt32) { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: [_toJSValue(index)]) } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } } -public class DevicePermissionDescriptor: BridgedDictionary { - public convenience init(deviceId: String) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.deviceId] = _toJSValue(deviceId) - self.init(unsafelyWrapping: object) +public class DeviceChangeEvent: Event { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.DeviceChangeEvent].function } - public required init(unsafelyWrapping object: JSObject) { - _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(type: String, eventInitDict: DeviceChangeEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadWriteAttribute - public var deviceId: String + @inlinable public var devices: [MediaDeviceInfo] { jsObject[Strings.devices].fromJSValue()! } + + @inlinable public var userInsertedDevices: [MediaDeviceInfo] { + jsObject[Strings.userInsertedDevices].fromJSValue()! + } } -public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, GeometryUtils { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Document].function } +open class DeviceChangeEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + devices: [MediaDeviceInfo]? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) + object[Strings.devices] = _toJSValue(devices) - public required init(unsafelyWrapping jsObject: JSObject) { - _implementation = ReadonlyAttribute(jsObject: jsObject, name: Strings.implementation) - _URL = ReadonlyAttribute(jsObject: jsObject, name: Strings.URL) - _documentURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.documentURI) - _compatMode = ReadonlyAttribute(jsObject: jsObject, name: Strings.compatMode) - _characterSet = ReadonlyAttribute(jsObject: jsObject, name: Strings.characterSet) - _charset = ReadonlyAttribute(jsObject: jsObject, name: Strings.charset) - _inputEncoding = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputEncoding) - _contentType = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentType) - _doctype = ReadonlyAttribute(jsObject: jsObject, name: Strings.doctype) - _documentElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.documentElement) - _location = ReadonlyAttribute(jsObject: jsObject, name: Strings.location) - _domain = ReadWriteAttribute(jsObject: jsObject, name: Strings.domain) - _referrer = ReadonlyAttribute(jsObject: jsObject, name: Strings.referrer) - _cookie = ReadWriteAttribute(jsObject: jsObject, name: Strings.cookie) - _lastModified = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastModified) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _title = ReadWriteAttribute(jsObject: jsObject, name: Strings.title) - _dir = ReadWriteAttribute(jsObject: jsObject, name: Strings.dir) - _body = ReadWriteAttribute(jsObject: jsObject, name: Strings.body) - _head = ReadonlyAttribute(jsObject: jsObject, name: Strings.head) - _images = ReadonlyAttribute(jsObject: jsObject, name: Strings.images) - _embeds = ReadonlyAttribute(jsObject: jsObject, name: Strings.embeds) - _plugins = ReadonlyAttribute(jsObject: jsObject, name: Strings.plugins) - _links = ReadonlyAttribute(jsObject: jsObject, name: Strings.links) - _forms = ReadonlyAttribute(jsObject: jsObject, name: Strings.forms) - _scripts = ReadonlyAttribute(jsObject: jsObject, name: Strings.scripts) - _currentScript = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentScript) - _defaultView = ReadonlyAttribute(jsObject: jsObject, name: Strings.defaultView) - _designMode = ReadWriteAttribute(jsObject: jsObject, name: Strings.designMode) - _hidden = ReadonlyAttribute(jsObject: jsObject, name: Strings.hidden) - _visibilityState = ReadonlyAttribute(jsObject: jsObject, name: Strings.visibilityState) - _onreadystatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onreadystatechange) - _onvisibilitychange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onvisibilitychange) - _fgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.fgColor) - _linkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.linkColor) - _vlinkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.vlinkColor) - _alinkColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.alinkColor) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - _anchors = ReadonlyAttribute(jsObject: jsObject, name: Strings.anchors) - _applets = ReadonlyAttribute(jsObject: jsObject, name: Strings.applets) - _all = ReadonlyAttribute(jsObject: jsObject, name: Strings.all) - _scrollingElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollingElement) - super.init(unsafelyWrapping: jsObject) + self.init(unsafelyWrapping: object) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var devices: [MediaDeviceInfo] { + get { jsObject[Strings.devices].fromJSValue()! } + set { jsObject[Strings.devices] = _toJSValue(newValue) } } +} +public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, + GlobalEventHandlers, GeometryUtils +{ + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Document].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var implementation: DOMImplementation + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var URL: String + @inlinable public var implementation: DOMImplementation { jsObject[Strings.implementation].fromJSValue()! } - @ReadonlyAttribute - public var documentURI: String + @inlinable public var URL: String { jsObject[Strings.URL].fromJSValue()! } - @ReadonlyAttribute - public var compatMode: String + @inlinable public var documentURI: String { jsObject[Strings.documentURI].fromJSValue()! } - @ReadonlyAttribute - public var characterSet: String + @inlinable public var compatMode: String { jsObject[Strings.compatMode].fromJSValue()! } - @ReadonlyAttribute - public var charset: String + @inlinable public var characterSet: String { jsObject[Strings.characterSet].fromJSValue()! } - @ReadonlyAttribute - public var inputEncoding: String + @inlinable public var charset: String { jsObject[Strings.charset].fromJSValue()! } - @ReadonlyAttribute - public var contentType: String + @inlinable public var inputEncoding: String { jsObject[Strings.inputEncoding].fromJSValue()! } - @ReadonlyAttribute - public var doctype: DocumentType? + @inlinable public var contentType: String { jsObject[Strings.contentType].fromJSValue()! } - @ReadonlyAttribute - public var documentElement: Element? + @inlinable public var doctype: DocumentType? { jsObject[Strings.doctype].fromJSValue() } - @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection { + @inlinable public var documentElement: Element? { jsObject[Strings.documentElement].fromJSValue() } + + @inlinable final public func getElementsByTagName(qualifiedName: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByTagName].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue()! + return this[Strings.getElementsByTagName].function!(this: this, arguments: [_toJSValue(qualifiedName)]) + .fromJSValue()! } - @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection { + @inlinable final public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue()! + return this[Strings.getElementsByTagNameNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue()! } - @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection { + @inlinable final public func getElementsByClassName(classNames: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByClassName].function!(this: this, arguments: [_toJSValue(classNames)]).fromJSValue()! + return this[Strings.getElementsByClassName].function!(this: this, arguments: [_toJSValue(classNames)]) + .fromJSValue()! } - @inlinable public func createElement(localName: String, options: ElementCreationOptions_or_String? = nil) -> Element { + @inlinable final public func createElement( + localName: String, + options: ElementCreationOptions_or_String? = nil + ) -> Element { let this = jsObject - return this[Strings.createElement].function!(this: this, arguments: [_toJSValue(localName), _toJSValue(options)]).fromJSValue()! + return this[Strings.createElement].function!( + this: this, + arguments: [_toJSValue(localName), _toJSValue(options)] + ).fromJSValue()! } - @inlinable public func createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions_or_String? = nil) -> Element { + @inlinable final public func createElementNS( + namespace: String?, + qualifiedName: String, + options: ElementCreationOptions_or_String? = nil + ) -> Element { let this = jsObject - return this[Strings.createElementNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(options)]).fromJSValue()! + return this[Strings.createElementNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(options)] + ).fromJSValue()! } - @inlinable public func createDocumentFragment() -> DocumentFragment { + @inlinable final public func createDocumentFragment() -> DocumentFragment { let this = jsObject return this[Strings.createDocumentFragment].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createTextNode(data: String) -> Text { + @inlinable final public func createTextNode(data: String) -> Text { let this = jsObject return this[Strings.createTextNode].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @inlinable public func createCDATASection(data: String) -> CDATASection { + @inlinable final public func createCDATASection(data: String) -> CDATASection { let this = jsObject return this[Strings.createCDATASection].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @inlinable public func createComment(data: String) -> Comment { + @inlinable final public func createComment(data: String) -> Comment { let this = jsObject return this[Strings.createComment].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @inlinable public func createProcessingInstruction(target: String, data: String) -> ProcessingInstruction { + @inlinable final public func createProcessingInstruction(target: String, data: String) -> ProcessingInstruction { let this = jsObject - return this[Strings.createProcessingInstruction].function!(this: this, arguments: [_toJSValue(target), _toJSValue(data)]).fromJSValue()! + return this[Strings.createProcessingInstruction].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(data)] + ).fromJSValue()! } - @inlinable public func importNode(node: Node, deep: Bool? = nil) -> Node { + @inlinable final public func importNode(node: Node, subtree: Bool? = nil) -> Node { let this = jsObject - return this[Strings.importNode].function!(this: this, arguments: [_toJSValue(node), _toJSValue(deep)]).fromJSValue()! + return this[Strings.importNode].function!(this: this, arguments: [_toJSValue(node), _toJSValue(subtree)]) + .fromJSValue()! } - @inlinable public func adoptNode(node: Node) -> Node { + @inlinable final public func adoptNode(node: Node) -> Node { let this = jsObject return this[Strings.adoptNode].function!(this: this, arguments: [_toJSValue(node)]).fromJSValue()! } - @inlinable public func createAttribute(localName: String) -> Attr { + @inlinable final public func createAttribute(localName: String) -> Attr { let this = jsObject return this[Strings.createAttribute].function!(this: this, arguments: [_toJSValue(localName)]).fromJSValue()! } - @inlinable public func createAttributeNS(namespace: String?, qualifiedName: String) -> Attr { + @inlinable final public func createAttributeNS(namespace: String?, qualifiedName: String) -> Attr { let this = jsObject - return this[Strings.createAttributeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(qualifiedName)]).fromJSValue()! + return this[Strings.createAttributeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(qualifiedName)] + ).fromJSValue()! } - @inlinable public func createEvent(interface: String) -> Event { + @inlinable final public func createEvent(interface: String) -> Event { let this = jsObject return this[Strings.createEvent].function!(this: this, arguments: [_toJSValue(interface)]).fromJSValue()! } - @inlinable public func createRange() -> Range { + @inlinable final public func createRange() -> Range { let this = jsObject return this[Strings.createRange].function!(this: this, arguments: []).fromJSValue()! } @@ -4213,256 +4531,286 @@ public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentN // XXX: member 'createTreeWalker' is ignored - @ReadonlyAttribute - public var location: Location? + @inlinable public class func parseHTMLUnsafe(html: String_or_TrustedHTML) -> Document { + let this = constructor! + return this[Strings.parseHTMLUnsafe].function!(this: this, arguments: [_toJSValue(html)]).fromJSValue()! + } + + @inlinable public var location: Location? { jsObject[Strings.location].fromJSValue() } + + @inlinable public var domain: String { + get { jsObject[Strings.domain].fromJSValue()! } + set { jsObject[Strings.domain] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var domain: String + @inlinable public var referrer: String { jsObject[Strings.referrer].fromJSValue()! } - @ReadonlyAttribute - public var referrer: String + @inlinable public var cookie: String { + get { jsObject[Strings.cookie].fromJSValue()! } + set { jsObject[Strings.cookie] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var cookie: String + @inlinable public var lastModified: String { jsObject[Strings.lastModified].fromJSValue()! } - @ReadonlyAttribute - public var lastModified: String + @inlinable public var readyState: DocumentReadyState { jsObject[Strings.readyState].fromJSValue()! } - @ReadonlyAttribute - public var readyState: DocumentReadyState + @inlinable public subscript(key: String) -> JSObject { jsObject[key].fromJSValue()! } - @inlinable public subscript(key: String) -> JSObject { - jsObject[key].fromJSValue()! + @inlinable public var title: String { + get { jsObject[Strings.title].fromJSValue()! } + set { jsObject[Strings.title] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var title: String - - @ReadWriteAttribute - public var dir: String + @inlinable public var dir: String { + get { jsObject[Strings.dir].fromJSValue()! } + set { jsObject[Strings.dir] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var body: HTMLElement? + @inlinable public var body: HTMLElement? { + get { jsObject[Strings.body].fromJSValue() } + set { jsObject[Strings.body] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var head: HTMLHeadElement? + @inlinable public var head: HTMLHeadElement? { jsObject[Strings.head].fromJSValue() } - @ReadonlyAttribute - public var images: HTMLCollection + @inlinable public var images: HTMLCollection { jsObject[Strings.images].fromJSValue()! } - @ReadonlyAttribute - public var embeds: HTMLCollection + @inlinable public var embeds: HTMLCollection { jsObject[Strings.embeds].fromJSValue()! } - @ReadonlyAttribute - public var plugins: HTMLCollection + @inlinable public var plugins: HTMLCollection { jsObject[Strings.plugins].fromJSValue()! } - @ReadonlyAttribute - public var links: HTMLCollection + @inlinable public var links: HTMLCollection { jsObject[Strings.links].fromJSValue()! } - @ReadonlyAttribute - public var forms: HTMLCollection + @inlinable public var forms: HTMLCollection { jsObject[Strings.forms].fromJSValue()! } - @ReadonlyAttribute - public var scripts: HTMLCollection + @inlinable public var scripts: HTMLCollection { jsObject[Strings.scripts].fromJSValue()! } - @inlinable public func getElementsByName(elementName: String) -> NodeList { + @inlinable final public func getElementsByName(elementName: String) -> NodeList { let this = jsObject - return this[Strings.getElementsByName].function!(this: this, arguments: [_toJSValue(elementName)]).fromJSValue()! + return this[Strings.getElementsByName].function!(this: this, arguments: [_toJSValue(elementName)]) + .fromJSValue()! } - @ReadonlyAttribute - public var currentScript: HTMLOrSVGScriptElement? + @inlinable public var currentScript: HTMLOrSVGScriptElement? { jsObject[Strings.currentScript].fromJSValue() } - @inlinable public func open(unused1: String? = nil, unused2: String? = nil) -> Self { + @inlinable final public func open(unused1: String? = nil, unused2: String? = nil) -> Document { let this = jsObject - return this[Strings.open].function!(this: this, arguments: [_toJSValue(unused1), _toJSValue(unused2)]).fromJSValue()! + return this[Strings.open].function!(this: this, arguments: [_toJSValue(unused1), _toJSValue(unused2)]) + .fromJSValue()! } - @inlinable public func open(url: String, name: String, features: String) -> WindowProxy? { + @inlinable final public func open(url: String, name: String, features: String) -> WindowProxy? { let this = jsObject - return this[Strings.open].function!(this: this, arguments: [_toJSValue(url), _toJSValue(name), _toJSValue(features)]).fromJSValue() + return this[Strings.open].function!( + this: this, + arguments: [_toJSValue(url), _toJSValue(name), _toJSValue(features)] + ).fromJSValue() } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @inlinable public func write(text: String...) { + @inlinable final public func write(text: String_or_TrustedHTML...) { let this = jsObject _ = this[Strings.write].function!(this: this, arguments: text.map(_toJSValue)) } - @inlinable public func writeln(text: String...) { + @inlinable final public func writeln(text: String_or_TrustedHTML...) { let this = jsObject _ = this[Strings.writeln].function!(this: this, arguments: text.map(_toJSValue)) } - @ReadonlyAttribute - public var defaultView: WindowProxy? + @inlinable public var defaultView: WindowProxy? { jsObject[Strings.defaultView].fromJSValue() } - @inlinable public func hasFocus() -> Bool { + @inlinable final public func hasFocus() -> Bool { let this = jsObject return this[Strings.hasFocus].function!(this: this, arguments: []).fromJSValue()! } - @ReadWriteAttribute - public var designMode: String + @inlinable public var designMode: String { + get { jsObject[Strings.designMode].fromJSValue()! } + set { jsObject[Strings.designMode] = _toJSValue(newValue) } + } - @inlinable public func execCommand(commandId: String, showUI: Bool? = nil, value: String? = nil) -> Bool { + @inlinable final public func execCommand(commandId: String, showUI: Bool? = nil, value: String? = nil) -> Bool { let this = jsObject - return this[Strings.execCommand].function!(this: this, arguments: [_toJSValue(commandId), _toJSValue(showUI), _toJSValue(value)]).fromJSValue()! + return this[Strings.execCommand].function!( + this: this, + arguments: [_toJSValue(commandId), _toJSValue(showUI), _toJSValue(value)] + ).fromJSValue()! } - @inlinable public func queryCommandEnabled(commandId: String) -> Bool { + @inlinable final public func queryCommandEnabled(commandId: String) -> Bool { let this = jsObject - return this[Strings.queryCommandEnabled].function!(this: this, arguments: [_toJSValue(commandId)]).fromJSValue()! + return this[Strings.queryCommandEnabled].function!(this: this, arguments: [_toJSValue(commandId)]) + .fromJSValue()! } - @inlinable public func queryCommandIndeterm(commandId: String) -> Bool { + @inlinable final public func queryCommandIndeterm(commandId: String) -> Bool { let this = jsObject - return this[Strings.queryCommandIndeterm].function!(this: this, arguments: [_toJSValue(commandId)]).fromJSValue()! + return this[Strings.queryCommandIndeterm].function!(this: this, arguments: [_toJSValue(commandId)]) + .fromJSValue()! } - @inlinable public func queryCommandState(commandId: String) -> Bool { + @inlinable final public func queryCommandState(commandId: String) -> Bool { let this = jsObject return this[Strings.queryCommandState].function!(this: this, arguments: [_toJSValue(commandId)]).fromJSValue()! } - @inlinable public func queryCommandSupported(commandId: String) -> Bool { + @inlinable final public func queryCommandSupported(commandId: String) -> Bool { let this = jsObject - return this[Strings.queryCommandSupported].function!(this: this, arguments: [_toJSValue(commandId)]).fromJSValue()! + return this[Strings.queryCommandSupported].function!(this: this, arguments: [_toJSValue(commandId)]) + .fromJSValue()! } - @inlinable public func queryCommandValue(commandId: String) -> String { + @inlinable final public func queryCommandValue(commandId: String) -> String { let this = jsObject return this[Strings.queryCommandValue].function!(this: this, arguments: [_toJSValue(commandId)]).fromJSValue()! } - @ReadonlyAttribute - public var hidden: Bool + @inlinable public var hidden: Bool { jsObject[Strings.hidden].fromJSValue()! } - @ReadonlyAttribute - public var visibilityState: DocumentVisibilityState + @inlinable public var visibilityState: DocumentVisibilityState { jsObject[Strings.visibilityState].fromJSValue()! } - @ClosureAttribute1Optional - public var onreadystatechange: EventHandler + @inlinable public var onreadystatechange: EventHandler { + get { + guard let function = jsObject[Strings.onreadystatechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onreadystatechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onreadystatechange] = .null + } + } + } - @ClosureAttribute1Optional - public var onvisibilitychange: EventHandler + @inlinable public var onvisibilitychange: EventHandler { + get { + guard let function = jsObject[Strings.onvisibilitychange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onvisibilitychange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onvisibilitychange] = .null + } + } + } - @ReadWriteAttribute - public var fgColor: String + @inlinable public var fgColor: String { + get { jsObject[Strings.fgColor].fromJSValue()! } + set { jsObject[Strings.fgColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var linkColor: String + @inlinable public var linkColor: String { + get { jsObject[Strings.linkColor].fromJSValue()! } + set { jsObject[Strings.linkColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vlinkColor: String + @inlinable public var vlinkColor: String { + get { jsObject[Strings.vlinkColor].fromJSValue()! } + set { jsObject[Strings.vlinkColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alinkColor: String + @inlinable public var alinkColor: String { + get { jsObject[Strings.alinkColor].fromJSValue()! } + set { jsObject[Strings.alinkColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var anchors: HTMLCollection + @inlinable public var anchors: HTMLCollection { jsObject[Strings.anchors].fromJSValue()! } - @ReadonlyAttribute - public var applets: HTMLCollection + @inlinable public var applets: HTMLCollection { jsObject[Strings.applets].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func captureEvents() { + @inlinable final public func captureEvents() { let this = jsObject _ = this[Strings.captureEvents].function!(this: this, arguments: []) } - @inlinable public func releaseEvents() { + @inlinable final public func releaseEvents() { let this = jsObject _ = this[Strings.releaseEvents].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var all: HTMLAllCollection + @inlinable public var all: HTMLAllCollection { jsObject[Strings.all].fromJSValue()! } - @inlinable public func elementFromPoint(x: Double, y: Double) -> Element? { + @inlinable final public func elementFromPoint(x: Double, y: Double) -> Element? { let this = jsObject - return this[Strings.elementFromPoint].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue() + return this[Strings.elementFromPoint].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) + .fromJSValue() } - @inlinable public func elementsFromPoint(x: Double, y: Double) -> [Element] { + @inlinable final public func elementsFromPoint(x: Double, y: Double) -> [Element] { let this = jsObject - return this[Strings.elementsFromPoint].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue()! + return this[Strings.elementsFromPoint].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) + .fromJSValue()! } - @inlinable public func caretPositionFromPoint(x: Double, y: Double) -> CaretPosition? { + @inlinable final public func caretPositionFromPoint( + x: Double, + y: Double, + options: CaretPositionFromPointOptions? = nil + ) -> CaretPosition? { let this = jsObject - return this[Strings.caretPositionFromPoint].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]).fromJSValue() + return this[Strings.caretPositionFromPoint].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(options)] + ).fromJSValue() } - @ReadonlyAttribute - public var scrollingElement: Element? + @inlinable public var scrollingElement: Element? { jsObject[Strings.scrollingElement].fromJSValue() } } open class DocumentFragment: Node, NonElementParentNode, ParentNode { - @inlinable override open class var constructor: JSFunction? { JSObject.global[Strings.DocumentFragment].function } + @inlinable open override class var constructor: JSFunction? { JSObject.global[Strings.DocumentFragment].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public protocol DocumentOrShadowRoot: JSBridgedClass {} -public extension DocumentOrShadowRoot { - @inlinable var activeElement: Element? { jsObject[Strings.activeElement].fromJSValue() } +extension DocumentOrShadowRoot { + @inlinable public var activeElement: Element? { jsObject[Strings.activeElement].fromJSValue() } } - public enum DocumentReadyState: JSString, JSValueCompatible { case loading = "loading" case interactive = "interactive" case complete = "complete" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class DocumentType: Node, ChildNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentType].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DocumentType].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _publicId = ReadonlyAttribute(jsObject: jsObject, name: Strings.publicId) - _systemId = ReadonlyAttribute(jsObject: jsObject, name: Strings.systemId) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var publicId: String + @inlinable public var publicId: String { jsObject[Strings.publicId].fromJSValue()! } - @ReadonlyAttribute - public var systemId: String + @inlinable public var systemId: String { jsObject[Strings.systemId].fromJSValue()! } } public enum DocumentVisibilityState: JSString, JSValueCompatible { @@ -4470,436 +4818,478 @@ public enum DocumentVisibilityState: JSString, JSValueCompatible { case hidden = "hidden" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class DoubleRange: JSDictionaryCompatible { + public let jsObject: JSObject -public class DoubleRange: BridgedDictionary { - public convenience init(max: Double, min: Double) { + public convenience init(max: Double? = nil, min: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.max] = _toJSValue(max) object[Strings.min] = _toJSValue(min) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _max = ReadWriteAttribute(jsObject: object, name: Strings.max) - _min = ReadWriteAttribute(jsObject: object, name: Strings.min) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var max: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var min: Double + @inlinable public var max: Double { + get { jsObject[Strings.max].fromJSValue()! } + set { jsObject[Strings.max] = _toJSValue(newValue) } + } + @inlinable public var min: Double { + get { jsObject[Strings.min].fromJSValue()! } + set { jsObject[Strings.min] = _toJSValue(newValue) } + } } - public class DragEvent: MouseEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DragEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DragEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _dataTransfer = ReadonlyAttribute(jsObject: jsObject, name: Strings.dataTransfer) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: DragEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var dataTransfer: DataTransfer? + @inlinable public var dataTransfer: DataTransfer? { jsObject[Strings.dataTransfer].fromJSValue() } } -public class DragEventInit: BridgedDictionary { - public convenience init(dataTransfer: DataTransfer?) { +open class DragEventInit: MouseEventInit { + + public convenience init( + screenX: Int32? = nil, + screenY: Int32? = nil, + clientX: Int32? = nil, + clientY: Int32? = nil, + button: Int16? = nil, + buttons: UInt16? = nil, + relatedTarget: EventTarget?, + dataTransfer: DataTransfer? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.screenX] = _toJSValue(screenX) + object[Strings.screenY] = _toJSValue(screenY) + object[Strings.clientX] = _toJSValue(clientX) + object[Strings.clientY] = _toJSValue(clientY) + object[Strings.button] = _toJSValue(button) + object[Strings.buttons] = _toJSValue(buttons) + object[Strings.relatedTarget] = _toJSValue(relatedTarget) object[Strings.dataTransfer] = _toJSValue(dataTransfer) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _dataTransfer = ReadWriteAttribute(jsObject: object, name: Strings.dataTransfer) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var dataTransfer: DataTransfer? + @inlinable public var dataTransfer: DataTransfer? { + get { jsObject[Strings.dataTransfer].fromJSValue() } + set { jsObject[Strings.dataTransfer] = _toJSValue(newValue) } + } } - open class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, GeometryUtils { - @inlinable override open class var constructor: JSFunction? { JSObject.global[Strings.Element].function } + @inlinable open override class var constructor: JSFunction? { JSObject.global[Strings.Element].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _namespaceURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.namespaceURI) - _prefix = ReadonlyAttribute(jsObject: jsObject, name: Strings.prefix) - _localName = ReadonlyAttribute(jsObject: jsObject, name: Strings.localName) - _tagName = ReadonlyAttribute(jsObject: jsObject, name: Strings.tagName) - _id = ReadWriteAttribute(jsObject: jsObject, name: Strings.id) - _className = ReadWriteAttribute(jsObject: jsObject, name: Strings.className) - _classList = ReadonlyAttribute(jsObject: jsObject, name: Strings.classList) - _slot = ReadWriteAttribute(jsObject: jsObject, name: Strings.slot) - _attributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.attributes) - _shadowRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.shadowRoot) - _scrollTop = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollTop) - _scrollLeft = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollLeft) - _scrollWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollWidth) - _scrollHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollHeight) - _clientTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientTop) - _clientLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientLeft) - _clientWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientWidth) - _clientHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientHeight) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var namespaceURI: String? + @inlinable public var namespaceURI: String? { jsObject[Strings.namespaceURI].fromJSValue() } - @ReadonlyAttribute - public var prefix: String? + @inlinable public var prefix: String? { jsObject[Strings.prefix].fromJSValue() } - @ReadonlyAttribute - public var localName: String + @inlinable public var localName: String { jsObject[Strings.localName].fromJSValue()! } - @ReadonlyAttribute - public var tagName: String + @inlinable public var tagName: String { jsObject[Strings.tagName].fromJSValue()! } - @ReadWriteAttribute - public var id: String + @inlinable public var id: String { + get { jsObject[Strings.id].fromJSValue()! } + set { jsObject[Strings.id] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var className: String + @inlinable public var className: String { + get { jsObject[Strings.className].fromJSValue()! } + set { jsObject[Strings.className] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var classList: DOMTokenList + @inlinable public var classList: DOMTokenList { jsObject[Strings.classList].fromJSValue()! } - @ReadWriteAttribute - public var slot: String + @inlinable public var slot: String { + get { jsObject[Strings.slot].fromJSValue()! } + set { jsObject[Strings.slot] = _toJSValue(newValue) } + } - @inlinable public func hasAttributes() -> Bool { + @inlinable final public func hasAttributes() -> Bool { let this = jsObject return this[Strings.hasAttributes].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var attributes: NamedNodeMap + @inlinable public var attributes: NamedNodeMap { jsObject[Strings.attributes].fromJSValue()! } - @inlinable public func getAttributeNames() -> [String] { + @inlinable final public func getAttributeNames() -> [String] { let this = jsObject return this[Strings.getAttributeNames].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getAttribute(qualifiedName: String) -> String? { + @inlinable final public func getAttribute(qualifiedName: String) -> String? { let this = jsObject return this[Strings.getAttribute].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue() } - @inlinable public func getAttributeNS(namespace: String?, localName: String) -> String? { + @inlinable final public func getAttributeNS(namespace: String?, localName: String) -> String? { let this = jsObject - return this[Strings.getAttributeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue() + return this[Strings.getAttributeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue() } - @inlinable public func setAttribute(qualifiedName: String, value: String) { + @inlinable final public func setAttribute(qualifiedName: String, value: String) { let this = jsObject _ = this[Strings.setAttribute].function!(this: this, arguments: [_toJSValue(qualifiedName), _toJSValue(value)]) } - @inlinable public func setAttributeNS(namespace: String?, qualifiedName: String, value: String) { + @inlinable final public func setAttributeNS(namespace: String?, qualifiedName: String, value: String) { let this = jsObject - _ = this[Strings.setAttributeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(value)]) + _ = this[Strings.setAttributeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(qualifiedName), _toJSValue(value)] + ) } - @inlinable public func removeAttribute(qualifiedName: String) { + @inlinable final public func removeAttribute(qualifiedName: String) { let this = jsObject _ = this[Strings.removeAttribute].function!(this: this, arguments: [_toJSValue(qualifiedName)]) } - @inlinable public func removeAttributeNS(namespace: String?, localName: String) { + @inlinable final public func removeAttributeNS(namespace: String?, localName: String) { let this = jsObject - _ = this[Strings.removeAttributeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]) + _ = this[Strings.removeAttributeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ) } - @inlinable public func toggleAttribute(qualifiedName: String, force: Bool? = nil) -> Bool { + @inlinable final public func toggleAttribute(qualifiedName: String, force: Bool? = nil) -> Bool { let this = jsObject - return this[Strings.toggleAttribute].function!(this: this, arguments: [_toJSValue(qualifiedName), _toJSValue(force)]).fromJSValue()! + return this[Strings.toggleAttribute].function!( + this: this, + arguments: [_toJSValue(qualifiedName), _toJSValue(force)] + ).fromJSValue()! } - @inlinable public func hasAttribute(qualifiedName: String) -> Bool { + @inlinable final public func hasAttribute(qualifiedName: String) -> Bool { let this = jsObject return this[Strings.hasAttribute].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue()! } - @inlinable public func hasAttributeNS(namespace: String?, localName: String) -> Bool { + @inlinable final public func hasAttributeNS(namespace: String?, localName: String) -> Bool { let this = jsObject - return this[Strings.hasAttributeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue()! + return this[Strings.hasAttributeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue()! } - @inlinable public func getAttributeNode(qualifiedName: String) -> Attr? { + @inlinable final public func getAttributeNode(qualifiedName: String) -> Attr? { let this = jsObject - return this[Strings.getAttributeNode].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue() + return this[Strings.getAttributeNode].function!(this: this, arguments: [_toJSValue(qualifiedName)]) + .fromJSValue() } - @inlinable public func getAttributeNodeNS(namespace: String?, localName: String) -> Attr? { + @inlinable final public func getAttributeNodeNS(namespace: String?, localName: String) -> Attr? { let this = jsObject - return this[Strings.getAttributeNodeNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue() + return this[Strings.getAttributeNodeNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue() } - @inlinable public func setAttributeNode(attr: Attr) -> Attr? { + @inlinable final public func setAttributeNode(attr: Attr) -> Attr? { let this = jsObject return this[Strings.setAttributeNode].function!(this: this, arguments: [_toJSValue(attr)]).fromJSValue() } - @inlinable public func setAttributeNodeNS(attr: Attr) -> Attr? { + @inlinable final public func setAttributeNodeNS(attr: Attr) -> Attr? { let this = jsObject return this[Strings.setAttributeNodeNS].function!(this: this, arguments: [_toJSValue(attr)]).fromJSValue() } - @inlinable public func removeAttributeNode(attr: Attr) -> Attr { + @inlinable final public func removeAttributeNode(attr: Attr) -> Attr { let this = jsObject return this[Strings.removeAttributeNode].function!(this: this, arguments: [_toJSValue(attr)]).fromJSValue()! } - @inlinable public func attachShadow(init: ShadowRootInit) -> ShadowRoot { + @inlinable final public func attachShadow(`init`: ShadowRootInit) -> ShadowRoot { let this = jsObject return this[Strings.attachShadow].function!(this: this, arguments: [_toJSValue(`init`)]).fromJSValue()! } - @ReadonlyAttribute - public var shadowRoot: ShadowRoot? + @inlinable public var shadowRoot: ShadowRoot? { jsObject[Strings.shadowRoot].fromJSValue() } - @inlinable public func closest(selectors: String) -> Element? { + @inlinable final public func closest(selectors: String) -> Element? { let this = jsObject return this[Strings.closest].function!(this: this, arguments: [_toJSValue(selectors)]).fromJSValue() } - @inlinable public func matches(selectors: String) -> Bool { + @inlinable final public func matches(selectors: String) -> Bool { let this = jsObject return this[Strings.matches].function!(this: this, arguments: [_toJSValue(selectors)]).fromJSValue()! } - @inlinable public func webkitMatchesSelector(selectors: String) -> Bool { + @inlinable final public func webkitMatchesSelector(selectors: String) -> Bool { let this = jsObject - return this[Strings.webkitMatchesSelector].function!(this: this, arguments: [_toJSValue(selectors)]).fromJSValue()! + return this[Strings.webkitMatchesSelector].function!(this: this, arguments: [_toJSValue(selectors)]) + .fromJSValue()! } - @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection { + @inlinable final public func getElementsByTagName(qualifiedName: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByTagName].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue()! + return this[Strings.getElementsByTagName].function!(this: this, arguments: [_toJSValue(qualifiedName)]) + .fromJSValue()! } - @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection { + @inlinable final public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue()! + return this[Strings.getElementsByTagNameNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue()! } - @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection { + @inlinable final public func getElementsByClassName(classNames: String) -> HTMLCollection { let this = jsObject - return this[Strings.getElementsByClassName].function!(this: this, arguments: [_toJSValue(classNames)]).fromJSValue()! + return this[Strings.getElementsByClassName].function!(this: this, arguments: [_toJSValue(classNames)]) + .fromJSValue()! } - @inlinable public func insertAdjacentElement(where: String, element: Element) -> Element? { + @inlinable final public func insertAdjacentElement(`where`: String, element: Element) -> Element? { let this = jsObject - return this[Strings.insertAdjacentElement].function!(this: this, arguments: [_toJSValue(`where`), _toJSValue(element)]).fromJSValue() + return this[Strings.insertAdjacentElement].function!( + this: this, + arguments: [_toJSValue(`where`), _toJSValue(element)] + ).fromJSValue() } - @inlinable public func insertAdjacentText(where: String, data: String) { + @inlinable final public func insertAdjacentText(`where`: String, data: String) { let this = jsObject _ = this[Strings.insertAdjacentText].function!(this: this, arguments: [_toJSValue(`where`), _toJSValue(data)]) } - @inlinable public func pseudo(type: String) -> CSSPseudoElement? { + @inlinable final public func setHTMLUnsafe(html: String_or_TrustedHTML) { + let this = jsObject + _ = this[Strings.setHTMLUnsafe].function!(this: this, arguments: [_toJSValue(html)]) + } + + @inlinable final public func getHTML(options: GetHTMLOptions? = nil) -> String { + let this = jsObject + return this[Strings.getHTML].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! + } + + @inlinable public var innerHTML: String_or_TrustedHTML { + get { jsObject[Strings.innerHTML].fromJSValue()! } + set { jsObject[Strings.innerHTML] = _toJSValue(newValue) } + } + + @inlinable public var outerHTML: String_or_TrustedHTML { + get { jsObject[Strings.outerHTML].fromJSValue()! } + set { jsObject[Strings.outerHTML] = _toJSValue(newValue) } + } + + @inlinable final public func insertAdjacentHTML(position: String, string: String_or_TrustedHTML) { + let this = jsObject + _ = this[Strings.insertAdjacentHTML].function!( + this: this, + arguments: [_toJSValue(position), _toJSValue(string)] + ) + } + + @inlinable final public func pseudo(type: String) -> CSSPseudoElement? { let this = jsObject return this[Strings.pseudo].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue() } - @inlinable public func getClientRects() -> DOMRectList { + @inlinable final public func getClientRects() -> DOMRectList { let this = jsObject return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getBoundingClientRect() -> DOMRect { + @inlinable final public func getBoundingClientRect() -> DOMRect { let this = jsObject return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func checkVisibility(options: CheckVisibilityOptions? = nil) -> Bool { + @inlinable final public func checkVisibility(options: CheckVisibilityOptions? = nil) -> Bool { let this = jsObject return this[Strings.checkVisibility].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) { + @inlinable final public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) { let this = jsObject _ = this[Strings.scrollIntoView].function!(this: this, arguments: [_toJSValue(arg)]) } - @inlinable public func scroll(options: ScrollToOptions? = nil) { + @inlinable final public func scroll(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scroll].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scroll(x: Double, y: Double) { + @inlinable final public func scroll(x: Double, y: Double) { let this = jsObject _ = this[Strings.scroll].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func scrollTo(options: ScrollToOptions? = nil) { + @inlinable final public func scrollTo(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scrollTo].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scrollTo(x: Double, y: Double) { + @inlinable final public func scrollTo(x: Double, y: Double) { let this = jsObject _ = this[Strings.scrollTo].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func scrollBy(options: ScrollToOptions? = nil) { + @inlinable final public func scrollBy(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scrollBy].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scrollBy(x: Double, y: Double) { + @inlinable final public func scrollBy(x: Double, y: Double) { let this = jsObject _ = this[Strings.scrollBy].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @ReadWriteAttribute - public var scrollTop: Double + @inlinable public var scrollTop: Double { + get { jsObject[Strings.scrollTop].fromJSValue()! } + set { jsObject[Strings.scrollTop] = _toJSValue(newValue) } + } + + @inlinable public var scrollLeft: Double { + get { jsObject[Strings.scrollLeft].fromJSValue()! } + set { jsObject[Strings.scrollLeft] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scrollLeft: Double + @inlinable public var scrollWidth: Int32 { jsObject[Strings.scrollWidth].fromJSValue()! } - @ReadonlyAttribute - public var scrollWidth: Int32 + @inlinable public var scrollHeight: Int32 { jsObject[Strings.scrollHeight].fromJSValue()! } - @ReadonlyAttribute - public var scrollHeight: Int32 + @inlinable public var clientTop: Int32 { jsObject[Strings.clientTop].fromJSValue()! } - @ReadonlyAttribute - public var clientTop: Int32 + @inlinable public var clientLeft: Int32 { jsObject[Strings.clientLeft].fromJSValue()! } - @ReadonlyAttribute - public var clientLeft: Int32 + @inlinable public var clientWidth: Int32 { jsObject[Strings.clientWidth].fromJSValue()! } - @ReadonlyAttribute - public var clientWidth: Int32 + @inlinable public var clientHeight: Int32 { jsObject[Strings.clientHeight].fromJSValue()! } - @ReadonlyAttribute - public var clientHeight: Int32 + @inlinable public var currentCSSZoom: Double { jsObject[Strings.currentCSSZoom].fromJSValue()! } } public protocol ElementContentEditable: JSBridgedClass {} -public extension ElementContentEditable { - @inlinable var contentEditable: String { +extension ElementContentEditable { + @inlinable public var contentEditable: String { get { jsObject[Strings.contentEditable].fromJSValue()! } - nonmutating set { jsObject[Strings.contentEditable] = _toJSValue(newValue) } + set { jsObject[Strings.contentEditable] = _toJSValue(newValue) } } - @inlinable var enterKeyHint: String { + @inlinable public var enterKeyHint: String { get { jsObject[Strings.enterKeyHint].fromJSValue()! } - nonmutating set { jsObject[Strings.enterKeyHint] = _toJSValue(newValue) } + set { jsObject[Strings.enterKeyHint] = _toJSValue(newValue) } } - @inlinable var isContentEditable: Bool { jsObject[Strings.isContentEditable].fromJSValue()! } + @inlinable public var isContentEditable: Bool { jsObject[Strings.isContentEditable].fromJSValue()! } - @inlinable var inputMode: String { + @inlinable public var inputMode: String { get { jsObject[Strings.inputMode].fromJSValue()! } - nonmutating set { jsObject[Strings.inputMode] = _toJSValue(newValue) } + set { jsObject[Strings.inputMode] = _toJSValue(newValue) } } } +open class ElementCreationOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ElementCreationOptions: BridgedDictionary { - public convenience init(is: String) { + public convenience init(`is`: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.is] = _toJSValue(`is`) + object[Strings.`is`] = _toJSValue(`is`) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _is = ReadWriteAttribute(jsObject: object, name: Strings.is) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var `is`: String + @inlinable public var `is`: String { + get { jsObject[Strings.`is`].fromJSValue()! } + set { jsObject[Strings.`is`] = _toJSValue(newValue) } + } } +open class ElementDefinitionOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ElementDefinitionOptions: BridgedDictionary { - public convenience init(extends: String) { + public convenience init(extends: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.extends] = _toJSValue(extends) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _extends = ReadWriteAttribute(jsObject: object, name: Strings.extends) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var extends: String + @inlinable public var extends: String { + get { jsObject[Strings.extends].fromJSValue()! } + set { jsObject[Strings.extends] = _toJSValue(newValue) } + } } - public class ElementInternals: JSBridgedClass, ARIAMixin { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ElementInternals].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _shadowRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.shadowRoot) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var shadowRoot: ShadowRoot? + @inlinable public var shadowRoot: ShadowRoot? { jsObject[Strings.shadowRoot].fromJSValue() } - @inlinable public func setFormValue(value: File_or_FormData_or_String?, state: File_or_FormData_or_String? = nil) { + @inlinable final public func setFormValue( + value: File_or_FormData_or_String?, + state: File_or_FormData_or_String? = nil + ) { let this = jsObject _ = this[Strings.setFormValue].function!(this: this, arguments: [_toJSValue(value), _toJSValue(state)]) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @inlinable public func setValidity(flags: ValidityStateFlags? = nil, message: String? = nil, anchor: HTMLElement? = nil) { + @inlinable final public func setValidity( + flags: ValidityStateFlags? = nil, + message: String? = nil, + anchor: HTMLElement? = nil + ) { let this = jsObject - _ = this[Strings.setValidity].function!(this: this, arguments: [_toJSValue(flags), _toJSValue(message), _toJSValue(anchor)]) + _ = this[Strings.setValidity].function!( + this: this, + arguments: [_toJSValue(flags), _toJSValue(message), _toJSValue(anchor)] + ) } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } + + @inlinable public var states: CustomStateSet { jsObject[Strings.states].fromJSValue()! } } public class EncodedAudioChunk: JSBridgedClass { @@ -4907,354 +5297,325 @@ public class EncodedAudioChunk: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _byteLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.byteLength) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: EncodedAudioChunkInit) { + @inlinable public convenience init(`init`: EncodedAudioChunkInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var type: EncodedAudioChunkType + @inlinable public var type: EncodedAudioChunkType { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var timestamp: Int64 + @inlinable public var timestamp: Int64 { jsObject[Strings.timestamp].fromJSValue()! } - @ReadonlyAttribute - public var duration: UInt64? + @inlinable public var duration: UInt64? { jsObject[Strings.duration].fromJSValue() } - @ReadonlyAttribute - public var byteLength: UInt32 + @inlinable public var byteLength: UInt32 { jsObject[Strings.byteLength].fromJSValue()! } - @inlinable public func copyTo(destination: AllowSharedBufferSource) { + @inlinable final public func copyTo(destination: AllowSharedBufferSource) { let this = jsObject _ = this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination)]) } } -public class EncodedAudioChunkInit: BridgedDictionary { - public convenience init(type: EncodedAudioChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) { +open class EncodedAudioChunkInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + type: EncodedAudioChunkType, + timestamp: Int64, + duration: UInt64? = nil, + data: AllowSharedBufferSource, + transfer: [ArrayBuffer]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.timestamp] = _toJSValue(timestamp) object[Strings.duration] = _toJSValue(duration) object[Strings.data] = _toJSValue(data) - self.init(unsafelyWrapping: object) - } + object[Strings.transfer] = _toJSValue(transfer) - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: EncodedAudioChunkType - - @ReadWriteAttribute - public var timestamp: Int64 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var duration: UInt64 - - @ReadWriteAttribute - public var data: BufferSource + @inlinable public var type: EncodedAudioChunkType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var timestamp: Int64 { + get { jsObject[Strings.timestamp].fromJSValue()! } + set { jsObject[Strings.timestamp] = _toJSValue(newValue) } + } + @inlinable public var duration: UInt64 { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var data: AllowSharedBufferSource { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var transfer: [ArrayBuffer] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } } +open class EncodedAudioChunkMetadata: JSDictionaryCompatible { + public let jsObject: JSObject -public class EncodedAudioChunkMetadata: BridgedDictionary { - public convenience init(decoderConfig: AudioDecoderConfig) { + public convenience init(decoderConfig: AudioDecoderConfig? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.decoderConfig] = _toJSValue(decoderConfig) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var decoderConfig: AudioDecoderConfig + @inlinable public var decoderConfig: AudioDecoderConfig { + get { jsObject[Strings.decoderConfig].fromJSValue()! } + set { jsObject[Strings.decoderConfig] = _toJSValue(newValue) } + } } - public enum EncodedAudioChunkType: JSString, JSValueCompatible { case key = "key" case delta = "delta" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class EncodedVideoChunk: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.EncodedVideoChunk].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _byteLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.byteLength) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: EncodedVideoChunkInit) { + @inlinable public convenience init(`init`: EncodedVideoChunkInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var type: EncodedVideoChunkType + @inlinable public var type: EncodedVideoChunkType { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var timestamp: Int64 + @inlinable public var timestamp: Int64 { jsObject[Strings.timestamp].fromJSValue()! } - @ReadonlyAttribute - public var duration: UInt64? + @inlinable public var duration: UInt64? { jsObject[Strings.duration].fromJSValue() } - @ReadonlyAttribute - public var byteLength: UInt32 + @inlinable public var byteLength: UInt32 { jsObject[Strings.byteLength].fromJSValue()! } - @inlinable public func copyTo(destination: AllowSharedBufferSource) { + @inlinable final public func copyTo(destination: AllowSharedBufferSource) { let this = jsObject _ = this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination)]) } } -public class EncodedVideoChunkInit: BridgedDictionary { - public convenience init(type: EncodedVideoChunkType, timestamp: Int64, duration: UInt64, data: AllowSharedBufferSource) { +open class EncodedVideoChunkInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + type: EncodedVideoChunkType, + timestamp: Int64, + duration: UInt64? = nil, + data: AllowSharedBufferSource, + transfer: [ArrayBuffer]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.timestamp] = _toJSValue(timestamp) object[Strings.duration] = _toJSValue(duration) object[Strings.data] = _toJSValue(data) - self.init(unsafelyWrapping: object) - } + object[Strings.transfer] = _toJSValue(transfer) - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: EncodedVideoChunkType - - @ReadWriteAttribute - public var timestamp: Int64 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var duration: UInt64 - - @ReadWriteAttribute - public var data: AllowSharedBufferSource + @inlinable public var type: EncodedVideoChunkType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var timestamp: Int64 { + get { jsObject[Strings.timestamp].fromJSValue()! } + set { jsObject[Strings.timestamp] = _toJSValue(newValue) } + } + @inlinable public var duration: UInt64 { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var data: AllowSharedBufferSource { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var transfer: [ArrayBuffer] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } } +open class EncodedVideoChunkMetadata: JSDictionaryCompatible { + public let jsObject: JSObject -public class EncodedVideoChunkMetadata: BridgedDictionary { - public convenience init(decoderConfig: VideoDecoderConfig, svc: SvcOutputMetadata, alphaSideData: BufferSource) { + public convenience init( + decoderConfig: VideoDecoderConfig? = nil, + svc: SvcOutputMetadata? = nil, + alphaSideData: BufferSource? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.decoderConfig] = _toJSValue(decoderConfig) object[Strings.svc] = _toJSValue(svc) object[Strings.alphaSideData] = _toJSValue(alphaSideData) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig) - _svc = ReadWriteAttribute(jsObject: object, name: Strings.svc) - _alphaSideData = ReadWriteAttribute(jsObject: object, name: Strings.alphaSideData) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var decoderConfig: VideoDecoderConfig + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var svc: SvcOutputMetadata - - @ReadWriteAttribute - public var alphaSideData: BufferSource + @inlinable public var decoderConfig: VideoDecoderConfig { + get { jsObject[Strings.decoderConfig].fromJSValue()! } + set { jsObject[Strings.decoderConfig] = _toJSValue(newValue) } + } + @inlinable public var svc: SvcOutputMetadata { + get { jsObject[Strings.svc].fromJSValue()! } + set { jsObject[Strings.svc] = _toJSValue(newValue) } + } + @inlinable public var alphaSideData: BufferSource { + get { jsObject[Strings.alphaSideData].fromJSValue()! } + set { jsObject[Strings.alphaSideData] = _toJSValue(newValue) } + } } - public enum EncodedVideoChunkType: JSString, JSValueCompatible { case key = "key" case delta = "delta" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum EndOfStreamError: JSString, JSValueCompatible { case network = "network" case decode = "decode" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum EndingType: JSString, JSValueCompatible { case transparent = "transparent" case native = "native" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class ErrorEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ErrorEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.ErrorEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - _filename = ReadonlyAttribute(jsObject: jsObject, name: Strings.filename) - _lineno = ReadonlyAttribute(jsObject: jsObject, name: Strings.lineno) - _colno = ReadonlyAttribute(jsObject: jsObject, name: Strings.colno) - _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: ErrorEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } - @ReadonlyAttribute - public var filename: String + @inlinable public var filename: String { jsObject[Strings.filename].fromJSValue()! } - @ReadonlyAttribute - public var lineno: UInt32 + @inlinable public var lineno: UInt32 { jsObject[Strings.lineno].fromJSValue()! } - @ReadonlyAttribute - public var colno: UInt32 + @inlinable public var colno: UInt32 { jsObject[Strings.colno].fromJSValue()! } - @ReadonlyAttribute - public var error: JSValue + @inlinable public var error: JSValue { jsObject[Strings.error].fromJSValue()! } } -public class ErrorEventInit: BridgedDictionary { - public convenience init(message: String, filename: String, lineno: UInt32, colno: UInt32, error: JSValue) { +open class ErrorEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + message: String? = nil, + filename: String? = nil, + lineno: UInt32? = nil, + colno: UInt32? = nil, + error: JSValue? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.message] = _toJSValue(message) object[Strings.filename] = _toJSValue(filename) object[Strings.lineno] = _toJSValue(lineno) object[Strings.colno] = _toJSValue(colno) object[Strings.error] = _toJSValue(error) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _message = ReadWriteAttribute(jsObject: object, name: Strings.message) - _filename = ReadWriteAttribute(jsObject: object, name: Strings.filename) - _lineno = ReadWriteAttribute(jsObject: object, name: Strings.lineno) - _colno = ReadWriteAttribute(jsObject: object, name: Strings.colno) - _error = ReadWriteAttribute(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var message: String - - @ReadWriteAttribute - public var filename: String - - @ReadWriteAttribute - public var lineno: UInt32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var colno: UInt32 - - @ReadWriteAttribute - public var error: JSValue + @inlinable public var message: String { + get { jsObject[Strings.message].fromJSValue()! } + set { jsObject[Strings.message] = _toJSValue(newValue) } + } + @inlinable public var filename: String { + get { jsObject[Strings.filename].fromJSValue()! } + set { jsObject[Strings.filename] = _toJSValue(newValue) } + } + @inlinable public var lineno: UInt32 { + get { jsObject[Strings.lineno].fromJSValue()! } + set { jsObject[Strings.lineno] = _toJSValue(newValue) } + } + @inlinable public var colno: UInt32 { + get { jsObject[Strings.colno].fromJSValue()! } + set { jsObject[Strings.colno] = _toJSValue(newValue) } + } + @inlinable public var error: JSValue { + get { jsObject[Strings.error].fromJSValue()! } + set { jsObject[Strings.error] = _toJSValue(newValue) } + } } - open class Event: JSBridgedClass { @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.Event].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target) - _srcElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.srcElement) - _currentTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTarget) - _eventPhase = ReadonlyAttribute(jsObject: jsObject, name: Strings.eventPhase) - _cancelBubble = ReadWriteAttribute(jsObject: jsObject, name: Strings.cancelBubble) - _bubbles = ReadonlyAttribute(jsObject: jsObject, name: Strings.bubbles) - _cancelable = ReadonlyAttribute(jsObject: jsObject, name: Strings.cancelable) - _returnValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.returnValue) - _defaultPrevented = ReadonlyAttribute(jsObject: jsObject, name: Strings.defaultPrevented) - _composed = ReadonlyAttribute(jsObject: jsObject, name: Strings.composed) - _isTrusted = ReadonlyAttribute(jsObject: jsObject, name: Strings.isTrusted) - _timeStamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeStamp) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(type: String, eventInitDict: EventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var target: EventTarget? + @inlinable public var target: EventTarget? { jsObject[Strings.target].fromJSValue() } - @ReadonlyAttribute - public var srcElement: EventTarget? + @inlinable public var srcElement: EventTarget? { jsObject[Strings.srcElement].fromJSValue() } - @ReadonlyAttribute - public var currentTarget: EventTarget? + @inlinable public var currentTarget: EventTarget? { jsObject[Strings.currentTarget].fromJSValue() } - @inlinable public func composedPath() -> [EventTarget] { + @inlinable final public func composedPath() -> [EventTarget] { let this = jsObject return this[Strings.composedPath].function!(this: this, arguments: []).fromJSValue()! } @@ -5267,100 +5628,125 @@ open class Event: JSBridgedClass { public static let BUBBLING_PHASE: UInt16 = 3 - @ReadonlyAttribute - public var eventPhase: UInt16 + @inlinable public var eventPhase: UInt16 { jsObject[Strings.eventPhase].fromJSValue()! } - @inlinable public func stopPropagation() { + @inlinable final public func stopPropagation() { let this = jsObject _ = this[Strings.stopPropagation].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var cancelBubble: Bool + @inlinable public var cancelBubble: Bool { + get { jsObject[Strings.cancelBubble].fromJSValue()! } + set { jsObject[Strings.cancelBubble] = _toJSValue(newValue) } + } - @inlinable public func stopImmediatePropagation() { + @inlinable final public func stopImmediatePropagation() { let this = jsObject _ = this[Strings.stopImmediatePropagation].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var bubbles: Bool + @inlinable public var bubbles: Bool { jsObject[Strings.bubbles].fromJSValue()! } - @ReadonlyAttribute - public var cancelable: Bool + @inlinable public var cancelable: Bool { jsObject[Strings.cancelable].fromJSValue()! } - @ReadWriteAttribute - public var returnValue: Bool + @inlinable public var returnValue: Bool { + get { jsObject[Strings.returnValue].fromJSValue()! } + set { jsObject[Strings.returnValue] = _toJSValue(newValue) } + } - @inlinable public func preventDefault() { + @inlinable final public func preventDefault() { let this = jsObject _ = this[Strings.preventDefault].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var defaultPrevented: Bool + @inlinable public var defaultPrevented: Bool { jsObject[Strings.defaultPrevented].fromJSValue()! } - @ReadonlyAttribute - public var composed: Bool + @inlinable public var composed: Bool { jsObject[Strings.composed].fromJSValue()! } - @ReadonlyAttribute - public var isTrusted: Bool + @inlinable public var isTrusted: Bool { jsObject[Strings.isTrusted].fromJSValue()! } - @ReadonlyAttribute - public var timeStamp: DOMHighResTimeStamp + @inlinable public var timeStamp: DOMHighResTimeStamp { jsObject[Strings.timeStamp].fromJSValue()! } - @inlinable public func initEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil) { + @inlinable final public func initEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil) { let this = jsObject - _ = this[Strings.initEvent].function!(this: this, arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable)]) + _ = this[Strings.initEvent].function!( + this: this, + arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable)] + ) } } -public class EventInit: BridgedDictionary { - public convenience init(bubbles: Bool, cancelable: Bool, composed: Bool) { +open class EventInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(bubbles: Bool? = nil, cancelable: Bool? = nil, composed: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.bubbles] = _toJSValue(bubbles) object[Strings.cancelable] = _toJSValue(cancelable) object[Strings.composed] = _toJSValue(composed) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _bubbles = ReadWriteAttribute(jsObject: object, name: Strings.bubbles) - _cancelable = ReadWriteAttribute(jsObject: object, name: Strings.cancelable) - _composed = ReadWriteAttribute(jsObject: object, name: Strings.composed) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var bubbles: Bool - - @ReadWriteAttribute - public var cancelable: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var composed: Bool + @inlinable public var bubbles: Bool { + get { jsObject[Strings.bubbles].fromJSValue()! } + set { jsObject[Strings.bubbles] = _toJSValue(newValue) } + } + @inlinable public var cancelable: Bool { + get { jsObject[Strings.cancelable].fromJSValue()! } + set { jsObject[Strings.cancelable] = _toJSValue(newValue) } + } + @inlinable public var composed: Bool { + get { jsObject[Strings.composed].fromJSValue()! } + set { jsObject[Strings.composed] = _toJSValue(newValue) } + } } public typealias EventListener = (Event) -> Void -public class EventListenerOptions: BridgedDictionary { - public convenience init(capture: Bool) { +open class EventListenerOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(capture: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.capture] = _toJSValue(capture) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _capture = ReadWriteAttribute(jsObject: object, name: Strings.capture) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var capture: Bool -} - -public class EventModifierInit: BridgedDictionary { - public convenience init(ctrlKey: Bool, shiftKey: Bool, altKey: Bool, metaKey: Bool, modifierAltGraph: Bool, modifierCapsLock: Bool, modifierFn: Bool, modifierFnLock: Bool, modifierHyper: Bool, modifierNumLock: Bool, modifierScrollLock: Bool, modifierSuper: Bool, modifierSymbol: Bool, modifierSymbolLock: Bool) { + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var capture: Bool { + get { jsObject[Strings.capture].fromJSValue()! } + set { jsObject[Strings.capture] = _toJSValue(newValue) } + } +} +open class EventModifierInit: UIEventInit { + + public convenience init( + view: Window?, + detail: Int32? = nil, + which: UInt32? = nil, + ctrlKey: Bool? = nil, + shiftKey: Bool? = nil, + altKey: Bool? = nil, + metaKey: Bool? = nil, + modifierAltGraph: Bool? = nil, + modifierCapsLock: Bool? = nil, + modifierFn: Bool? = nil, + modifierFnLock: Bool? = nil, + modifierHyper: Bool? = nil, + modifierNumLock: Bool? = nil, + modifierScrollLock: Bool? = nil, + modifierSuper: Bool? = nil, + modifierSymbol: Bool? = nil, + modifierSymbolLock: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.view] = _toJSValue(view) + object[Strings.detail] = _toJSValue(detail) + object[Strings.which] = _toJSValue(which) object[Strings.ctrlKey] = _toJSValue(ctrlKey) object[Strings.shiftKey] = _toJSValue(shiftKey) object[Strings.altKey] = _toJSValue(altKey) @@ -5375,92 +5761,83 @@ public class EventModifierInit: BridgedDictionary { object[Strings.modifierSuper] = _toJSValue(modifierSuper) object[Strings.modifierSymbol] = _toJSValue(modifierSymbol) object[Strings.modifierSymbolLock] = _toJSValue(modifierSymbolLock) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _ctrlKey = ReadWriteAttribute(jsObject: object, name: Strings.ctrlKey) - _shiftKey = ReadWriteAttribute(jsObject: object, name: Strings.shiftKey) - _altKey = ReadWriteAttribute(jsObject: object, name: Strings.altKey) - _metaKey = ReadWriteAttribute(jsObject: object, name: Strings.metaKey) - _modifierAltGraph = ReadWriteAttribute(jsObject: object, name: Strings.modifierAltGraph) - _modifierCapsLock = ReadWriteAttribute(jsObject: object, name: Strings.modifierCapsLock) - _modifierFn = ReadWriteAttribute(jsObject: object, name: Strings.modifierFn) - _modifierFnLock = ReadWriteAttribute(jsObject: object, name: Strings.modifierFnLock) - _modifierHyper = ReadWriteAttribute(jsObject: object, name: Strings.modifierHyper) - _modifierNumLock = ReadWriteAttribute(jsObject: object, name: Strings.modifierNumLock) - _modifierScrollLock = ReadWriteAttribute(jsObject: object, name: Strings.modifierScrollLock) - _modifierSuper = ReadWriteAttribute(jsObject: object, name: Strings.modifierSuper) - _modifierSymbol = ReadWriteAttribute(jsObject: object, name: Strings.modifierSymbol) - _modifierSymbolLock = ReadWriteAttribute(jsObject: object, name: Strings.modifierSymbolLock) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var ctrlKey: Bool - - @ReadWriteAttribute - public var shiftKey: Bool - - @ReadWriteAttribute - public var altKey: Bool - - @ReadWriteAttribute - public var metaKey: Bool - - @ReadWriteAttribute - public var modifierAltGraph: Bool + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var modifierCapsLock: Bool - - @ReadWriteAttribute - public var modifierFn: Bool - - @ReadWriteAttribute - public var modifierFnLock: Bool - - @ReadWriteAttribute - public var modifierHyper: Bool - - @ReadWriteAttribute - public var modifierNumLock: Bool - - @ReadWriteAttribute - public var modifierScrollLock: Bool - - @ReadWriteAttribute - public var modifierSuper: Bool - - @ReadWriteAttribute - public var modifierSymbol: Bool - - @ReadWriteAttribute - public var modifierSymbolLock: Bool + @inlinable public var ctrlKey: Bool { + get { jsObject[Strings.ctrlKey].fromJSValue()! } + set { jsObject[Strings.ctrlKey] = _toJSValue(newValue) } + } + @inlinable public var shiftKey: Bool { + get { jsObject[Strings.shiftKey].fromJSValue()! } + set { jsObject[Strings.shiftKey] = _toJSValue(newValue) } + } + @inlinable public var altKey: Bool { + get { jsObject[Strings.altKey].fromJSValue()! } + set { jsObject[Strings.altKey] = _toJSValue(newValue) } + } + @inlinable public var metaKey: Bool { + get { jsObject[Strings.metaKey].fromJSValue()! } + set { jsObject[Strings.metaKey] = _toJSValue(newValue) } + } + @inlinable public var modifierAltGraph: Bool { + get { jsObject[Strings.modifierAltGraph].fromJSValue()! } + set { jsObject[Strings.modifierAltGraph] = _toJSValue(newValue) } + } + @inlinable public var modifierCapsLock: Bool { + get { jsObject[Strings.modifierCapsLock].fromJSValue()! } + set { jsObject[Strings.modifierCapsLock] = _toJSValue(newValue) } + } + @inlinable public var modifierFn: Bool { + get { jsObject[Strings.modifierFn].fromJSValue()! } + set { jsObject[Strings.modifierFn] = _toJSValue(newValue) } + } + @inlinable public var modifierFnLock: Bool { + get { jsObject[Strings.modifierFnLock].fromJSValue()! } + set { jsObject[Strings.modifierFnLock] = _toJSValue(newValue) } + } + @inlinable public var modifierHyper: Bool { + get { jsObject[Strings.modifierHyper].fromJSValue()! } + set { jsObject[Strings.modifierHyper] = _toJSValue(newValue) } + } + @inlinable public var modifierNumLock: Bool { + get { jsObject[Strings.modifierNumLock].fromJSValue()! } + set { jsObject[Strings.modifierNumLock] = _toJSValue(newValue) } + } + @inlinable public var modifierScrollLock: Bool { + get { jsObject[Strings.modifierScrollLock].fromJSValue()! } + set { jsObject[Strings.modifierScrollLock] = _toJSValue(newValue) } + } + @inlinable public var modifierSuper: Bool { + get { jsObject[Strings.modifierSuper].fromJSValue()! } + set { jsObject[Strings.modifierSuper] = _toJSValue(newValue) } + } + @inlinable public var modifierSymbol: Bool { + get { jsObject[Strings.modifierSymbol].fromJSValue()! } + set { jsObject[Strings.modifierSymbol] = _toJSValue(newValue) } + } + @inlinable public var modifierSymbolLock: Bool { + get { jsObject[Strings.modifierSymbolLock].fromJSValue()! } + set { jsObject[Strings.modifierSymbolLock] = _toJSValue(newValue) } + } } - public class EventSource: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.EventSource].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.EventSource].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _withCredentials = ReadonlyAttribute(jsObject: jsObject, name: Strings.withCredentials) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _onopen = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onopen) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(url: String, eventSourceInitDict: EventSourceInit? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(url), _toJSValue(eventSourceInitDict)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(url), _toJSValue(eventSourceInitDict)]) + ) } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } - @ReadonlyAttribute - public var withCredentials: Bool + @inlinable public var withCredentials: Bool { jsObject[Strings.withCredentials].fromJSValue()! } public static let CONNECTING: UInt16 = 0 @@ -5468,103 +5845,154 @@ public class EventSource: EventTarget { public static let CLOSED: UInt16 = 2 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @ClosureAttribute1Optional - public var onopen: EventHandler + @inlinable public var onopen: EventHandler { + get { + guard let function = jsObject[Strings.onopen].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onopen] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onopen] = .null + } + } + } - @ClosureAttribute1Optional - public var onmessage: EventHandler + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } } -public class EventSourceInit: BridgedDictionary { - public convenience init(withCredentials: Bool) { +open class EventSourceInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(withCredentials: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.withCredentials] = _toJSValue(withCredentials) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _withCredentials = ReadWriteAttribute(jsObject: object, name: Strings.withCredentials) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var withCredentials: Bool + @inlinable public var withCredentials: Bool { + get { jsObject[Strings.withCredentials].fromJSValue()! } + set { jsObject[Strings.withCredentials] = _toJSValue(newValue) } + } } - open class EventTarget: JSBridgedClass { @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.EventTarget].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @inlinable public func addEventListener(type: String, callback: EventListener?, options: AddEventListenerOptions_or_Bool? = nil) { + @inlinable final public func addEventListener( + type: String, + callback: EventListener?, + options: AddEventListenerOptions_or_Bool? = nil + ) { let this = jsObject - _ = this[Strings.addEventListener].function!(this: this, arguments: [_toJSValue(type), _toJSValue(callback), _toJSValue(options)]) + _ = this[Strings.addEventListener].function!( + this: this, + arguments: [_toJSValue(type), _toJSValue(callback), _toJSValue(options)] + ) } - @inlinable public func removeEventListener(type: String, callback: EventListener?, options: Bool_or_EventListenerOptions? = nil) { + @inlinable final public func removeEventListener( + type: String, + callback: EventListener?, + options: Bool_or_EventListenerOptions? = nil + ) { let this = jsObject - _ = this[Strings.removeEventListener].function!(this: this, arguments: [_toJSValue(type), _toJSValue(callback), _toJSValue(options)]) + _ = this[Strings.removeEventListener].function!( + this: this, + arguments: [_toJSValue(type), _toJSValue(callback), _toJSValue(options)] + ) } - @inlinable public func dispatchEvent(event: Event) -> Bool { + @inlinable final public func dispatchEvent(event: Event) -> Bool { let this = jsObject return this[Strings.dispatchEvent].function!(this: this, arguments: [_toJSValue(event)]).fromJSValue()! } } -public class ExtendableEventInit: BridgedDictionary { - public convenience init() { +open class ExtendableEventInit: EventInit { + + public convenience init(bubbles: Bool? = nil, cancelable: Bool? = nil, composed: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } +} public class External: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.External].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func AddSearchProvider() { + @inlinable final public func AddSearchProvider() { let this = jsObject _ = this[Strings.AddSearchProvider].function!(this: this, arguments: []) } - @inlinable public func IsSearchProviderInstalled() { + @inlinable final public func IsSearchProviderInstalled() { let this = jsObject _ = this[Strings.IsSearchProviderInstalled].function!(this: this, arguments: []) } } -public class FetchEventInit: BridgedDictionary { - public convenience init(request: Request, preloadResponse: JSPromise, clientId: String, resultingClientId: String, replacesClientId: String, handled: JSPromise) { +open class FetchEventInit: ExtendableEventInit { + + public convenience init( + request: Request, + preloadResponse: JSPromise? = nil, + clientId: String? = nil, + resultingClientId: String? = nil, + replacesClientId: String? = nil, + handled: JSPromise? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.request] = _toJSValue(request) object[Strings.preloadResponse] = _toJSValue(preloadResponse) @@ -5572,56 +6000,53 @@ public class FetchEventInit: BridgedDictionary { object[Strings.resultingClientId] = _toJSValue(resultingClientId) object[Strings.replacesClientId] = _toJSValue(replacesClientId) object[Strings.handled] = _toJSValue(handled) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _request = ReadWriteAttribute(jsObject: object, name: Strings.request) - _preloadResponse = ReadWriteAttribute(jsObject: object, name: Strings.preloadResponse) - _clientId = ReadWriteAttribute(jsObject: object, name: Strings.clientId) - _resultingClientId = ReadWriteAttribute(jsObject: object, name: Strings.resultingClientId) - _replacesClientId = ReadWriteAttribute(jsObject: object, name: Strings.replacesClientId) - _handled = ReadWriteAttribute(jsObject: object, name: Strings.handled) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var request: Request - - @ReadWriteAttribute - public var preloadResponse: JSPromise - - @ReadWriteAttribute - public var clientId: String - - @ReadWriteAttribute - public var resultingClientId: String - - @ReadWriteAttribute - public var replacesClientId: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var handled: JSPromise + @inlinable public var request: Request { + get { jsObject[Strings.request].fromJSValue()! } + set { jsObject[Strings.request] = _toJSValue(newValue) } + } + @inlinable public var preloadResponse: JSPromise { + get { jsObject[Strings.preloadResponse].fromJSValue()! } + set { jsObject[Strings.preloadResponse] = _toJSValue(newValue) } + } + @inlinable public var clientId: String { + get { jsObject[Strings.clientId].fromJSValue()! } + set { jsObject[Strings.clientId] = _toJSValue(newValue) } + } + @inlinable public var resultingClientId: String { + get { jsObject[Strings.resultingClientId].fromJSValue()! } + set { jsObject[Strings.resultingClientId] = _toJSValue(newValue) } + } + @inlinable public var replacesClientId: String { + get { jsObject[Strings.replacesClientId].fromJSValue()! } + set { jsObject[Strings.replacesClientId] = _toJSValue(newValue) } + } + @inlinable public var handled: JSPromise { + get { jsObject[Strings.handled].fromJSValue()! } + set { jsObject[Strings.handled] = _toJSValue(newValue) } + } } - public class File: Blob { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.File].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.File].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _lastModified = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastModified) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(fileBits: [BlobPart], fileName: String, options: FilePropertyBag? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(fileBits), _toJSValue(fileName), _toJSValue(options)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(fileBits), _toJSValue(fileName), _toJSValue(options), + ]) + ) } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var lastModified: Int64 + @inlinable public var lastModified: Int64 { jsObject[Strings.lastModified].fromJSValue()! } } public class FileList: JSBridgedClass { @@ -5629,81 +6054,64 @@ public class FileList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public subscript(key: Int) -> File? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> File? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> File? { + @inlinable final public func item(index: UInt32) -> File? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } } -public class FilePropertyBag: BridgedDictionary { - public convenience init(lastModified: Int64) { +open class FilePropertyBag: BlobPropertyBag { + + public convenience init(type: String? = nil, endings: EndingType? = nil, lastModified: Int64? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.type] = _toJSValue(type) + object[Strings.endings] = _toJSValue(endings) object[Strings.lastModified] = _toJSValue(lastModified) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _lastModified = ReadWriteAttribute(jsObject: object, name: Strings.lastModified) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var lastModified: Int64 + @inlinable public var lastModified: Int64 { + get { jsObject[Strings.lastModified].fromJSValue()! } + set { jsObject[Strings.lastModified] = _toJSValue(newValue) } + } } - public class FileReader: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FileReader].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.FileReader].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _result = ReadonlyAttribute(jsObject: jsObject, name: Strings.result) - _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error) - _onloadstart = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onloadstart) - _onprogress = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onprogress) - _onload = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onload) - _onabort = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onabort) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - _onloadend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onloadend) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @inlinable public func readAsArrayBuffer(blob: Blob) { + @inlinable final public func readAsArrayBuffer(blob: Blob) { let this = jsObject _ = this[Strings.readAsArrayBuffer].function!(this: this, arguments: [_toJSValue(blob)]) } - @inlinable public func readAsBinaryString(blob: Blob) { + @inlinable final public func readAsBinaryString(blob: Blob) { let this = jsObject _ = this[Strings.readAsBinaryString].function!(this: this, arguments: [_toJSValue(blob)]) } - @inlinable public func readAsText(blob: Blob, encoding: String? = nil) { + @inlinable final public func readAsText(blob: Blob, encoding: String? = nil) { let this = jsObject _ = this[Strings.readAsText].function!(this: this, arguments: [_toJSValue(blob), _toJSValue(encoding)]) } - @inlinable public func readAsDataURL(blob: Blob) { + @inlinable final public func readAsDataURL(blob: Blob) { let this = jsObject _ = this[Strings.readAsDataURL].function!(this: this, arguments: [_toJSValue(blob)]) } - @inlinable public func abort() { + @inlinable final public func abort() { let this = jsObject _ = this[Strings.abort].function!(this: this, arguments: []) } @@ -5714,178 +6122,242 @@ public class FileReader: EventTarget { public static let DONE: UInt16 = 2 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @ReadonlyAttribute - public var result: ArrayBuffer_or_String? + @inlinable public var result: ArrayBuffer_or_String? { jsObject[Strings.result].fromJSValue() } - @ReadonlyAttribute - public var error: DOMException? + @inlinable public var error: DOMException? { jsObject[Strings.error].fromJSValue() } - @ClosureAttribute1Optional - public var onloadstart: EventHandler + @inlinable public var onloadstart: EventHandler { + get { + guard let function = jsObject[Strings.onloadstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadstart] = .null + } + } + } - @ClosureAttribute1Optional - public var onprogress: EventHandler + @inlinable public var onprogress: EventHandler { + get { + guard let function = jsObject[Strings.onprogress].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onprogress] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onprogress] = .null + } + } + } - @ClosureAttribute1Optional - public var onload: EventHandler + @inlinable public var onload: EventHandler { + get { + guard let function = jsObject[Strings.onload].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onload] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onload] = .null + } + } + } - @ClosureAttribute1Optional - public var onabort: EventHandler + @inlinable public var onabort: EventHandler { + get { + guard let function = jsObject[Strings.onabort].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onabort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onabort] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @ClosureAttribute1Optional - public var onloadend: EventHandler + @inlinable public var onloadend: EventHandler { + get { + guard let function = jsObject[Strings.onloadend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadend] = .null + } + } + } } public class FocusEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FocusEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.FocusEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: FocusEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var relatedTarget: EventTarget? + @inlinable public var relatedTarget: EventTarget? { jsObject[Strings.relatedTarget].fromJSValue() } } -public class FocusEventInit: BridgedDictionary { - public convenience init(relatedTarget: EventTarget?) { +open class FocusEventInit: UIEventInit { + + public convenience init(view: Window?, detail: Int32? = nil, which: UInt32? = nil, relatedTarget: EventTarget?) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.view] = _toJSValue(view) + object[Strings.detail] = _toJSValue(detail) + object[Strings.which] = _toJSValue(which) object[Strings.relatedTarget] = _toJSValue(relatedTarget) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _relatedTarget = ReadWriteAttribute(jsObject: object, name: Strings.relatedTarget) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var relatedTarget: EventTarget? + @inlinable public var relatedTarget: EventTarget? { + get { jsObject[Strings.relatedTarget].fromJSValue() } + set { jsObject[Strings.relatedTarget] = _toJSValue(newValue) } + } } +open class FocusOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class FocusOptions: BridgedDictionary { - public convenience init(preventScroll: Bool, focusVisible: Bool) { + public convenience init(preventScroll: Bool? = nil, focusVisible: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.preventScroll] = _toJSValue(preventScroll) object[Strings.focusVisible] = _toJSValue(focusVisible) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _preventScroll = ReadWriteAttribute(jsObject: object, name: Strings.preventScroll) - _focusVisible = ReadWriteAttribute(jsObject: object, name: Strings.focusVisible) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var preventScroll: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var focusVisible: Bool + @inlinable public var preventScroll: Bool { + get { jsObject[Strings.preventScroll].fromJSValue()! } + set { jsObject[Strings.preventScroll] = _toJSValue(newValue) } + } + @inlinable public var focusVisible: Bool { + get { jsObject[Strings.focusVisible].fromJSValue()! } + set { jsObject[Strings.focusVisible] = _toJSValue(newValue) } + } } - public class FormData: JSBridgedClass, Sequence { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.FormData].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(form: HTMLFormElement? = nil, submitter: HTMLElement? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(form), _toJSValue(submitter)])) } - @inlinable public func append(name: String, value: String) { + @inlinable final public func append(name: String, value: String) { let this = jsObject _ = this[Strings.append].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func append(name: String, blobValue: Blob, filename: String? = nil) { + @inlinable final public func append(name: String, blobValue: Blob, filename: String? = nil) { let this = jsObject - _ = this[Strings.append].function!(this: this, arguments: [_toJSValue(name), _toJSValue(blobValue), _toJSValue(filename)]) + _ = this[Strings.append].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(blobValue), _toJSValue(filename)] + ) } - @inlinable public func delete(name: String) { + @inlinable final public func delete(name: String) { let this = jsObject _ = this[Strings.delete].function!(this: this, arguments: [_toJSValue(name)]) } - @inlinable public func get(name: String) -> FormDataEntryValue? { + @inlinable final public func get(name: String) -> FormDataEntryValue? { let this = jsObject return this[Strings.get].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func getAll(name: String) -> [FormDataEntryValue] { + @inlinable final public func getAll(name: String) -> [FormDataEntryValue] { let this = jsObject return this[Strings.getAll].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @inlinable public func has(name: String) -> Bool { + @inlinable final public func has(name: String) -> Bool { let this = jsObject return this[Strings.has].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @inlinable public func set(name: String, value: String) { + @inlinable final public func set(name: String, value: String) { let this = jsObject _ = this[Strings.set].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func set(name: String, blobValue: Blob, filename: String? = nil) { + @inlinable final public func set(name: String, blobValue: Blob, filename: String? = nil) { let this = jsObject - _ = this[Strings.set].function!(this: this, arguments: [_toJSValue(name), _toJSValue(blobValue), _toJSValue(filename)]) + _ = this[Strings.set].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(blobValue), _toJSValue(filename)] + ) } public typealias Element = String - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } } public class FormDataEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FormDataEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.FormDataEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _formData = ReadonlyAttribute(jsObject: jsObject, name: Strings.formData) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: FormDataEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var formData: FormData + @inlinable public var formData: FormData { jsObject[Strings.formData].fromJSValue()! } } -public class FormDataEventInit: BridgedDictionary { - public convenience init(formData: FormData) { +open class FormDataEventInit: EventInit { + + public convenience init(bubbles: Bool? = nil, cancelable: Bool? = nil, composed: Bool? = nil, formData: FormData) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.formData] = _toJSValue(formData) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _formData = ReadWriteAttribute(jsObject: object, name: Strings.formData) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var formData: FormData + @inlinable public var formData: FormData { + get { jsObject[Strings.formData].fromJSValue()! } + set { jsObject[Strings.formData] = _toJSValue(newValue) } + } } - public enum FrameType: JSString, JSValueCompatible { case auxiliary = "auxiliary" case topLevel = "top-level" @@ -5893,814 +6365,1602 @@ public enum FrameType: JSString, JSValueCompatible { case none = "none" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol GenericTransformStream: JSBridgedClass {} -public extension GenericTransformStream { - @inlinable var readable: ReadableStream { jsObject[Strings.readable].fromJSValue()! } +extension GenericTransformStream { + @inlinable public var readable: ReadableStream { jsObject[Strings.readable].fromJSValue()! } - @inlinable var writable: WritableStream { jsObject[Strings.writable].fromJSValue()! } + @inlinable public var writable: WritableStream { jsObject[Strings.writable].fromJSValue()! } } - public protocol GeometryUtils: JSBridgedClass {} -public extension GeometryUtils { - @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { +extension GeometryUtils { + @inlinable public func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] { let this = jsObject return this[Strings.getBoxQuads].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + @inlinable public func convertQuadFromNode( + quad: DOMQuadInit, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMQuad { let this = jsObject - return this[Strings.convertQuadFromNode].function!(this: this, arguments: [_toJSValue(quad), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertQuadFromNode].function!( + this: this, + arguments: [_toJSValue(quad), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } - @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad { + @inlinable public func convertRectFromNode( + rect: DOMRectReadOnly, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMQuad { let this = jsObject - return this[Strings.convertRectFromNode].function!(this: this, arguments: [_toJSValue(rect), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertRectFromNode].function!( + this: this, + arguments: [_toJSValue(rect), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } - @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint { + @inlinable public func convertPointFromNode( + point: DOMPointInit, + from: GeometryNode, + options: ConvertCoordinateOptions? = nil + ) -> DOMPoint { let this = jsObject - return this[Strings.convertPointFromNode].function!(this: this, arguments: [_toJSValue(point), _toJSValue(from), _toJSValue(options)]).fromJSValue()! + return this[Strings.convertPointFromNode].function!( + this: this, + arguments: [_toJSValue(point), _toJSValue(from), _toJSValue(options)] + ).fromJSValue()! } } +open class GetHTMLOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class GetRootNodeOptions: BridgedDictionary { - public convenience init(composed: Bool) { + public convenience init(serializableShadowRoots: Bool? = nil, shadowRoots: [ShadowRoot]? = nil) { let object = JSObject.global[Strings.Object].function!.new() - object[Strings.composed] = _toJSValue(composed) - self.init(unsafelyWrapping: object) - } + object[Strings.serializableShadowRoots] = _toJSValue(serializableShadowRoots) + object[Strings.shadowRoots] = _toJSValue(shadowRoots) - public required init(unsafelyWrapping object: JSObject) { - _composed = ReadWriteAttribute(jsObject: object, name: Strings.composed) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var composed: Bool -} + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } -public protocol GlobalEventHandlers: JSBridgedClass {} -public extension GlobalEventHandlers { - @inlinable var onabort: EventHandler { - get { ClosureAttribute1Optional[Strings.onabort, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onabort, in: jsObject] = newValue } + @inlinable public var serializableShadowRoots: Bool { + get { jsObject[Strings.serializableShadowRoots].fromJSValue()! } + set { jsObject[Strings.serializableShadowRoots] = _toJSValue(newValue) } } - - @inlinable var onauxclick: EventHandler { - get { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] = newValue } + @inlinable public var shadowRoots: [ShadowRoot] { + get { jsObject[Strings.shadowRoots].fromJSValue()! } + set { jsObject[Strings.shadowRoots] = _toJSValue(newValue) } } +} +open class GetRootNodeOptions: JSDictionaryCompatible { + public let jsObject: JSObject - @inlinable var onbeforeinput: EventHandler { - get { ClosureAttribute1Optional[Strings.onbeforeinput, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onbeforeinput, in: jsObject] = newValue } - } + public convenience init(composed: Bool? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.composed] = _toJSValue(composed) - @inlinable var onbeforematch: EventHandler { - get { ClosureAttribute1Optional[Strings.onbeforematch, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onbeforematch, in: jsObject] = newValue } + self.init(unsafelyWrapping: object) } - @inlinable var onbeforetoggle: EventHandler { - get { ClosureAttribute1Optional[Strings.onbeforetoggle, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onbeforetoggle, in: jsObject] = newValue } - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @inlinable var onblur: EventHandler { - get { ClosureAttribute1Optional[Strings.onblur, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onblur, in: jsObject] = newValue } + @inlinable public var composed: Bool { + get { jsObject[Strings.composed].fromJSValue()! } + set { jsObject[Strings.composed] = _toJSValue(newValue) } } - - @inlinable var oncancel: EventHandler { - get { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] = newValue } +} +public protocol GlobalEventHandlers: JSBridgedClass {} +extension GlobalEventHandlers { + @inlinable public var onabort: EventHandler { + get { + guard let function = jsObject[Strings.onabort].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onabort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onabort] = .null + } + } } - @inlinable var oncanplay: EventHandler { - get { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] = newValue } + @inlinable public var onauxclick: EventHandler { + get { + guard let function = jsObject[Strings.onauxclick].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onauxclick] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onauxclick] = .null + } + } } - @inlinable var oncanplaythrough: EventHandler { - get { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] = newValue } + @inlinable public var onbeforeinput: EventHandler { + get { + guard let function = jsObject[Strings.onbeforeinput].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbeforeinput] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbeforeinput] = .null + } + } } - @inlinable var onchange: EventHandler { - get { ClosureAttribute1Optional[Strings.onchange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onchange, in: jsObject] = newValue } + @inlinable public var onbeforematch: EventHandler { + get { + guard let function = jsObject[Strings.onbeforematch].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbeforematch] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbeforematch] = .null + } + } } - @inlinable var onclick: EventHandler { - get { ClosureAttribute1Optional[Strings.onclick, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onclick, in: jsObject] = newValue } + @inlinable public var onbeforetoggle: EventHandler { + get { + guard let function = jsObject[Strings.onbeforetoggle].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbeforetoggle] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbeforetoggle] = .null + } + } } - @inlinable var onclose: EventHandler { - get { ClosureAttribute1Optional[Strings.onclose, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onclose, in: jsObject] = newValue } + @inlinable public var onblur: EventHandler { + get { + guard let function = jsObject[Strings.onblur].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onblur] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onblur] = .null + } + } } - @inlinable var oncontextlost: EventHandler { - get { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] = newValue } + @inlinable public var oncancel: EventHandler { + get { + guard let function = jsObject[Strings.oncancel].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncancel] = .null + } + } } - @inlinable var oncontextmenu: EventHandler { - get { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] = newValue } + @inlinable public var oncanplay: EventHandler { + get { + guard let function = jsObject[Strings.oncanplay].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncanplay] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncanplay] = .null + } + } } - @inlinable var oncontextrestored: EventHandler { - get { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] = newValue } + @inlinable public var oncanplaythrough: EventHandler { + get { + guard let function = jsObject[Strings.oncanplaythrough].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncanplaythrough] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncanplaythrough] = .null + } + } } - @inlinable var oncopy: EventHandler { - get { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] = newValue } + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } } - @inlinable var oncuechange: EventHandler { - get { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] = newValue } + @inlinable public var onclick: EventHandler { + get { + guard let function = jsObject[Strings.onclick].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onclick] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onclick] = .null + } + } } - @inlinable var oncut: EventHandler { - get { ClosureAttribute1Optional[Strings.oncut, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oncut, in: jsObject] = newValue } + @inlinable public var onclose: EventHandler { + get { + guard let function = jsObject[Strings.onclose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onclose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onclose] = .null + } + } } - @inlinable var ondblclick: EventHandler { - get { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] = newValue } + @inlinable public var oncommand: EventHandler { + get { + guard let function = jsObject[Strings.oncommand].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncommand] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncommand] = .null + } + } } - @inlinable var ondrag: EventHandler { - get { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] = newValue } + @inlinable public var oncontextlost: EventHandler { + get { + guard let function = jsObject[Strings.oncontextlost].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontextlost] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontextlost] = .null + } + } } - @inlinable var ondragend: EventHandler { - get { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] = newValue } + @inlinable public var oncontextmenu: EventHandler { + get { + guard let function = jsObject[Strings.oncontextmenu].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontextmenu] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontextmenu] = .null + } + } } - @inlinable var ondragenter: EventHandler { - get { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] = newValue } + @inlinable public var oncontextrestored: EventHandler { + get { + guard let function = jsObject[Strings.oncontextrestored].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontextrestored] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontextrestored] = .null + } + } } - @inlinable var ondragleave: EventHandler { - get { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] = newValue } + @inlinable public var oncopy: EventHandler { + get { + guard let function = jsObject[Strings.oncopy].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncopy] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncopy] = .null + } + } } - @inlinable var ondragover: EventHandler { - get { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] = newValue } + @inlinable public var oncuechange: EventHandler { + get { + guard let function = jsObject[Strings.oncuechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncuechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncuechange] = .null + } + } } - @inlinable var ondragstart: EventHandler { - get { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] = newValue } + @inlinable public var oncut: EventHandler { + get { + guard let function = jsObject[Strings.oncut].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncut] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncut] = .null + } + } } - @inlinable var ondrop: EventHandler { - get { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] = newValue } + @inlinable public var ondblclick: EventHandler { + get { + guard let function = jsObject[Strings.ondblclick].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondblclick] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondblclick] = .null + } + } } - @inlinable var ondurationchange: EventHandler { - get { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] = newValue } + @inlinable public var ondrag: EventHandler { + get { + guard let function = jsObject[Strings.ondrag].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondrag] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondrag] = .null + } + } } - @inlinable var onemptied: EventHandler { - get { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] = newValue } + @inlinable public var ondragend: EventHandler { + get { + guard let function = jsObject[Strings.ondragend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondragend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondragend] = .null + } + } } - @inlinable var onended: EventHandler { - get { ClosureAttribute1Optional[Strings.onended, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onended, in: jsObject] = newValue } + @inlinable public var ondragenter: EventHandler { + get { + guard let function = jsObject[Strings.ondragenter].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondragenter] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondragenter] = .null + } + } } - @inlinable var onerror: OnErrorEventHandler { - get { ClosureAttribute5Optional[Strings.onerror, in: jsObject] } - nonmutating set { ClosureAttribute5Optional[Strings.onerror, in: jsObject] = newValue } + @inlinable public var ondragleave: EventHandler { + get { + guard let function = jsObject[Strings.ondragleave].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondragleave] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondragleave] = .null + } + } } - @inlinable var onfocus: EventHandler { - get { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] = newValue } + @inlinable public var ondragover: EventHandler { + get { + guard let function = jsObject[Strings.ondragover].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondragover] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondragover] = .null + } + } } - @inlinable var onformdata: EventHandler { - get { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] = newValue } + @inlinable public var ondragstart: EventHandler { + get { + guard let function = jsObject[Strings.ondragstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondragstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondragstart] = .null + } + } } - @inlinable var oninput: EventHandler { - get { ClosureAttribute1Optional[Strings.oninput, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oninput, in: jsObject] = newValue } + @inlinable public var ondrop: EventHandler { + get { + guard let function = jsObject[Strings.ondrop].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondrop] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondrop] = .null + } + } } - @inlinable var oninvalid: EventHandler { - get { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] = newValue } + @inlinable public var ondurationchange: EventHandler { + get { + guard let function = jsObject[Strings.ondurationchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondurationchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondurationchange] = .null + } + } } - @inlinable var onkeydown: EventHandler { - get { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] = newValue } + @inlinable public var onemptied: EventHandler { + get { + guard let function = jsObject[Strings.onemptied].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onemptied] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onemptied] = .null + } + } } - @inlinable var onkeypress: EventHandler { - get { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] = newValue } + @inlinable public var onended: EventHandler { + get { + guard let function = jsObject[Strings.onended].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onended] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onended] = .null + } + } } - @inlinable var onkeyup: EventHandler { - get { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] = newValue } + @inlinable public var onerror: OnErrorEventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { + function(_toJSValue($0), _toJSValue($1), _toJSValue($2), _toJSValue($3), _toJSValue($4)).fromJSValue()! + } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = + JSClosure { + _toJSValue( + newValue( + $0[0].fromJSValue()!, + $0[1].fromJSValue()!, + $0[2].fromJSValue()!, + $0[3].fromJSValue()!, + $0[4].fromJSValue()! + ) + ) + }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } + + @inlinable public var onfocus: EventHandler { + get { + guard let function = jsObject[Strings.onfocus].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onfocus] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onfocus] = .null + } + } } - @inlinable var onload: EventHandler { - get { ClosureAttribute1Optional[Strings.onload, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onload, in: jsObject] = newValue } + @inlinable public var onformdata: EventHandler { + get { + guard let function = jsObject[Strings.onformdata].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onformdata] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onformdata] = .null + } + } } - @inlinable var onloadeddata: EventHandler { - get { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] = newValue } + @inlinable public var oninput: EventHandler { + get { + guard let function = jsObject[Strings.oninput].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oninput] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oninput] = .null + } + } } - @inlinable var onloadedmetadata: EventHandler { - get { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] = newValue } + @inlinable public var oninvalid: EventHandler { + get { + guard let function = jsObject[Strings.oninvalid].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oninvalid] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oninvalid] = .null + } + } } - @inlinable var onloadstart: EventHandler { - get { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] = newValue } + @inlinable public var onkeydown: EventHandler { + get { + guard let function = jsObject[Strings.onkeydown].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onkeydown] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onkeydown] = .null + } + } } - @inlinable var onmousedown: EventHandler { - get { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] = newValue } + @inlinable public var onkeypress: EventHandler { + get { + guard let function = jsObject[Strings.onkeypress].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onkeypress] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onkeypress] = .null + } + } + } + + @inlinable public var onkeyup: EventHandler { + get { + guard let function = jsObject[Strings.onkeyup].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onkeyup] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onkeyup] = .null + } + } + } + + @inlinable public var onload: EventHandler { + get { + guard let function = jsObject[Strings.onload].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onload] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onload] = .null + } + } + } + + @inlinable public var onloadeddata: EventHandler { + get { + guard let function = jsObject[Strings.onloadeddata].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadeddata] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadeddata] = .null + } + } + } + + @inlinable public var onloadedmetadata: EventHandler { + get { + guard let function = jsObject[Strings.onloadedmetadata].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadedmetadata] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadedmetadata] = .null + } + } + } + + @inlinable public var onloadstart: EventHandler { + get { + guard let function = jsObject[Strings.onloadstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadstart] = .null + } + } + } + + @inlinable public var onmousedown: EventHandler { + get { + guard let function = jsObject[Strings.onmousedown].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmousedown] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmousedown] = .null + } + } } - @inlinable var onmouseenter: EventHandler { - get { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] = newValue } + @inlinable public var onmouseenter: EventHandler { + get { + guard let function = jsObject[Strings.onmouseenter].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmouseenter] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmouseenter] = .null + } + } } - @inlinable var onmouseleave: EventHandler { - get { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] = newValue } + @inlinable public var onmouseleave: EventHandler { + get { + guard let function = jsObject[Strings.onmouseleave].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmouseleave] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmouseleave] = .null + } + } } - @inlinable var onmousemove: EventHandler { - get { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] = newValue } + @inlinable public var onmousemove: EventHandler { + get { + guard let function = jsObject[Strings.onmousemove].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmousemove] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmousemove] = .null + } + } } - @inlinable var onmouseout: EventHandler { - get { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] = newValue } + @inlinable public var onmouseout: EventHandler { + get { + guard let function = jsObject[Strings.onmouseout].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmouseout] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmouseout] = .null + } + } } - @inlinable var onmouseover: EventHandler { - get { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] = newValue } + @inlinable public var onmouseover: EventHandler { + get { + guard let function = jsObject[Strings.onmouseover].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmouseover] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmouseover] = .null + } + } } - @inlinable var onmouseup: EventHandler { - get { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] = newValue } + @inlinable public var onmouseup: EventHandler { + get { + guard let function = jsObject[Strings.onmouseup].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmouseup] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmouseup] = .null + } + } } - @inlinable var onpaste: EventHandler { - get { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] = newValue } + @inlinable public var onpaste: EventHandler { + get { + guard let function = jsObject[Strings.onpaste].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpaste] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpaste] = .null + } + } } - @inlinable var onpause: EventHandler { - get { ClosureAttribute1Optional[Strings.onpause, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onpause, in: jsObject] = newValue } + @inlinable public var onpause: EventHandler { + get { + guard let function = jsObject[Strings.onpause].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpause] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpause] = .null + } + } } - @inlinable var onplay: EventHandler { - get { ClosureAttribute1Optional[Strings.onplay, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onplay, in: jsObject] = newValue } + @inlinable public var onplay: EventHandler { + get { + guard let function = jsObject[Strings.onplay].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onplay] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onplay] = .null + } + } } - @inlinable var onplaying: EventHandler { - get { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] = newValue } + @inlinable public var onplaying: EventHandler { + get { + guard let function = jsObject[Strings.onplaying].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onplaying] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onplaying] = .null + } + } } - @inlinable var onprogress: EventHandler { - get { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] = newValue } + @inlinable public var onprogress: EventHandler { + get { + guard let function = jsObject[Strings.onprogress].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onprogress] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onprogress] = .null + } + } } - @inlinable var onratechange: EventHandler { - get { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] = newValue } + @inlinable public var onratechange: EventHandler { + get { + guard let function = jsObject[Strings.onratechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onratechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onratechange] = .null + } + } } - @inlinable var onreset: EventHandler { - get { ClosureAttribute1Optional[Strings.onreset, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onreset, in: jsObject] = newValue } + @inlinable public var onreset: EventHandler { + get { + guard let function = jsObject[Strings.onreset].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onreset] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onreset] = .null + } + } } - @inlinable var onresize: EventHandler { - get { ClosureAttribute1Optional[Strings.onresize, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onresize, in: jsObject] = newValue } + @inlinable public var onresize: EventHandler { + get { + guard let function = jsObject[Strings.onresize].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onresize] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onresize] = .null + } + } } - @inlinable var onscroll: EventHandler { - get { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] = newValue } + @inlinable public var onscroll: EventHandler { + get { + guard let function = jsObject[Strings.onscroll].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscroll] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscroll] = .null + } + } } - @inlinable var onscrollend: EventHandler { - get { ClosureAttribute1Optional[Strings.onscrollend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onscrollend, in: jsObject] = newValue } + @inlinable public var onscrollend: EventHandler { + get { + guard let function = jsObject[Strings.onscrollend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscrollend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscrollend] = .null + } + } } - @inlinable var onsecuritypolicyviolation: EventHandler { - get { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] = newValue } + @inlinable public var onsecuritypolicyviolation: EventHandler { + get { + guard let function = jsObject[Strings.onsecuritypolicyviolation].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsecuritypolicyviolation] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsecuritypolicyviolation] = .null + } + } } - @inlinable var onseeked: EventHandler { - get { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] = newValue } + @inlinable public var onseeked: EventHandler { + get { + guard let function = jsObject[Strings.onseeked].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onseeked] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onseeked] = .null + } + } } - @inlinable var onseeking: EventHandler { - get { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] = newValue } + @inlinable public var onseeking: EventHandler { + get { + guard let function = jsObject[Strings.onseeking].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onseeking] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onseeking] = .null + } + } } - @inlinable var onselect: EventHandler { - get { ClosureAttribute1Optional[Strings.onselect, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onselect, in: jsObject] = newValue } + @inlinable public var onselect: EventHandler { + get { + guard let function = jsObject[Strings.onselect].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onselect] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onselect] = .null + } + } } - @inlinable var onslotchange: EventHandler { - get { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] = newValue } + @inlinable public var onslotchange: EventHandler { + get { + guard let function = jsObject[Strings.onslotchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onslotchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onslotchange] = .null + } + } } - @inlinable var onstalled: EventHandler { - get { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] = newValue } + @inlinable public var onstalled: EventHandler { + get { + guard let function = jsObject[Strings.onstalled].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstalled] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstalled] = .null + } + } } - @inlinable var onsubmit: EventHandler { - get { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] = newValue } + @inlinable public var onsubmit: EventHandler { + get { + guard let function = jsObject[Strings.onsubmit].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsubmit] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsubmit] = .null + } + } } - @inlinable var onsuspend: EventHandler { - get { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] = newValue } + @inlinable public var onsuspend: EventHandler { + get { + guard let function = jsObject[Strings.onsuspend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsuspend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsuspend] = .null + } + } } - @inlinable var ontimeupdate: EventHandler { - get { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] = newValue } + @inlinable public var ontimeupdate: EventHandler { + get { + guard let function = jsObject[Strings.ontimeupdate].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontimeupdate] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontimeupdate] = .null + } + } } - @inlinable var ontoggle: EventHandler { - get { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] = newValue } + @inlinable public var ontoggle: EventHandler { + get { + guard let function = jsObject[Strings.ontoggle].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontoggle] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontoggle] = .null + } + } } - @inlinable var onvolumechange: EventHandler { - get { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] = newValue } + @inlinable public var onvolumechange: EventHandler { + get { + guard let function = jsObject[Strings.onvolumechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onvolumechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onvolumechange] = .null + } + } } - @inlinable var onwaiting: EventHandler { - get { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] = newValue } + @inlinable public var onwaiting: EventHandler { + get { + guard let function = jsObject[Strings.onwaiting].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwaiting] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwaiting] = .null + } + } } - @inlinable var onwebkitanimationend: EventHandler { - get { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] = newValue } + @inlinable public var onwebkitanimationend: EventHandler { + get { + guard let function = jsObject[Strings.onwebkitanimationend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwebkitanimationend] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwebkitanimationend] = .null + } + } } - @inlinable var onwebkitanimationiteration: EventHandler { - get { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] = newValue } + @inlinable public var onwebkitanimationiteration: EventHandler { + get { + guard let function = jsObject[Strings.onwebkitanimationiteration].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwebkitanimationiteration] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwebkitanimationiteration] = .null + } + } } - @inlinable var onwebkitanimationstart: EventHandler { - get { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] = newValue } + @inlinable public var onwebkitanimationstart: EventHandler { + get { + guard let function = jsObject[Strings.onwebkitanimationstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwebkitanimationstart] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwebkitanimationstart] = .null + } + } } - @inlinable var onwebkittransitionend: EventHandler { - get { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] = newValue } + @inlinable public var onwebkittransitionend: EventHandler { + get { + guard let function = jsObject[Strings.onwebkittransitionend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwebkittransitionend] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwebkittransitionend] = .null + } + } } - @inlinable var onwheel: EventHandler { - get { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] = newValue } + @inlinable public var onwheel: EventHandler { + get { + guard let function = jsObject[Strings.onwheel].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onwheel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onwheel] = .null + } + } } - @inlinable var ontouchstart: EventHandler { - get { ClosureAttribute1Optional[Strings.ontouchstart, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontouchstart, in: jsObject] = newValue } + @inlinable public var ontouchstart: EventHandler { + get { + guard let function = jsObject[Strings.ontouchstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontouchstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontouchstart] = .null + } + } } - @inlinable var ontouchend: EventHandler { - get { ClosureAttribute1Optional[Strings.ontouchend, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontouchend, in: jsObject] = newValue } + @inlinable public var ontouchend: EventHandler { + get { + guard let function = jsObject[Strings.ontouchend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontouchend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontouchend] = .null + } + } } - @inlinable var ontouchmove: EventHandler { - get { ClosureAttribute1Optional[Strings.ontouchmove, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontouchmove, in: jsObject] = newValue } + @inlinable public var ontouchmove: EventHandler { + get { + guard let function = jsObject[Strings.ontouchmove].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontouchmove] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontouchmove] = .null + } + } } - @inlinable var ontouchcancel: EventHandler { - get { ClosureAttribute1Optional[Strings.ontouchcancel, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ontouchcancel, in: jsObject] = newValue } + @inlinable public var ontouchcancel: EventHandler { + get { + guard let function = jsObject[Strings.ontouchcancel].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontouchcancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontouchcancel] = .null + } + } } } - public class HTMLAllCollection: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAllCollection].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Element { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> Element { jsObject[key].fromJSValue()! } - @inlinable public subscript(key: String) -> Element_or_HTMLCollection? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> Element_or_HTMLCollection? { jsObject[key].fromJSValue() } - @inlinable public func namedItem(name: String) -> Element_or_HTMLCollection? { + @inlinable final public func namedItem(name: String) -> Element_or_HTMLCollection? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func item(nameOrIndex: String? = nil) -> Element_or_HTMLCollection? { + @inlinable final public func item(nameOrIndex: String? = nil) -> Element_or_HTMLCollection? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(nameOrIndex)]).fromJSValue() } } public class HTMLAnchorElement: HTMLElement, HTMLHyperlinkElementUtils { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAnchorElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - _download = ReadWriteAttribute(jsObject: jsObject, name: Strings.download) - _ping = ReadWriteAttribute(jsObject: jsObject, name: Strings.ping) - _rel = ReadWriteAttribute(jsObject: jsObject, name: Strings.rel) - _relList = ReadonlyAttribute(jsObject: jsObject, name: Strings.relList) - _hreflang = ReadWriteAttribute(jsObject: jsObject, name: Strings.hreflang) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _coords = ReadWriteAttribute(jsObject: jsObject, name: Strings.coords) - _charset = ReadWriteAttribute(jsObject: jsObject, name: Strings.charset) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _rev = ReadWriteAttribute(jsObject: jsObject, name: Strings.rev) - _shape = ReadWriteAttribute(jsObject: jsObject, name: Strings.shape) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLAnchorElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var target: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var target: String { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var download: String + @inlinable public var download: String { + get { jsObject[Strings.download].fromJSValue()! } + set { jsObject[Strings.download] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ping: String + @inlinable public var ping: String { + get { jsObject[Strings.ping].fromJSValue()! } + set { jsObject[Strings.ping] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rel: String + @inlinable public var rel: String { + get { jsObject[Strings.rel].fromJSValue()! } + set { jsObject[Strings.rel] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var relList: DOMTokenList + @inlinable public var relList: DOMTokenList { jsObject[Strings.relList].fromJSValue()! } - @ReadWriteAttribute - public var hreflang: String + @inlinable public var hreflang: String { + get { jsObject[Strings.hreflang].fromJSValue()! } + set { jsObject[Strings.hreflang] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var coords: String + @inlinable public var coords: String { + get { jsObject[Strings.coords].fromJSValue()! } + set { jsObject[Strings.coords] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var charset: String + @inlinable public var charset: String { + get { jsObject[Strings.charset].fromJSValue()! } + set { jsObject[Strings.charset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rev: String + @inlinable public var rev: String { + get { jsObject[Strings.rev].fromJSValue()! } + set { jsObject[Strings.rev] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var shape: String + @inlinable public var shape: String { + get { jsObject[Strings.shape].fromJSValue()! } + set { jsObject[Strings.shape] = _toJSValue(newValue) } + } } public class HTMLAreaElement: HTMLElement, HTMLHyperlinkElementUtils { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAreaElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLAreaElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _alt = ReadWriteAttribute(jsObject: jsObject, name: Strings.alt) - _coords = ReadWriteAttribute(jsObject: jsObject, name: Strings.coords) - _shape = ReadWriteAttribute(jsObject: jsObject, name: Strings.shape) - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - _download = ReadWriteAttribute(jsObject: jsObject, name: Strings.download) - _ping = ReadWriteAttribute(jsObject: jsObject, name: Strings.ping) - _rel = ReadWriteAttribute(jsObject: jsObject, name: Strings.rel) - _relList = ReadonlyAttribute(jsObject: jsObject, name: Strings.relList) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _noHref = ReadWriteAttribute(jsObject: jsObject, name: Strings.noHref) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var alt: String + @inlinable public var alt: String { + get { jsObject[Strings.alt].fromJSValue()! } + set { jsObject[Strings.alt] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var coords: String + @inlinable public var coords: String { + get { jsObject[Strings.coords].fromJSValue()! } + set { jsObject[Strings.coords] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var shape: String + @inlinable public var shape: String { + get { jsObject[Strings.shape].fromJSValue()! } + set { jsObject[Strings.shape] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var target: String + @inlinable public var target: String { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var download: String + @inlinable public var download: String { + get { jsObject[Strings.download].fromJSValue()! } + set { jsObject[Strings.download] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ping: String + @inlinable public var ping: String { + get { jsObject[Strings.ping].fromJSValue()! } + set { jsObject[Strings.ping] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rel: String + @inlinable public var rel: String { + get { jsObject[Strings.rel].fromJSValue()! } + set { jsObject[Strings.rel] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var relList: DOMTokenList + @inlinable public var relList: DOMTokenList { jsObject[Strings.relList].fromJSValue()! } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noHref: Bool + @inlinable public var noHref: Bool { + get { jsObject[Strings.noHref].fromJSValue()! } + set { jsObject[Strings.noHref] = _toJSValue(newValue) } + } } public class HTMLAudioElement: HTMLMediaElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAudioElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLAudioElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public class HTMLBRElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLBRElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLBRElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _clear = ReadWriteAttribute(jsObject: jsObject, name: Strings.clear) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var clear: String + @inlinable public var clear: String { + get { jsObject[Strings.clear].fromJSValue()! } + set { jsObject[Strings.clear] = _toJSValue(newValue) } + } } public class HTMLBaseElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLBaseElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLBaseElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var href: String + @inlinable public var href: String { + get { jsObject[Strings.href].fromJSValue()! } + set { jsObject[Strings.href] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var target: String + @inlinable public var target: String { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } } public class HTMLBodyElement: HTMLElement, WindowEventHandlers { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLBodyElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLBodyElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - _link = ReadWriteAttribute(jsObject: jsObject, name: Strings.link) - _vLink = ReadWriteAttribute(jsObject: jsObject, name: Strings.vLink) - _aLink = ReadWriteAttribute(jsObject: jsObject, name: Strings.aLink) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - _background = ReadWriteAttribute(jsObject: jsObject, name: Strings.background) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var link: String + @inlinable public var link: String { + get { jsObject[Strings.link].fromJSValue()! } + set { jsObject[Strings.link] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vLink: String + @inlinable public var vLink: String { + get { jsObject[Strings.vLink].fromJSValue()! } + set { jsObject[Strings.vLink] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var aLink: String + @inlinable public var aLink: String { + get { jsObject[Strings.aLink].fromJSValue()! } + set { jsObject[Strings.aLink] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var background: String + @inlinable public var background: String { + get { jsObject[Strings.background].fromJSValue()! } + set { jsObject[Strings.background] = _toJSValue(newValue) } + } } public class HTMLButtonElement: HTMLElement, PopoverInvokerElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLButtonElement].function } + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLButtonElement].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - public required init(unsafelyWrapping jsObject: JSObject) { - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _formAction = ReadWriteAttribute(jsObject: jsObject, name: Strings.formAction) - _formEnctype = ReadWriteAttribute(jsObject: jsObject, name: Strings.formEnctype) - _formMethod = ReadWriteAttribute(jsObject: jsObject, name: Strings.formMethod) - _formNoValidate = ReadWriteAttribute(jsObject: jsObject, name: Strings.formNoValidate) - _formTarget = ReadWriteAttribute(jsObject: jsObject, name: Strings.formTarget) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - super.init(unsafelyWrapping: jsObject) + @inlinable public var command: String { + get { jsObject[Strings.command].fromJSValue()! } + set { jsObject[Strings.command] = _toJSValue(newValue) } } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + @inlinable public var commandForElement: Element? { + get { jsObject[Strings.commandForElement].fromJSValue() } + set { jsObject[Strings.commandForElement] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var formAction: String + @inlinable public var formAction: String { + get { jsObject[Strings.formAction].fromJSValue()! } + set { jsObject[Strings.formAction] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formEnctype: String + @inlinable public var formEnctype: String { + get { jsObject[Strings.formEnctype].fromJSValue()! } + set { jsObject[Strings.formEnctype] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formMethod: String + @inlinable public var formMethod: String { + get { jsObject[Strings.formMethod].fromJSValue()! } + set { jsObject[Strings.formMethod] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formNoValidate: Bool + @inlinable public var formNoValidate: Bool { + get { jsObject[Strings.formNoValidate].fromJSValue()! } + set { jsObject[Strings.formNoValidate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formTarget: String + @inlinable public var formTarget: String { + get { jsObject[Strings.formTarget].fromJSValue()! } + set { jsObject[Strings.formTarget] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } } public class HTMLCanvasElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLCanvasElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLCanvasElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } // XXX: member 'getContext' is ignored - @inlinable public func toDataURL(type: String? = nil, quality: JSValue? = nil) -> String { + @inlinable final public func toDataURL(type: String? = nil, quality: JSValue? = nil) -> String { let this = jsObject - return this[Strings.toDataURL].function!(this: this, arguments: [_toJSValue(type), _toJSValue(quality)]).fromJSValue()! + return this[Strings.toDataURL].function!(this: this, arguments: [_toJSValue(type), _toJSValue(quality)]) + .fromJSValue()! } - @inlinable public func toBlob(callback: @escaping BlobCallback, type: String? = nil, quality: JSValue? = nil) { + @inlinable final public func toBlob(callback: @escaping BlobCallback, type: String? = nil, quality: JSValue? = nil) + { let this = jsObject - _ = this[Strings.toBlob].function!(this: this, arguments: [_toJSValue(callback), _toJSValue(type), _toJSValue(quality)]) + _ = this[Strings.toBlob].function!( + this: this, + arguments: [_toJSValue(callback), _toJSValue(type), _toJSValue(quality)] + ) } - @inlinable public func transferControlToOffscreen() -> OffscreenCanvas { + @inlinable final public func transferControlToOffscreen() -> OffscreenCanvas { let this = jsObject return this[Strings.transferControlToOffscreen].function!(this: this, arguments: []).fromJSValue()! } @@ -6711,1489 +7971,1488 @@ public class HTMLCollection: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Element? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> Element? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> Element? { + @inlinable final public func item(index: UInt32) -> Element? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public subscript(key: String) -> Element? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> Element? { jsObject[key].fromJSValue() } - @inlinable public func namedItem(name: String) -> Element? { + @inlinable final public func namedItem(name: String) -> Element? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } } public class HTMLDListElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDListElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLDListElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var compact: Bool + @inlinable public var compact: Bool { + get { jsObject[Strings.compact].fromJSValue()! } + set { jsObject[Strings.compact] = _toJSValue(newValue) } + } } public class HTMLDataElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDataElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLDataElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } } public class HTMLDataListElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDataListElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _options = ReadonlyAttribute(jsObject: jsObject, name: Strings.options) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLDataListElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var options: HTMLCollection + @inlinable public var options: HTMLCollection { jsObject[Strings.options].fromJSValue()! } } public class HTMLDetailsElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDetailsElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _open = ReadWriteAttribute(jsObject: jsObject, name: Strings.open) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLDetailsElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var open: Bool + @inlinable public var open: Bool { + get { jsObject[Strings.open].fromJSValue()! } + set { jsObject[Strings.open] = _toJSValue(newValue) } + } } public class HTMLDialogElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDialogElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _open = ReadWriteAttribute(jsObject: jsObject, name: Strings.open) - _returnValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.returnValue) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLDialogElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var open: Bool { + get { jsObject[Strings.open].fromJSValue()! } + set { jsObject[Strings.open] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var open: Bool + @inlinable public var returnValue: String { + get { jsObject[Strings.returnValue].fromJSValue()! } + set { jsObject[Strings.returnValue] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var returnValue: String + @inlinable public var closedBy: String { + get { jsObject[Strings.closedBy].fromJSValue()! } + set { jsObject[Strings.closedBy] = _toJSValue(newValue) } + } - @inlinable public func show() { + @inlinable final public func show() { let this = jsObject _ = this[Strings.show].function!(this: this, arguments: []) } - @inlinable public func showModal() { + @inlinable final public func showModal() { let this = jsObject _ = this[Strings.showModal].function!(this: this, arguments: []) } - @inlinable public func close(returnValue: String? = nil) { + @inlinable final public func close(returnValue: String? = nil) { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: [_toJSValue(returnValue)]) } + + @inlinable final public func requestClose(returnValue: String? = nil) { + let this = jsObject + _ = this[Strings.requestClose].function!(this: this, arguments: [_toJSValue(returnValue)]) + } } public class HTMLDirectoryElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDirectoryElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLDirectoryElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var compact: Bool + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var compact: Bool { + get { jsObject[Strings.compact].fromJSValue()! } + set { jsObject[Strings.compact] = _toJSValue(newValue) } + } } public class HTMLDivElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDivElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLDivElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } } public class HTMLElement: Element, GlobalEventHandlers, ElementContentEditable, HTMLOrSVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _title = ReadWriteAttribute(jsObject: jsObject, name: Strings.title) - _lang = ReadWriteAttribute(jsObject: jsObject, name: Strings.lang) - _translate = ReadWriteAttribute(jsObject: jsObject, name: Strings.translate) - _dir = ReadWriteAttribute(jsObject: jsObject, name: Strings.dir) - _hidden = ReadWriteAttribute(jsObject: jsObject, name: Strings.hidden) - _inert = ReadWriteAttribute(jsObject: jsObject, name: Strings.inert) - _accessKey = ReadWriteAttribute(jsObject: jsObject, name: Strings.accessKey) - _accessKeyLabel = ReadonlyAttribute(jsObject: jsObject, name: Strings.accessKeyLabel) - _draggable = ReadWriteAttribute(jsObject: jsObject, name: Strings.draggable) - _spellcheck = ReadWriteAttribute(jsObject: jsObject, name: Strings.spellcheck) - _autocapitalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocapitalize) - _innerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.innerText) - _outerText = ReadWriteAttribute(jsObject: jsObject, name: Strings.outerText) - _popover = ReadWriteAttribute(jsObject: jsObject, name: Strings.popover) - _offsetParent = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetParent) - _offsetTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetTop) - _offsetLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetLeft) - _offsetWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetWidth) - _offsetHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetHeight) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var title: String + @inlinable public var title: String { + get { jsObject[Strings.title].fromJSValue()! } + set { jsObject[Strings.title] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var lang: String + @inlinable public var lang: String { + get { jsObject[Strings.lang].fromJSValue()! } + set { jsObject[Strings.lang] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var translate: Bool + @inlinable public var translate: Bool { + get { jsObject[Strings.translate].fromJSValue()! } + set { jsObject[Strings.translate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var dir: String + @inlinable public var dir: String { + get { jsObject[Strings.dir].fromJSValue()! } + set { jsObject[Strings.dir] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hidden: Bool_or_Double_or_String? + @inlinable public var hidden: Bool_or_Double_or_String? { + get { jsObject[Strings.hidden].fromJSValue() } + set { jsObject[Strings.hidden] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var inert: Bool + @inlinable public var inert: Bool { + get { jsObject[Strings.inert].fromJSValue()! } + set { jsObject[Strings.inert] = _toJSValue(newValue) } + } - @inlinable public func click() { + @inlinable final public func click() { let this = jsObject _ = this[Strings.click].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var accessKey: String + @inlinable public var accessKey: String { + get { jsObject[Strings.accessKey].fromJSValue()! } + set { jsObject[Strings.accessKey] = _toJSValue(newValue) } + } + + @inlinable public var accessKeyLabel: String { jsObject[Strings.accessKeyLabel].fromJSValue()! } + + @inlinable public var draggable: Bool { + get { jsObject[Strings.draggable].fromJSValue()! } + set { jsObject[Strings.draggable] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var accessKeyLabel: String + @inlinable public var spellcheck: Bool { + get { jsObject[Strings.spellcheck].fromJSValue()! } + set { jsObject[Strings.spellcheck] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var draggable: Bool + @inlinable public var writingSuggestions: String { + get { jsObject[Strings.writingSuggestions].fromJSValue()! } + set { jsObject[Strings.writingSuggestions] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var spellcheck: Bool + @inlinable public var autocapitalize: String { + get { jsObject[Strings.autocapitalize].fromJSValue()! } + set { jsObject[Strings.autocapitalize] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var autocapitalize: String + @inlinable public var autocorrect: Bool { + get { jsObject[Strings.autocorrect].fromJSValue()! } + set { jsObject[Strings.autocorrect] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var innerText: String + @inlinable public var innerText: String { + get { jsObject[Strings.innerText].fromJSValue()! } + set { jsObject[Strings.innerText] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var outerText: String + @inlinable public var outerText: String { + get { jsObject[Strings.outerText].fromJSValue()! } + set { jsObject[Strings.outerText] = _toJSValue(newValue) } + } - @inlinable public func attachInternals() -> ElementInternals { + @inlinable final public func attachInternals() -> ElementInternals { let this = jsObject return this[Strings.attachInternals].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func showPopover() { + @inlinable final public func showPopover(options: ShowPopoverOptions? = nil) { let this = jsObject - _ = this[Strings.showPopover].function!(this: this, arguments: []) + _ = this[Strings.showPopover].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func hidePopover() { + @inlinable final public func hidePopover() { let this = jsObject _ = this[Strings.hidePopover].function!(this: this, arguments: []) } - @inlinable public func togglePopover(force: Bool? = nil) -> Bool { + @inlinable final public func togglePopover(options: Bool_or_TogglePopoverOptions? = nil) -> Bool { let this = jsObject - return this[Strings.togglePopover].function!(this: this, arguments: [_toJSValue(force)]).fromJSValue()! + return this[Strings.togglePopover].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @ReadWriteAttribute - public var popover: String? + @inlinable public var popover: String? { + get { jsObject[Strings.popover].fromJSValue() } + set { jsObject[Strings.popover] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var offsetParent: Element? + @inlinable public var offsetParent: Element? { jsObject[Strings.offsetParent].fromJSValue() } - @ReadonlyAttribute - public var offsetTop: Int32 + @inlinable public var offsetTop: Int32 { jsObject[Strings.offsetTop].fromJSValue()! } - @ReadonlyAttribute - public var offsetLeft: Int32 + @inlinable public var offsetLeft: Int32 { jsObject[Strings.offsetLeft].fromJSValue()! } - @ReadonlyAttribute - public var offsetWidth: Int32 + @inlinable public var offsetWidth: Int32 { jsObject[Strings.offsetWidth].fromJSValue()! } - @ReadonlyAttribute - public var offsetHeight: Int32 + @inlinable public var offsetHeight: Int32 { jsObject[Strings.offsetHeight].fromJSValue()! } } public class HTMLEmbedElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLEmbedElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLEmbedElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: String + @inlinable public var height: String { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @inlinable public func getSVGDocument() -> Document? { + @inlinable final public func getSVGDocument() -> Document? { let this = jsObject return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue() } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } } public class HTMLFieldSetElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFieldSetElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _elements = ReadonlyAttribute(jsObject: jsObject, name: Strings.elements) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLFieldSetElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var elements: HTMLCollection + @inlinable public var elements: HTMLCollection { jsObject[Strings.elements].fromJSValue()! } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } } public class HTMLFontElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFontElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLFontElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _color = ReadWriteAttribute(jsObject: jsObject, name: Strings.color) - _face = ReadWriteAttribute(jsObject: jsObject, name: Strings.face) - _size = ReadWriteAttribute(jsObject: jsObject, name: Strings.size) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var color: String + @inlinable public var color: String { + get { jsObject[Strings.color].fromJSValue()! } + set { jsObject[Strings.color] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var face: String + @inlinable public var face: String { + get { jsObject[Strings.face].fromJSValue()! } + set { jsObject[Strings.face] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var size: String + @inlinable public var size: String { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } } public class HTMLFormControlsCollection: HTMLCollection { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFormControlsCollection].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLFormControlsCollection].function } - @inlinable public subscript(key: String) -> Element_or_RadioNodeList? { - jsObject[key].fromJSValue() - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public subscript(key: String) -> Element_or_RadioNodeList? { jsObject[key].fromJSValue() } - // `override` removed since the superclass returns a more constrained type `Element` - @inlinable func namedItem(name: String) -> Element_or_RadioNodeList? { - let this = jsObject - return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() - } } public class HTMLFormElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFormElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLFormElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _acceptCharset = ReadWriteAttribute(jsObject: jsObject, name: Strings.acceptCharset) - _action = ReadWriteAttribute(jsObject: jsObject, name: Strings.action) - _autocomplete = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocomplete) - _enctype = ReadWriteAttribute(jsObject: jsObject, name: Strings.enctype) - _encoding = ReadWriteAttribute(jsObject: jsObject, name: Strings.encoding) - _method = ReadWriteAttribute(jsObject: jsObject, name: Strings.method) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _noValidate = ReadWriteAttribute(jsObject: jsObject, name: Strings.noValidate) - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - _rel = ReadWriteAttribute(jsObject: jsObject, name: Strings.rel) - _relList = ReadonlyAttribute(jsObject: jsObject, name: Strings.relList) - _elements = ReadonlyAttribute(jsObject: jsObject, name: Strings.elements) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var acceptCharset: String + @inlinable public var acceptCharset: String { + get { jsObject[Strings.acceptCharset].fromJSValue()! } + set { jsObject[Strings.acceptCharset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var action: String + @inlinable public var action: String { + get { jsObject[Strings.action].fromJSValue()! } + set { jsObject[Strings.action] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var autocomplete: String + @inlinable public var autocomplete: String { + get { jsObject[Strings.autocomplete].fromJSValue()! } + set { jsObject[Strings.autocomplete] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var enctype: String + @inlinable public var enctype: String { + get { jsObject[Strings.enctype].fromJSValue()! } + set { jsObject[Strings.enctype] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var encoding: String + @inlinable public var encoding: String { + get { jsObject[Strings.encoding].fromJSValue()! } + set { jsObject[Strings.encoding] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var method: String + @inlinable public var method: String { + get { jsObject[Strings.method].fromJSValue()! } + set { jsObject[Strings.method] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noValidate: Bool + @inlinable public var noValidate: Bool { + get { jsObject[Strings.noValidate].fromJSValue()! } + set { jsObject[Strings.noValidate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var target: String + @inlinable public var target: String { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rel: String + @inlinable public var rel: String { + get { jsObject[Strings.rel].fromJSValue()! } + set { jsObject[Strings.rel] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var relList: DOMTokenList + @inlinable public var relList: DOMTokenList { jsObject[Strings.relList].fromJSValue()! } - @ReadonlyAttribute - public var elements: HTMLFormControlsCollection + @inlinable public var elements: HTMLFormControlsCollection { jsObject[Strings.elements].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Element { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> Element { jsObject[key].fromJSValue()! } - @inlinable public subscript(key: String) -> Element_or_RadioNodeList { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: String) -> Element_or_RadioNodeList { jsObject[key].fromJSValue()! } - @inlinable public func submit() { + @inlinable final public func submit() { let this = jsObject _ = this[Strings.submit].function!(this: this, arguments: []) } - @inlinable public func requestSubmit(submitter: HTMLElement? = nil) { + @inlinable final public func requestSubmit(submitter: HTMLElement? = nil) { let this = jsObject _ = this[Strings.requestSubmit].function!(this: this, arguments: [_toJSValue(submitter)]) } - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } } public class HTMLFrameElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFrameElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLFrameElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _scrolling = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrolling) - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _frameBorder = ReadWriteAttribute(jsObject: jsObject, name: Strings.frameBorder) - _longDesc = ReadWriteAttribute(jsObject: jsObject, name: Strings.longDesc) - _noResize = ReadWriteAttribute(jsObject: jsObject, name: Strings.noResize) - _contentDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentDocument) - _contentWindow = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentWindow) - _marginHeight = ReadWriteAttribute(jsObject: jsObject, name: Strings.marginHeight) - _marginWidth = ReadWriteAttribute(jsObject: jsObject, name: Strings.marginWidth) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scrolling: String + @inlinable public var scrolling: String { + get { jsObject[Strings.scrolling].fromJSValue()! } + set { jsObject[Strings.scrolling] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var frameBorder: String + @inlinable public var frameBorder: String { + get { jsObject[Strings.frameBorder].fromJSValue()! } + set { jsObject[Strings.frameBorder] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var longDesc: String + @inlinable public var longDesc: String { + get { jsObject[Strings.longDesc].fromJSValue()! } + set { jsObject[Strings.longDesc] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noResize: Bool + @inlinable public var noResize: Bool { + get { jsObject[Strings.noResize].fromJSValue()! } + set { jsObject[Strings.noResize] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var contentDocument: Document? + @inlinable public var contentDocument: Document? { jsObject[Strings.contentDocument].fromJSValue() } - @ReadonlyAttribute - public var contentWindow: WindowProxy? + @inlinable public var contentWindow: WindowProxy? { jsObject[Strings.contentWindow].fromJSValue() } - @ReadWriteAttribute - public var marginHeight: String + @inlinable public var marginHeight: String { + get { jsObject[Strings.marginHeight].fromJSValue()! } + set { jsObject[Strings.marginHeight] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var marginWidth: String + @inlinable public var marginWidth: String { + get { jsObject[Strings.marginWidth].fromJSValue()! } + set { jsObject[Strings.marginWidth] = _toJSValue(newValue) } + } } public class HTMLFrameSetElement: HTMLElement, WindowEventHandlers { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFrameSetElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _cols = ReadWriteAttribute(jsObject: jsObject, name: Strings.cols) - _rows = ReadWriteAttribute(jsObject: jsObject, name: Strings.rows) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLFrameSetElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var cols: String + @inlinable public var cols: String { + get { jsObject[Strings.cols].fromJSValue()! } + set { jsObject[Strings.cols] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rows: String + @inlinable public var rows: String { + get { jsObject[Strings.rows].fromJSValue()! } + set { jsObject[Strings.rows] = _toJSValue(newValue) } + } } public class HTMLHRElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHRElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLHRElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _color = ReadWriteAttribute(jsObject: jsObject, name: Strings.color) - _noShade = ReadWriteAttribute(jsObject: jsObject, name: Strings.noShade) - _size = ReadWriteAttribute(jsObject: jsObject, name: Strings.size) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var color: String + @inlinable public var color: String { + get { jsObject[Strings.color].fromJSValue()! } + set { jsObject[Strings.color] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noShade: Bool + @inlinable public var noShade: Bool { + get { jsObject[Strings.noShade].fromJSValue()! } + set { jsObject[Strings.noShade] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var size: String + @inlinable public var size: String { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } } public class HTMLHeadElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHeadElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLHeadElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public class HTMLHeadingElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHeadingElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLHeadingElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } } public class HTMLHtmlElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHtmlElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLHtmlElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _version = ReadWriteAttribute(jsObject: jsObject, name: Strings.version) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var version: String + @inlinable public var version: String { + get { jsObject[Strings.version].fromJSValue()! } + set { jsObject[Strings.version] = _toJSValue(newValue) } + } } public protocol HTMLHyperlinkElementUtils: JSBridgedClass {} -public extension HTMLHyperlinkElementUtils { - @inlinable var href: String { +extension HTMLHyperlinkElementUtils { + @inlinable public var href: String { get { jsObject[Strings.href].fromJSValue()! } - nonmutating set { jsObject[Strings.href] = _toJSValue(newValue) } + set { jsObject[Strings.href] = _toJSValue(newValue) } } - @inlinable var origin: String { jsObject[Strings.origin].fromJSValue()! } + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @inlinable var `protocol`: String { - get { jsObject[Strings.protocol].fromJSValue()! } - nonmutating set { jsObject[Strings.protocol] = _toJSValue(newValue) } + @inlinable public var `protocol`: String { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } } - @inlinable var username: String { + @inlinable public var username: String { get { jsObject[Strings.username].fromJSValue()! } - nonmutating set { jsObject[Strings.username] = _toJSValue(newValue) } + set { jsObject[Strings.username] = _toJSValue(newValue) } } - @inlinable var password: String { + @inlinable public var password: String { get { jsObject[Strings.password].fromJSValue()! } - nonmutating set { jsObject[Strings.password] = _toJSValue(newValue) } + set { jsObject[Strings.password] = _toJSValue(newValue) } } - @inlinable var host: String { + @inlinable public var host: String { get { jsObject[Strings.host].fromJSValue()! } - nonmutating set { jsObject[Strings.host] = _toJSValue(newValue) } + set { jsObject[Strings.host] = _toJSValue(newValue) } } - @inlinable var hostname: String { + @inlinable public var hostname: String { get { jsObject[Strings.hostname].fromJSValue()! } - nonmutating set { jsObject[Strings.hostname] = _toJSValue(newValue) } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } } - @inlinable var port: String { + @inlinable public var port: String { get { jsObject[Strings.port].fromJSValue()! } - nonmutating set { jsObject[Strings.port] = _toJSValue(newValue) } + set { jsObject[Strings.port] = _toJSValue(newValue) } } - @inlinable var pathname: String { + @inlinable public var pathname: String { get { jsObject[Strings.pathname].fromJSValue()! } - nonmutating set { jsObject[Strings.pathname] = _toJSValue(newValue) } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } } - @inlinable var search: String { + @inlinable public var search: String { get { jsObject[Strings.search].fromJSValue()! } - nonmutating set { jsObject[Strings.search] = _toJSValue(newValue) } + set { jsObject[Strings.search] = _toJSValue(newValue) } } - @inlinable var hash: String { + @inlinable public var hash: String { get { jsObject[Strings.hash].fromJSValue()! } - nonmutating set { jsObject[Strings.hash] = _toJSValue(newValue) } + set { jsObject[Strings.hash] = _toJSValue(newValue) } } } - public class HTMLIFrameElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLIFrameElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _srcdoc = ReadWriteAttribute(jsObject: jsObject, name: Strings.srcdoc) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _sandbox = ReadonlyAttribute(jsObject: jsObject, name: Strings.sandbox) - _allow = ReadWriteAttribute(jsObject: jsObject, name: Strings.allow) - _allowFullscreen = ReadWriteAttribute(jsObject: jsObject, name: Strings.allowFullscreen) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _loading = ReadWriteAttribute(jsObject: jsObject, name: Strings.loading) - _contentDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentDocument) - _contentWindow = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentWindow) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _scrolling = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrolling) - _frameBorder = ReadWriteAttribute(jsObject: jsObject, name: Strings.frameBorder) - _longDesc = ReadWriteAttribute(jsObject: jsObject, name: Strings.longDesc) - _marginHeight = ReadWriteAttribute(jsObject: jsObject, name: Strings.marginHeight) - _marginWidth = ReadWriteAttribute(jsObject: jsObject, name: Strings.marginWidth) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLIFrameElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var srcdoc: String + @inlinable public var srcdoc: String_or_TrustedHTML { + get { jsObject[Strings.srcdoc].fromJSValue()! } + set { jsObject[Strings.srcdoc] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var sandbox: DOMTokenList + @inlinable public var sandbox: DOMTokenList { jsObject[Strings.sandbox].fromJSValue()! } - @ReadWriteAttribute - public var allow: String + @inlinable public var allow: String { + get { jsObject[Strings.allow].fromJSValue()! } + set { jsObject[Strings.allow] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var allowFullscreen: Bool + @inlinable public var allowFullscreen: Bool { + get { jsObject[Strings.allowFullscreen].fromJSValue()! } + set { jsObject[Strings.allowFullscreen] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: String + @inlinable public var height: String { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var loading: String + @inlinable public var loading: String { + get { jsObject[Strings.loading].fromJSValue()! } + set { jsObject[Strings.loading] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var contentDocument: Document? + @inlinable public var contentDocument: Document? { jsObject[Strings.contentDocument].fromJSValue() } - @ReadonlyAttribute - public var contentWindow: WindowProxy? + @inlinable public var contentWindow: WindowProxy? { jsObject[Strings.contentWindow].fromJSValue() } - @inlinable public func getSVGDocument() -> Document? { + @inlinable final public func getSVGDocument() -> Document? { let this = jsObject return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue() } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scrolling: String + @inlinable public var scrolling: String { + get { jsObject[Strings.scrolling].fromJSValue()! } + set { jsObject[Strings.scrolling] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var frameBorder: String + @inlinable public var frameBorder: String { + get { jsObject[Strings.frameBorder].fromJSValue()! } + set { jsObject[Strings.frameBorder] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var longDesc: String + @inlinable public var longDesc: String { + get { jsObject[Strings.longDesc].fromJSValue()! } + set { jsObject[Strings.longDesc] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var marginHeight: String + @inlinable public var marginHeight: String { + get { jsObject[Strings.marginHeight].fromJSValue()! } + set { jsObject[Strings.marginHeight] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var marginWidth: String + @inlinable public var marginWidth: String { + get { jsObject[Strings.marginWidth].fromJSValue()! } + set { jsObject[Strings.marginWidth] = _toJSValue(newValue) } + } } public class HTMLImageElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLImageElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLImageElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _alt = ReadWriteAttribute(jsObject: jsObject, name: Strings.alt) - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _srcset = ReadWriteAttribute(jsObject: jsObject, name: Strings.srcset) - _sizes = ReadWriteAttribute(jsObject: jsObject, name: Strings.sizes) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - _useMap = ReadWriteAttribute(jsObject: jsObject, name: Strings.useMap) - _isMap = ReadWriteAttribute(jsObject: jsObject, name: Strings.isMap) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _naturalWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.naturalWidth) - _naturalHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.naturalHeight) - _complete = ReadonlyAttribute(jsObject: jsObject, name: Strings.complete) - _currentSrc = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentSrc) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _decoding = ReadWriteAttribute(jsObject: jsObject, name: Strings.decoding) - _loading = ReadWriteAttribute(jsObject: jsObject, name: Strings.loading) - _fetchPriority = ReadWriteAttribute(jsObject: jsObject, name: Strings.fetchPriority) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _lowsrc = ReadWriteAttribute(jsObject: jsObject, name: Strings.lowsrc) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _hspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.hspace) - _vspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.vspace) - _longDesc = ReadWriteAttribute(jsObject: jsObject, name: Strings.longDesc) - _border = ReadWriteAttribute(jsObject: jsObject, name: Strings.border) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var alt: String + @inlinable public var alt: String { + get { jsObject[Strings.alt].fromJSValue()! } + set { jsObject[Strings.alt] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var srcset: String + @inlinable public var srcset: String { + get { jsObject[Strings.srcset].fromJSValue()! } + set { jsObject[Strings.srcset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var sizes: String + @inlinable public var sizes: String { + get { jsObject[Strings.sizes].fromJSValue()! } + set { jsObject[Strings.sizes] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var useMap: String + @inlinable public var useMap: String { + get { jsObject[Strings.useMap].fromJSValue()! } + set { jsObject[Strings.useMap] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var isMap: Bool + @inlinable public var isMap: Bool { + get { jsObject[Strings.isMap].fromJSValue()! } + set { jsObject[Strings.isMap] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var naturalWidth: UInt32 + @inlinable public var naturalWidth: UInt32 { jsObject[Strings.naturalWidth].fromJSValue()! } - @ReadonlyAttribute - public var naturalHeight: UInt32 + @inlinable public var naturalHeight: UInt32 { jsObject[Strings.naturalHeight].fromJSValue()! } - @ReadonlyAttribute - public var complete: Bool + @inlinable public var complete: Bool { jsObject[Strings.complete].fromJSValue()! } - @ReadonlyAttribute - public var currentSrc: String + @inlinable public var currentSrc: String { jsObject[Strings.currentSrc].fromJSValue()! } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var decoding: String + @inlinable public var decoding: String { + get { jsObject[Strings.decoding].fromJSValue()! } + set { jsObject[Strings.decoding] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var loading: String + @inlinable public var loading: String { + get { jsObject[Strings.loading].fromJSValue()! } + set { jsObject[Strings.loading] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var fetchPriority: String + @inlinable public var fetchPriority: String { + get { jsObject[Strings.fetchPriority].fromJSValue()! } + set { jsObject[Strings.fetchPriority] = _toJSValue(newValue) } + } - @inlinable public func decode() -> JSPromise { + @inlinable final public func decode() -> JSPromise { let this = jsObject return this[Strings.decode].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func decode() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func decode() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var lowsrc: String + @inlinable public var lowsrc: String { + get { jsObject[Strings.lowsrc].fromJSValue()! } + set { jsObject[Strings.lowsrc] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hspace: UInt32 + @inlinable public var hspace: UInt32 { + get { jsObject[Strings.hspace].fromJSValue()! } + set { jsObject[Strings.hspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vspace: UInt32 + @inlinable public var vspace: UInt32 { + get { jsObject[Strings.vspace].fromJSValue()! } + set { jsObject[Strings.vspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var longDesc: String + @inlinable public var longDesc: String { + get { jsObject[Strings.longDesc].fromJSValue()! } + set { jsObject[Strings.longDesc] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var border: String + @inlinable public var border: String { + get { jsObject[Strings.border].fromJSValue()! } + set { jsObject[Strings.border] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var x: Int32 + @inlinable public var x: Int32 { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: Int32 + @inlinable public var y: Int32 { jsObject[Strings.y].fromJSValue()! } } public class HTMLInputElement: HTMLElement, PopoverInvokerElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLInputElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _accept = ReadWriteAttribute(jsObject: jsObject, name: Strings.accept) - _alt = ReadWriteAttribute(jsObject: jsObject, name: Strings.alt) - _autocomplete = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocomplete) - _defaultChecked = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultChecked) - _checked = ReadWriteAttribute(jsObject: jsObject, name: Strings.checked) - _dirName = ReadWriteAttribute(jsObject: jsObject, name: Strings.dirName) - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _files = ReadWriteAttribute(jsObject: jsObject, name: Strings.files) - _formAction = ReadWriteAttribute(jsObject: jsObject, name: Strings.formAction) - _formEnctype = ReadWriteAttribute(jsObject: jsObject, name: Strings.formEnctype) - _formMethod = ReadWriteAttribute(jsObject: jsObject, name: Strings.formMethod) - _formNoValidate = ReadWriteAttribute(jsObject: jsObject, name: Strings.formNoValidate) - _formTarget = ReadWriteAttribute(jsObject: jsObject, name: Strings.formTarget) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _indeterminate = ReadWriteAttribute(jsObject: jsObject, name: Strings.indeterminate) - _list = ReadonlyAttribute(jsObject: jsObject, name: Strings.list) - _max = ReadWriteAttribute(jsObject: jsObject, name: Strings.max) - _maxLength = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxLength) - _min = ReadWriteAttribute(jsObject: jsObject, name: Strings.min) - _minLength = ReadWriteAttribute(jsObject: jsObject, name: Strings.minLength) - _multiple = ReadWriteAttribute(jsObject: jsObject, name: Strings.multiple) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _pattern = ReadWriteAttribute(jsObject: jsObject, name: Strings.pattern) - _placeholder = ReadWriteAttribute(jsObject: jsObject, name: Strings.placeholder) - _readOnly = ReadWriteAttribute(jsObject: jsObject, name: Strings.readOnly) - _required = ReadWriteAttribute(jsObject: jsObject, name: Strings.required) - _size = ReadWriteAttribute(jsObject: jsObject, name: Strings.size) - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _step = ReadWriteAttribute(jsObject: jsObject, name: Strings.step) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _defaultValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultValue) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _valueAsDate = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueAsDate) - _valueAsNumber = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueAsNumber) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - _selectionStart = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionStart) - _selectionEnd = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionEnd) - _selectionDirection = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionDirection) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _useMap = ReadWriteAttribute(jsObject: jsObject, name: Strings.useMap) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLInputElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + @inlinable public var accept: String { + get { jsObject[Strings.accept].fromJSValue()! } + set { jsObject[Strings.accept] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var accept: String + @inlinable public var alpha: Bool { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } + + @inlinable public var alt: String { + get { jsObject[Strings.alt].fromJSValue()! } + set { jsObject[Strings.alt] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var alt: String + @inlinable public var autocomplete: String { + get { jsObject[Strings.autocomplete].fromJSValue()! } + set { jsObject[Strings.autocomplete] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var autocomplete: String + @inlinable public var defaultChecked: Bool { + get { jsObject[Strings.defaultChecked].fromJSValue()! } + set { jsObject[Strings.defaultChecked] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var defaultChecked: Bool + @inlinable public var checked: Bool { + get { jsObject[Strings.checked].fromJSValue()! } + set { jsObject[Strings.checked] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var checked: Bool + @inlinable public var colorSpace: String { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var dirName: String + @inlinable public var dirName: String { + get { jsObject[Strings.dirName].fromJSValue()! } + set { jsObject[Strings.dirName] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var files: FileList? + @inlinable public var files: FileList? { + get { jsObject[Strings.files].fromJSValue() } + set { jsObject[Strings.files] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formAction: String + @inlinable public var formAction: String { + get { jsObject[Strings.formAction].fromJSValue()! } + set { jsObject[Strings.formAction] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formEnctype: String + @inlinable public var formEnctype: String { + get { jsObject[Strings.formEnctype].fromJSValue()! } + set { jsObject[Strings.formEnctype] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formMethod: String + @inlinable public var formMethod: String { + get { jsObject[Strings.formMethod].fromJSValue()! } + set { jsObject[Strings.formMethod] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formNoValidate: Bool + @inlinable public var formNoValidate: Bool { + get { jsObject[Strings.formNoValidate].fromJSValue()! } + set { jsObject[Strings.formNoValidate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var formTarget: String + @inlinable public var formTarget: String { + get { jsObject[Strings.formTarget].fromJSValue()! } + set { jsObject[Strings.formTarget] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var indeterminate: Bool + @inlinable public var indeterminate: Bool { + get { jsObject[Strings.indeterminate].fromJSValue()! } + set { jsObject[Strings.indeterminate] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var list: HTMLDataListElement? + @inlinable public var list: HTMLDataListElement? { jsObject[Strings.list].fromJSValue() } - @ReadWriteAttribute - public var max: String + @inlinable public var max: String { + get { jsObject[Strings.max].fromJSValue()! } + set { jsObject[Strings.max] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var maxLength: Int32 + @inlinable public var maxLength: Int32 { + get { jsObject[Strings.maxLength].fromJSValue()! } + set { jsObject[Strings.maxLength] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var min: String + @inlinable public var min: String { + get { jsObject[Strings.min].fromJSValue()! } + set { jsObject[Strings.min] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var minLength: Int32 + @inlinable public var minLength: Int32 { + get { jsObject[Strings.minLength].fromJSValue()! } + set { jsObject[Strings.minLength] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var multiple: Bool + @inlinable public var multiple: Bool { + get { jsObject[Strings.multiple].fromJSValue()! } + set { jsObject[Strings.multiple] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pattern: String + @inlinable public var pattern: String { + get { jsObject[Strings.pattern].fromJSValue()! } + set { jsObject[Strings.pattern] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var placeholder: String + @inlinable public var placeholder: String { + get { jsObject[Strings.placeholder].fromJSValue()! } + set { jsObject[Strings.placeholder] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var readOnly: Bool + @inlinable public var readOnly: Bool { + get { jsObject[Strings.readOnly].fromJSValue()! } + set { jsObject[Strings.readOnly] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var required: Bool + @inlinable public var required: Bool { + get { jsObject[Strings.required].fromJSValue()! } + set { jsObject[Strings.required] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var size: UInt32 + @inlinable public var size: UInt32 { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var step: String + @inlinable public var step: String { + get { jsObject[Strings.step].fromJSValue()! } + set { jsObject[Strings.step] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var defaultValue: String + @inlinable public var defaultValue: String { + get { jsObject[Strings.defaultValue].fromJSValue()! } + set { jsObject[Strings.defaultValue] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueAsDate: JSObject? + @inlinable public var valueAsDate: JSObject? { + get { jsObject[Strings.valueAsDate].fromJSValue() } + set { jsObject[Strings.valueAsDate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueAsNumber: Double + @inlinable public var valueAsNumber: Double { + get { jsObject[Strings.valueAsNumber].fromJSValue()! } + set { jsObject[Strings.valueAsNumber] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @inlinable public func stepUp(n: Int32? = nil) { + @inlinable final public func stepUp(n: Int32? = nil) { let this = jsObject _ = this[Strings.stepUp].function!(this: this, arguments: [_toJSValue(n)]) } - @inlinable public func stepDown(n: Int32? = nil) { + @inlinable final public func stepDown(n: Int32? = nil) { let this = jsObject _ = this[Strings.stepDown].function!(this: this, arguments: [_toJSValue(n)]) } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadonlyAttribute - public var labels: NodeList? + @inlinable public var labels: NodeList? { jsObject[Strings.labels].fromJSValue() } - @inlinable public func select() { + @inlinable final public func select() { let this = jsObject _ = this[Strings.select].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var selectionStart: UInt32? + @inlinable public var selectionStart: UInt32? { + get { jsObject[Strings.selectionStart].fromJSValue() } + set { jsObject[Strings.selectionStart] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var selectionEnd: UInt32? + @inlinable public var selectionEnd: UInt32? { + get { jsObject[Strings.selectionEnd].fromJSValue() } + set { jsObject[Strings.selectionEnd] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var selectionDirection: String? + @inlinable public var selectionDirection: String? { + get { jsObject[Strings.selectionDirection].fromJSValue() } + set { jsObject[Strings.selectionDirection] = _toJSValue(newValue) } + } - @inlinable public func setRangeText(replacement: String) { + @inlinable final public func setRangeText(replacement: String) { let this = jsObject _ = this[Strings.setRangeText].function!(this: this, arguments: [_toJSValue(replacement)]) } - @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) { + @inlinable final public func setRangeText( + replacement: String, + start: UInt32, + end: UInt32, + selectionMode: SelectionMode? = nil + ) { let this = jsObject - _ = this[Strings.setRangeText].function!(this: this, arguments: [_toJSValue(replacement), _toJSValue(start), _toJSValue(end), _toJSValue(selectionMode)]) + _ = this[Strings.setRangeText].function!( + this: this, + arguments: [_toJSValue(replacement), _toJSValue(start), _toJSValue(end), _toJSValue(selectionMode)] + ) } - @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) { + @inlinable final public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) { let this = jsObject - _ = this[Strings.setSelectionRange].function!(this: this, arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(direction)]) + _ = this[Strings.setSelectionRange].function!( + this: this, + arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(direction)] + ) } - @inlinable public func showPicker() { + @inlinable final public func showPicker() { let this = jsObject _ = this[Strings.showPicker].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var useMap: String + @inlinable public var useMap: String { + get { jsObject[Strings.useMap].fromJSValue()! } + set { jsObject[Strings.useMap] = _toJSValue(newValue) } + } } public class HTMLLIElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLIElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLLIElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var value: Int32 + @inlinable public var value: Int32 { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } public class HTMLLabelElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLabelElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLLabelElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _htmlFor = ReadWriteAttribute(jsObject: jsObject, name: Strings.htmlFor) - _control = ReadonlyAttribute(jsObject: jsObject, name: Strings.control) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var htmlFor: String + @inlinable public var htmlFor: String { + get { jsObject[Strings.htmlFor].fromJSValue()! } + set { jsObject[Strings.htmlFor] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var control: HTMLElement? + @inlinable public var control: HTMLElement? { jsObject[Strings.control].fromJSValue() } } public class HTMLLegendElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLegendElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLLegendElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var align: String + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } + + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } } public class HTMLLinkElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLinkElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLLinkElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - _rel = ReadWriteAttribute(jsObject: jsObject, name: Strings.rel) - _as = ReadWriteAttribute(jsObject: jsObject, name: Strings.as) - _relList = ReadonlyAttribute(jsObject: jsObject, name: Strings.relList) - _media = ReadWriteAttribute(jsObject: jsObject, name: Strings.media) - _integrity = ReadWriteAttribute(jsObject: jsObject, name: Strings.integrity) - _hreflang = ReadWriteAttribute(jsObject: jsObject, name: Strings.hreflang) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _sizes = ReadonlyAttribute(jsObject: jsObject, name: Strings.sizes) - _imageSrcset = ReadWriteAttribute(jsObject: jsObject, name: Strings.imageSrcset) - _imageSizes = ReadWriteAttribute(jsObject: jsObject, name: Strings.imageSizes) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _blocking = ReadonlyAttribute(jsObject: jsObject, name: Strings.blocking) - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _fetchPriority = ReadWriteAttribute(jsObject: jsObject, name: Strings.fetchPriority) - _charset = ReadWriteAttribute(jsObject: jsObject, name: Strings.charset) - _rev = ReadWriteAttribute(jsObject: jsObject, name: Strings.rev) - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var href: String + @inlinable public var href: String { + get { jsObject[Strings.href].fromJSValue()! } + set { jsObject[Strings.href] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rel: String + @inlinable public var rel: String { + get { jsObject[Strings.rel].fromJSValue()! } + set { jsObject[Strings.rel] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var `as`: String + @inlinable public var `as`: String { + get { jsObject[Strings.`as`].fromJSValue()! } + set { jsObject[Strings.`as`] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var relList: DOMTokenList + @inlinable public var relList: DOMTokenList { jsObject[Strings.relList].fromJSValue()! } - @ReadWriteAttribute - public var media: String + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var integrity: String + @inlinable public var integrity: String { + get { jsObject[Strings.integrity].fromJSValue()! } + set { jsObject[Strings.integrity] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hreflang: String + @inlinable public var hreflang: String { + get { jsObject[Strings.hreflang].fromJSValue()! } + set { jsObject[Strings.hreflang] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var sizes: DOMTokenList + @inlinable public var sizes: DOMTokenList { jsObject[Strings.sizes].fromJSValue()! } - @ReadWriteAttribute - public var imageSrcset: String + @inlinable public var imageSrcset: String { + get { jsObject[Strings.imageSrcset].fromJSValue()! } + set { jsObject[Strings.imageSrcset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var imageSizes: String + @inlinable public var imageSizes: String { + get { jsObject[Strings.imageSizes].fromJSValue()! } + set { jsObject[Strings.imageSizes] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var blocking: DOMTokenList + @inlinable public var blocking: DOMTokenList { jsObject[Strings.blocking].fromJSValue()! } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var fetchPriority: String + @inlinable public var fetchPriority: String { + get { jsObject[Strings.fetchPriority].fromJSValue()! } + set { jsObject[Strings.fetchPriority] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var charset: String + @inlinable public var charset: String { + get { jsObject[Strings.charset].fromJSValue()! } + set { jsObject[Strings.charset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rev: String + @inlinable public var rev: String { + get { jsObject[Strings.rev].fromJSValue()! } + set { jsObject[Strings.rev] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var target: String + @inlinable public var target: String { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } } public class HTMLMapElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMapElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLMapElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _areas = ReadonlyAttribute(jsObject: jsObject, name: Strings.areas) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var areas: HTMLCollection + @inlinable public var areas: HTMLCollection { jsObject[Strings.areas].fromJSValue()! } } public class HTMLMarqueeElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMarqueeElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _behavior = ReadWriteAttribute(jsObject: jsObject, name: Strings.behavior) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - _direction = ReadWriteAttribute(jsObject: jsObject, name: Strings.direction) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _hspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.hspace) - _loop = ReadWriteAttribute(jsObject: jsObject, name: Strings.loop) - _scrollAmount = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollAmount) - _scrollDelay = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollDelay) - _trueSpeed = ReadWriteAttribute(jsObject: jsObject, name: Strings.trueSpeed) - _vspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.vspace) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLMarqueeElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var behavior: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var behavior: String { + get { jsObject[Strings.behavior].fromJSValue()! } + set { jsObject[Strings.behavior] = _toJSValue(newValue) } + } + + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var direction: String + @inlinable public var direction: String { + get { jsObject[Strings.direction].fromJSValue()! } + set { jsObject[Strings.direction] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: String + @inlinable public var height: String { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hspace: UInt32 + @inlinable public var hspace: UInt32 { + get { jsObject[Strings.hspace].fromJSValue()! } + set { jsObject[Strings.hspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var loop: Int32 + @inlinable public var loop: Int32 { + get { jsObject[Strings.loop].fromJSValue()! } + set { jsObject[Strings.loop] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scrollAmount: UInt32 + @inlinable public var scrollAmount: UInt32 { + get { jsObject[Strings.scrollAmount].fromJSValue()! } + set { jsObject[Strings.scrollAmount] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scrollDelay: UInt32 + @inlinable public var scrollDelay: UInt32 { + get { jsObject[Strings.scrollDelay].fromJSValue()! } + set { jsObject[Strings.scrollDelay] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var trueSpeed: Bool + @inlinable public var trueSpeed: Bool { + get { jsObject[Strings.trueSpeed].fromJSValue()! } + set { jsObject[Strings.trueSpeed] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vspace: UInt32 + @inlinable public var vspace: UInt32 { + get { jsObject[Strings.vspace].fromJSValue()! } + set { jsObject[Strings.vspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @inlinable public func start() { + @inlinable final public func start() { let this = jsObject _ = this[Strings.start].function!(this: this, arguments: []) } - @inlinable public func stop() { + @inlinable final public func stop() { let this = jsObject _ = this[Strings.stop].function!(this: this, arguments: []) } } public class HTMLMediaElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMediaElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error) - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _srcObject = ReadWriteAttribute(jsObject: jsObject, name: Strings.srcObject) - _currentSrc = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentSrc) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - _networkState = ReadonlyAttribute(jsObject: jsObject, name: Strings.networkState) - _preload = ReadWriteAttribute(jsObject: jsObject, name: Strings.preload) - _buffered = ReadonlyAttribute(jsObject: jsObject, name: Strings.buffered) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _seeking = ReadonlyAttribute(jsObject: jsObject, name: Strings.seeking) - _currentTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.currentTime) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _paused = ReadonlyAttribute(jsObject: jsObject, name: Strings.paused) - _defaultPlaybackRate = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultPlaybackRate) - _playbackRate = ReadWriteAttribute(jsObject: jsObject, name: Strings.playbackRate) - _preservesPitch = ReadWriteAttribute(jsObject: jsObject, name: Strings.preservesPitch) - _played = ReadonlyAttribute(jsObject: jsObject, name: Strings.played) - _seekable = ReadonlyAttribute(jsObject: jsObject, name: Strings.seekable) - _ended = ReadonlyAttribute(jsObject: jsObject, name: Strings.ended) - _autoplay = ReadWriteAttribute(jsObject: jsObject, name: Strings.autoplay) - _loop = ReadWriteAttribute(jsObject: jsObject, name: Strings.loop) - _controls = ReadWriteAttribute(jsObject: jsObject, name: Strings.controls) - _volume = ReadWriteAttribute(jsObject: jsObject, name: Strings.volume) - _muted = ReadWriteAttribute(jsObject: jsObject, name: Strings.muted) - _defaultMuted = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultMuted) - _audioTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioTracks) - _videoTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoTracks) - _textTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.textTracks) - super.init(unsafelyWrapping: jsObject) - } - - @ReadonlyAttribute - public var error: MediaError? - - @ReadWriteAttribute - public var src: String - - @ReadWriteAttribute - public var srcObject: MediaProvider? - - @ReadonlyAttribute - public var currentSrc: String - - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLMediaElement].function } - public static let NETWORK_EMPTY: UInt16 = 0 + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public static let NETWORK_IDLE: UInt16 = 1 + @inlinable public var error: MediaError? { jsObject[Strings.error].fromJSValue() } - public static let NETWORK_LOADING: UInt16 = 2 + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } + + @inlinable public var srcObject: MediaProvider? { + get { jsObject[Strings.srcObject].fromJSValue() } + set { jsObject[Strings.srcObject] = _toJSValue(newValue) } + } + + @inlinable public var currentSrc: String { jsObject[Strings.currentSrc].fromJSValue()! } + + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } + + public static let NETWORK_EMPTY: UInt16 = 0 + + public static let NETWORK_IDLE: UInt16 = 1 + + public static let NETWORK_LOADING: UInt16 = 2 public static let NETWORK_NO_SOURCE: UInt16 = 3 - @ReadonlyAttribute - public var networkState: UInt16 + @inlinable public var networkState: UInt16 { jsObject[Strings.networkState].fromJSValue()! } - @ReadWriteAttribute - public var preload: String + @inlinable public var preload: String { + get { jsObject[Strings.preload].fromJSValue()! } + set { jsObject[Strings.preload] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var buffered: TimeRanges + @inlinable public var buffered: TimeRanges { jsObject[Strings.buffered].fromJSValue()! } - @inlinable public func load() { + @inlinable final public func load() { let this = jsObject _ = this[Strings.load].function!(this: this, arguments: []) } - @inlinable public func canPlayType(type: String) -> CanPlayTypeResult { + @inlinable final public func canPlayType(type: String) -> CanPlayTypeResult { let this = jsObject return this[Strings.canPlayType].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } @@ -8208,1539 +9467,1557 @@ public class HTMLMediaElement: HTMLElement { public static let HAVE_ENOUGH_DATA: UInt16 = 4 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @ReadonlyAttribute - public var seeking: Bool + @inlinable public var seeking: Bool { jsObject[Strings.seeking].fromJSValue()! } - @ReadWriteAttribute - public var currentTime: Double + @inlinable public var currentTime: Double { + get { jsObject[Strings.currentTime].fromJSValue()! } + set { jsObject[Strings.currentTime] = _toJSValue(newValue) } + } - @inlinable public func fastSeek(time: Double) { + @inlinable final public func fastSeek(time: Double) { let this = jsObject _ = this[Strings.fastSeek].function!(this: this, arguments: [_toJSValue(time)]) } - @ReadonlyAttribute - public var duration: Double + @inlinable public var duration: Double { jsObject[Strings.duration].fromJSValue()! } - @inlinable public func getStartDate() -> JSObject { + @inlinable final public func getStartDate() -> JSObject { let this = jsObject return this[Strings.getStartDate].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var paused: Bool + @inlinable public var paused: Bool { jsObject[Strings.paused].fromJSValue()! } - @ReadWriteAttribute - public var defaultPlaybackRate: Double + @inlinable public var defaultPlaybackRate: Double { + get { jsObject[Strings.defaultPlaybackRate].fromJSValue()! } + set { jsObject[Strings.defaultPlaybackRate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var playbackRate: Double + @inlinable public var playbackRate: Double { + get { jsObject[Strings.playbackRate].fromJSValue()! } + set { jsObject[Strings.playbackRate] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var preservesPitch: Bool + @inlinable public var preservesPitch: Bool { + get { jsObject[Strings.preservesPitch].fromJSValue()! } + set { jsObject[Strings.preservesPitch] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var played: TimeRanges + @inlinable public var played: TimeRanges { jsObject[Strings.played].fromJSValue()! } - @ReadonlyAttribute - public var seekable: TimeRanges + @inlinable public var seekable: TimeRanges { jsObject[Strings.seekable].fromJSValue()! } - @ReadonlyAttribute - public var ended: Bool + @inlinable public var ended: Bool { jsObject[Strings.ended].fromJSValue()! } - @ReadWriteAttribute - public var autoplay: Bool + @inlinable public var autoplay: Bool { + get { jsObject[Strings.autoplay].fromJSValue()! } + set { jsObject[Strings.autoplay] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var loop: Bool + @inlinable public var loop: Bool { + get { jsObject[Strings.loop].fromJSValue()! } + set { jsObject[Strings.loop] = _toJSValue(newValue) } + } - @inlinable public func play() -> JSPromise { + @inlinable final public func play() -> JSPromise { let this = jsObject return this[Strings.play].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func play() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.play].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func play() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.play].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func pause() { + @inlinable final public func pause() { let this = jsObject _ = this[Strings.pause].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var controls: Bool + @inlinable public var controls: Bool { + get { jsObject[Strings.controls].fromJSValue()! } + set { jsObject[Strings.controls] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var volume: Double + @inlinable public var volume: Double { + get { jsObject[Strings.volume].fromJSValue()! } + set { jsObject[Strings.volume] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var muted: Bool + @inlinable public var muted: Bool { + get { jsObject[Strings.muted].fromJSValue()! } + set { jsObject[Strings.muted] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var defaultMuted: Bool + @inlinable public var defaultMuted: Bool { + get { jsObject[Strings.defaultMuted].fromJSValue()! } + set { jsObject[Strings.defaultMuted] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var audioTracks: AudioTrackList + @inlinable public var audioTracks: AudioTrackList { jsObject[Strings.audioTracks].fromJSValue()! } - @ReadonlyAttribute - public var videoTracks: VideoTrackList + @inlinable public var videoTracks: VideoTrackList { jsObject[Strings.videoTracks].fromJSValue()! } - @ReadonlyAttribute - public var textTracks: TextTrackList + @inlinable public var textTracks: TextTrackList { jsObject[Strings.textTracks].fromJSValue()! } - @inlinable public func addTextTrack(kind: TextTrackKind, label: String? = nil, language: String? = nil) -> TextTrack { + @inlinable final public func addTextTrack( + kind: TextTrackKind, + label: String? = nil, + language: String? = nil + ) -> TextTrack { let this = jsObject - return this[Strings.addTextTrack].function!(this: this, arguments: [_toJSValue(kind), _toJSValue(label), _toJSValue(language)]).fromJSValue()! + return this[Strings.addTextTrack].function!( + this: this, + arguments: [_toJSValue(kind), _toJSValue(label), _toJSValue(language)] + ).fromJSValue()! } } public class HTMLMenuElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMenuElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLMenuElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var compact: Bool + @inlinable public var compact: Bool { + get { jsObject[Strings.compact].fromJSValue()! } + set { jsObject[Strings.compact] = _toJSValue(newValue) } + } } public class HTMLMetaElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMetaElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLMetaElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _httpEquiv = ReadWriteAttribute(jsObject: jsObject, name: Strings.httpEquiv) - _content = ReadWriteAttribute(jsObject: jsObject, name: Strings.content) - _media = ReadWriteAttribute(jsObject: jsObject, name: Strings.media) - _scheme = ReadWriteAttribute(jsObject: jsObject, name: Strings.scheme) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var httpEquiv: String + @inlinable public var httpEquiv: String { + get { jsObject[Strings.httpEquiv].fromJSValue()! } + set { jsObject[Strings.httpEquiv] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var content: String + @inlinable public var content: String { + get { jsObject[Strings.content].fromJSValue()! } + set { jsObject[Strings.content] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var media: String + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var scheme: String + @inlinable public var scheme: String { + get { jsObject[Strings.scheme].fromJSValue()! } + set { jsObject[Strings.scheme] = _toJSValue(newValue) } + } } public class HTMLMeterElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMeterElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLMeterElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _min = ReadWriteAttribute(jsObject: jsObject, name: Strings.min) - _max = ReadWriteAttribute(jsObject: jsObject, name: Strings.max) - _low = ReadWriteAttribute(jsObject: jsObject, name: Strings.low) - _high = ReadWriteAttribute(jsObject: jsObject, name: Strings.high) - _optimum = ReadWriteAttribute(jsObject: jsObject, name: Strings.optimum) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var value: Double + @inlinable public var value: Double { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var min: Double + @inlinable public var min: Double { + get { jsObject[Strings.min].fromJSValue()! } + set { jsObject[Strings.min] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var max: Double + @inlinable public var max: Double { + get { jsObject[Strings.max].fromJSValue()! } + set { jsObject[Strings.max] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var low: Double + @inlinable public var low: Double { + get { jsObject[Strings.low].fromJSValue()! } + set { jsObject[Strings.low] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var high: Double + @inlinable public var high: Double { + get { jsObject[Strings.high].fromJSValue()! } + set { jsObject[Strings.high] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var optimum: Double + @inlinable public var optimum: Double { + get { jsObject[Strings.optimum].fromJSValue()! } + set { jsObject[Strings.optimum] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } } public class HTMLModElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLModElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLModElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _cite = ReadWriteAttribute(jsObject: jsObject, name: Strings.cite) - _dateTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.dateTime) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var cite: String + @inlinable public var cite: String { + get { jsObject[Strings.cite].fromJSValue()! } + set { jsObject[Strings.cite] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var dateTime: String + @inlinable public var dateTime: String { + get { jsObject[Strings.dateTime].fromJSValue()! } + set { jsObject[Strings.dateTime] = _toJSValue(newValue) } + } } public class HTMLOListElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOListElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLOListElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _reversed = ReadWriteAttribute(jsObject: jsObject, name: Strings.reversed) - _start = ReadWriteAttribute(jsObject: jsObject, name: Strings.start) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var reversed: Bool + @inlinable public var reversed: Bool { + get { jsObject[Strings.reversed].fromJSValue()! } + set { jsObject[Strings.reversed] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var start: Int32 + @inlinable public var start: Int32 { + get { jsObject[Strings.start].fromJSValue()! } + set { jsObject[Strings.start] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var compact: Bool + @inlinable public var compact: Bool { + get { jsObject[Strings.compact].fromJSValue()! } + set { jsObject[Strings.compact] = _toJSValue(newValue) } + } } public class HTMLObjectElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLObjectElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadWriteAttribute(jsObject: jsObject, name: Strings.data) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _contentDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentDocument) - _contentWindow = ReadonlyAttribute(jsObject: jsObject, name: Strings.contentWindow) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _archive = ReadWriteAttribute(jsObject: jsObject, name: Strings.archive) - _code = ReadWriteAttribute(jsObject: jsObject, name: Strings.code) - _declare = ReadWriteAttribute(jsObject: jsObject, name: Strings.declare) - _hspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.hspace) - _standby = ReadWriteAttribute(jsObject: jsObject, name: Strings.standby) - _vspace = ReadWriteAttribute(jsObject: jsObject, name: Strings.vspace) - _codeBase = ReadWriteAttribute(jsObject: jsObject, name: Strings.codeBase) - _codeType = ReadWriteAttribute(jsObject: jsObject, name: Strings.codeType) - _useMap = ReadWriteAttribute(jsObject: jsObject, name: Strings.useMap) - _border = ReadWriteAttribute(jsObject: jsObject, name: Strings.border) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLObjectElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var data: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var type: String + @inlinable public var data: String { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: String + @inlinable public var height: String { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var contentDocument: Document? + @inlinable public var contentDocument: Document? { jsObject[Strings.contentDocument].fromJSValue() } - @ReadonlyAttribute - public var contentWindow: WindowProxy? + @inlinable public var contentWindow: WindowProxy? { jsObject[Strings.contentWindow].fromJSValue() } - @inlinable public func getSVGDocument() -> Document? { + @inlinable final public func getSVGDocument() -> Document? { let this = jsObject return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue() } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var archive: String + @inlinable public var archive: String { + get { jsObject[Strings.archive].fromJSValue()! } + set { jsObject[Strings.archive] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var code: String + @inlinable public var code: String { + get { jsObject[Strings.code].fromJSValue()! } + set { jsObject[Strings.code] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var declare: Bool + @inlinable public var declare: Bool { + get { jsObject[Strings.declare].fromJSValue()! } + set { jsObject[Strings.declare] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hspace: UInt32 + @inlinable public var hspace: UInt32 { + get { jsObject[Strings.hspace].fromJSValue()! } + set { jsObject[Strings.hspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var standby: String + @inlinable public var standby: String { + get { jsObject[Strings.standby].fromJSValue()! } + set { jsObject[Strings.standby] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vspace: UInt32 + @inlinable public var vspace: UInt32 { + get { jsObject[Strings.vspace].fromJSValue()! } + set { jsObject[Strings.vspace] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var codeBase: String + @inlinable public var codeBase: String { + get { jsObject[Strings.codeBase].fromJSValue()! } + set { jsObject[Strings.codeBase] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var codeType: String + @inlinable public var codeType: String { + get { jsObject[Strings.codeType].fromJSValue()! } + set { jsObject[Strings.codeType] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var useMap: String + @inlinable public var useMap: String { + get { jsObject[Strings.useMap].fromJSValue()! } + set { jsObject[Strings.useMap] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var border: String + @inlinable public var border: String { + get { jsObject[Strings.border].fromJSValue()! } + set { jsObject[Strings.border] = _toJSValue(newValue) } + } } public class HTMLOptGroupElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOptGroupElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _label = ReadWriteAttribute(jsObject: jsObject, name: Strings.label) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLOptGroupElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var label: String + @inlinable public var label: String { + get { jsObject[Strings.label].fromJSValue()! } + set { jsObject[Strings.label] = _toJSValue(newValue) } + } } public class HTMLOptionElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOptionElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _label = ReadWriteAttribute(jsObject: jsObject, name: Strings.label) - _defaultSelected = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultSelected) - _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - _index = ReadonlyAttribute(jsObject: jsObject, name: Strings.index) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLOptionElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } + + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var label: String + @inlinable public var label: String { + get { jsObject[Strings.label].fromJSValue()! } + set { jsObject[Strings.label] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var defaultSelected: Bool + @inlinable public var defaultSelected: Bool { + get { jsObject[Strings.defaultSelected].fromJSValue()! } + set { jsObject[Strings.defaultSelected] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var selected: Bool + @inlinable public var selected: Bool { + get { jsObject[Strings.selected].fromJSValue()! } + set { jsObject[Strings.selected] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var index: Int32 + @inlinable public var index: Int32 { jsObject[Strings.index].fromJSValue()! } } public class HTMLOptionsCollection: HTMLCollection { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOptionsCollection].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadWriteAttribute(jsObject: jsObject, name: Strings.length) - _selectedIndex = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectedIndex) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLOptionsCollection].function } - @usableFromInline let _length: ReadWriteAttribute - @inlinable override public var length: UInt32 { - get { _length.wrappedValue } - set { _length.wrappedValue = newValue } - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable override public subscript(key: Int) -> HTMLOptionElement? { - get { - super[key] as? HTMLOptionElement - } - set { - jsObject[key] = _toJSValue(newValue) - } + @inlinable public override subscript(key: Int) -> HTMLOptionElement? { + get { super[key] as? HTMLOptionElement } + set { jsObject[key] = _toJSValue(newValue) } } - @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) { + @inlinable final public func add( + element: HTMLOptGroupElement_or_HTMLOptionElement, + before: HTMLElement_or_Int32? = nil + ) { let this = jsObject _ = this[Strings.add].function!(this: this, arguments: [_toJSValue(element), _toJSValue(before)]) } - @inlinable public func remove(index: Int32) { + @inlinable final public func remove(index: Int32) { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: [_toJSValue(index)]) } - @ReadWriteAttribute - public var selectedIndex: Int32 + @inlinable public var selectedIndex: Int32 { + get { jsObject[Strings.selectedIndex].fromJSValue()! } + set { jsObject[Strings.selectedIndex] = _toJSValue(newValue) } + } } public protocol HTMLOrSVGElement: JSBridgedClass {} -public extension HTMLOrSVGElement { - @inlinable var dataset: DOMStringMap { jsObject[Strings.dataset].fromJSValue()! } +extension HTMLOrSVGElement { + @inlinable public var dataset: DOMStringMap { jsObject[Strings.dataset].fromJSValue()! } - @inlinable var nonce: String { + @inlinable public var nonce: String { get { jsObject[Strings.nonce].fromJSValue()! } - nonmutating set { jsObject[Strings.nonce] = _toJSValue(newValue) } + set { jsObject[Strings.nonce] = _toJSValue(newValue) } } - @inlinable var autofocus: Bool { + @inlinable public var autofocus: Bool { get { jsObject[Strings.autofocus].fromJSValue()! } - nonmutating set { jsObject[Strings.autofocus] = _toJSValue(newValue) } + set { jsObject[Strings.autofocus] = _toJSValue(newValue) } } - @inlinable var tabIndex: Int32 { + @inlinable public var tabIndex: Int32 { get { jsObject[Strings.tabIndex].fromJSValue()! } - nonmutating set { jsObject[Strings.tabIndex] = _toJSValue(newValue) } + set { jsObject[Strings.tabIndex] = _toJSValue(newValue) } } - @inlinable func focus(options: FocusOptions? = nil) { + @inlinable public func focus(options: FocusOptions? = nil) { let this = jsObject _ = this[Strings.focus].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable func blur() { + @inlinable public func blur() { let this = jsObject _ = this[Strings.blur].function!(this: this, arguments: []) } } - public class HTMLOutputElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOutputElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _htmlFor = ReadonlyAttribute(jsObject: jsObject, name: Strings.htmlFor) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _defaultValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultValue) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLOutputElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var htmlFor: DOMTokenList + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var htmlFor: DOMTokenList { jsObject[Strings.htmlFor].fromJSValue()! } - @ReadWriteAttribute - public var name: String + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } + + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadWriteAttribute - public var defaultValue: String + @inlinable public var defaultValue: String { + get { jsObject[Strings.defaultValue].fromJSValue()! } + set { jsObject[Strings.defaultValue] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } } public class HTMLParagraphElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLParagraphElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLParagraphElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var align: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } } public class HTMLParamElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLParamElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLParamElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _valueType = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueType) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueType: String + @inlinable public var valueType: String { + get { jsObject[Strings.valueType].fromJSValue()! } + set { jsObject[Strings.valueType] = _toJSValue(newValue) } + } } public class HTMLPictureElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLPictureElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLPictureElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public class HTMLPreElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLPreElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLPreElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var width: Int32 + @inlinable public var width: Int32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } } public class HTMLProgressElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLProgressElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _max = ReadWriteAttribute(jsObject: jsObject, name: Strings.max) - _position = ReadonlyAttribute(jsObject: jsObject, name: Strings.position) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLProgressElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var value: Double + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var max: Double + @inlinable public var value: Double { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } + + @inlinable public var max: Double { + get { jsObject[Strings.max].fromJSValue()! } + set { jsObject[Strings.max] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var position: Double + @inlinable public var position: Double { jsObject[Strings.position].fromJSValue()! } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } } public class HTMLQuoteElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLQuoteElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLQuoteElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _cite = ReadWriteAttribute(jsObject: jsObject, name: Strings.cite) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var cite: String + @inlinable public var cite: String { + get { jsObject[Strings.cite].fromJSValue()! } + set { jsObject[Strings.cite] = _toJSValue(newValue) } + } } public class HTMLScriptElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLScriptElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _noModule = ReadWriteAttribute(jsObject: jsObject, name: Strings.noModule) - _async = ReadWriteAttribute(jsObject: jsObject, name: Strings.async) - _defer = ReadWriteAttribute(jsObject: jsObject, name: Strings.defer) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - _integrity = ReadWriteAttribute(jsObject: jsObject, name: Strings.integrity) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _blocking = ReadonlyAttribute(jsObject: jsObject, name: Strings.blocking) - _fetchPriority = ReadWriteAttribute(jsObject: jsObject, name: Strings.fetchPriority) - _charset = ReadWriteAttribute(jsObject: jsObject, name: Strings.charset) - _event = ReadWriteAttribute(jsObject: jsObject, name: Strings.event) - _htmlFor = ReadWriteAttribute(jsObject: jsObject, name: Strings.htmlFor) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLScriptElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var src: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var type: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } + + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noModule: Bool + @inlinable public var noModule: Bool { + get { jsObject[Strings.noModule].fromJSValue()! } + set { jsObject[Strings.noModule] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var async: Bool + @inlinable public var async: Bool { + get { jsObject[Strings.async].fromJSValue()! } + set { jsObject[Strings.async] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var `defer`: Bool + @inlinable public var `defer`: Bool { + get { jsObject[Strings.`defer`].fromJSValue()! } + set { jsObject[Strings.`defer`] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var integrity: String + @inlinable public var integrity: String { + get { jsObject[Strings.integrity].fromJSValue()! } + set { jsObject[Strings.integrity] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var blocking: DOMTokenList + @inlinable public var blocking: DOMTokenList { jsObject[Strings.blocking].fromJSValue()! } - @ReadWriteAttribute - public var fetchPriority: String + @inlinable public var fetchPriority: String { + get { jsObject[Strings.fetchPriority].fromJSValue()! } + set { jsObject[Strings.fetchPriority] = _toJSValue(newValue) } + } @inlinable public class func supports(type: String) -> Bool { let this = constructor! return this[Strings.supports].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } - @ReadWriteAttribute - public var charset: String + @inlinable public var charset: String { + get { jsObject[Strings.charset].fromJSValue()! } + set { jsObject[Strings.charset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var event: String + @inlinable public var event: String { + get { jsObject[Strings.event].fromJSValue()! } + set { jsObject[Strings.event] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var htmlFor: String + @inlinable public var htmlFor: String { + get { jsObject[Strings.htmlFor].fromJSValue()! } + set { jsObject[Strings.htmlFor] = _toJSValue(newValue) } + } } public class HTMLSelectElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSelectElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _autocomplete = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocomplete) - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _multiple = ReadWriteAttribute(jsObject: jsObject, name: Strings.multiple) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _required = ReadWriteAttribute(jsObject: jsObject, name: Strings.required) - _size = ReadWriteAttribute(jsObject: jsObject, name: Strings.size) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _options = ReadonlyAttribute(jsObject: jsObject, name: Strings.options) - _length = ReadWriteAttribute(jsObject: jsObject, name: Strings.length) - _selectedOptions = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedOptions) - _selectedIndex = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectedIndex) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLSelectElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var autocomplete: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var autocomplete: String { + get { jsObject[Strings.autocomplete].fromJSValue()! } + set { jsObject[Strings.autocomplete] = _toJSValue(newValue) } + } + + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var multiple: Bool + @inlinable public var multiple: Bool { + get { jsObject[Strings.multiple].fromJSValue()! } + set { jsObject[Strings.multiple] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var required: Bool + @inlinable public var required: Bool { + get { jsObject[Strings.required].fromJSValue()! } + set { jsObject[Strings.required] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var size: UInt32 + @inlinable public var size: UInt32 { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var options: HTMLOptionsCollection + @inlinable public var options: HTMLOptionsCollection { jsObject[Strings.options].fromJSValue()! } - @ReadWriteAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { + get { jsObject[Strings.length].fromJSValue()! } + set { jsObject[Strings.length] = _toJSValue(newValue) } + } - @inlinable public func item(index: UInt32) -> HTMLOptionElement? { + @inlinable final public func item(index: UInt32) -> HTMLOptionElement? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public func namedItem(name: String) -> HTMLOptionElement? { + @inlinable final public func namedItem(name: String) -> HTMLOptionElement? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) { + @inlinable final public func add( + element: HTMLOptGroupElement_or_HTMLOptionElement, + before: HTMLElement_or_Int32? = nil + ) { let this = jsObject _ = this[Strings.add].function!(this: this, arguments: [_toJSValue(element), _toJSValue(before)]) } - @inlinable public func remove() { + @inlinable final public func remove() { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: []) } - @inlinable public func remove(index: Int32) { + @inlinable final public func remove(index: Int32) { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: [_toJSValue(index)]) } @inlinable public subscript(key: Int) -> HTMLOptionElement? { - get { - jsObject[key].fromJSValue() - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue() } + set { jsObject[key] = _toJSValue(newValue) } } - @ReadonlyAttribute - public var selectedOptions: HTMLCollection + @inlinable public var selectedOptions: HTMLCollection { jsObject[Strings.selectedOptions].fromJSValue()! } - @ReadWriteAttribute - public var selectedIndex: Int32 + @inlinable public var selectedIndex: Int32 { + get { jsObject[Strings.selectedIndex].fromJSValue()! } + set { jsObject[Strings.selectedIndex] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadonlyAttribute - public var labels: NodeList + @inlinable final public func showPicker() { + let this = jsObject + _ = this[Strings.showPicker].function!(this: this, arguments: []) + } + + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } } public class HTMLSlotElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSlotElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLSlotElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } - @inlinable public func assignedNodes(options: AssignedNodesOptions? = nil) -> [Node] { + @inlinable final public func assignedNodes(options: AssignedNodesOptions? = nil) -> [Node] { let this = jsObject return this[Strings.assignedNodes].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func assignedElements(options: AssignedNodesOptions? = nil) -> [Element] { + @inlinable final public func assignedElements(options: AssignedNodesOptions? = nil) -> [Element] { let this = jsObject return this[Strings.assignedElements].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func assign(nodes: Element_or_Text...) { + @inlinable final public func assign(nodes: Element_or_Text...) { let this = jsObject _ = this[Strings.assign].function!(this: this, arguments: nodes.map(_toJSValue)) } } public class HTMLSourceElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSourceElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _srcset = ReadWriteAttribute(jsObject: jsObject, name: Strings.srcset) - _sizes = ReadWriteAttribute(jsObject: jsObject, name: Strings.sizes) - _media = ReadWriteAttribute(jsObject: jsObject, name: Strings.media) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLSourceElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var src: String + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var type: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } + + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var srcset: String + @inlinable public var srcset: String { + get { jsObject[Strings.srcset].fromJSValue()! } + set { jsObject[Strings.srcset] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var sizes: String + @inlinable public var sizes: String { + get { jsObject[Strings.sizes].fromJSValue()! } + set { jsObject[Strings.sizes] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var media: String + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } } public class HTMLSpanElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSpanElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLSpanElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public class HTMLStyleElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLStyleElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLStyleElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _media = ReadWriteAttribute(jsObject: jsObject, name: Strings.media) - _blocking = ReadonlyAttribute(jsObject: jsObject, name: Strings.blocking) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var disabled: Bool + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var media: String + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var blocking: DOMTokenList + @inlinable public var blocking: DOMTokenList { jsObject[Strings.blocking].fromJSValue()! } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } public class HTMLTableCaptionElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableCaptionElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTableCaptionElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } } public class HTMLTableCellElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableCellElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _colSpan = ReadWriteAttribute(jsObject: jsObject, name: Strings.colSpan) - _rowSpan = ReadWriteAttribute(jsObject: jsObject, name: Strings.rowSpan) - _headers = ReadWriteAttribute(jsObject: jsObject, name: Strings.headers) - _cellIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.cellIndex) - _scope = ReadWriteAttribute(jsObject: jsObject, name: Strings.scope) - _abbr = ReadWriteAttribute(jsObject: jsObject, name: Strings.abbr) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _axis = ReadWriteAttribute(jsObject: jsObject, name: Strings.axis) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _ch = ReadWriteAttribute(jsObject: jsObject, name: Strings.ch) - _chOff = ReadWriteAttribute(jsObject: jsObject, name: Strings.chOff) - _noWrap = ReadWriteAttribute(jsObject: jsObject, name: Strings.noWrap) - _vAlign = ReadWriteAttribute(jsObject: jsObject, name: Strings.vAlign) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTableCellElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var colSpan: UInt32 + @inlinable public var colSpan: UInt32 { + get { jsObject[Strings.colSpan].fromJSValue()! } + set { jsObject[Strings.colSpan] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rowSpan: UInt32 + @inlinable public var rowSpan: UInt32 { + get { jsObject[Strings.rowSpan].fromJSValue()! } + set { jsObject[Strings.rowSpan] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var headers: String + @inlinable public var headers: String { + get { jsObject[Strings.headers].fromJSValue()! } + set { jsObject[Strings.headers] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var cellIndex: Int32 + @inlinable public var cellIndex: Int32 { jsObject[Strings.cellIndex].fromJSValue()! } - @ReadWriteAttribute - public var scope: String + @inlinable public var scope: String { + get { jsObject[Strings.scope].fromJSValue()! } + set { jsObject[Strings.scope] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var abbr: String + @inlinable public var abbr: String { + get { jsObject[Strings.abbr].fromJSValue()! } + set { jsObject[Strings.abbr] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var axis: String + @inlinable public var axis: String { + get { jsObject[Strings.axis].fromJSValue()! } + set { jsObject[Strings.axis] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: String + @inlinable public var height: String { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ch: String + @inlinable public var ch: String { + get { jsObject[Strings.ch].fromJSValue()! } + set { jsObject[Strings.ch] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var chOff: String + @inlinable public var chOff: String { + get { jsObject[Strings.chOff].fromJSValue()! } + set { jsObject[Strings.chOff] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var noWrap: Bool + @inlinable public var noWrap: Bool { + get { jsObject[Strings.noWrap].fromJSValue()! } + set { jsObject[Strings.noWrap] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vAlign: String + @inlinable public var vAlign: String { + get { jsObject[Strings.vAlign].fromJSValue()! } + set { jsObject[Strings.vAlign] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } } public class HTMLTableColElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableColElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _span = ReadWriteAttribute(jsObject: jsObject, name: Strings.span) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _ch = ReadWriteAttribute(jsObject: jsObject, name: Strings.ch) - _chOff = ReadWriteAttribute(jsObject: jsObject, name: Strings.chOff) - _vAlign = ReadWriteAttribute(jsObject: jsObject, name: Strings.vAlign) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTableColElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var span: UInt32 + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var span: UInt32 { + get { jsObject[Strings.span].fromJSValue()! } + set { jsObject[Strings.span] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ch: String + @inlinable public var ch: String { + get { jsObject[Strings.ch].fromJSValue()! } + set { jsObject[Strings.ch] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var chOff: String + @inlinable public var chOff: String { + get { jsObject[Strings.chOff].fromJSValue()! } + set { jsObject[Strings.chOff] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vAlign: String + @inlinable public var vAlign: String { + get { jsObject[Strings.vAlign].fromJSValue()! } + set { jsObject[Strings.vAlign] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } } public class HTMLTableElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _caption = ReadWriteAttribute(jsObject: jsObject, name: Strings.caption) - _tHead = ReadWriteAttribute(jsObject: jsObject, name: Strings.tHead) - _tFoot = ReadWriteAttribute(jsObject: jsObject, name: Strings.tFoot) - _tBodies = ReadonlyAttribute(jsObject: jsObject, name: Strings.tBodies) - _rows = ReadonlyAttribute(jsObject: jsObject, name: Strings.rows) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _border = ReadWriteAttribute(jsObject: jsObject, name: Strings.border) - _frame = ReadWriteAttribute(jsObject: jsObject, name: Strings.frame) - _rules = ReadWriteAttribute(jsObject: jsObject, name: Strings.rules) - _summary = ReadWriteAttribute(jsObject: jsObject, name: Strings.summary) - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - _cellPadding = ReadWriteAttribute(jsObject: jsObject, name: Strings.cellPadding) - _cellSpacing = ReadWriteAttribute(jsObject: jsObject, name: Strings.cellSpacing) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var caption: HTMLTableCaptionElement? + @inlinable public var caption: HTMLTableCaptionElement? { + get { jsObject[Strings.caption].fromJSValue() } + set { jsObject[Strings.caption] = _toJSValue(newValue) } + } - @inlinable public func createCaption() -> HTMLTableCaptionElement { + @inlinable final public func createCaption() -> HTMLTableCaptionElement { let this = jsObject return this[Strings.createCaption].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func deleteCaption() { + @inlinable final public func deleteCaption() { let this = jsObject _ = this[Strings.deleteCaption].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var tHead: HTMLTableSectionElement? + @inlinable public var tHead: HTMLTableSectionElement? { + get { jsObject[Strings.tHead].fromJSValue() } + set { jsObject[Strings.tHead] = _toJSValue(newValue) } + } - @inlinable public func createTHead() -> HTMLTableSectionElement { + @inlinable final public func createTHead() -> HTMLTableSectionElement { let this = jsObject return this[Strings.createTHead].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func deleteTHead() { + @inlinable final public func deleteTHead() { let this = jsObject _ = this[Strings.deleteTHead].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var tFoot: HTMLTableSectionElement? + @inlinable public var tFoot: HTMLTableSectionElement? { + get { jsObject[Strings.tFoot].fromJSValue() } + set { jsObject[Strings.tFoot] = _toJSValue(newValue) } + } - @inlinable public func createTFoot() -> HTMLTableSectionElement { + @inlinable final public func createTFoot() -> HTMLTableSectionElement { let this = jsObject return this[Strings.createTFoot].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func deleteTFoot() { + @inlinable final public func deleteTFoot() { let this = jsObject _ = this[Strings.deleteTFoot].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var tBodies: HTMLCollection + @inlinable public var tBodies: HTMLCollection { jsObject[Strings.tBodies].fromJSValue()! } - @inlinable public func createTBody() -> HTMLTableSectionElement { + @inlinable final public func createTBody() -> HTMLTableSectionElement { let this = jsObject return this[Strings.createTBody].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var rows: HTMLCollection + @inlinable public var rows: HTMLCollection { jsObject[Strings.rows].fromJSValue()! } - @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement { + @inlinable final public func insertRow(index: Int32? = nil) -> HTMLTableRowElement { let this = jsObject return this[Strings.insertRow].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func deleteRow(index: Int32) { + @inlinable final public func deleteRow(index: Int32) { let this = jsObject _ = this[Strings.deleteRow].function!(this: this, arguments: [_toJSValue(index)]) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var border: String + @inlinable public var border: String { + get { jsObject[Strings.border].fromJSValue()! } + set { jsObject[Strings.border] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var frame: String + @inlinable public var frame: String { + get { jsObject[Strings.frame].fromJSValue()! } + set { jsObject[Strings.frame] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rules: String + @inlinable public var rules: String { + get { jsObject[Strings.rules].fromJSValue()! } + set { jsObject[Strings.rules] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var summary: String + @inlinable public var summary: String { + get { jsObject[Strings.summary].fromJSValue()! } + set { jsObject[Strings.summary] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var width: String + @inlinable public var width: String { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var cellPadding: String + @inlinable public var cellPadding: String { + get { jsObject[Strings.cellPadding].fromJSValue()! } + set { jsObject[Strings.cellPadding] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var cellSpacing: String + @inlinable public var cellSpacing: String { + get { jsObject[Strings.cellSpacing].fromJSValue()! } + set { jsObject[Strings.cellSpacing] = _toJSValue(newValue) } + } } public class HTMLTableRowElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableRowElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _rowIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.rowIndex) - _sectionRowIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.sectionRowIndex) - _cells = ReadonlyAttribute(jsObject: jsObject, name: Strings.cells) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _ch = ReadWriteAttribute(jsObject: jsObject, name: Strings.ch) - _chOff = ReadWriteAttribute(jsObject: jsObject, name: Strings.chOff) - _vAlign = ReadWriteAttribute(jsObject: jsObject, name: Strings.vAlign) - _bgColor = ReadWriteAttribute(jsObject: jsObject, name: Strings.bgColor) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTableRowElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var rowIndex: Int32 + @inlinable public var rowIndex: Int32 { jsObject[Strings.rowIndex].fromJSValue()! } - @ReadonlyAttribute - public var sectionRowIndex: Int32 + @inlinable public var sectionRowIndex: Int32 { jsObject[Strings.sectionRowIndex].fromJSValue()! } - @ReadonlyAttribute - public var cells: HTMLCollection + @inlinable public var cells: HTMLCollection { jsObject[Strings.cells].fromJSValue()! } - @inlinable public func insertCell(index: Int32? = nil) -> HTMLTableCellElement { + @inlinable final public func insertCell(index: Int32? = nil) -> HTMLTableCellElement { let this = jsObject return this[Strings.insertCell].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func deleteCell(index: Int32) { + @inlinable final public func deleteCell(index: Int32) { let this = jsObject _ = this[Strings.deleteCell].function!(this: this, arguments: [_toJSValue(index)]) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ch: String + @inlinable public var ch: String { + get { jsObject[Strings.ch].fromJSValue()! } + set { jsObject[Strings.ch] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var chOff: String + @inlinable public var chOff: String { + get { jsObject[Strings.chOff].fromJSValue()! } + set { jsObject[Strings.chOff] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vAlign: String + @inlinable public var vAlign: String { + get { jsObject[Strings.vAlign].fromJSValue()! } + set { jsObject[Strings.vAlign] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var bgColor: String + @inlinable public var bgColor: String { + get { jsObject[Strings.bgColor].fromJSValue()! } + set { jsObject[Strings.bgColor] = _toJSValue(newValue) } + } } public class HTMLTableSectionElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableSectionElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _rows = ReadonlyAttribute(jsObject: jsObject, name: Strings.rows) - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _ch = ReadWriteAttribute(jsObject: jsObject, name: Strings.ch) - _chOff = ReadWriteAttribute(jsObject: jsObject, name: Strings.chOff) - _vAlign = ReadWriteAttribute(jsObject: jsObject, name: Strings.vAlign) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTableSectionElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var rows: HTMLCollection + @inlinable public var rows: HTMLCollection { jsObject[Strings.rows].fromJSValue()! } - @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement { + @inlinable final public func insertRow(index: Int32? = nil) -> HTMLTableRowElement { let this = jsObject return this[Strings.insertRow].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func deleteRow(index: Int32) { + @inlinable final public func deleteRow(index: Int32) { let this = jsObject _ = this[Strings.deleteRow].function!(this: this, arguments: [_toJSValue(index)]) } - @ReadWriteAttribute - public var align: String + @inlinable public var align: String { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ch: String + @inlinable public var ch: String { + get { jsObject[Strings.ch].fromJSValue()! } + set { jsObject[Strings.ch] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var chOff: String + @inlinable public var chOff: String { + get { jsObject[Strings.chOff].fromJSValue()! } + set { jsObject[Strings.chOff] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var vAlign: String + @inlinable public var vAlign: String { + get { jsObject[Strings.vAlign].fromJSValue()! } + set { jsObject[Strings.vAlign] = _toJSValue(newValue) } + } } public class HTMLTemplateElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTemplateElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _content = ReadonlyAttribute(jsObject: jsObject, name: Strings.content) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTemplateElement].function } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var content: DocumentFragment -} + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } -public class HTMLTextAreaElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTextAreaElement].function } + @inlinable public var content: DocumentFragment { jsObject[Strings.content].fromJSValue()! } - public required init(unsafelyWrapping jsObject: JSObject) { - _autocomplete = ReadWriteAttribute(jsObject: jsObject, name: Strings.autocomplete) - _cols = ReadWriteAttribute(jsObject: jsObject, name: Strings.cols) - _dirName = ReadWriteAttribute(jsObject: jsObject, name: Strings.dirName) - _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled) - _form = ReadonlyAttribute(jsObject: jsObject, name: Strings.form) - _maxLength = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxLength) - _minLength = ReadWriteAttribute(jsObject: jsObject, name: Strings.minLength) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _placeholder = ReadWriteAttribute(jsObject: jsObject, name: Strings.placeholder) - _readOnly = ReadWriteAttribute(jsObject: jsObject, name: Strings.readOnly) - _required = ReadWriteAttribute(jsObject: jsObject, name: Strings.required) - _rows = ReadWriteAttribute(jsObject: jsObject, name: Strings.rows) - _wrap = ReadWriteAttribute(jsObject: jsObject, name: Strings.wrap) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _defaultValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.defaultValue) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _textLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.textLength) - _willValidate = ReadonlyAttribute(jsObject: jsObject, name: Strings.willValidate) - _validity = ReadonlyAttribute(jsObject: jsObject, name: Strings.validity) - _validationMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.validationMessage) - _labels = ReadonlyAttribute(jsObject: jsObject, name: Strings.labels) - _selectionStart = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionStart) - _selectionEnd = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionEnd) - _selectionDirection = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectionDirection) - super.init(unsafelyWrapping: jsObject) + @inlinable public var shadowRootMode: String { + get { jsObject[Strings.shadowRootMode].fromJSValue()! } + set { jsObject[Strings.shadowRootMode] = _toJSValue(newValue) } } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + @inlinable public var shadowRootDelegatesFocus: Bool { + get { jsObject[Strings.shadowRootDelegatesFocus].fromJSValue()! } + set { jsObject[Strings.shadowRootDelegatesFocus] = _toJSValue(newValue) } } - @ReadWriteAttribute - public var autocomplete: String + @inlinable public var shadowRootClonable: Bool { + get { jsObject[Strings.shadowRootClonable].fromJSValue()! } + set { jsObject[Strings.shadowRootClonable] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var cols: UInt32 + @inlinable public var shadowRootSerializable: Bool { + get { jsObject[Strings.shadowRootSerializable].fromJSValue()! } + set { jsObject[Strings.shadowRootSerializable] = _toJSValue(newValue) } + } +} - @ReadWriteAttribute - public var dirName: String +public class HTMLTextAreaElement: HTMLElement { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLTextAreaElement].function + } - @ReadWriteAttribute - public var disabled: Bool + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var form: HTMLFormElement? + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var maxLength: Int32 + @inlinable public var autocomplete: String { + get { jsObject[Strings.autocomplete].fromJSValue()! } + set { jsObject[Strings.autocomplete] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var minLength: Int32 + @inlinable public var cols: UInt32 { + get { jsObject[Strings.cols].fromJSValue()! } + set { jsObject[Strings.cols] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var name: String + @inlinable public var dirName: String { + get { jsObject[Strings.dirName].fromJSValue()! } + set { jsObject[Strings.dirName] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var placeholder: String + @inlinable public var disabled: Bool { + get { jsObject[Strings.disabled].fromJSValue()! } + set { jsObject[Strings.disabled] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var readOnly: Bool + @inlinable public var form: HTMLFormElement? { jsObject[Strings.form].fromJSValue() } - @ReadWriteAttribute - public var required: Bool + @inlinable public var maxLength: Int32 { + get { jsObject[Strings.maxLength].fromJSValue()! } + set { jsObject[Strings.maxLength] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rows: UInt32 + @inlinable public var minLength: Int32 { + get { jsObject[Strings.minLength].fromJSValue()! } + set { jsObject[Strings.minLength] = _toJSValue(newValue) } + } + + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } + + @inlinable public var placeholder: String { + get { jsObject[Strings.placeholder].fromJSValue()! } + set { jsObject[Strings.placeholder] = _toJSValue(newValue) } + } + + @inlinable public var readOnly: Bool { + get { jsObject[Strings.readOnly].fromJSValue()! } + set { jsObject[Strings.readOnly] = _toJSValue(newValue) } + } + + @inlinable public var required: Bool { + get { jsObject[Strings.required].fromJSValue()! } + set { jsObject[Strings.required] = _toJSValue(newValue) } + } + + @inlinable public var rows: UInt32 { + get { jsObject[Strings.rows].fromJSValue()! } + set { jsObject[Strings.rows] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var wrap: String + @inlinable public var wrap: String { + get { jsObject[Strings.wrap].fromJSValue()! } + set { jsObject[Strings.wrap] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadWriteAttribute - public var defaultValue: String + @inlinable public var defaultValue: String { + get { jsObject[Strings.defaultValue].fromJSValue()! } + set { jsObject[Strings.defaultValue] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var textLength: UInt32 + @inlinable public var textLength: UInt32 { jsObject[Strings.textLength].fromJSValue()! } - @ReadonlyAttribute - public var willValidate: Bool + @inlinable public var willValidate: Bool { jsObject[Strings.willValidate].fromJSValue()! } - @ReadonlyAttribute - public var validity: ValidityState + @inlinable public var validity: ValidityState { jsObject[Strings.validity].fromJSValue()! } - @ReadonlyAttribute - public var validationMessage: String + @inlinable public var validationMessage: String { jsObject[Strings.validationMessage].fromJSValue()! } - @inlinable public func checkValidity() -> Bool { + @inlinable final public func checkValidity() -> Bool { let this = jsObject return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func reportValidity() -> Bool { + @inlinable final public func reportValidity() -> Bool { let this = jsObject return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCustomValidity(error: String) { + @inlinable final public func setCustomValidity(error: String) { let this = jsObject _ = this[Strings.setCustomValidity].function!(this: this, arguments: [_toJSValue(error)]) } - @ReadonlyAttribute - public var labels: NodeList + @inlinable public var labels: NodeList { jsObject[Strings.labels].fromJSValue()! } - @inlinable public func select() { + @inlinable final public func select() { let this = jsObject _ = this[Strings.select].function!(this: this, arguments: []) } - @ReadWriteAttribute - public var selectionStart: UInt32 + @inlinable public var selectionStart: UInt32 { + get { jsObject[Strings.selectionStart].fromJSValue()! } + set { jsObject[Strings.selectionStart] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var selectionEnd: UInt32 + @inlinable public var selectionEnd: UInt32 { + get { jsObject[Strings.selectionEnd].fromJSValue()! } + set { jsObject[Strings.selectionEnd] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var selectionDirection: String + @inlinable public var selectionDirection: String { + get { jsObject[Strings.selectionDirection].fromJSValue()! } + set { jsObject[Strings.selectionDirection] = _toJSValue(newValue) } + } - @inlinable public func setRangeText(replacement: String) { + @inlinable final public func setRangeText(replacement: String) { let this = jsObject _ = this[Strings.setRangeText].function!(this: this, arguments: [_toJSValue(replacement)]) } - @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) { + @inlinable final public func setRangeText( + replacement: String, + start: UInt32, + end: UInt32, + selectionMode: SelectionMode? = nil + ) { let this = jsObject - _ = this[Strings.setRangeText].function!(this: this, arguments: [_toJSValue(replacement), _toJSValue(start), _toJSValue(end), _toJSValue(selectionMode)]) + _ = this[Strings.setRangeText].function!( + this: this, + arguments: [_toJSValue(replacement), _toJSValue(start), _toJSValue(end), _toJSValue(selectionMode)] + ) } - @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) { + @inlinable final public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) { let this = jsObject - _ = this[Strings.setSelectionRange].function!(this: this, arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(direction)]) + _ = this[Strings.setSelectionRange].function!( + this: this, + arguments: [_toJSValue(start), _toJSValue(end), _toJSValue(direction)] + ) } } public class HTMLTimeElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTimeElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLTimeElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _dateTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.dateTime) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var dateTime: String + @inlinable public var dateTime: String { + get { jsObject[Strings.dateTime].fromJSValue()! } + set { jsObject[Strings.dateTime] = _toJSValue(newValue) } + } } public class HTMLTitleElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTitleElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLTitleElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } } public class HTMLTrackElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTrackElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLTrackElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _kind = ReadWriteAttribute(jsObject: jsObject, name: Strings.kind) - _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src) - _srclang = ReadWriteAttribute(jsObject: jsObject, name: Strings.srclang) - _label = ReadWriteAttribute(jsObject: jsObject, name: Strings.label) - _default = ReadWriteAttribute(jsObject: jsObject, name: Strings.default) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var kind: String + @inlinable public var kind: String { + get { jsObject[Strings.kind].fromJSValue()! } + set { jsObject[Strings.kind] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var src: String + @inlinable public var src: String { + get { jsObject[Strings.src].fromJSValue()! } + set { jsObject[Strings.src] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var srclang: String + @inlinable public var srclang: String { + get { jsObject[Strings.srclang].fromJSValue()! } + set { jsObject[Strings.srclang] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var label: String + @inlinable public var label: String { + get { jsObject[Strings.label].fromJSValue()! } + set { jsObject[Strings.label] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var `default`: Bool + @inlinable public var `default`: Bool { + get { jsObject[Strings.`default`].fromJSValue()! } + set { jsObject[Strings.`default`] = _toJSValue(newValue) } + } public static let NONE: UInt16 = 0 @@ -9750,75 +11027,68 @@ public class HTMLTrackElement: HTMLElement { public static let ERROR: UInt16 = 3 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @ReadonlyAttribute - public var track: TextTrack + @inlinable public var track: TextTrack { jsObject[Strings.track].fromJSValue()! } } public class HTMLUListElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLUListElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLUListElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var compact: Bool + @inlinable public var compact: Bool { + get { jsObject[Strings.compact].fromJSValue()! } + set { jsObject[Strings.compact] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } public class HTMLUnknownElement: HTMLElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLUnknownElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.HTMLUnknownElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class HTMLVideoElement: HTMLMediaElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLVideoElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HTMLVideoElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _videoWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoWidth) - _videoHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoHeight) - _poster = ReadWriteAttribute(jsObject: jsObject, name: Strings.poster) - _playsInline = ReadWriteAttribute(jsObject: jsObject, name: Strings.playsInline) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadWriteAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var videoWidth: UInt32 + @inlinable public var videoWidth: UInt32 { jsObject[Strings.videoWidth].fromJSValue()! } - @ReadonlyAttribute - public var videoHeight: UInt32 + @inlinable public var videoHeight: UInt32 { jsObject[Strings.videoHeight].fromJSValue()! } - @ReadWriteAttribute - public var poster: String + @inlinable public var poster: String { + get { jsObject[Strings.poster].fromJSValue()! } + set { jsObject[Strings.poster] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var playsInline: Bool + @inlinable public var playsInline: Bool { + get { jsObject[Strings.playsInline].fromJSValue()! } + set { jsObject[Strings.playsInline] = _toJSValue(newValue) } + } } public enum HardwareAcceleration: JSString, JSValueCompatible { @@ -9827,107 +11097,101 @@ public enum HardwareAcceleration: JSString, JSValueCompatible { case preferSoftware = "prefer-software" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class HashChangeEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HashChangeEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.HashChangeEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _oldURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.oldURL) - _newURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.newURL) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: HashChangeEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var oldURL: String + @inlinable public var oldURL: String { jsObject[Strings.oldURL].fromJSValue()! } - @ReadonlyAttribute - public var newURL: String + @inlinable public var newURL: String { jsObject[Strings.newURL].fromJSValue()! } } -public class HashChangeEventInit: BridgedDictionary { - public convenience init(oldURL: String, newURL: String) { +open class HashChangeEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + oldURL: String? = nil, + newURL: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.oldURL] = _toJSValue(oldURL) object[Strings.newURL] = _toJSValue(newURL) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _oldURL = ReadWriteAttribute(jsObject: object, name: Strings.oldURL) - _newURL = ReadWriteAttribute(jsObject: object, name: Strings.newURL) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var oldURL: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var newURL: String + @inlinable public var oldURL: String { + get { jsObject[Strings.oldURL].fromJSValue()! } + set { jsObject[Strings.oldURL] = _toJSValue(newValue) } + } + @inlinable public var newURL: String { + get { jsObject[Strings.newURL].fromJSValue()! } + set { jsObject[Strings.newURL] = _toJSValue(newValue) } + } } - public class Headers: JSBridgedClass, Sequence { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Headers].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: HeadersInit? = nil) { + @inlinable public convenience init(`init`: HeadersInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @inlinable public func append(name: String, value: String) { + @inlinable final public func append(name: String, value: String) { let this = jsObject _ = this[Strings.append].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func delete(name: String) { + @inlinable final public func delete(name: String) { let this = jsObject _ = this[Strings.delete].function!(this: this, arguments: [_toJSValue(name)]) } - @inlinable public func get(name: String) -> String? { + @inlinable final public func get(name: String) -> String? { let this = jsObject return this[Strings.get].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func getSetCookie() -> [String] { + @inlinable final public func getSetCookie() -> [String] { let this = jsObject return this[Strings.getSetCookie].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func has(name: String) -> Bool { + @inlinable final public func has(name: String) -> Bool { let this = jsObject return this[Strings.has].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @inlinable public func set(name: String, value: String) { + @inlinable final public func set(name: String, value: String) { let this = jsObject _ = this[Strings.set].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } public typealias Element = String - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } } public class History: JSBridgedClass { @@ -9935,45 +11199,46 @@ public class History: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _scrollRestoration = ReadWriteAttribute(jsObject: jsObject, name: Strings.scrollRestoration) - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadWriteAttribute - public var scrollRestoration: ScrollRestoration + @inlinable public var scrollRestoration: ScrollRestoration { + get { jsObject[Strings.scrollRestoration].fromJSValue()! } + set { jsObject[Strings.scrollRestoration] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var state: JSValue + @inlinable public var state: JSValue { jsObject[Strings.state].fromJSValue()! } - @inlinable public func go(delta: Int32? = nil) { + @inlinable final public func go(delta: Int32? = nil) { let this = jsObject _ = this[Strings.go].function!(this: this, arguments: [_toJSValue(delta)]) } - @inlinable public func back() { + @inlinable final public func back() { let this = jsObject _ = this[Strings.back].function!(this: this, arguments: []) } - @inlinable public func forward() { + @inlinable final public func forward() { let this = jsObject _ = this[Strings.forward].function!(this: this, arguments: []) } - @inlinable public func pushState(data: JSValue, unused: String, url: String? = nil) { + @inlinable final public func pushState(data: JSValue, unused: String, url: String? = nil) { let this = jsObject - _ = this[Strings.pushState].function!(this: this, arguments: [_toJSValue(data), _toJSValue(unused), _toJSValue(url)]) + _ = this[Strings.pushState].function!( + this: this, + arguments: [_toJSValue(data), _toJSValue(unused), _toJSValue(url)] + ) } - @inlinable public func replaceState(data: JSValue, unused: String, url: String? = nil) { + @inlinable final public func replaceState(data: JSValue, unused: String, url: String? = nil) { let this = jsObject - _ = this[Strings.replaceState].function!(this: this, arguments: [_toJSValue(data), _toJSValue(unused), _toJSValue(url)]) + _ = this[Strings.replaceState].function!( + this: this, + arguments: [_toJSValue(data), _toJSValue(unused), _toJSValue(url)] + ) } } @@ -9982,26 +11247,29 @@ public class ImageBitmap: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { jsObject[Strings.height].fromJSValue()! } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } } -public class ImageBitmapOptions: BridgedDictionary { - public convenience init(imageOrientation: ImageOrientation, premultiplyAlpha: PremultiplyAlpha, colorSpaceConversion: ColorSpaceConversion, resizeWidth: UInt32, resizeHeight: UInt32, resizeQuality: ResizeQuality) { +open class ImageBitmapOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + imageOrientation: ImageOrientation? = nil, + premultiplyAlpha: PremultiplyAlpha? = nil, + colorSpaceConversion: ColorSpaceConversion? = nil, + resizeWidth: UInt32? = nil, + resizeHeight: UInt32? = nil, + resizeQuality: ResizeQuality? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.imageOrientation] = _toJSValue(imageOrientation) object[Strings.premultiplyAlpha] = _toJSValue(premultiplyAlpha) @@ -10009,212 +11277,208 @@ public class ImageBitmapOptions: BridgedDictionary { object[Strings.resizeWidth] = _toJSValue(resizeWidth) object[Strings.resizeHeight] = _toJSValue(resizeHeight) object[Strings.resizeQuality] = _toJSValue(resizeQuality) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _imageOrientation = ReadWriteAttribute(jsObject: object, name: Strings.imageOrientation) - _premultiplyAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultiplyAlpha) - _colorSpaceConversion = ReadWriteAttribute(jsObject: object, name: Strings.colorSpaceConversion) - _resizeWidth = ReadWriteAttribute(jsObject: object, name: Strings.resizeWidth) - _resizeHeight = ReadWriteAttribute(jsObject: object, name: Strings.resizeHeight) - _resizeQuality = ReadWriteAttribute(jsObject: object, name: Strings.resizeQuality) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var imageOrientation: ImageOrientation - - @ReadWriteAttribute - public var premultiplyAlpha: PremultiplyAlpha + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var colorSpaceConversion: ColorSpaceConversion - - @ReadWriteAttribute - public var resizeWidth: UInt32 - - @ReadWriteAttribute - public var resizeHeight: UInt32 - - @ReadWriteAttribute - public var resizeQuality: ResizeQuality + @inlinable public var imageOrientation: ImageOrientation { + get { jsObject[Strings.imageOrientation].fromJSValue()! } + set { jsObject[Strings.imageOrientation] = _toJSValue(newValue) } + } + @inlinable public var premultiplyAlpha: PremultiplyAlpha { + get { jsObject[Strings.premultiplyAlpha].fromJSValue()! } + set { jsObject[Strings.premultiplyAlpha] = _toJSValue(newValue) } + } + @inlinable public var colorSpaceConversion: ColorSpaceConversion { + get { jsObject[Strings.colorSpaceConversion].fromJSValue()! } + set { jsObject[Strings.colorSpaceConversion] = _toJSValue(newValue) } + } + @inlinable public var resizeWidth: UInt32 { + get { jsObject[Strings.resizeWidth].fromJSValue()! } + set { jsObject[Strings.resizeWidth] = _toJSValue(newValue) } + } + @inlinable public var resizeHeight: UInt32 { + get { jsObject[Strings.resizeHeight].fromJSValue()! } + set { jsObject[Strings.resizeHeight] = _toJSValue(newValue) } + } + @inlinable public var resizeQuality: ResizeQuality { + get { jsObject[Strings.resizeQuality].fromJSValue()! } + set { jsObject[Strings.resizeQuality] = _toJSValue(newValue) } + } } - public class ImageBitmapRenderingContext: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageBitmapRenderingContext].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.ImageBitmapRenderingContext].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var canvas: HTMLCanvasElement_or_OffscreenCanvas + @inlinable public var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! } - @inlinable public func transferFromImageBitmap(bitmap: ImageBitmap?) { + @inlinable final public func transferFromImageBitmap(bitmap: ImageBitmap?) { let this = jsObject _ = this[Strings.transferFromImageBitmap].function!(this: this, arguments: [_toJSValue(bitmap)]) } } -public class ImageBitmapRenderingContextSettings: BridgedDictionary { - public convenience init(alpha: Bool) { +open class ImageBitmapRenderingContextSettings: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(alpha: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.alpha] = _toJSValue(alpha) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var alpha: Bool + @inlinable public var alpha: Bool { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } - public class ImageData: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageData].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _colorSpace = ReadonlyAttribute(jsObject: jsObject, name: Strings.colorSpace) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(sw: UInt32, sh: UInt32, settings: ImageDataSettings? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(sw), _toJSValue(sh), _toJSValue(settings)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(sw), _toJSValue(sh), _toJSValue(settings)]) + ) } - @inlinable public convenience init(data: Uint8ClampedArray, sw: UInt32, sh: UInt32? = nil, settings: ImageDataSettings? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(data), _toJSValue(sw), _toJSValue(sh), _toJSValue(settings)])) + @inlinable public convenience init( + data: Uint8ClampedArray, + sw: UInt32, + sh: UInt32? = nil, + settings: ImageDataSettings? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(data), _toJSValue(sw), _toJSValue(sh), _toJSValue(settings), + ]) + ) } - @ReadonlyAttribute - public var width: UInt32 + @inlinable public var width: UInt32 { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: UInt32 + @inlinable public var height: UInt32 { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var data: Uint8ClampedArray + @inlinable public var data: Uint8ClampedArray { jsObject[Strings.data].fromJSValue()! } - @ReadonlyAttribute - public var colorSpace: PredefinedColorSpace + @inlinable public var colorSpace: PredefinedColorSpace { jsObject[Strings.colorSpace].fromJSValue()! } } -public class ImageDataSettings: BridgedDictionary { - public convenience init(colorSpace: PredefinedColorSpace) { +open class ImageDataSettings: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(colorSpace: PredefinedColorSpace? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.colorSpace] = _toJSValue(colorSpace) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var colorSpace: PredefinedColorSpace + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } } +open class ImageDecodeOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ImageDecodeOptions: BridgedDictionary { - public convenience init(frameIndex: UInt32, completeFramesOnly: Bool) { + public convenience init(frameIndex: UInt32? = nil, completeFramesOnly: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.frameIndex] = _toJSValue(frameIndex) object[Strings.completeFramesOnly] = _toJSValue(completeFramesOnly) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _frameIndex = ReadWriteAttribute(jsObject: object, name: Strings.frameIndex) - _completeFramesOnly = ReadWriteAttribute(jsObject: object, name: Strings.completeFramesOnly) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var frameIndex: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var completeFramesOnly: Bool + @inlinable public var frameIndex: UInt32 { + get { jsObject[Strings.frameIndex].fromJSValue()! } + set { jsObject[Strings.frameIndex] = _toJSValue(newValue) } + } + @inlinable public var completeFramesOnly: Bool { + get { jsObject[Strings.completeFramesOnly].fromJSValue()! } + set { jsObject[Strings.completeFramesOnly] = _toJSValue(newValue) } + } } +open class ImageDecodeResult: JSDictionaryCompatible { + public let jsObject: JSObject -public class ImageDecodeResult: BridgedDictionary { public convenience init(image: VideoFrame, complete: Bool) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.image] = _toJSValue(image) object[Strings.complete] = _toJSValue(complete) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _image = ReadWriteAttribute(jsObject: object, name: Strings.image) - _complete = ReadWriteAttribute(jsObject: object, name: Strings.complete) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var image: VideoFrame + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var complete: Bool + @inlinable public var image: VideoFrame { + get { jsObject[Strings.image].fromJSValue()! } + set { jsObject[Strings.image] = _toJSValue(newValue) } + } + @inlinable public var complete: Bool { + get { jsObject[Strings.complete].fromJSValue()! } + set { jsObject[Strings.complete] = _toJSValue(newValue) } + } } - public class ImageDecoder: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageDecoder].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _complete = ReadonlyAttribute(jsObject: jsObject, name: Strings.complete) - _completed = ReadonlyAttribute(jsObject: jsObject, name: Strings.completed) - _tracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.tracks) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: ImageDecoderInit) { + @inlinable public convenience init(`init`: ImageDecoderInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var complete: Bool + @inlinable public var complete: Bool { jsObject[Strings.complete].fromJSValue()! } - @ReadonlyAttribute - public var completed: JSPromise + @inlinable public var completed: JSPromise { jsObject[Strings.completed].fromJSValue()! } - @ReadonlyAttribute - public var tracks: ImageTrackList + @inlinable public var tracks: ImageTrackList { jsObject[Strings.tracks].fromJSValue()! } - @inlinable public func decode(options: ImageDecodeOptions? = nil) -> JSPromise { + @inlinable final public func decode(options: ImageDecodeOptions? = nil) -> JSPromise { let this = jsObject return this[Strings.decode].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func decode(options: ImageDecodeOptions? = nil) async throws -> ImageDecodeResult { - let this = jsObject - let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func decode( + options: ImageDecodeOptions? = nil + ) async throws(JSException) -> ImageDecodeResult { + let this = jsObject + let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: [_toJSValue(options)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } @@ -10224,16 +11488,30 @@ public class ImageDecoder: JSBridgedClass { return this[Strings.isTypeSupported].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public class func isTypeSupported(type: String) async throws -> Bool { - let this = constructor! - let _promise: JSPromise = this[Strings.isTypeSupported].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public class func isTypeSupported( + type: String + ) async throws(JSException) -> Bool { + let this = constructor! + let _promise: JSPromise = this[Strings.isTypeSupported].function!(this: this, arguments: [_toJSValue(type)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class ImageDecoderInit: BridgedDictionary { - public convenience init(type: String, data: ImageBufferSource, colorSpaceConversion: ColorSpaceConversion, desiredWidth: UInt32, desiredHeight: UInt32, preferAnimation: Bool, transfer: [ArrayBuffer]) { +open class ImageDecoderInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + type: String, + data: ImageBufferSource, + colorSpaceConversion: ColorSpaceConversion? = nil, + desiredWidth: UInt32? = nil, + desiredHeight: UInt32? = nil, + preferAnimation: Bool? = nil, + transfer: [ArrayBuffer]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.data] = _toJSValue(data) @@ -10242,124 +11520,107 @@ public class ImageDecoderInit: BridgedDictionary { object[Strings.desiredHeight] = _toJSValue(desiredHeight) object[Strings.preferAnimation] = _toJSValue(preferAnimation) object[Strings.transfer] = _toJSValue(transfer) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _colorSpaceConversion = ReadWriteAttribute(jsObject: object, name: Strings.colorSpaceConversion) - _desiredWidth = ReadWriteAttribute(jsObject: object, name: Strings.desiredWidth) - _desiredHeight = ReadWriteAttribute(jsObject: object, name: Strings.desiredHeight) - _preferAnimation = ReadWriteAttribute(jsObject: object, name: Strings.preferAnimation) - _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: String - - @ReadWriteAttribute - public var data: ImageBufferSource - - @ReadWriteAttribute - public var colorSpaceConversion: ColorSpaceConversion + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var desiredWidth: UInt32 - - @ReadWriteAttribute - public var desiredHeight: UInt32 - - @ReadWriteAttribute - public var preferAnimation: Bool - - @ReadWriteAttribute - public var transfer: [ArrayBuffer] + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var data: ImageBufferSource { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var colorSpaceConversion: ColorSpaceConversion { + get { jsObject[Strings.colorSpaceConversion].fromJSValue()! } + set { jsObject[Strings.colorSpaceConversion] = _toJSValue(newValue) } + } + @inlinable public var desiredWidth: UInt32 { + get { jsObject[Strings.desiredWidth].fromJSValue()! } + set { jsObject[Strings.desiredWidth] = _toJSValue(newValue) } + } + @inlinable public var desiredHeight: UInt32 { + get { jsObject[Strings.desiredHeight].fromJSValue()! } + set { jsObject[Strings.desiredHeight] = _toJSValue(newValue) } + } + @inlinable public var preferAnimation: Bool { + get { jsObject[Strings.preferAnimation].fromJSValue()! } + set { jsObject[Strings.preferAnimation] = _toJSValue(newValue) } + } + @inlinable public var transfer: [ArrayBuffer] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } } +open class ImageEncodeOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ImageEncodeOptions: BridgedDictionary { - public convenience init(type: String, quality: Double) { + public convenience init(type: String? = nil, quality: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.quality] = _toJSValue(quality) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _quality = ReadWriteAttribute(jsObject: object, name: Strings.quality) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var quality: Double + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var quality: Double { + get { jsObject[Strings.quality].fromJSValue()! } + set { jsObject[Strings.quality] = _toJSValue(newValue) } + } } - public enum ImageOrientation: JSString, JSValueCompatible { case fromImage = "from-image" case flipY = "flipY" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ImageSmoothingQuality: JSString, JSValueCompatible { case low = "low" case medium = "medium" case high = "high" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class ImageTrack: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageTrack].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _animated = ReadonlyAttribute(jsObject: jsObject, name: Strings.animated) - _frameCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.frameCount) - _repetitionCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.repetitionCount) - _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var animated: Bool + @inlinable public var animated: Bool { jsObject[Strings.animated].fromJSValue()! } - @ReadonlyAttribute - public var frameCount: UInt32 + @inlinable public var frameCount: UInt32 { jsObject[Strings.frameCount].fromJSValue()! } - @ReadonlyAttribute - public var repetitionCount: Float + @inlinable public var repetitionCount: Float { jsObject[Strings.repetitionCount].fromJSValue()! } - @ReadWriteAttribute - public var selected: Bool + @inlinable public var selected: Bool { + get { jsObject[Strings.selected].fromJSValue()! } + set { jsObject[Strings.selected] = _toJSValue(newValue) } + } } public class ImageTrackList: JSBridgedClass { @@ -10367,111 +11628,86 @@ public class ImageTrackList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _selectedIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedIndex) - _selectedTrack = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedTrack) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public subscript(key: Int) -> ImageTrack { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> ImageTrack { jsObject[key].fromJSValue()! } - @ReadonlyAttribute - public var ready: JSPromise + @inlinable public var ready: JSPromise { jsObject[Strings.ready].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var selectedIndex: Int32 + @inlinable public var selectedIndex: Int32 { jsObject[Strings.selectedIndex].fromJSValue()! } - @ReadonlyAttribute - public var selectedTrack: ImageTrack? + @inlinable public var selectedTrack: ImageTrack? { jsObject[Strings.selectedTrack].fromJSValue() } } public class InputDeviceInfo: MediaDeviceInfo { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.InputDeviceInfo].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.InputDeviceInfo].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func getCapabilities() -> MediaTrackCapabilities { + @inlinable final public func getCapabilities() -> MediaTrackCapabilities { let this = jsObject return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()! } } public class InputEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.InputEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.InputEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _isComposing = ReadonlyAttribute(jsObject: jsObject, name: Strings.isComposing) - _inputType = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputType) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: InputEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var data: String? + @inlinable public var data: String? { jsObject[Strings.data].fromJSValue() } - @ReadonlyAttribute - public var isComposing: Bool + @inlinable public var isComposing: Bool { jsObject[Strings.isComposing].fromJSValue()! } - @ReadonlyAttribute - public var inputType: String + @inlinable public var inputType: String { jsObject[Strings.inputType].fromJSValue()! } } -public class InputEventInit: BridgedDictionary { - public convenience init(data: String?, isComposing: Bool, inputType: String) { +open class InputEventInit: UIEventInit { + + public convenience init( + view: Window?, + detail: Int32? = nil, + which: UInt32? = nil, + data: String?, + isComposing: Bool? = nil, + inputType: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.view] = _toJSValue(view) + object[Strings.detail] = _toJSValue(detail) + object[Strings.which] = _toJSValue(which) object[Strings.data] = _toJSValue(data) object[Strings.isComposing] = _toJSValue(isComposing) object[Strings.inputType] = _toJSValue(inputType) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _isComposing = ReadWriteAttribute(jsObject: object, name: Strings.isComposing) - _inputType = ReadWriteAttribute(jsObject: object, name: Strings.inputType) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var data: String? + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var isComposing: Bool - - @ReadWriteAttribute - public var inputType: String + @inlinable public var data: String? { + get { jsObject[Strings.data].fromJSValue() } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var isComposing: Bool { + get { jsObject[Strings.isComposing].fromJSValue()! } + set { jsObject[Strings.isComposing] = _toJSValue(newValue) } + } + @inlinable public var inputType: String { + get { jsObject[Strings.inputType].fromJSValue()! } + set { jsObject[Strings.inputType] = _toJSValue(newValue) } + } } - public class KeyboardEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.KeyboardEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _key = ReadonlyAttribute(jsObject: jsObject, name: Strings.key) - _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code) - _location = ReadonlyAttribute(jsObject: jsObject, name: Strings.location) - _ctrlKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.ctrlKey) - _shiftKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.shiftKey) - _altKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.altKey) - _metaKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.metaKey) - _repeat = ReadonlyAttribute(jsObject: jsObject, name: Strings.repeat) - _isComposing = ReadonlyAttribute(jsObject: jsObject, name: Strings.isComposing) - _charCode = ReadonlyAttribute(jsObject: jsObject, name: Strings.charCode) - _keyCode = ReadonlyAttribute(jsObject: jsObject, name: Strings.keyCode) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.KeyboardEvent].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: KeyboardEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) @@ -10485,213 +11721,304 @@ public class KeyboardEvent: UIEvent { public static let DOM_KEY_LOCATION_NUMPAD: UInt32 = 0x03 - @ReadonlyAttribute - public var key: String + @inlinable public var key: String { jsObject[Strings.key].fromJSValue()! } - @ReadonlyAttribute - public var code: String + @inlinable public var code: String { jsObject[Strings.code].fromJSValue()! } - @ReadonlyAttribute - public var location: UInt32 + @inlinable public var location: UInt32 { jsObject[Strings.location].fromJSValue()! } - @ReadonlyAttribute - public var ctrlKey: Bool + @inlinable public var ctrlKey: Bool { jsObject[Strings.ctrlKey].fromJSValue()! } - @ReadonlyAttribute - public var shiftKey: Bool + @inlinable public var shiftKey: Bool { jsObject[Strings.shiftKey].fromJSValue()! } - @ReadonlyAttribute - public var altKey: Bool + @inlinable public var altKey: Bool { jsObject[Strings.altKey].fromJSValue()! } - @ReadonlyAttribute - public var metaKey: Bool + @inlinable public var metaKey: Bool { jsObject[Strings.metaKey].fromJSValue()! } - @ReadonlyAttribute - public var `repeat`: Bool + @inlinable public var `repeat`: Bool { jsObject[Strings.`repeat`].fromJSValue()! } - @ReadonlyAttribute - public var isComposing: Bool + @inlinable public var isComposing: Bool { jsObject[Strings.isComposing].fromJSValue()! } - @inlinable public func getModifierState(keyArg: String) -> Bool { + @inlinable final public func getModifierState(keyArg: String) -> Bool { let this = jsObject return this[Strings.getModifierState].function!(this: this, arguments: [_toJSValue(keyArg)]).fromJSValue()! } - @inlinable public func initKeyboardEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: Window? = nil, keyArg: String? = nil, locationArg: UInt32? = nil, ctrlKey: Bool? = nil, altKey: Bool? = nil, shiftKey: Bool? = nil, metaKey: Bool? = nil) { - let this = jsObject - _ = this[Strings.initKeyboardEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), _toJSValue(keyArg), _toJSValue(locationArg), _toJSValue(ctrlKey), _toJSValue(altKey), _toJSValue(shiftKey), _toJSValue(metaKey)]) - } - - @ReadonlyAttribute - public var charCode: UInt32 - - @ReadonlyAttribute - public var keyCode: UInt32 -} - -public class KeyboardEventInit: BridgedDictionary { - public convenience init(key: String, code: String, location: UInt32, repeat: Bool, isComposing: Bool, charCode: UInt32, keyCode: UInt32) { + @inlinable final public func initKeyboardEvent( + typeArg: String, + bubblesArg: Bool? = nil, + cancelableArg: Bool? = nil, + viewArg: Window? = nil, + keyArg: String? = nil, + locationArg: UInt32? = nil, + ctrlKey: Bool? = nil, + altKey: Bool? = nil, + shiftKey: Bool? = nil, + metaKey: Bool? = nil + ) { + let this = jsObject + _ = this[Strings.initKeyboardEvent].function!( + this: this, + arguments: [ + _toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), + _toJSValue(keyArg), _toJSValue(locationArg), _toJSValue(ctrlKey), _toJSValue(altKey), + _toJSValue(shiftKey), _toJSValue(metaKey), + ] + ) + } + + @inlinable public var charCode: UInt32 { jsObject[Strings.charCode].fromJSValue()! } + + @inlinable public var keyCode: UInt32 { jsObject[Strings.keyCode].fromJSValue()! } +} + +open class KeyboardEventInit: EventModifierInit { + + public convenience init( + ctrlKey: Bool? = nil, + shiftKey: Bool? = nil, + altKey: Bool? = nil, + metaKey: Bool? = nil, + modifierAltGraph: Bool? = nil, + modifierCapsLock: Bool? = nil, + modifierFn: Bool? = nil, + modifierFnLock: Bool? = nil, + modifierHyper: Bool? = nil, + modifierNumLock: Bool? = nil, + modifierScrollLock: Bool? = nil, + modifierSuper: Bool? = nil, + modifierSymbol: Bool? = nil, + modifierSymbolLock: Bool? = nil, + key: String? = nil, + code: String? = nil, + location: UInt32? = nil, + `repeat`: Bool? = nil, + isComposing: Bool? = nil, + charCode: UInt32? = nil, + keyCode: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ctrlKey] = _toJSValue(ctrlKey) + object[Strings.shiftKey] = _toJSValue(shiftKey) + object[Strings.altKey] = _toJSValue(altKey) + object[Strings.metaKey] = _toJSValue(metaKey) + object[Strings.modifierAltGraph] = _toJSValue(modifierAltGraph) + object[Strings.modifierCapsLock] = _toJSValue(modifierCapsLock) + object[Strings.modifierFn] = _toJSValue(modifierFn) + object[Strings.modifierFnLock] = _toJSValue(modifierFnLock) + object[Strings.modifierHyper] = _toJSValue(modifierHyper) + object[Strings.modifierNumLock] = _toJSValue(modifierNumLock) + object[Strings.modifierScrollLock] = _toJSValue(modifierScrollLock) + object[Strings.modifierSuper] = _toJSValue(modifierSuper) + object[Strings.modifierSymbol] = _toJSValue(modifierSymbol) + object[Strings.modifierSymbolLock] = _toJSValue(modifierSymbolLock) object[Strings.key] = _toJSValue(key) object[Strings.code] = _toJSValue(code) object[Strings.location] = _toJSValue(location) - object[Strings.repeat] = _toJSValue(`repeat`) + object[Strings.`repeat`] = _toJSValue(`repeat`) object[Strings.isComposing] = _toJSValue(isComposing) object[Strings.charCode] = _toJSValue(charCode) object[Strings.keyCode] = _toJSValue(keyCode) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _key = ReadWriteAttribute(jsObject: object, name: Strings.key) - _code = ReadWriteAttribute(jsObject: object, name: Strings.code) - _location = ReadWriteAttribute(jsObject: object, name: Strings.location) - _repeat = ReadWriteAttribute(jsObject: object, name: Strings.repeat) - _isComposing = ReadWriteAttribute(jsObject: object, name: Strings.isComposing) - _charCode = ReadWriteAttribute(jsObject: object, name: Strings.charCode) - _keyCode = ReadWriteAttribute(jsObject: object, name: Strings.keyCode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var key: String - - @ReadWriteAttribute - public var code: String - - @ReadWriteAttribute - public var location: UInt32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var `repeat`: Bool - - @ReadWriteAttribute - public var isComposing: Bool - - @ReadWriteAttribute - public var charCode: UInt32 - - @ReadWriteAttribute - public var keyCode: UInt32 + @inlinable public var key: String { + get { jsObject[Strings.key].fromJSValue()! } + set { jsObject[Strings.key] = _toJSValue(newValue) } + } + @inlinable public var code: String { + get { jsObject[Strings.code].fromJSValue()! } + set { jsObject[Strings.code] = _toJSValue(newValue) } + } + @inlinable public var location: UInt32 { + get { jsObject[Strings.location].fromJSValue()! } + set { jsObject[Strings.location] = _toJSValue(newValue) } + } + @inlinable public var `repeat`: Bool { + get { jsObject[Strings.`repeat`].fromJSValue()! } + set { jsObject[Strings.`repeat`] = _toJSValue(newValue) } + } + @inlinable public var isComposing: Bool { + get { jsObject[Strings.isComposing].fromJSValue()! } + set { jsObject[Strings.isComposing] = _toJSValue(newValue) } + } + @inlinable public var charCode: UInt32 { + get { jsObject[Strings.charCode].fromJSValue()! } + set { jsObject[Strings.charCode] = _toJSValue(newValue) } + } + @inlinable public var keyCode: UInt32 { + get { jsObject[Strings.keyCode].fromJSValue()! } + set { jsObject[Strings.keyCode] = _toJSValue(newValue) } + } } - public enum LatencyMode: JSString, JSValueCompatible { case quality = "quality" case realtime = "realtime" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class Location: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Location].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _protocol = ReadWriteAttribute(jsObject: jsObject, name: Strings.protocol) - _host = ReadWriteAttribute(jsObject: jsObject, name: Strings.host) - _hostname = ReadWriteAttribute(jsObject: jsObject, name: Strings.hostname) - _port = ReadWriteAttribute(jsObject: jsObject, name: Strings.port) - _pathname = ReadWriteAttribute(jsObject: jsObject, name: Strings.pathname) - _search = ReadWriteAttribute(jsObject: jsObject, name: Strings.search) - _hash = ReadWriteAttribute(jsObject: jsObject, name: Strings.hash) - _ancestorOrigins = ReadonlyAttribute(jsObject: jsObject, name: Strings.ancestorOrigins) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var href: String + @inlinable public var href: String { + get { jsObject[Strings.href].fromJSValue()! } + set { jsObject[Strings.href] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var origin: String + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @ReadWriteAttribute - public var `protocol`: String + @inlinable public var `protocol`: String { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var host: String + @inlinable public var host: String { + get { jsObject[Strings.host].fromJSValue()! } + set { jsObject[Strings.host] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hostname: String + @inlinable public var hostname: String { + get { jsObject[Strings.hostname].fromJSValue()! } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var port: String + @inlinable public var port: String { + get { jsObject[Strings.port].fromJSValue()! } + set { jsObject[Strings.port] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pathname: String + @inlinable public var pathname: String { + get { jsObject[Strings.pathname].fromJSValue()! } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var search: String + @inlinable public var search: String { + get { jsObject[Strings.search].fromJSValue()! } + set { jsObject[Strings.search] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hash: String + @inlinable public var hash: String { + get { jsObject[Strings.hash].fromJSValue()! } + set { jsObject[Strings.hash] = _toJSValue(newValue) } + } - @inlinable public func assign(url: String) { + @inlinable final public func assign(url: String) { let this = jsObject _ = this[Strings.assign].function!(this: this, arguments: [_toJSValue(url)]) } - @inlinable public func replace(url: String) { + @inlinable final public func replace(url: String) { let this = jsObject _ = this[Strings.replace].function!(this: this, arguments: [_toJSValue(url)]) } - @inlinable public func reload() { + @inlinable final public func reload() { let this = jsObject _ = this[Strings.reload].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var ancestorOrigins: DOMStringList + @inlinable public var ancestorOrigins: DOMStringList { jsObject[Strings.ancestorOrigins].fromJSValue()! } } -public class MathMLElement: Element, GlobalEventHandlers, HTMLOrSVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MathMLElement].function } +public class ManagedMediaSource: MediaSource { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ManagedMediaSource].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var streaming: Bool { jsObject[Strings.streaming].fromJSValue()! } + + @inlinable public var onstartstreaming: EventHandler { + get { + guard let function = jsObject[Strings.onstartstreaming].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstartstreaming] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstartstreaming] = .null + } + } + } + + @inlinable public var onendstreaming: EventHandler { + get { + guard let function = jsObject[Strings.onendstreaming].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onendstreaming] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onendstreaming] = .null + } + } + } +} - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) +public class ManagedSourceBuffer: SourceBuffer { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ManagedSourceBuffer].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var onbufferedchange: EventHandler { + get { + guard let function = jsObject[Strings.onbufferedchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbufferedchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbufferedchange] = .null + } + } } } +public class MathMLElement: Element, GlobalEventHandlers, HTMLOrSVGElement { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MathMLElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + +} + public class MediaDeviceInfo: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MediaDeviceInfo].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _deviceId = ReadonlyAttribute(jsObject: jsObject, name: Strings.deviceId) - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _groupId = ReadonlyAttribute(jsObject: jsObject, name: Strings.groupId) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var deviceId: String + @inlinable public var deviceId: String { jsObject[Strings.deviceId].fromJSValue()! } - @ReadonlyAttribute - public var kind: MediaDeviceKind + @inlinable public var kind: MediaDeviceKind { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var label: String + @inlinable public var label: String { jsObject[Strings.label].fromJSValue()! } - @ReadonlyAttribute - public var groupId: String + @inlinable public var groupId: String { jsObject[Strings.groupId].fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -10703,58 +12030,70 @@ public enum MediaDeviceKind: JSString, JSValueCompatible { case videoinput = "videoinput" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class MediaDevices: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaDevices].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaDevices].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _ondevicechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondevicechange) - super.init(unsafelyWrapping: jsObject) - } - - @ClosureAttribute1Optional - public var ondevicechange: EventHandler + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func enumerateDevices() -> JSPromise { - let this = jsObject - return this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! + @inlinable public var ondevicechange: EventHandler { + get { + guard let function = jsObject[Strings.ondevicechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondevicechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondevicechange] = .null + } + } } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func enumerateDevices() async throws -> [MediaDeviceInfo] { + @inlinable final public func enumerateDevices() -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getSupportedConstraints() -> MediaTrackSupportedConstraints { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func enumerateDevices() + async throws(JSException) -> [MediaDeviceInfo] + { + let this = jsObject + let _promise: JSPromise = this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable final public func getSupportedConstraints() -> MediaTrackSupportedConstraints { let this = jsObject return this[Strings.getSupportedConstraints].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) -> JSPromise { + @inlinable final public func getUserMedia(constraints: MediaStreamConstraints? = nil) -> JSPromise { let this = jsObject return this[Strings.getUserMedia].function!(this: this, arguments: [_toJSValue(constraints)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) async throws -> MediaStream { - let this = jsObject - let _promise: JSPromise = this[Strings.getUserMedia].function!(this: this, arguments: [_toJSValue(constraints)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getUserMedia( + constraints: MediaStreamConstraints? = nil + ) async throws(JSException) -> MediaStream { + let this = jsObject + let _promise: JSPromise = this[Strings.getUserMedia].function!( + this: this, + arguments: [_toJSValue(constraints)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public class MediaError: JSBridgedClass { @@ -10762,11 +12101,7 @@ public class MediaError: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code) - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let MEDIA_ERR_ABORTED: UInt16 = 1 @@ -10776,164 +12111,217 @@ public class MediaError: JSBridgedClass { public static let MEDIA_ERR_SRC_NOT_SUPPORTED: UInt16 = 4 - @ReadonlyAttribute - public var code: UInt16 + @inlinable public var code: UInt16 { jsObject[Strings.code].fromJSValue()! } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } } public class MediaQueryList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var media: String + @inlinable public var media: String { jsObject[Strings.media].fromJSValue()! } - @ReadonlyAttribute - public var matches: Bool + @inlinable public var matches: Bool { jsObject[Strings.matches].fromJSValue()! } - @inlinable public func addListener(callback: EventListener?) { + @inlinable final public func addListener(callback: EventListener?) { let this = jsObject _ = this[Strings.addListener].function!(this: this, arguments: [_toJSValue(callback)]) } - @inlinable public func removeListener(callback: EventListener?) { + @inlinable final public func removeListener(callback: EventListener?) { let this = jsObject _ = this[Strings.removeListener].function!(this: this, arguments: [_toJSValue(callback)]) } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } } public class MediaQueryListEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryListEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _media = ReadonlyAttribute(jsObject: jsObject, name: Strings.media) - _matches = ReadonlyAttribute(jsObject: jsObject, name: Strings.matches) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaQueryListEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var media: String + @inlinable public var media: String { jsObject[Strings.media].fromJSValue()! } - @ReadonlyAttribute - public var matches: Bool + @inlinable public var matches: Bool { jsObject[Strings.matches].fromJSValue()! } } -public class MediaQueryListEventInit: BridgedDictionary { - public convenience init(media: String, matches: Bool) { +open class MediaQueryListEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + media: String? = nil, + matches: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.media] = _toJSValue(media) object[Strings.matches] = _toJSValue(matches) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _media = ReadWriteAttribute(jsObject: object, name: Strings.media) - _matches = ReadWriteAttribute(jsObject: object, name: Strings.matches) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var media: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var matches: Bool + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } + @inlinable public var matches: Bool { + get { jsObject[Strings.matches].fromJSValue()! } + set { jsObject[Strings.matches] = _toJSValue(newValue) } + } } - public class MediaRecorder: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaRecorder].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _stream = ReadonlyAttribute(jsObject: jsObject, name: Strings.stream) - _mimeType = ReadonlyAttribute(jsObject: jsObject, name: Strings.mimeType) - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _onstart = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstart) - _onstop = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstop) - _ondataavailable = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondataavailable) - _onpause = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onpause) - _onresume = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onresume) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - _videoBitsPerSecond = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoBitsPerSecond) - _audioBitsPerSecond = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioBitsPerSecond) - _audioBitrateMode = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioBitrateMode) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaRecorder].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(stream: MediaStream, options: MediaRecorderOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(stream), _toJSValue(options)])) } - @ReadonlyAttribute - public var stream: MediaStream + @inlinable public var stream: MediaStream { jsObject[Strings.stream].fromJSValue()! } - @ReadonlyAttribute - public var mimeType: String + @inlinable public var mimeType: String { jsObject[Strings.mimeType].fromJSValue()! } - @ReadonlyAttribute - public var state: RecordingState + @inlinable public var state: RecordingState { jsObject[Strings.state].fromJSValue()! } - @ClosureAttribute1Optional - public var onstart: EventHandler + @inlinable public var onstart: EventHandler { + get { + guard let function = jsObject[Strings.onstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstart] = .null + } + } + } - @ClosureAttribute1Optional - public var onstop: EventHandler + @inlinable public var onstop: EventHandler { + get { + guard let function = jsObject[Strings.onstop].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstop] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstop] = .null + } + } + } - @ClosureAttribute1Optional - public var ondataavailable: EventHandler + @inlinable public var ondataavailable: EventHandler { + get { + guard let function = jsObject[Strings.ondataavailable].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondataavailable] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondataavailable] = .null + } + } + } - @ClosureAttribute1Optional - public var onpause: EventHandler + @inlinable public var onpause: EventHandler { + get { + guard let function = jsObject[Strings.onpause].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpause] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpause] = .null + } + } + } - @ClosureAttribute1Optional - public var onresume: EventHandler + @inlinable public var onresume: EventHandler { + get { + guard let function = jsObject[Strings.onresume].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onresume] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onresume] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @ReadonlyAttribute - public var videoBitsPerSecond: UInt32 + @inlinable public var videoBitsPerSecond: UInt32 { jsObject[Strings.videoBitsPerSecond].fromJSValue()! } - @ReadonlyAttribute - public var audioBitsPerSecond: UInt32 + @inlinable public var audioBitsPerSecond: UInt32 { jsObject[Strings.audioBitsPerSecond].fromJSValue()! } - @ReadonlyAttribute - public var audioBitrateMode: BitrateMode + @inlinable public var audioBitrateMode: BitrateMode { jsObject[Strings.audioBitrateMode].fromJSValue()! } - @inlinable public func start(timeslice: UInt32? = nil) { + @inlinable final public func start(timeslice: UInt32? = nil) { let this = jsObject _ = this[Strings.start].function!(this: this, arguments: [_toJSValue(timeslice)]) } - @inlinable public func stop() { + @inlinable final public func stop() { let this = jsObject _ = this[Strings.stop].function!(this: this, arguments: []) } - @inlinable public func pause() { + @inlinable final public func pause() { let this = jsObject _ = this[Strings.pause].function!(this: this, arguments: []) } - @inlinable public func resume() { + @inlinable final public func resume() { let this = jsObject _ = this[Strings.resume].function!(this: this, arguments: []) } - @inlinable public func requestData() { + @inlinable final public func requestData() { let this = jsObject _ = this[Strings.requestData].function!(this: this, arguments: []) } @@ -10944,8 +12332,18 @@ public class MediaRecorder: EventTarget { } } -public class MediaRecorderOptions: BridgedDictionary { - public convenience init(mimeType: String, audioBitsPerSecond: UInt32, videoBitsPerSecond: UInt32, bitsPerSecond: UInt32, audioBitrateMode: BitrateMode, videoKeyFrameIntervalDuration: DOMHighResTimeStamp, videoKeyFrameIntervalCount: UInt32) { +open class MediaRecorderOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + mimeType: String? = nil, + audioBitsPerSecond: UInt32? = nil, + videoBitsPerSecond: UInt32? = nil, + bitsPerSecond: UInt32? = nil, + audioBitrateMode: BitrateMode? = nil, + videoKeyFrameIntervalDuration: DOMHighResTimeStamp? = nil, + videoKeyFrameIntervalCount: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mimeType] = _toJSValue(mimeType) object[Strings.audioBitsPerSecond] = _toJSValue(audioBitsPerSecond) @@ -10954,110 +12352,128 @@ public class MediaRecorderOptions: BridgedDictionary { object[Strings.audioBitrateMode] = _toJSValue(audioBitrateMode) object[Strings.videoKeyFrameIntervalDuration] = _toJSValue(videoKeyFrameIntervalDuration) object[Strings.videoKeyFrameIntervalCount] = _toJSValue(videoKeyFrameIntervalCount) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _mimeType = ReadWriteAttribute(jsObject: object, name: Strings.mimeType) - _audioBitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.audioBitsPerSecond) - _videoBitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.videoBitsPerSecond) - _bitsPerSecond = ReadWriteAttribute(jsObject: object, name: Strings.bitsPerSecond) - _audioBitrateMode = ReadWriteAttribute(jsObject: object, name: Strings.audioBitrateMode) - _videoKeyFrameIntervalDuration = ReadWriteAttribute(jsObject: object, name: Strings.videoKeyFrameIntervalDuration) - _videoKeyFrameIntervalCount = ReadWriteAttribute(jsObject: object, name: Strings.videoKeyFrameIntervalCount) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var mimeType: String - - @ReadWriteAttribute - public var audioBitsPerSecond: UInt32 - - @ReadWriteAttribute - public var videoBitsPerSecond: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var bitsPerSecond: UInt32 - - @ReadWriteAttribute - public var audioBitrateMode: BitrateMode - - @ReadWriteAttribute - public var videoKeyFrameIntervalDuration: DOMHighResTimeStamp - - @ReadWriteAttribute - public var videoKeyFrameIntervalCount: UInt32 + @inlinable public var mimeType: String { + get { jsObject[Strings.mimeType].fromJSValue()! } + set { jsObject[Strings.mimeType] = _toJSValue(newValue) } + } + @inlinable public var audioBitsPerSecond: UInt32 { + get { jsObject[Strings.audioBitsPerSecond].fromJSValue()! } + set { jsObject[Strings.audioBitsPerSecond] = _toJSValue(newValue) } + } + @inlinable public var videoBitsPerSecond: UInt32 { + get { jsObject[Strings.videoBitsPerSecond].fromJSValue()! } + set { jsObject[Strings.videoBitsPerSecond] = _toJSValue(newValue) } + } + @inlinable public var bitsPerSecond: UInt32 { + get { jsObject[Strings.bitsPerSecond].fromJSValue()! } + set { jsObject[Strings.bitsPerSecond] = _toJSValue(newValue) } + } + @inlinable public var audioBitrateMode: BitrateMode { + get { jsObject[Strings.audioBitrateMode].fromJSValue()! } + set { jsObject[Strings.audioBitrateMode] = _toJSValue(newValue) } + } + @inlinable public var videoKeyFrameIntervalDuration: DOMHighResTimeStamp { + get { jsObject[Strings.videoKeyFrameIntervalDuration].fromJSValue()! } + set { jsObject[Strings.videoKeyFrameIntervalDuration] = _toJSValue(newValue) } + } + @inlinable public var videoKeyFrameIntervalCount: UInt32 { + get { jsObject[Strings.videoKeyFrameIntervalCount].fromJSValue()! } + set { jsObject[Strings.videoKeyFrameIntervalCount] = _toJSValue(newValue) } + } } - public class MediaSource: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaSource].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaSource].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _handle = ReadonlyAttribute(jsObject: jsObject, name: Strings.handle) - _sourceBuffers = ReadonlyAttribute(jsObject: jsObject, name: Strings.sourceBuffers) - _activeSourceBuffers = ReadonlyAttribute(jsObject: jsObject, name: Strings.activeSourceBuffers) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _duration = ReadWriteAttribute(jsObject: jsObject, name: Strings.duration) - _onsourceopen = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onsourceopen) - _onsourceended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onsourceended) - _onsourceclose = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onsourceclose) - _canConstructInDedicatedWorker = ReadonlyAttribute(jsObject: jsObject, name: Strings.canConstructInDedicatedWorker) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var handle: MediaSourceHandle + @inlinable public var handle: MediaSourceHandle { jsObject[Strings.handle].fromJSValue()! } - @ReadonlyAttribute - public var sourceBuffers: SourceBufferList + @inlinable public var sourceBuffers: SourceBufferList { jsObject[Strings.sourceBuffers].fromJSValue()! } - @ReadonlyAttribute - public var activeSourceBuffers: SourceBufferList + @inlinable public var activeSourceBuffers: SourceBufferList { jsObject[Strings.activeSourceBuffers].fromJSValue()! } - @ReadonlyAttribute - public var readyState: ReadyState + @inlinable public var readyState: ReadyState { jsObject[Strings.readyState].fromJSValue()! } - @ReadWriteAttribute - public var duration: Double + @inlinable public var duration: Double { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } - @ClosureAttribute1Optional - public var onsourceopen: EventHandler + @inlinable public var onsourceopen: EventHandler { + get { + guard let function = jsObject[Strings.onsourceopen].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsourceopen] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsourceopen] = .null + } + } + } - @ClosureAttribute1Optional - public var onsourceended: EventHandler + @inlinable public var onsourceended: EventHandler { + get { + guard let function = jsObject[Strings.onsourceended].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsourceended] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsourceended] = .null + } + } + } - @ClosureAttribute1Optional - public var onsourceclose: EventHandler + @inlinable public var onsourceclose: EventHandler { + get { + guard let function = jsObject[Strings.onsourceclose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsourceclose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsourceclose] = .null + } + } + } - @ReadonlyAttribute - public var canConstructInDedicatedWorker: Bool + @inlinable public var canConstructInDedicatedWorker: Bool { + jsObject[Strings.canConstructInDedicatedWorker].fromJSValue()! + } - @inlinable public func addSourceBuffer(type: String) -> SourceBuffer { + @inlinable final public func addSourceBuffer(type: String) -> SourceBuffer { let this = jsObject return this[Strings.addSourceBuffer].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } - @inlinable public func removeSourceBuffer(sourceBuffer: SourceBuffer) { + @inlinable final public func removeSourceBuffer(sourceBuffer: SourceBuffer) { let this = jsObject _ = this[Strings.removeSourceBuffer].function!(this: this, arguments: [_toJSValue(sourceBuffer)]) } - @inlinable public func endOfStream(error: EndOfStreamError? = nil) { + @inlinable final public func endOfStream(error: EndOfStreamError? = nil) { let this = jsObject _ = this[Strings.endOfStream].function!(this: this, arguments: [_toJSValue(error)]) } - @inlinable public func setLiveSeekableRange(start: Double, end: Double) { + @inlinable final public func setLiveSeekableRange(start: Double, end: Double) { let this = jsObject _ = this[Strings.setLiveSeekableRange].function!(this: this, arguments: [_toJSValue(start), _toJSValue(end)]) } - @inlinable public func clearLiveSeekableRange() { + @inlinable final public func clearLiveSeekableRange() { let this = jsObject _ = this[Strings.clearLiveSeekableRange].function!(this: this, arguments: []) } @@ -11073,25 +12489,16 @@ public class MediaSourceHandle: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } public class MediaStream: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStream].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaStream].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _active = ReadonlyAttribute(jsObject: jsObject, name: Strings.active) - _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) - _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } @inlinable public convenience init(stream: MediaStream) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(stream)])) @@ -11101,208 +12508,274 @@ public class MediaStream: EventTarget { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(tracks)])) } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @inlinable public func getAudioTracks() -> [MediaStreamTrack] { + @inlinable final public func getAudioTracks() -> [MediaStreamTrack] { let this = jsObject return this[Strings.getAudioTracks].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getVideoTracks() -> [MediaStreamTrack] { + @inlinable final public func getVideoTracks() -> [MediaStreamTrack] { let this = jsObject return this[Strings.getVideoTracks].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getTracks() -> [MediaStreamTrack] { + @inlinable final public func getTracks() -> [MediaStreamTrack] { let this = jsObject return this[Strings.getTracks].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getTrackById(trackId: String) -> MediaStreamTrack? { + @inlinable final public func getTrackById(trackId: String) -> MediaStreamTrack? { let this = jsObject return this[Strings.getTrackById].function!(this: this, arguments: [_toJSValue(trackId)]).fromJSValue() } - @inlinable public func addTrack(track: MediaStreamTrack) { + @inlinable final public func addTrack(track: MediaStreamTrack) { let this = jsObject _ = this[Strings.addTrack].function!(this: this, arguments: [_toJSValue(track)]) } - @inlinable public func removeTrack(track: MediaStreamTrack) { + @inlinable final public func removeTrack(track: MediaStreamTrack) { let this = jsObject _ = this[Strings.removeTrack].function!(this: this, arguments: [_toJSValue(track)]) } - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> MediaStream { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var active: Bool + @inlinable public var active: Bool { jsObject[Strings.active].fromJSValue()! } - @ClosureAttribute1Optional - public var onaddtrack: EventHandler + @inlinable public var onaddtrack: EventHandler { + get { + guard let function = jsObject[Strings.onaddtrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaddtrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaddtrack] = .null + } + } + } - @ClosureAttribute1Optional - public var onremovetrack: EventHandler + @inlinable public var onremovetrack: EventHandler { + get { + guard let function = jsObject[Strings.onremovetrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremovetrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremovetrack] = .null + } + } + } } -public class MediaStreamConstraints: BridgedDictionary { - public convenience init(video: Bool_or_MediaTrackConstraints, audio: Bool_or_MediaTrackConstraints) { +open class MediaStreamConstraints: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(video: Bool_or_MediaTrackConstraints? = nil, audio: Bool_or_MediaTrackConstraints? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.video] = _toJSValue(video) object[Strings.audio] = _toJSValue(audio) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _video = ReadWriteAttribute(jsObject: object, name: Strings.video) - _audio = ReadWriteAttribute(jsObject: object, name: Strings.audio) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var video: Bool_or_MediaTrackConstraints + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var audio: Bool_or_MediaTrackConstraints + @inlinable public var video: Bool_or_MediaTrackConstraints { + get { jsObject[Strings.video].fromJSValue()! } + set { jsObject[Strings.video] = _toJSValue(newValue) } + } + @inlinable public var audio: Bool_or_MediaTrackConstraints { + get { jsObject[Strings.audio].fromJSValue()! } + set { jsObject[Strings.audio] = _toJSValue(newValue) } + } } - public class MediaStreamTrack: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrack].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrack].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _enabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.enabled) - _muted = ReadonlyAttribute(jsObject: jsObject, name: Strings.muted) - _onmute = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmute) - _onunmute = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onunmute) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var kind: String + @inlinable public var kind: String { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var label: String + @inlinable public var label: String { jsObject[Strings.label].fromJSValue()! } - @ReadWriteAttribute - public var enabled: Bool + @inlinable public var enabled: Bool { + get { jsObject[Strings.enabled].fromJSValue()! } + set { jsObject[Strings.enabled] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var muted: Bool + @inlinable public var muted: Bool { jsObject[Strings.muted].fromJSValue()! } - @ClosureAttribute1Optional - public var onmute: EventHandler + @inlinable public var onmute: EventHandler { + get { + guard let function = jsObject[Strings.onmute].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmute] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmute] = .null + } + } + } - @ClosureAttribute1Optional - public var onunmute: EventHandler + @inlinable public var onunmute: EventHandler { + get { + guard let function = jsObject[Strings.onunmute].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onunmute] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onunmute] = .null + } + } + } - @ReadonlyAttribute - public var readyState: MediaStreamTrackState + @inlinable public var readyState: MediaStreamTrackState { jsObject[Strings.readyState].fromJSValue()! } - @ClosureAttribute1Optional - public var onended: EventHandler + @inlinable public var onended: EventHandler { + get { + guard let function = jsObject[Strings.onended].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onended] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onended] = .null + } + } + } - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> MediaStreamTrack { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func stop() { + @inlinable final public func stop() { let this = jsObject _ = this[Strings.stop].function!(this: this, arguments: []) } - @inlinable public func getCapabilities() -> MediaTrackCapabilities { + @inlinable final public func getCapabilities() -> MediaTrackCapabilities { let this = jsObject return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getConstraints() -> MediaTrackConstraints { + @inlinable final public func getConstraints() -> MediaTrackConstraints { let this = jsObject return this[Strings.getConstraints].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getSettings() -> MediaTrackSettings { + @inlinable final public func getSettings() -> MediaTrackSettings { let this = jsObject return this[Strings.getSettings].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) -> JSPromise { + @inlinable final public func applyConstraints(constraints: MediaTrackConstraints? = nil) -> JSPromise { let this = jsObject return this[Strings.applyConstraints].function!(this: this, arguments: [_toJSValue(constraints)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.applyConstraints].function!(this: this, arguments: [_toJSValue(constraints)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func applyConstraints( + constraints: MediaTrackConstraints? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.applyConstraints].function!( + this: this, + arguments: [_toJSValue(constraints)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif } public class MediaStreamTrackEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrackEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaStreamTrackEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: MediaStreamTrackEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var track: MediaStreamTrack + @inlinable public var track: MediaStreamTrack { jsObject[Strings.track].fromJSValue()! } } -public class MediaStreamTrackEventInit: BridgedDictionary { - public convenience init(track: MediaStreamTrack) { +open class MediaStreamTrackEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + track: MediaStreamTrack + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.track] = _toJSValue(track) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _track = ReadWriteAttribute(jsObject: object, name: Strings.track) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var track: MediaStreamTrack + @inlinable public var track: MediaStreamTrack { + get { jsObject[Strings.track].fromJSValue()! } + set { jsObject[Strings.track] = _toJSValue(newValue) } + } } - public enum MediaStreamTrackState: JSString, JSValueCompatible { case live = "live" case ended = "ended" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class MediaTrackCapabilities: JSDictionaryCompatible { + public let jsObject: JSObject -public class MediaTrackCapabilities: BridgedDictionary { - public convenience init(width: ULongRange, height: ULongRange, aspectRatio: DoubleRange, frameRate: DoubleRange, facingMode: [String], resizeMode: [String], sampleRate: ULongRange, sampleSize: ULongRange, echoCancellation: [Bool], autoGainControl: [Bool], noiseSuppression: [Bool], latency: DoubleRange, channelCount: ULongRange, deviceId: String, groupId: String) { + public convenience init( + width: ULongRange? = nil, + height: ULongRange? = nil, + aspectRatio: DoubleRange? = nil, + frameRate: DoubleRange? = nil, + facingMode: [String]? = nil, + resizeMode: [String]? = nil, + sampleRate: ULongRange? = nil, + sampleSize: ULongRange? = nil, + echoCancellation: [Bool]? = nil, + autoGainControl: [Bool]? = nil, + noiseSuppression: [Bool]? = nil, + latency: DoubleRange? = nil, + channelCount: ULongRange? = nil, + deviceId: String? = nil, + groupId: String? = nil, + backgroundBlur: [Bool]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) @@ -11319,76 +12792,99 @@ public class MediaTrackCapabilities: BridgedDictionary { object[Strings.channelCount] = _toJSValue(channelCount) object[Strings.deviceId] = _toJSValue(deviceId) object[Strings.groupId] = _toJSValue(groupId) - self.init(unsafelyWrapping: object) - } + object[Strings.backgroundBlur] = _toJSValue(backgroundBlur) - public required init(unsafelyWrapping object: JSObject) { - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) - _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) - _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) - _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) - _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) - _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) - _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) - _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) - _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var width: ULongRange - - @ReadWriteAttribute - public var height: ULongRange - - @ReadWriteAttribute - public var aspectRatio: DoubleRange - - @ReadWriteAttribute - public var frameRate: DoubleRange - - @ReadWriteAttribute - public var facingMode: [String] + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var resizeMode: [String] - - @ReadWriteAttribute - public var sampleRate: ULongRange - - @ReadWriteAttribute - public var sampleSize: ULongRange - - @ReadWriteAttribute - public var echoCancellation: [Bool] - - @ReadWriteAttribute - public var autoGainControl: [Bool] - - @ReadWriteAttribute - public var noiseSuppression: [Bool] - - @ReadWriteAttribute - public var latency: DoubleRange - - @ReadWriteAttribute - public var channelCount: ULongRange - - @ReadWriteAttribute - public var deviceId: String - - @ReadWriteAttribute - public var groupId: String + @inlinable public var width: ULongRange { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: ULongRange { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } + @inlinable public var aspectRatio: DoubleRange { + get { jsObject[Strings.aspectRatio].fromJSValue()! } + set { jsObject[Strings.aspectRatio] = _toJSValue(newValue) } + } + @inlinable public var frameRate: DoubleRange { + get { jsObject[Strings.frameRate].fromJSValue()! } + set { jsObject[Strings.frameRate] = _toJSValue(newValue) } + } + @inlinable public var facingMode: [String] { + get { jsObject[Strings.facingMode].fromJSValue()! } + set { jsObject[Strings.facingMode] = _toJSValue(newValue) } + } + @inlinable public var resizeMode: [String] { + get { jsObject[Strings.resizeMode].fromJSValue()! } + set { jsObject[Strings.resizeMode] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: ULongRange { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var sampleSize: ULongRange { + get { jsObject[Strings.sampleSize].fromJSValue()! } + set { jsObject[Strings.sampleSize] = _toJSValue(newValue) } + } + @inlinable public var echoCancellation: [Bool] { + get { jsObject[Strings.echoCancellation].fromJSValue()! } + set { jsObject[Strings.echoCancellation] = _toJSValue(newValue) } + } + @inlinable public var autoGainControl: [Bool] { + get { jsObject[Strings.autoGainControl].fromJSValue()! } + set { jsObject[Strings.autoGainControl] = _toJSValue(newValue) } + } + @inlinable public var noiseSuppression: [Bool] { + get { jsObject[Strings.noiseSuppression].fromJSValue()! } + set { jsObject[Strings.noiseSuppression] = _toJSValue(newValue) } + } + @inlinable public var latency: DoubleRange { + get { jsObject[Strings.latency].fromJSValue()! } + set { jsObject[Strings.latency] = _toJSValue(newValue) } + } + @inlinable public var channelCount: ULongRange { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } + @inlinable public var deviceId: String { + get { jsObject[Strings.deviceId].fromJSValue()! } + set { jsObject[Strings.deviceId] = _toJSValue(newValue) } + } + @inlinable public var groupId: String { + get { jsObject[Strings.groupId].fromJSValue()! } + set { jsObject[Strings.groupId] = _toJSValue(newValue) } + } + @inlinable public var backgroundBlur: [Bool] { + get { jsObject[Strings.backgroundBlur].fromJSValue()! } + set { jsObject[Strings.backgroundBlur] = _toJSValue(newValue) } + } } +open class MediaTrackConstraintSet: JSDictionaryCompatible { + public let jsObject: JSObject -public class MediaTrackConstraintSet: BridgedDictionary { - public convenience init(width: ConstrainULong, height: ConstrainULong, aspectRatio: ConstrainDouble, frameRate: ConstrainDouble, facingMode: ConstrainDOMString, resizeMode: ConstrainDOMString, sampleRate: ConstrainULong, sampleSize: ConstrainULong, echoCancellation: ConstrainBoolean, autoGainControl: ConstrainBoolean, noiseSuppression: ConstrainBoolean, latency: ConstrainDouble, channelCount: ConstrainULong, deviceId: ConstrainDOMString, groupId: ConstrainDOMString) { + public convenience init( + width: ConstrainULong? = nil, + height: ConstrainULong? = nil, + aspectRatio: ConstrainDouble? = nil, + frameRate: ConstrainDouble? = nil, + facingMode: ConstrainDOMString? = nil, + resizeMode: ConstrainDOMString? = nil, + sampleRate: ConstrainULong? = nil, + sampleSize: ConstrainULong? = nil, + echoCancellation: ConstrainBoolean? = nil, + autoGainControl: ConstrainBoolean? = nil, + noiseSuppression: ConstrainBoolean? = nil, + latency: ConstrainDouble? = nil, + channelCount: ConstrainULong? = nil, + deviceId: ConstrainDOMString? = nil, + groupId: ConstrainDOMString? = nil, + backgroundBlur: ConstrainBoolean? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) @@ -11405,92 +12901,99 @@ public class MediaTrackConstraintSet: BridgedDictionary { object[Strings.channelCount] = _toJSValue(channelCount) object[Strings.deviceId] = _toJSValue(deviceId) object[Strings.groupId] = _toJSValue(groupId) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) - _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) - _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) - _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) - _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) - _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) - _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) - _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) - _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var width: ConstrainULong - - @ReadWriteAttribute - public var height: ConstrainULong + object[Strings.backgroundBlur] = _toJSValue(backgroundBlur) - @ReadWriteAttribute - public var aspectRatio: ConstrainDouble - - @ReadWriteAttribute - public var frameRate: ConstrainDouble - - @ReadWriteAttribute - public var facingMode: ConstrainDOMString - - @ReadWriteAttribute - public var resizeMode: ConstrainDOMString - - @ReadWriteAttribute - public var sampleRate: ConstrainULong - - @ReadWriteAttribute - public var sampleSize: ConstrainULong - - @ReadWriteAttribute - public var echoCancellation: ConstrainBoolean - - @ReadWriteAttribute - public var autoGainControl: ConstrainBoolean - - @ReadWriteAttribute - public var noiseSuppression: ConstrainBoolean - - @ReadWriteAttribute - public var latency: ConstrainDouble - - @ReadWriteAttribute - public var channelCount: ConstrainULong - - @ReadWriteAttribute - public var deviceId: ConstrainDOMString - - @ReadWriteAttribute - public var groupId: ConstrainDOMString -} - -public class MediaTrackConstraints: BridgedDictionary { - public convenience init(advanced: [MediaTrackConstraintSet]) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.advanced] = _toJSValue(advanced) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _advanced = ReadWriteAttribute(jsObject: object, name: Strings.advanced) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var advanced: [MediaTrackConstraintSet] -} - -public class MediaTrackSettings: BridgedDictionary { - public convenience init(width: UInt32, height: UInt32, aspectRatio: Double, frameRate: Double, facingMode: String, resizeMode: String, sampleRate: UInt32, sampleSize: UInt32, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Double, channelCount: UInt32, deviceId: String, groupId: String) { + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var width: ConstrainULong { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: ConstrainULong { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } + @inlinable public var aspectRatio: ConstrainDouble { + get { jsObject[Strings.aspectRatio].fromJSValue()! } + set { jsObject[Strings.aspectRatio] = _toJSValue(newValue) } + } + @inlinable public var frameRate: ConstrainDouble { + get { jsObject[Strings.frameRate].fromJSValue()! } + set { jsObject[Strings.frameRate] = _toJSValue(newValue) } + } + @inlinable public var facingMode: ConstrainDOMString { + get { jsObject[Strings.facingMode].fromJSValue()! } + set { jsObject[Strings.facingMode] = _toJSValue(newValue) } + } + @inlinable public var resizeMode: ConstrainDOMString { + get { jsObject[Strings.resizeMode].fromJSValue()! } + set { jsObject[Strings.resizeMode] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: ConstrainULong { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var sampleSize: ConstrainULong { + get { jsObject[Strings.sampleSize].fromJSValue()! } + set { jsObject[Strings.sampleSize] = _toJSValue(newValue) } + } + @inlinable public var echoCancellation: ConstrainBoolean { + get { jsObject[Strings.echoCancellation].fromJSValue()! } + set { jsObject[Strings.echoCancellation] = _toJSValue(newValue) } + } + @inlinable public var autoGainControl: ConstrainBoolean { + get { jsObject[Strings.autoGainControl].fromJSValue()! } + set { jsObject[Strings.autoGainControl] = _toJSValue(newValue) } + } + @inlinable public var noiseSuppression: ConstrainBoolean { + get { jsObject[Strings.noiseSuppression].fromJSValue()! } + set { jsObject[Strings.noiseSuppression] = _toJSValue(newValue) } + } + @inlinable public var latency: ConstrainDouble { + get { jsObject[Strings.latency].fromJSValue()! } + set { jsObject[Strings.latency] = _toJSValue(newValue) } + } + @inlinable public var channelCount: ConstrainULong { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } + @inlinable public var deviceId: ConstrainDOMString { + get { jsObject[Strings.deviceId].fromJSValue()! } + set { jsObject[Strings.deviceId] = _toJSValue(newValue) } + } + @inlinable public var groupId: ConstrainDOMString { + get { jsObject[Strings.groupId].fromJSValue()! } + set { jsObject[Strings.groupId] = _toJSValue(newValue) } + } + @inlinable public var backgroundBlur: ConstrainBoolean { + get { jsObject[Strings.backgroundBlur].fromJSValue()! } + set { jsObject[Strings.backgroundBlur] = _toJSValue(newValue) } + } +} +open class MediaTrackConstraints: MediaTrackConstraintSet { + + public convenience init( + width: ConstrainULong? = nil, + height: ConstrainULong? = nil, + aspectRatio: ConstrainDouble? = nil, + frameRate: ConstrainDouble? = nil, + facingMode: ConstrainDOMString? = nil, + resizeMode: ConstrainDOMString? = nil, + sampleRate: ConstrainULong? = nil, + sampleSize: ConstrainULong? = nil, + echoCancellation: ConstrainBoolean? = nil, + autoGainControl: ConstrainBoolean? = nil, + noiseSuppression: ConstrainBoolean? = nil, + latency: ConstrainDouble? = nil, + channelCount: ConstrainULong? = nil, + deviceId: ConstrainDOMString? = nil, + groupId: ConstrainDOMString? = nil, + backgroundBlur: ConstrainBoolean? = nil, + advanced: [MediaTrackConstraintSet]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) @@ -11507,76 +13010,40 @@ public class MediaTrackSettings: BridgedDictionary { object[Strings.channelCount] = _toJSValue(channelCount) object[Strings.deviceId] = _toJSValue(deviceId) object[Strings.groupId] = _toJSValue(groupId) - self.init(unsafelyWrapping: object) - } + object[Strings.backgroundBlur] = _toJSValue(backgroundBlur) + object[Strings.advanced] = _toJSValue(advanced) - public required init(unsafelyWrapping object: JSObject) { - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) - _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) - _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) - _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) - _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) - _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) - _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) - _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) - _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var width: UInt32 - - @ReadWriteAttribute - public var height: UInt32 - - @ReadWriteAttribute - public var aspectRatio: Double - - @ReadWriteAttribute - public var frameRate: Double - - @ReadWriteAttribute - public var facingMode: String - - @ReadWriteAttribute - public var resizeMode: String - - @ReadWriteAttribute - public var sampleRate: UInt32 - - @ReadWriteAttribute - public var sampleSize: UInt32 - - @ReadWriteAttribute - public var echoCancellation: Bool + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var autoGainControl: Bool - - @ReadWriteAttribute - public var noiseSuppression: Bool - - @ReadWriteAttribute - public var latency: Double - - @ReadWriteAttribute - public var channelCount: UInt32 - - @ReadWriteAttribute - public var deviceId: String - - @ReadWriteAttribute - public var groupId: String + @inlinable public var advanced: [MediaTrackConstraintSet] { + get { jsObject[Strings.advanced].fromJSValue()! } + set { jsObject[Strings.advanced] = _toJSValue(newValue) } + } } +open class MediaTrackSettings: JSDictionaryCompatible { + public let jsObject: JSObject -public class MediaTrackSupportedConstraints: BridgedDictionary { - public convenience init(width: Bool, height: Bool, aspectRatio: Bool, frameRate: Bool, facingMode: Bool, resizeMode: Bool, sampleRate: Bool, sampleSize: Bool, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Bool, channelCount: Bool, deviceId: Bool, groupId: Bool) { + public convenience init( + width: UInt32? = nil, + height: UInt32? = nil, + aspectRatio: Double? = nil, + frameRate: Double? = nil, + facingMode: String? = nil, + resizeMode: String? = nil, + sampleRate: UInt32? = nil, + sampleSize: UInt32? = nil, + echoCancellation: Bool? = nil, + autoGainControl: Bool? = nil, + noiseSuppression: Bool? = nil, + latency: Double? = nil, + channelCount: UInt32? = nil, + deviceId: String? = nil, + groupId: String? = nil, + backgroundBlur: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) @@ -11593,203 +13060,357 @@ public class MediaTrackSupportedConstraints: BridgedDictionary { object[Strings.channelCount] = _toJSValue(channelCount) object[Strings.deviceId] = _toJSValue(deviceId) object[Strings.groupId] = _toJSValue(groupId) - self.init(unsafelyWrapping: object) - } + object[Strings.backgroundBlur] = _toJSValue(backgroundBlur) - public required init(unsafelyWrapping object: JSObject) { - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _aspectRatio = ReadWriteAttribute(jsObject: object, name: Strings.aspectRatio) - _frameRate = ReadWriteAttribute(jsObject: object, name: Strings.frameRate) - _facingMode = ReadWriteAttribute(jsObject: object, name: Strings.facingMode) - _resizeMode = ReadWriteAttribute(jsObject: object, name: Strings.resizeMode) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _sampleSize = ReadWriteAttribute(jsObject: object, name: Strings.sampleSize) - _echoCancellation = ReadWriteAttribute(jsObject: object, name: Strings.echoCancellation) - _autoGainControl = ReadWriteAttribute(jsObject: object, name: Strings.autoGainControl) - _noiseSuppression = ReadWriteAttribute(jsObject: object, name: Strings.noiseSuppression) - _latency = ReadWriteAttribute(jsObject: object, name: Strings.latency) - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId) - _groupId = ReadWriteAttribute(jsObject: object, name: Strings.groupId) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var width: Bool - - @ReadWriteAttribute - public var height: Bool - - @ReadWriteAttribute - public var aspectRatio: Bool - - @ReadWriteAttribute - public var frameRate: Bool - - @ReadWriteAttribute - public var facingMode: Bool - - @ReadWriteAttribute - public var resizeMode: Bool - - @ReadWriteAttribute - public var sampleRate: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var sampleSize: Bool - - @ReadWriteAttribute - public var echoCancellation: Bool - - @ReadWriteAttribute - public var autoGainControl: Bool - - @ReadWriteAttribute - public var noiseSuppression: Bool - - @ReadWriteAttribute - public var latency: Bool - - @ReadWriteAttribute - public var channelCount: Bool - - @ReadWriteAttribute - public var deviceId: Bool - - @ReadWriteAttribute - public var groupId: Bool -} - -public class MessageChannel: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MessageChannel].function } - - public let jsObject: JSObject - - public required init(unsafelyWrapping jsObject: JSObject) { - _port1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port1) - _port2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port2) - self.jsObject = jsObject + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } } - - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } } + @inlinable public var aspectRatio: Double { + get { jsObject[Strings.aspectRatio].fromJSValue()! } + set { jsObject[Strings.aspectRatio] = _toJSValue(newValue) } + } + @inlinable public var frameRate: Double { + get { jsObject[Strings.frameRate].fromJSValue()! } + set { jsObject[Strings.frameRate] = _toJSValue(newValue) } + } + @inlinable public var facingMode: String { + get { jsObject[Strings.facingMode].fromJSValue()! } + set { jsObject[Strings.facingMode] = _toJSValue(newValue) } + } + @inlinable public var resizeMode: String { + get { jsObject[Strings.resizeMode].fromJSValue()! } + set { jsObject[Strings.resizeMode] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: UInt32 { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var sampleSize: UInt32 { + get { jsObject[Strings.sampleSize].fromJSValue()! } + set { jsObject[Strings.sampleSize] = _toJSValue(newValue) } + } + @inlinable public var echoCancellation: Bool { + get { jsObject[Strings.echoCancellation].fromJSValue()! } + set { jsObject[Strings.echoCancellation] = _toJSValue(newValue) } + } + @inlinable public var autoGainControl: Bool { + get { jsObject[Strings.autoGainControl].fromJSValue()! } + set { jsObject[Strings.autoGainControl] = _toJSValue(newValue) } + } + @inlinable public var noiseSuppression: Bool { + get { jsObject[Strings.noiseSuppression].fromJSValue()! } + set { jsObject[Strings.noiseSuppression] = _toJSValue(newValue) } + } + @inlinable public var latency: Double { + get { jsObject[Strings.latency].fromJSValue()! } + set { jsObject[Strings.latency] = _toJSValue(newValue) } + } + @inlinable public var channelCount: UInt32 { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } + @inlinable public var deviceId: String { + get { jsObject[Strings.deviceId].fromJSValue()! } + set { jsObject[Strings.deviceId] = _toJSValue(newValue) } + } + @inlinable public var groupId: String { + get { jsObject[Strings.groupId].fromJSValue()! } + set { jsObject[Strings.groupId] = _toJSValue(newValue) } + } + @inlinable public var backgroundBlur: Bool { + get { jsObject[Strings.backgroundBlur].fromJSValue()! } + set { jsObject[Strings.backgroundBlur] = _toJSValue(newValue) } + } +} +open class MediaTrackSupportedConstraints: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + width: Bool? = nil, + height: Bool? = nil, + aspectRatio: Bool? = nil, + frameRate: Bool? = nil, + facingMode: Bool? = nil, + resizeMode: Bool? = nil, + sampleRate: Bool? = nil, + sampleSize: Bool? = nil, + echoCancellation: Bool? = nil, + autoGainControl: Bool? = nil, + noiseSuppression: Bool? = nil, + latency: Bool? = nil, + channelCount: Bool? = nil, + deviceId: Bool? = nil, + groupId: Bool? = nil, + backgroundBlur: Bool? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.width] = _toJSValue(width) + object[Strings.height] = _toJSValue(height) + object[Strings.aspectRatio] = _toJSValue(aspectRatio) + object[Strings.frameRate] = _toJSValue(frameRate) + object[Strings.facingMode] = _toJSValue(facingMode) + object[Strings.resizeMode] = _toJSValue(resizeMode) + object[Strings.sampleRate] = _toJSValue(sampleRate) + object[Strings.sampleSize] = _toJSValue(sampleSize) + object[Strings.echoCancellation] = _toJSValue(echoCancellation) + object[Strings.autoGainControl] = _toJSValue(autoGainControl) + object[Strings.noiseSuppression] = _toJSValue(noiseSuppression) + object[Strings.latency] = _toJSValue(latency) + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.deviceId] = _toJSValue(deviceId) + object[Strings.groupId] = _toJSValue(groupId) + object[Strings.backgroundBlur] = _toJSValue(backgroundBlur) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var width: Bool { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: Bool { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } + @inlinable public var aspectRatio: Bool { + get { jsObject[Strings.aspectRatio].fromJSValue()! } + set { jsObject[Strings.aspectRatio] = _toJSValue(newValue) } + } + @inlinable public var frameRate: Bool { + get { jsObject[Strings.frameRate].fromJSValue()! } + set { jsObject[Strings.frameRate] = _toJSValue(newValue) } + } + @inlinable public var facingMode: Bool { + get { jsObject[Strings.facingMode].fromJSValue()! } + set { jsObject[Strings.facingMode] = _toJSValue(newValue) } + } + @inlinable public var resizeMode: Bool { + get { jsObject[Strings.resizeMode].fromJSValue()! } + set { jsObject[Strings.resizeMode] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: Bool { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var sampleSize: Bool { + get { jsObject[Strings.sampleSize].fromJSValue()! } + set { jsObject[Strings.sampleSize] = _toJSValue(newValue) } + } + @inlinable public var echoCancellation: Bool { + get { jsObject[Strings.echoCancellation].fromJSValue()! } + set { jsObject[Strings.echoCancellation] = _toJSValue(newValue) } + } + @inlinable public var autoGainControl: Bool { + get { jsObject[Strings.autoGainControl].fromJSValue()! } + set { jsObject[Strings.autoGainControl] = _toJSValue(newValue) } + } + @inlinable public var noiseSuppression: Bool { + get { jsObject[Strings.noiseSuppression].fromJSValue()! } + set { jsObject[Strings.noiseSuppression] = _toJSValue(newValue) } + } + @inlinable public var latency: Bool { + get { jsObject[Strings.latency].fromJSValue()! } + set { jsObject[Strings.latency] = _toJSValue(newValue) } + } + @inlinable public var channelCount: Bool { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } + @inlinable public var deviceId: Bool { + get { jsObject[Strings.deviceId].fromJSValue()! } + set { jsObject[Strings.deviceId] = _toJSValue(newValue) } + } + @inlinable public var groupId: Bool { + get { jsObject[Strings.groupId].fromJSValue()! } + set { jsObject[Strings.groupId] = _toJSValue(newValue) } + } + @inlinable public var backgroundBlur: Bool { + get { jsObject[Strings.backgroundBlur].fromJSValue()! } + set { jsObject[Strings.backgroundBlur] = _toJSValue(newValue) } + } +} +public class MessageChannel: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MessageChannel].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var port1: MessagePort - - @ReadonlyAttribute - public var port2: MessagePort + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable public var port1: MessagePort { jsObject[Strings.port1].fromJSValue()! } + + @inlinable public var port2: MessagePort { jsObject[Strings.port2].fromJSValue()! } } public class MessageEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MessageEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MessageEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _lastEventId = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastEventId) - _source = ReadonlyAttribute(jsObject: jsObject, name: Strings.source) - _ports = ReadonlyAttribute(jsObject: jsObject, name: Strings.ports) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: MessageEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var data: JSValue + @inlinable public var data: JSValue { jsObject[Strings.data].fromJSValue()! } - @ReadonlyAttribute - public var origin: String + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @ReadonlyAttribute - public var lastEventId: String + @inlinable public var lastEventId: String { jsObject[Strings.lastEventId].fromJSValue()! } - @ReadonlyAttribute - public var source: MessageEventSource? + @inlinable public var source: MessageEventSource? { jsObject[Strings.source].fromJSValue() } - @ReadonlyAttribute - public var ports: [MessagePort] + @inlinable public var ports: [MessagePort] { jsObject[Strings.ports].fromJSValue()! } - @inlinable public func initMessageEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, data: JSValue? = nil, origin: String? = nil, lastEventId: String? = nil, source: MessageEventSource? = nil, ports: [MessagePort]? = nil) { + @inlinable final public func initMessageEvent( + type: String, + bubbles: Bool? = nil, + cancelable: Bool? = nil, + data: JSValue? = nil, + origin: String? = nil, + lastEventId: String? = nil, + source: MessageEventSource? = nil, + ports: [MessagePort]? = nil + ) { let this = jsObject - _ = this[Strings.initMessageEvent].function!(this: this, arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(data), _toJSValue(origin), _toJSValue(lastEventId), _toJSValue(source), _toJSValue(ports)]) + _ = this[Strings.initMessageEvent].function!( + this: this, + arguments: [ + _toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(data), _toJSValue(origin), + _toJSValue(lastEventId), _toJSValue(source), _toJSValue(ports), + ] + ) } } -public class MessageEventInit: BridgedDictionary { - public convenience init(data: JSValue, origin: String, lastEventId: String, source: MessageEventSource?, ports: [MessagePort]) { +open class MessageEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + data: JSValue? = nil, + origin: String? = nil, + lastEventId: String? = nil, + source: MessageEventSource?, + ports: [MessagePort]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.data] = _toJSValue(data) object[Strings.origin] = _toJSValue(origin) object[Strings.lastEventId] = _toJSValue(lastEventId) object[Strings.source] = _toJSValue(source) object[Strings.ports] = _toJSValue(ports) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - _origin = ReadWriteAttribute(jsObject: object, name: Strings.origin) - _lastEventId = ReadWriteAttribute(jsObject: object, name: Strings.lastEventId) - _source = ReadWriteAttribute(jsObject: object, name: Strings.source) - _ports = ReadWriteAttribute(jsObject: object, name: Strings.ports) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var data: JSValue - - @ReadWriteAttribute - public var origin: String - - @ReadWriteAttribute - public var lastEventId: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var source: MessageEventSource? - - @ReadWriteAttribute - public var ports: [MessagePort] + @inlinable public var data: JSValue { + get { jsObject[Strings.data].fromJSValue()! } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } + @inlinable public var origin: String { + get { jsObject[Strings.origin].fromJSValue()! } + set { jsObject[Strings.origin] = _toJSValue(newValue) } + } + @inlinable public var lastEventId: String { + get { jsObject[Strings.lastEventId].fromJSValue()! } + set { jsObject[Strings.lastEventId] = _toJSValue(newValue) } + } + @inlinable public var source: MessageEventSource? { + get { jsObject[Strings.source].fromJSValue() } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } + @inlinable public var ports: [MessagePort] { + get { jsObject[Strings.ports].fromJSValue()! } + set { jsObject[Strings.ports] = _toJSValue(newValue) } + } } +public protocol MessageEventTarget: JSBridgedClass {} +extension MessageEventTarget { + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } + } -public class MessagePort: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MessagePort].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) + @inlinable public var onmessageerror: EventHandler { + get { + guard let function = jsObject[Strings.onmessageerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessageerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessageerror] = .null + } + } } +} +public class MessagePort: EventTarget, MessageEventTarget { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MessagePort].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) { + @inlinable final public func postMessage(message: JSValue, transfer: [JSObject]) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(transfer)]) } - @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { + @inlinable final public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(options)]) } - @inlinable public func start() { + @inlinable final public func start() { let this = jsObject _ = this[Strings.start].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @ClosureAttribute1Optional - public var onmessage: EventHandler - - @ClosureAttribute1Optional - public var onmessageerror: EventHandler + @inlinable public var onclose: EventHandler { + get { + guard let function = jsObject[Strings.onclose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onclose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onclose] = .null + } + } + } } public class MimeType: JSBridgedClass { @@ -11797,25 +13418,15 @@ public class MimeType: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _description = ReadonlyAttribute(jsObject: jsObject, name: Strings.description) - _suffixes = ReadonlyAttribute(jsObject: jsObject, name: Strings.suffixes) - _enabledPlugin = ReadonlyAttribute(jsObject: jsObject, name: Strings.enabledPlugin) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var description: String + @inlinable public var description: String { jsObject[Strings.description].fromJSValue()! } - @ReadonlyAttribute - public var suffixes: String + @inlinable public var suffixes: String { jsObject[Strings.suffixes].fromJSValue()! } - @ReadonlyAttribute - public var enabledPlugin: Plugin + @inlinable public var enabledPlugin: Plugin { jsObject[Strings.enabledPlugin].fromJSValue()! } } public class MimeTypeArray: JSBridgedClass { @@ -11823,126 +13434,147 @@ public class MimeTypeArray: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> MimeType? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> MimeType? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> MimeType? { + @inlinable final public func item(index: UInt32) -> MimeType? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public subscript(key: String) -> MimeType? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> MimeType? { jsObject[key].fromJSValue() } - @inlinable public func namedItem(name: String) -> MimeType? { + @inlinable final public func namedItem(name: String) -> MimeType? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } } public class MouseEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MouseEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _screenX = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenX) - _screenY = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenY) - _clientX = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientX) - _clientY = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientY) - _ctrlKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.ctrlKey) - _shiftKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.shiftKey) - _altKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.altKey) - _metaKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.metaKey) - _button = ReadonlyAttribute(jsObject: jsObject, name: Strings.button) - _buttons = ReadonlyAttribute(jsObject: jsObject, name: Strings.buttons) - _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget) - _pageX = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageX) - _pageY = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageY) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _offsetX = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetX) - _offsetY = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetY) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.MouseEvent].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: MouseEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var screenX: Int32 + @inlinable public var screenX: Int32 { jsObject[Strings.screenX].fromJSValue()! } - @ReadonlyAttribute - public var screenY: Int32 + @inlinable public var screenY: Int32 { jsObject[Strings.screenY].fromJSValue()! } - @ReadonlyAttribute - public var clientX: Int32 + @inlinable public var clientX: Int32 { jsObject[Strings.clientX].fromJSValue()! } - @ReadonlyAttribute - public var clientY: Int32 + @inlinable public var clientY: Int32 { jsObject[Strings.clientY].fromJSValue()! } - @ReadonlyAttribute - public var ctrlKey: Bool + @inlinable public var layerX: Int32 { jsObject[Strings.layerX].fromJSValue()! } - @ReadonlyAttribute - public var shiftKey: Bool + @inlinable public var layerY: Int32 { jsObject[Strings.layerY].fromJSValue()! } - @ReadonlyAttribute - public var altKey: Bool + @inlinable public var ctrlKey: Bool { jsObject[Strings.ctrlKey].fromJSValue()! } - @ReadonlyAttribute - public var metaKey: Bool + @inlinable public var shiftKey: Bool { jsObject[Strings.shiftKey].fromJSValue()! } - @ReadonlyAttribute - public var button: Int16 + @inlinable public var altKey: Bool { jsObject[Strings.altKey].fromJSValue()! } - @ReadonlyAttribute - public var buttons: UInt16 + @inlinable public var metaKey: Bool { jsObject[Strings.metaKey].fromJSValue()! } - @ReadonlyAttribute - public var relatedTarget: EventTarget? + @inlinable public var button: Int16 { jsObject[Strings.button].fromJSValue()! } - @inlinable public func getModifierState(keyArg: String) -> Bool { - let this = jsObject - return this[Strings.getModifierState].function!(this: this, arguments: [_toJSValue(keyArg)]).fromJSValue()! - } + @inlinable public var buttons: UInt16 { jsObject[Strings.buttons].fromJSValue()! } + + @inlinable public var relatedTarget: EventTarget? { jsObject[Strings.relatedTarget].fromJSValue() } - @inlinable public func initMouseEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: Window? = nil, detailArg: Int32? = nil, screenXArg: Int32? = nil, screenYArg: Int32? = nil, clientXArg: Int32? = nil, clientYArg: Int32? = nil, ctrlKeyArg: Bool? = nil, altKeyArg: Bool? = nil, shiftKeyArg: Bool? = nil, metaKeyArg: Bool? = nil, buttonArg: Int16? = nil, relatedTargetArg: EventTarget? = nil) { + @inlinable final public func getModifierState(keyArg: String) -> Bool { let this = jsObject - _ = this[Strings.initMouseEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), _toJSValue(detailArg), _toJSValue(screenXArg), _toJSValue(screenYArg), _toJSValue(clientXArg), _toJSValue(clientYArg), _toJSValue(ctrlKeyArg), _toJSValue(altKeyArg), _toJSValue(shiftKeyArg), _toJSValue(metaKeyArg), _toJSValue(buttonArg), _toJSValue(relatedTargetArg)]) + return this[Strings.getModifierState].function!(this: this, arguments: [_toJSValue(keyArg)]).fromJSValue()! } - @ReadonlyAttribute - public var pageX: Double - - @ReadonlyAttribute - public var pageY: Double - - @ReadonlyAttribute - public var x: Double - - @ReadonlyAttribute - public var y: Double - - @ReadonlyAttribute - public var offsetX: Double - - @ReadonlyAttribute - public var offsetY: Double -} - -public class MouseEventInit: BridgedDictionary { - public convenience init(screenX: Int32, screenY: Int32, clientX: Int32, clientY: Int32, button: Int16, buttons: UInt16, relatedTarget: EventTarget?) { + @inlinable final public func initMouseEvent( + typeArg: String, + bubblesArg: Bool? = nil, + cancelableArg: Bool? = nil, + viewArg: Window? = nil, + detailArg: Int32? = nil, + screenXArg: Int32? = nil, + screenYArg: Int32? = nil, + clientXArg: Int32? = nil, + clientYArg: Int32? = nil, + ctrlKeyArg: Bool? = nil, + altKeyArg: Bool? = nil, + shiftKeyArg: Bool? = nil, + metaKeyArg: Bool? = nil, + buttonArg: Int16? = nil, + relatedTargetArg: EventTarget? = nil + ) { + let this = jsObject + _ = this[Strings.initMouseEvent].function!( + this: this, + arguments: [ + _toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), + _toJSValue(detailArg), _toJSValue(screenXArg), _toJSValue(screenYArg), _toJSValue(clientXArg), + _toJSValue(clientYArg), _toJSValue(ctrlKeyArg), _toJSValue(altKeyArg), _toJSValue(shiftKeyArg), + _toJSValue(metaKeyArg), _toJSValue(buttonArg), _toJSValue(relatedTargetArg), + ] + ) + } + + @inlinable public var pageX: Double { jsObject[Strings.pageX].fromJSValue()! } + + @inlinable public var pageY: Double { jsObject[Strings.pageY].fromJSValue()! } + + @inlinable public var x: Double { jsObject[Strings.x].fromJSValue()! } + + @inlinable public var y: Double { jsObject[Strings.y].fromJSValue()! } + + @inlinable public var offsetX: Double { jsObject[Strings.offsetX].fromJSValue()! } + + @inlinable public var offsetY: Double { jsObject[Strings.offsetY].fromJSValue()! } +} + +open class MouseEventInit: EventModifierInit { + + public convenience init( + ctrlKey: Bool? = nil, + shiftKey: Bool? = nil, + altKey: Bool? = nil, + metaKey: Bool? = nil, + modifierAltGraph: Bool? = nil, + modifierCapsLock: Bool? = nil, + modifierFn: Bool? = nil, + modifierFnLock: Bool? = nil, + modifierHyper: Bool? = nil, + modifierNumLock: Bool? = nil, + modifierScrollLock: Bool? = nil, + modifierSuper: Bool? = nil, + modifierSymbol: Bool? = nil, + modifierSymbolLock: Bool? = nil, + screenX: Int32? = nil, + screenY: Int32? = nil, + clientX: Int32? = nil, + clientY: Int32? = nil, + button: Int16? = nil, + buttons: UInt16? = nil, + relatedTarget: EventTarget? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ctrlKey] = _toJSValue(ctrlKey) + object[Strings.shiftKey] = _toJSValue(shiftKey) + object[Strings.altKey] = _toJSValue(altKey) + object[Strings.metaKey] = _toJSValue(metaKey) + object[Strings.modifierAltGraph] = _toJSValue(modifierAltGraph) + object[Strings.modifierCapsLock] = _toJSValue(modifierCapsLock) + object[Strings.modifierFn] = _toJSValue(modifierFn) + object[Strings.modifierFnLock] = _toJSValue(modifierFnLock) + object[Strings.modifierHyper] = _toJSValue(modifierHyper) + object[Strings.modifierNumLock] = _toJSValue(modifierNumLock) + object[Strings.modifierScrollLock] = _toJSValue(modifierScrollLock) + object[Strings.modifierSuper] = _toJSValue(modifierSuper) + object[Strings.modifierSymbol] = _toJSValue(modifierSymbol) + object[Strings.modifierSymbolLock] = _toJSValue(modifierSymbolLock) object[Strings.screenX] = _toJSValue(screenX) object[Strings.screenY] = _toJSValue(screenY) object[Strings.clientX] = _toJSValue(clientX) @@ -11950,128 +13582,104 @@ public class MouseEventInit: BridgedDictionary { object[Strings.button] = _toJSValue(button) object[Strings.buttons] = _toJSValue(buttons) object[Strings.relatedTarget] = _toJSValue(relatedTarget) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _screenX = ReadWriteAttribute(jsObject: object, name: Strings.screenX) - _screenY = ReadWriteAttribute(jsObject: object, name: Strings.screenY) - _clientX = ReadWriteAttribute(jsObject: object, name: Strings.clientX) - _clientY = ReadWriteAttribute(jsObject: object, name: Strings.clientY) - _button = ReadWriteAttribute(jsObject: object, name: Strings.button) - _buttons = ReadWriteAttribute(jsObject: object, name: Strings.buttons) - _relatedTarget = ReadWriteAttribute(jsObject: object, name: Strings.relatedTarget) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var screenX: Int32 - - @ReadWriteAttribute - public var screenY: Int32 - - @ReadWriteAttribute - public var clientX: Int32 - - @ReadWriteAttribute - public var clientY: Int32 - - @ReadWriteAttribute - public var button: Int16 - - @ReadWriteAttribute - public var buttons: UInt16 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var relatedTarget: EventTarget? -} - -public class MultiCacheQueryOptions: BridgedDictionary { - public convenience init(cacheName: String) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.cacheName] = _toJSValue(cacheName) - self.init(unsafelyWrapping: object) + @inlinable public var screenX: Int32 { + get { jsObject[Strings.screenX].fromJSValue()! } + set { jsObject[Strings.screenX] = _toJSValue(newValue) } } - - public required init(unsafelyWrapping object: JSObject) { - _cacheName = ReadWriteAttribute(jsObject: object, name: Strings.cacheName) - super.init(unsafelyWrapping: object) + @inlinable public var screenY: Int32 { + get { jsObject[Strings.screenY].fromJSValue()! } + set { jsObject[Strings.screenY] = _toJSValue(newValue) } + } + @inlinable public var clientX: Int32 { + get { jsObject[Strings.clientX].fromJSValue()! } + set { jsObject[Strings.clientX] = _toJSValue(newValue) } + } + @inlinable public var clientY: Int32 { + get { jsObject[Strings.clientY].fromJSValue()! } + set { jsObject[Strings.clientY] = _toJSValue(newValue) } + } + @inlinable public var button: Int16 { + get { jsObject[Strings.button].fromJSValue()! } + set { jsObject[Strings.button] = _toJSValue(newValue) } + } + @inlinable public var buttons: UInt16 { + get { jsObject[Strings.buttons].fromJSValue()! } + set { jsObject[Strings.buttons] = _toJSValue(newValue) } + } + @inlinable public var relatedTarget: EventTarget? { + get { jsObject[Strings.relatedTarget].fromJSValue() } + set { jsObject[Strings.relatedTarget] = _toJSValue(newValue) } } - - @ReadWriteAttribute - public var cacheName: String } +open class MultiCacheQueryOptions: CacheQueryOptions { -public class MutationEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MutationEvent].function } + public convenience init( + ignoreSearch: Bool? = nil, + ignoreMethod: Bool? = nil, + ignoreVary: Bool? = nil, + cacheName: String? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ignoreSearch] = _toJSValue(ignoreSearch) + object[Strings.ignoreMethod] = _toJSValue(ignoreMethod) + object[Strings.ignoreVary] = _toJSValue(ignoreVary) + object[Strings.cacheName] = _toJSValue(cacheName) - public required init(unsafelyWrapping jsObject: JSObject) { - _relatedNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedNode) - _prevValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.prevValue) - _newValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.newValue) - _attrName = ReadonlyAttribute(jsObject: jsObject, name: Strings.attrName) - _attrChange = ReadonlyAttribute(jsObject: jsObject, name: Strings.attrChange) - super.init(unsafelyWrapping: jsObject) + self.init(unsafelyWrapping: object) } - public static let MODIFICATION: UInt16 = 1 - - public static let ADDITION: UInt16 = 2 - - public static let REMOVAL: UInt16 = 3 - - @ReadonlyAttribute - public var relatedNode: Node? - - @ReadonlyAttribute - public var prevValue: String - - @ReadonlyAttribute - public var newValue: String - - @ReadonlyAttribute - public var attrName: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadonlyAttribute - public var attrChange: UInt16 - - @inlinable public func initMutationEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, relatedNodeArg: Node? = nil, prevValueArg: String? = nil, newValueArg: String? = nil, attrNameArg: String? = nil, attrChangeArg: UInt16? = nil) { - let this = jsObject - _ = this[Strings.initMutationEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(relatedNodeArg), _toJSValue(prevValueArg), _toJSValue(newValueArg), _toJSValue(attrNameArg), _toJSValue(attrChangeArg)]) + @inlinable public var cacheName: String { + get { jsObject[Strings.cacheName].fromJSValue()! } + set { jsObject[Strings.cacheName] = _toJSValue(newValue) } } } - public class MutationObserver: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationObserver].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(callback: @escaping MutationCallback) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(callback)])) } - @inlinable public func observe(target: Node, options: MutationObserverInit? = nil) { + @inlinable final public func observe(target: Node, options: MutationObserverInit? = nil) { let this = jsObject _ = this[Strings.observe].function!(this: this, arguments: [_toJSValue(target), _toJSValue(options)]) } - @inlinable public func disconnect() { + @inlinable final public func disconnect() { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: []) } - @inlinable public func takeRecords() -> [MutationRecord] { + @inlinable final public func takeRecords() -> [MutationRecord] { let this = jsObject return this[Strings.takeRecords].function!(this: this, arguments: []).fromJSValue()! } } -public class MutationObserverInit: BridgedDictionary { - public convenience init(childList: Bool, attributes: Bool, characterData: Bool, subtree: Bool, attributeOldValue: Bool, characterDataOldValue: Bool, attributeFilter: [String]) { +open class MutationObserverInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + childList: Bool? = nil, + attributes: Bool? = nil, + characterData: Bool? = nil, + subtree: Bool? = nil, + attributeOldValue: Bool? = nil, + characterDataOldValue: Bool? = nil, + attributeFilter: [String]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.childList] = _toJSValue(childList) object[Strings.attributes] = _toJSValue(attributes) @@ -12080,86 +13688,65 @@ public class MutationObserverInit: BridgedDictionary { object[Strings.attributeOldValue] = _toJSValue(attributeOldValue) object[Strings.characterDataOldValue] = _toJSValue(characterDataOldValue) object[Strings.attributeFilter] = _toJSValue(attributeFilter) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _childList = ReadWriteAttribute(jsObject: object, name: Strings.childList) - _attributes = ReadWriteAttribute(jsObject: object, name: Strings.attributes) - _characterData = ReadWriteAttribute(jsObject: object, name: Strings.characterData) - _subtree = ReadWriteAttribute(jsObject: object, name: Strings.subtree) - _attributeOldValue = ReadWriteAttribute(jsObject: object, name: Strings.attributeOldValue) - _characterDataOldValue = ReadWriteAttribute(jsObject: object, name: Strings.characterDataOldValue) - _attributeFilter = ReadWriteAttribute(jsObject: object, name: Strings.attributeFilter) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var childList: Bool - - @ReadWriteAttribute - public var attributes: Bool - - @ReadWriteAttribute - public var characterData: Bool - - @ReadWriteAttribute - public var subtree: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var attributeOldValue: Bool - - @ReadWriteAttribute - public var characterDataOldValue: Bool - - @ReadWriteAttribute - public var attributeFilter: [String] + @inlinable public var childList: Bool { + get { jsObject[Strings.childList].fromJSValue()! } + set { jsObject[Strings.childList] = _toJSValue(newValue) } + } + @inlinable public var attributes: Bool { + get { jsObject[Strings.attributes].fromJSValue()! } + set { jsObject[Strings.attributes] = _toJSValue(newValue) } + } + @inlinable public var characterData: Bool { + get { jsObject[Strings.characterData].fromJSValue()! } + set { jsObject[Strings.characterData] = _toJSValue(newValue) } + } + @inlinable public var subtree: Bool { + get { jsObject[Strings.subtree].fromJSValue()! } + set { jsObject[Strings.subtree] = _toJSValue(newValue) } + } + @inlinable public var attributeOldValue: Bool { + get { jsObject[Strings.attributeOldValue].fromJSValue()! } + set { jsObject[Strings.attributeOldValue] = _toJSValue(newValue) } + } + @inlinable public var characterDataOldValue: Bool { + get { jsObject[Strings.characterDataOldValue].fromJSValue()! } + set { jsObject[Strings.characterDataOldValue] = _toJSValue(newValue) } + } + @inlinable public var attributeFilter: [String] { + get { jsObject[Strings.attributeFilter].fromJSValue()! } + set { jsObject[Strings.attributeFilter] = _toJSValue(newValue) } + } } - public class MutationRecord: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationRecord].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target) - _addedNodes = ReadonlyAttribute(jsObject: jsObject, name: Strings.addedNodes) - _removedNodes = ReadonlyAttribute(jsObject: jsObject, name: Strings.removedNodes) - _previousSibling = ReadonlyAttribute(jsObject: jsObject, name: Strings.previousSibling) - _nextSibling = ReadonlyAttribute(jsObject: jsObject, name: Strings.nextSibling) - _attributeName = ReadonlyAttribute(jsObject: jsObject, name: Strings.attributeName) - _attributeNamespace = ReadonlyAttribute(jsObject: jsObject, name: Strings.attributeNamespace) - _oldValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.oldValue) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var type: String + @inlinable public var type: String { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var target: Node + @inlinable public var target: Node { jsObject[Strings.target].fromJSValue()! } - @ReadonlyAttribute - public var addedNodes: NodeList + @inlinable public var addedNodes: NodeList { jsObject[Strings.addedNodes].fromJSValue()! } - @ReadonlyAttribute - public var removedNodes: NodeList + @inlinable public var removedNodes: NodeList { jsObject[Strings.removedNodes].fromJSValue()! } - @ReadonlyAttribute - public var previousSibling: Node? + @inlinable public var previousSibling: Node? { jsObject[Strings.previousSibling].fromJSValue() } - @ReadonlyAttribute - public var nextSibling: Node? + @inlinable public var nextSibling: Node? { jsObject[Strings.nextSibling].fromJSValue() } - @ReadonlyAttribute - public var attributeName: String? + @inlinable public var attributeName: String? { jsObject[Strings.attributeName].fromJSValue() } - @ReadonlyAttribute - public var attributeNamespace: String? + @inlinable public var attributeNamespace: String? { jsObject[Strings.attributeNamespace].fromJSValue() } - @ReadonlyAttribute - public var oldValue: String? + @inlinable public var oldValue: String? { jsObject[Strings.oldValue].fromJSValue() } } public class NamedNodeMap: JSBridgedClass { @@ -12167,119 +13754,121 @@ public class NamedNodeMap: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Attr? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> Attr? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> Attr? { + @inlinable final public func item(index: UInt32) -> Attr? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public subscript(key: String) -> Attr? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> Attr? { jsObject[key].fromJSValue() } - @inlinable public func getNamedItem(qualifiedName: String) -> Attr? { + @inlinable final public func getNamedItem(qualifiedName: String) -> Attr? { let this = jsObject return this[Strings.getNamedItem].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue() } - @inlinable public func getNamedItemNS(namespace: String?, localName: String) -> Attr? { + @inlinable final public func getNamedItemNS(namespace: String?, localName: String) -> Attr? { let this = jsObject - return this[Strings.getNamedItemNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue() + return this[Strings.getNamedItemNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue() } - @inlinable public func setNamedItem(attr: Attr) -> Attr? { + @inlinable final public func setNamedItem(attr: Attr) -> Attr? { let this = jsObject return this[Strings.setNamedItem].function!(this: this, arguments: [_toJSValue(attr)]).fromJSValue() } - @inlinable public func setNamedItemNS(attr: Attr) -> Attr? { + @inlinable final public func setNamedItemNS(attr: Attr) -> Attr? { let this = jsObject return this[Strings.setNamedItemNS].function!(this: this, arguments: [_toJSValue(attr)]).fromJSValue() } - @inlinable public func removeNamedItem(qualifiedName: String) -> Attr { + @inlinable final public func removeNamedItem(qualifiedName: String) -> Attr { let this = jsObject - return this[Strings.removeNamedItem].function!(this: this, arguments: [_toJSValue(qualifiedName)]).fromJSValue()! + return this[Strings.removeNamedItem].function!(this: this, arguments: [_toJSValue(qualifiedName)]) + .fromJSValue()! } - @inlinable public func removeNamedItemNS(namespace: String?, localName: String) -> Attr { + @inlinable final public func removeNamedItemNS(namespace: String?, localName: String) -> Attr { let this = jsObject - return this[Strings.removeNamedItemNS].function!(this: this, arguments: [_toJSValue(namespace), _toJSValue(localName)]).fromJSValue()! + return this[Strings.removeNamedItemNS].function!( + this: this, + arguments: [_toJSValue(namespace), _toJSValue(localName)] + ).fromJSValue()! } } public class NavigateEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.NavigateEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.NavigateEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _navigationType = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigationType) - _destination = ReadonlyAttribute(jsObject: jsObject, name: Strings.destination) - _canIntercept = ReadonlyAttribute(jsObject: jsObject, name: Strings.canIntercept) - _userInitiated = ReadonlyAttribute(jsObject: jsObject, name: Strings.userInitiated) - _hashChange = ReadonlyAttribute(jsObject: jsObject, name: Strings.hashChange) - _signal = ReadonlyAttribute(jsObject: jsObject, name: Strings.signal) - _formData = ReadonlyAttribute(jsObject: jsObject, name: Strings.formData) - _downloadRequest = ReadonlyAttribute(jsObject: jsObject, name: Strings.downloadRequest) - _info = ReadonlyAttribute(jsObject: jsObject, name: Strings.info) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: NavigateEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var navigationType: NavigationType + @inlinable public var navigationType: NavigationType { jsObject[Strings.navigationType].fromJSValue()! } + + @inlinable public var destination: NavigationDestination { jsObject[Strings.destination].fromJSValue()! } - @ReadonlyAttribute - public var destination: NavigationDestination + @inlinable public var canIntercept: Bool { jsObject[Strings.canIntercept].fromJSValue()! } - @ReadonlyAttribute - public var canIntercept: Bool + @inlinable public var userInitiated: Bool { jsObject[Strings.userInitiated].fromJSValue()! } - @ReadonlyAttribute - public var userInitiated: Bool + @inlinable public var hashChange: Bool { jsObject[Strings.hashChange].fromJSValue()! } - @ReadonlyAttribute - public var hashChange: Bool + @inlinable public var signal: AbortSignal { jsObject[Strings.signal].fromJSValue()! } - @ReadonlyAttribute - public var signal: AbortSignal + @inlinable public var formData: FormData? { jsObject[Strings.formData].fromJSValue() } - @ReadonlyAttribute - public var formData: FormData? + @inlinable public var downloadRequest: String? { jsObject[Strings.downloadRequest].fromJSValue() } - @ReadonlyAttribute - public var downloadRequest: String? + @inlinable public var info: JSValue { jsObject[Strings.info].fromJSValue()! } - @ReadonlyAttribute - public var info: JSValue + @inlinable public var hasUAVisualTransition: Bool { jsObject[Strings.hasUAVisualTransition].fromJSValue()! } - @inlinable public func intercept(options: NavigationInterceptOptions? = nil) { + @inlinable public var sourceElement: Element? { jsObject[Strings.sourceElement].fromJSValue() } + + @inlinable final public func intercept(options: NavigationInterceptOptions? = nil) { let this = jsObject _ = this[Strings.intercept].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scroll() { + @inlinable final public func scroll() { let this = jsObject _ = this[Strings.scroll].function!(this: this, arguments: []) } } -public class NavigateEventInit: BridgedDictionary { - public convenience init(navigationType: NavigationType, destination: NavigationDestination, canIntercept: Bool, userInitiated: Bool, hashChange: Bool, signal: AbortSignal, formData: FormData?, downloadRequest: String?, info: JSValue) { +open class NavigateEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + navigationType: NavigationType? = nil, + destination: NavigationDestination, + canIntercept: Bool? = nil, + userInitiated: Bool? = nil, + hashChange: Bool? = nil, + signal: AbortSignal, + formData: FormData?, + downloadRequest: String?, + info: JSValue? = nil, + hasUAVisualTransition: Bool? = nil, + sourceElement: Element? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.navigationType] = _toJSValue(navigationType) object[Strings.destination] = _toJSValue(destination) object[Strings.canIntercept] = _toJSValue(canIntercept) @@ -12289,196 +13878,247 @@ public class NavigateEventInit: BridgedDictionary { object[Strings.formData] = _toJSValue(formData) object[Strings.downloadRequest] = _toJSValue(downloadRequest) object[Strings.info] = _toJSValue(info) - self.init(unsafelyWrapping: object) - } + object[Strings.hasUAVisualTransition] = _toJSValue(hasUAVisualTransition) + object[Strings.sourceElement] = _toJSValue(sourceElement) - public required init(unsafelyWrapping object: JSObject) { - _navigationType = ReadWriteAttribute(jsObject: object, name: Strings.navigationType) - _destination = ReadWriteAttribute(jsObject: object, name: Strings.destination) - _canIntercept = ReadWriteAttribute(jsObject: object, name: Strings.canIntercept) - _userInitiated = ReadWriteAttribute(jsObject: object, name: Strings.userInitiated) - _hashChange = ReadWriteAttribute(jsObject: object, name: Strings.hashChange) - _signal = ReadWriteAttribute(jsObject: object, name: Strings.signal) - _formData = ReadWriteAttribute(jsObject: object, name: Strings.formData) - _downloadRequest = ReadWriteAttribute(jsObject: object, name: Strings.downloadRequest) - _info = ReadWriteAttribute(jsObject: object, name: Strings.info) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var navigationType: NavigationType - - @ReadWriteAttribute - public var destination: NavigationDestination - - @ReadWriteAttribute - public var canIntercept: Bool - - @ReadWriteAttribute - public var userInitiated: Bool - - @ReadWriteAttribute - public var hashChange: Bool - - @ReadWriteAttribute - public var signal: AbortSignal + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var formData: FormData? - - @ReadWriteAttribute - public var downloadRequest: String? - - @ReadWriteAttribute - public var info: JSValue + @inlinable public var navigationType: NavigationType { + get { jsObject[Strings.navigationType].fromJSValue()! } + set { jsObject[Strings.navigationType] = _toJSValue(newValue) } + } + @inlinable public var destination: NavigationDestination { + get { jsObject[Strings.destination].fromJSValue()! } + set { jsObject[Strings.destination] = _toJSValue(newValue) } + } + @inlinable public var canIntercept: Bool { + get { jsObject[Strings.canIntercept].fromJSValue()! } + set { jsObject[Strings.canIntercept] = _toJSValue(newValue) } + } + @inlinable public var userInitiated: Bool { + get { jsObject[Strings.userInitiated].fromJSValue()! } + set { jsObject[Strings.userInitiated] = _toJSValue(newValue) } + } + @inlinable public var hashChange: Bool { + get { jsObject[Strings.hashChange].fromJSValue()! } + set { jsObject[Strings.hashChange] = _toJSValue(newValue) } + } + @inlinable public var signal: AbortSignal { + get { jsObject[Strings.signal].fromJSValue()! } + set { jsObject[Strings.signal] = _toJSValue(newValue) } + } + @inlinable public var formData: FormData? { + get { jsObject[Strings.formData].fromJSValue() } + set { jsObject[Strings.formData] = _toJSValue(newValue) } + } + @inlinable public var downloadRequest: String? { + get { jsObject[Strings.downloadRequest].fromJSValue() } + set { jsObject[Strings.downloadRequest] = _toJSValue(newValue) } + } + @inlinable public var info: JSValue { + get { jsObject[Strings.info].fromJSValue()! } + set { jsObject[Strings.info] = _toJSValue(newValue) } + } + @inlinable public var hasUAVisualTransition: Bool { + get { jsObject[Strings.hasUAVisualTransition].fromJSValue()! } + set { jsObject[Strings.hasUAVisualTransition] = _toJSValue(newValue) } + } + @inlinable public var sourceElement: Element? { + get { jsObject[Strings.sourceElement].fromJSValue() } + set { jsObject[Strings.sourceElement] = _toJSValue(newValue) } + } } - public class Navigation: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Navigation].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Navigation].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _currentEntry = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentEntry) - _transition = ReadonlyAttribute(jsObject: jsObject, name: Strings.transition) - _canGoBack = ReadonlyAttribute(jsObject: jsObject, name: Strings.canGoBack) - _canGoForward = ReadonlyAttribute(jsObject: jsObject, name: Strings.canGoForward) - _onnavigate = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onnavigate) - _onnavigatesuccess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onnavigatesuccess) - _onnavigateerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onnavigateerror) - _oncurrententrychange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncurrententrychange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func entries() -> [NavigationHistoryEntry] { + @inlinable final public func entries() -> [NavigationHistoryEntry] { let this = jsObject return this[Strings.entries].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var currentEntry: NavigationHistoryEntry? + @inlinable public var currentEntry: NavigationHistoryEntry? { jsObject[Strings.currentEntry].fromJSValue() } - @inlinable public func updateCurrentEntry(options: NavigationUpdateCurrentEntryOptions) { + @inlinable final public func updateCurrentEntry(options: NavigationUpdateCurrentEntryOptions) { let this = jsObject _ = this[Strings.updateCurrentEntry].function!(this: this, arguments: [_toJSValue(options)]) } - @ReadonlyAttribute - public var transition: NavigationTransition? + @inlinable public var transition: NavigationTransition? { jsObject[Strings.transition].fromJSValue() } + + @inlinable public var activation: NavigationActivation? { jsObject[Strings.activation].fromJSValue() } - @ReadonlyAttribute - public var canGoBack: Bool + @inlinable public var canGoBack: Bool { jsObject[Strings.canGoBack].fromJSValue()! } - @ReadonlyAttribute - public var canGoForward: Bool + @inlinable public var canGoForward: Bool { jsObject[Strings.canGoForward].fromJSValue()! } - @inlinable public func navigate(url: String, options: NavigationNavigateOptions? = nil) -> NavigationResult { + @inlinable final public func navigate(url: String, options: NavigationNavigateOptions? = nil) -> NavigationResult { let this = jsObject - return this[Strings.navigate].function!(this: this, arguments: [_toJSValue(url), _toJSValue(options)]).fromJSValue()! + return this[Strings.navigate].function!(this: this, arguments: [_toJSValue(url), _toJSValue(options)]) + .fromJSValue()! } - @inlinable public func reload(options: NavigationReloadOptions? = nil) -> NavigationResult { + @inlinable final public func reload(options: NavigationReloadOptions? = nil) -> NavigationResult { let this = jsObject return this[Strings.reload].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func traverseTo(key: String, options: NavigationOptions? = nil) -> NavigationResult { + @inlinable final public func traverseTo(key: String, options: NavigationOptions? = nil) -> NavigationResult { let this = jsObject - return this[Strings.traverseTo].function!(this: this, arguments: [_toJSValue(key), _toJSValue(options)]).fromJSValue()! + return this[Strings.traverseTo].function!(this: this, arguments: [_toJSValue(key), _toJSValue(options)]) + .fromJSValue()! } - @inlinable public func back(options: NavigationOptions? = nil) -> NavigationResult { + @inlinable final public func back(options: NavigationOptions? = nil) -> NavigationResult { let this = jsObject return this[Strings.back].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func forward(options: NavigationOptions? = nil) -> NavigationResult { + @inlinable final public func forward(options: NavigationOptions? = nil) -> NavigationResult { let this = jsObject return this[Strings.forward].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @ClosureAttribute1Optional - public var onnavigate: EventHandler + @inlinable public var onnavigate: EventHandler { + get { + guard let function = jsObject[Strings.onnavigate].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onnavigate] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onnavigate] = .null + } + } + } + + @inlinable public var onnavigatesuccess: EventHandler { + get { + guard let function = jsObject[Strings.onnavigatesuccess].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onnavigatesuccess] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onnavigatesuccess] = .null + } + } + } + + @inlinable public var onnavigateerror: EventHandler { + get { + guard let function = jsObject[Strings.onnavigateerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onnavigateerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onnavigateerror] = .null + } + } + } + + @inlinable public var oncurrententrychange: EventHandler { + get { + guard let function = jsObject[Strings.oncurrententrychange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncurrententrychange] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncurrententrychange] = .null + } + } + } +} + +public class NavigationActivation: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NavigationActivation].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ClosureAttribute1Optional - public var onnavigatesuccess: EventHandler + @inlinable public var from: NavigationHistoryEntry? { jsObject[Strings.from].fromJSValue() } - @ClosureAttribute1Optional - public var onnavigateerror: EventHandler + @inlinable public var entry: NavigationHistoryEntry { jsObject[Strings.entry].fromJSValue()! } - @ClosureAttribute1Optional - public var oncurrententrychange: EventHandler + @inlinable public var navigationType: NavigationType { jsObject[Strings.navigationType].fromJSValue()! } } public class NavigationCurrentEntryChangeEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.NavigationCurrentEntryChangeEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _navigationType = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigationType) - _from = ReadonlyAttribute(jsObject: jsObject, name: Strings.from) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.NavigationCurrentEntryChangeEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: NavigationCurrentEntryChangeEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var navigationType: NavigationType? + @inlinable public var navigationType: NavigationType? { jsObject[Strings.navigationType].fromJSValue() } - @ReadonlyAttribute - public var from: NavigationHistoryEntry + @inlinable public var from: NavigationHistoryEntry { jsObject[Strings.from].fromJSValue()! } } -public class NavigationCurrentEntryChangeEventInit: BridgedDictionary { - public convenience init(navigationType: NavigationType?, from: NavigationHistoryEntry) { +open class NavigationCurrentEntryChangeEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + navigationType: NavigationType?, + from: NavigationHistoryEntry + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.navigationType] = _toJSValue(navigationType) object[Strings.from] = _toJSValue(from) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _navigationType = ReadWriteAttribute(jsObject: object, name: Strings.navigationType) - _from = ReadWriteAttribute(jsObject: object, name: Strings.from) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var navigationType: NavigationType? + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var from: NavigationHistoryEntry + @inlinable public var navigationType: NavigationType? { + get { jsObject[Strings.navigationType].fromJSValue() } + set { jsObject[Strings.navigationType] = _toJSValue(newValue) } + } + @inlinable public var from: NavigationHistoryEntry { + get { jsObject[Strings.from].fromJSValue()! } + set { jsObject[Strings.from] = _toJSValue(newValue) } + } } - public class NavigationDestination: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NavigationDestination].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _key = ReadonlyAttribute(jsObject: jsObject, name: Strings.key) - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _index = ReadonlyAttribute(jsObject: jsObject, name: Strings.index) - _sameDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.sameDocument) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } - @ReadonlyAttribute - public var key: String + @inlinable public var key: String { jsObject[Strings.key].fromJSValue()! } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var index: Int64 + @inlinable public var index: Int64 { jsObject[Strings.index].fromJSValue()! } - @ReadonlyAttribute - public var sameDocument: Bool + @inlinable public var sameDocument: Bool { jsObject[Strings.sameDocument].fromJSValue()! } - @inlinable public func getState() -> JSValue { + @inlinable final public func getState() -> JSValue { let this = jsObject return this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! } @@ -12489,292 +14129,293 @@ public enum NavigationFocusReset: JSString, JSValueCompatible { case manual = "manual" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum NavigationHistoryBehavior: JSString, JSValueCompatible { case auto = "auto" case push = "push" case replace = "replace" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class NavigationHistoryEntry: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.NavigationHistoryEntry].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _key = ReadonlyAttribute(jsObject: jsObject, name: Strings.key) - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _index = ReadonlyAttribute(jsObject: jsObject, name: Strings.index) - _sameDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.sameDocument) - _ondispose = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondispose) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.NavigationHistoryEntry].function } - @ReadonlyAttribute - public var url: String? + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var key: String + @inlinable public var url: String? { jsObject[Strings.url].fromJSValue() } - @ReadonlyAttribute - public var id: String + @inlinable public var key: String { jsObject[Strings.key].fromJSValue()! } - @ReadonlyAttribute - public var index: Int64 + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var sameDocument: Bool + @inlinable public var index: Int64 { jsObject[Strings.index].fromJSValue()! } - @inlinable public func getState() -> JSValue { + @inlinable public var sameDocument: Bool { jsObject[Strings.sameDocument].fromJSValue()! } + + @inlinable final public func getState() -> JSValue { let this = jsObject return this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! } - @ClosureAttribute1Optional - public var ondispose: EventHandler + @inlinable public var ondispose: EventHandler { + get { + guard let function = jsObject[Strings.ondispose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondispose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondispose] = .null + } + } + } } -public class NavigationInterceptOptions: BridgedDictionary { - public convenience init(handler: @escaping NavigationInterceptHandler, focusReset: NavigationFocusReset, scroll: NavigationScrollBehavior) { +open class NavigationInterceptOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + handler: NavigationInterceptHandler? = nil, + focusReset: NavigationFocusReset? = nil, + scroll: NavigationScrollBehavior? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute0[Strings.handler, in: object] = handler + object[Strings.handler] = _toJSValue(handler) object[Strings.focusReset] = _toJSValue(focusReset) object[Strings.scroll] = _toJSValue(scroll) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _handler = ClosureAttribute0(jsObject: object, name: Strings.handler) - _focusReset = ReadWriteAttribute(jsObject: object, name: Strings.focusReset) - _scroll = ReadWriteAttribute(jsObject: object, name: Strings.scroll) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute0 - public var handler: NavigationInterceptHandler - - @ReadWriteAttribute - public var focusReset: NavigationFocusReset + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var scroll: NavigationScrollBehavior + @inlinable public var handler: NavigationInterceptHandler { + get { + let function = jsObject[Strings.handler].function! + return { function().fromJSValue()! } + } + set { jsObject[Strings.handler] = JSClosure { _ in _toJSValue(newValue()) }.jsValue } + } + @inlinable public var focusReset: NavigationFocusReset { + get { jsObject[Strings.focusReset].fromJSValue()! } + set { jsObject[Strings.focusReset] = _toJSValue(newValue) } + } + @inlinable public var scroll: NavigationScrollBehavior { + get { jsObject[Strings.scroll].fromJSValue()! } + set { jsObject[Strings.scroll] = _toJSValue(newValue) } + } } +open class NavigationNavigateOptions: NavigationOptions { -public class NavigationNavigateOptions: BridgedDictionary { - public convenience init(state: JSValue, history: NavigationHistoryBehavior) { + public convenience init(info: JSValue? = nil, state: JSValue? = nil, history: NavigationHistoryBehavior? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.info] = _toJSValue(info) object[Strings.state] = _toJSValue(state) object[Strings.history] = _toJSValue(history) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _state = ReadWriteAttribute(jsObject: object, name: Strings.state) - _history = ReadWriteAttribute(jsObject: object, name: Strings.history) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var state: JSValue + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var history: NavigationHistoryBehavior + @inlinable public var state: JSValue { + get { jsObject[Strings.state].fromJSValue()! } + set { jsObject[Strings.state] = _toJSValue(newValue) } + } + @inlinable public var history: NavigationHistoryBehavior { + get { jsObject[Strings.history].fromJSValue()! } + set { jsObject[Strings.history] = _toJSValue(newValue) } + } } +open class NavigationOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class NavigationOptions: BridgedDictionary { - public convenience init(info: JSValue) { + public convenience init(info: JSValue? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.info] = _toJSValue(info) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _info = ReadWriteAttribute(jsObject: object, name: Strings.info) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var info: JSValue + @inlinable public var info: JSValue { + get { jsObject[Strings.info].fromJSValue()! } + set { jsObject[Strings.info] = _toJSValue(newValue) } + } } - public class NavigationPreloadManager: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NavigationPreloadManager].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func enable() -> JSPromise { + @inlinable final public func enable() -> JSPromise { let this = jsObject return this[Strings.enable].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func enable() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.enable].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func enable() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.enable].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func disable() -> JSPromise { + @inlinable final public func disable() -> JSPromise { let this = jsObject return this[Strings.disable].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func disable() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.disable].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func disable() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.disable].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func setHeaderValue(value: String) -> JSPromise { + @inlinable final public func setHeaderValue(value: String) -> JSPromise { let this = jsObject return this[Strings.setHeaderValue].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func setHeaderValue(value: String) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.setHeaderValue].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func setHeaderValue( + value: String + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.setHeaderValue].function!(this: this, arguments: [_toJSValue(value)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func getState() -> JSPromise { + @inlinable final public func getState() -> JSPromise { let this = jsObject return this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getState() async throws -> NavigationPreloadState { - let this = jsObject - let _promise: JSPromise = this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getState() + async throws(JSException) -> NavigationPreloadState + { + let this = jsObject + let _promise: JSPromise = this[Strings.getState].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class NavigationPreloadState: BridgedDictionary { - public convenience init(enabled: Bool, headerValue: String) { +open class NavigationPreloadState: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(enabled: Bool? = nil, headerValue: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.enabled] = _toJSValue(enabled) object[Strings.headerValue] = _toJSValue(headerValue) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _enabled = ReadWriteAttribute(jsObject: object, name: Strings.enabled) - _headerValue = ReadWriteAttribute(jsObject: object, name: Strings.headerValue) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var enabled: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var headerValue: String + @inlinable public var enabled: Bool { + get { jsObject[Strings.enabled].fromJSValue()! } + set { jsObject[Strings.enabled] = _toJSValue(newValue) } + } + @inlinable public var headerValue: String { + get { jsObject[Strings.headerValue].fromJSValue()! } + set { jsObject[Strings.headerValue] = _toJSValue(newValue) } + } } +open class NavigationReloadOptions: NavigationOptions { -public class NavigationReloadOptions: BridgedDictionary { - public convenience init(state: JSValue) { + public convenience init(info: JSValue? = nil, state: JSValue? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.info] = _toJSValue(info) object[Strings.state] = _toJSValue(state) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _state = ReadWriteAttribute(jsObject: object, name: Strings.state) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var state: JSValue + @inlinable public var state: JSValue { + get { jsObject[Strings.state].fromJSValue()! } + set { jsObject[Strings.state] = _toJSValue(newValue) } + } } +open class NavigationResult: JSDictionaryCompatible { + public let jsObject: JSObject -public class NavigationResult: BridgedDictionary { - public convenience init(committed: JSPromise, finished: JSPromise) { + public convenience init(committed: JSPromise? = nil, finished: JSPromise? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.committed] = _toJSValue(committed) object[Strings.finished] = _toJSValue(finished) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _committed = ReadWriteAttribute(jsObject: object, name: Strings.committed) - _finished = ReadWriteAttribute(jsObject: object, name: Strings.finished) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var committed: JSPromise + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var finished: JSPromise + @inlinable public var committed: JSPromise { + get { jsObject[Strings.committed].fromJSValue()! } + set { jsObject[Strings.committed] = _toJSValue(newValue) } + } + @inlinable public var finished: JSPromise { + get { jsObject[Strings.finished].fromJSValue()! } + set { jsObject[Strings.finished] = _toJSValue(newValue) } + } } - public enum NavigationScrollBehavior: JSString, JSValueCompatible { case afterTransition = "after-transition" case manual = "manual" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class NavigationTransition: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NavigationTransition].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _navigationType = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigationType) - _from = ReadonlyAttribute(jsObject: jsObject, name: Strings.from) - _finished = ReadonlyAttribute(jsObject: jsObject, name: Strings.finished) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var navigationType: NavigationType + @inlinable public var navigationType: NavigationType { jsObject[Strings.navigationType].fromJSValue()! } - @ReadonlyAttribute - public var from: NavigationHistoryEntry + @inlinable public var from: NavigationHistoryEntry { jsObject[Strings.from].fromJSValue()! } - @ReadonlyAttribute - public var finished: JSPromise + @inlinable public var finished: JSPromise { jsObject[Strings.finished].fromJSValue()! } } public enum NavigationType: JSString, JSValueCompatible { @@ -12784,163 +14425,127 @@ public enum NavigationType: JSString, JSValueCompatible { case traverse = "traverse" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class NavigationUpdateCurrentEntryOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class NavigationUpdateCurrentEntryOptions: BridgedDictionary { public convenience init(state: JSValue) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.state] = _toJSValue(state) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _state = ReadWriteAttribute(jsObject: object, name: Strings.state) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var state: JSValue + @inlinable public var state: JSValue { + get { jsObject[Strings.state].fromJSValue()! } + set { jsObject[Strings.state] = _toJSValue(newValue) } + } } - -public class Navigator: JSBridgedClass, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware { +public class Navigator: JSBridgedClass, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, + NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Navigator].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _userActivation = ReadonlyAttribute(jsObject: jsObject, name: Strings.userActivation) - _mediaDevices = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaDevices) - _serviceWorker = ReadonlyAttribute(jsObject: jsObject, name: Strings.serviceWorker) - _permissions = ReadonlyAttribute(jsObject: jsObject, name: Strings.permissions) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var userActivation: UserActivation + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var mediaDevices: MediaDevices + @inlinable public var userActivation: UserActivation { jsObject[Strings.userActivation].fromJSValue()! } - @inlinable public func getUserMedia(constraints: MediaStreamConstraints, successCallback: @escaping NavigatorUserMediaSuccessCallback, errorCallback: @escaping NavigatorUserMediaErrorCallback) { - let this = jsObject - _ = this[Strings.getUserMedia].function!(this: this, arguments: [_toJSValue(constraints), _toJSValue(successCallback), _toJSValue(errorCallback)]) - } + @inlinable public var mediaDevices: MediaDevices { jsObject[Strings.mediaDevices].fromJSValue()! } - @ReadonlyAttribute - public var serviceWorker: ServiceWorkerContainer + @inlinable public var serviceWorker: ServiceWorkerContainer { jsObject[Strings.serviceWorker].fromJSValue()! } - @ReadonlyAttribute - public var permissions: Permissions + @inlinable public var permissions: Permissions { jsObject[Strings.permissions].fromJSValue()! } } public protocol NavigatorConcurrentHardware: JSBridgedClass {} -public extension NavigatorConcurrentHardware { - @inlinable var hardwareConcurrency: UInt64 { jsObject[Strings.hardwareConcurrency].fromJSValue()! } +extension NavigatorConcurrentHardware { + @inlinable public var hardwareConcurrency: UInt64 { jsObject[Strings.hardwareConcurrency].fromJSValue()! } } - public protocol NavigatorContentUtils: JSBridgedClass {} -public extension NavigatorContentUtils { - @inlinable func registerProtocolHandler(scheme: String, url: String) { +extension NavigatorContentUtils { + @inlinable public func registerProtocolHandler(scheme: String, url: String) { let this = jsObject - _ = this[Strings.registerProtocolHandler].function!(this: this, arguments: [_toJSValue(scheme), _toJSValue(url)]) + _ = this[Strings.registerProtocolHandler].function!( + this: this, + arguments: [_toJSValue(scheme), _toJSValue(url)] + ) } - @inlinable func unregisterProtocolHandler(scheme: String, url: String) { + @inlinable public func unregisterProtocolHandler(scheme: String, url: String) { let this = jsObject - _ = this[Strings.unregisterProtocolHandler].function!(this: this, arguments: [_toJSValue(scheme), _toJSValue(url)]) + _ = this[Strings.unregisterProtocolHandler].function!( + this: this, + arguments: [_toJSValue(scheme), _toJSValue(url)] + ) } } - public protocol NavigatorCookies: JSBridgedClass {} -public extension NavigatorCookies { - @inlinable var cookieEnabled: Bool { jsObject[Strings.cookieEnabled].fromJSValue()! } +extension NavigatorCookies { + @inlinable public var cookieEnabled: Bool { jsObject[Strings.cookieEnabled].fromJSValue()! } } - public protocol NavigatorID: JSBridgedClass {} -public extension NavigatorID { - @inlinable var appCodeName: String { jsObject[Strings.appCodeName].fromJSValue()! } +extension NavigatorID { + @inlinable public var appCodeName: String { jsObject[Strings.appCodeName].fromJSValue()! } - @inlinable var appName: String { jsObject[Strings.appName].fromJSValue()! } + @inlinable public var appName: String { jsObject[Strings.appName].fromJSValue()! } - @inlinable var appVersion: String { jsObject[Strings.appVersion].fromJSValue()! } + @inlinable public var appVersion: String { jsObject[Strings.appVersion].fromJSValue()! } - @inlinable var platform: String { jsObject[Strings.platform].fromJSValue()! } + @inlinable public var platform: String { jsObject[Strings.platform].fromJSValue()! } - @inlinable var product: String { jsObject[Strings.product].fromJSValue()! } + @inlinable public var product: String { jsObject[Strings.product].fromJSValue()! } - @inlinable var productSub: String { jsObject[Strings.productSub].fromJSValue()! } + @inlinable public var productSub: String { jsObject[Strings.productSub].fromJSValue()! } - @inlinable var userAgent: String { jsObject[Strings.userAgent].fromJSValue()! } + @inlinable public var userAgent: String { jsObject[Strings.userAgent].fromJSValue()! } - @inlinable var vendor: String { jsObject[Strings.vendor].fromJSValue()! } + @inlinable public var vendor: String { jsObject[Strings.vendor].fromJSValue()! } - @inlinable var vendorSub: String { jsObject[Strings.vendorSub].fromJSValue()! } + @inlinable public var vendorSub: String { jsObject[Strings.vendorSub].fromJSValue()! } - @inlinable func taintEnabled() -> Bool { + @inlinable public func taintEnabled() -> Bool { let this = jsObject return this[Strings.taintEnabled].function!(this: this, arguments: []).fromJSValue()! } - @inlinable var oscpu: String { jsObject[Strings.oscpu].fromJSValue()! } + @inlinable public var oscpu: String { jsObject[Strings.oscpu].fromJSValue()! } } - public protocol NavigatorLanguage: JSBridgedClass {} -public extension NavigatorLanguage { - @inlinable var language: String { jsObject[Strings.language].fromJSValue()! } +extension NavigatorLanguage { + @inlinable public var language: String { jsObject[Strings.language].fromJSValue()! } - @inlinable var languages: [String] { jsObject[Strings.languages].fromJSValue()! } + @inlinable public var languages: [String] { jsObject[Strings.languages].fromJSValue()! } } - public protocol NavigatorOnLine: JSBridgedClass {} -public extension NavigatorOnLine { - @inlinable var onLine: Bool { jsObject[Strings.onLine].fromJSValue()! } -} - +extension NavigatorOnLine { @inlinable public var onLine: Bool { jsObject[Strings.onLine].fromJSValue()! } } public protocol NavigatorPlugins: JSBridgedClass {} -public extension NavigatorPlugins { - @inlinable var plugins: PluginArray { jsObject[Strings.plugins].fromJSValue()! } +extension NavigatorPlugins { + @inlinable public var plugins: PluginArray { jsObject[Strings.plugins].fromJSValue()! } - @inlinable var mimeTypes: MimeTypeArray { jsObject[Strings.mimeTypes].fromJSValue()! } + @inlinable public var mimeTypes: MimeTypeArray { jsObject[Strings.mimeTypes].fromJSValue()! } - @inlinable func javaEnabled() -> Bool { + @inlinable public func javaEnabled() -> Bool { let this = jsObject return this[Strings.javaEnabled].function!(this: this, arguments: []).fromJSValue()! } - @inlinable var pdfViewerEnabled: Bool { jsObject[Strings.pdfViewerEnabled].fromJSValue()! } + @inlinable public var pdfViewerEnabled: Bool { jsObject[Strings.pdfViewerEnabled].fromJSValue()! } } - open class Node: EventTarget { - @inlinable override open class var constructor: JSFunction? { JSObject.global[Strings.Node].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _nodeType = ReadonlyAttribute(jsObject: jsObject, name: Strings.nodeType) - _nodeName = ReadonlyAttribute(jsObject: jsObject, name: Strings.nodeName) - _baseURI = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseURI) - _isConnected = ReadonlyAttribute(jsObject: jsObject, name: Strings.isConnected) - _ownerDocument = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerDocument) - _parentNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentNode) - _parentElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.parentElement) - _childNodes = ReadonlyAttribute(jsObject: jsObject, name: Strings.childNodes) - _firstChild = ReadonlyAttribute(jsObject: jsObject, name: Strings.firstChild) - _lastChild = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastChild) - _previousSibling = ReadonlyAttribute(jsObject: jsObject, name: Strings.previousSibling) - _nextSibling = ReadonlyAttribute(jsObject: jsObject, name: Strings.nextSibling) - _nodeValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.nodeValue) - _textContent = ReadWriteAttribute(jsObject: jsObject, name: Strings.textContent) - super.init(unsafelyWrapping: jsObject) - } + @inlinable open override class var constructor: JSFunction? { JSObject.global[Strings.Node].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } public static let ELEMENT_NODE: UInt16 = 1 @@ -12966,74 +14571,66 @@ open class Node: EventTarget { public static let NOTATION_NODE: UInt16 = 12 - @ReadonlyAttribute - public var nodeType: UInt16 + @inlinable public var nodeType: UInt16 { jsObject[Strings.nodeType].fromJSValue()! } - @ReadonlyAttribute - public var nodeName: String + @inlinable public var nodeName: String { jsObject[Strings.nodeName].fromJSValue()! } - @ReadonlyAttribute - public var baseURI: String + @inlinable public var baseURI: String { jsObject[Strings.baseURI].fromJSValue()! } - @ReadonlyAttribute - public var isConnected: Bool + @inlinable public var isConnected: Bool { jsObject[Strings.isConnected].fromJSValue()! } - @ReadonlyAttribute - public var ownerDocument: Document? + @inlinable public var ownerDocument: Document? { jsObject[Strings.ownerDocument].fromJSValue() } - @inlinable public func getRootNode(options: GetRootNodeOptions? = nil) -> Self { + @inlinable final public func getRootNode(options: GetRootNodeOptions? = nil) -> Node { let this = jsObject return this[Strings.getRootNode].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @ReadonlyAttribute - public var parentNode: Node? + @inlinable public var parentNode: Node? { jsObject[Strings.parentNode].fromJSValue() } - @ReadonlyAttribute - public var parentElement: Element? + @inlinable public var parentElement: Element? { jsObject[Strings.parentElement].fromJSValue() } - @inlinable public func hasChildNodes() -> Bool { + @inlinable final public func hasChildNodes() -> Bool { let this = jsObject return this[Strings.hasChildNodes].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var childNodes: NodeList + @inlinable public var childNodes: NodeList { jsObject[Strings.childNodes].fromJSValue()! } - @ReadonlyAttribute - public var firstChild: Node? + @inlinable public var firstChild: Node? { jsObject[Strings.firstChild].fromJSValue() } - @ReadonlyAttribute - public var lastChild: Node? + @inlinable public var lastChild: Node? { jsObject[Strings.lastChild].fromJSValue() } - @ReadonlyAttribute - public var previousSibling: Node? + @inlinable public var previousSibling: Node? { jsObject[Strings.previousSibling].fromJSValue() } - @ReadonlyAttribute - public var nextSibling: Node? + @inlinable public var nextSibling: Node? { jsObject[Strings.nextSibling].fromJSValue() } - @ReadWriteAttribute - public var nodeValue: String? + @inlinable public var nodeValue: String? { + get { jsObject[Strings.nodeValue].fromJSValue() } + set { jsObject[Strings.nodeValue] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var textContent: String? + @inlinable public var textContent: String? { + get { jsObject[Strings.textContent].fromJSValue() } + set { jsObject[Strings.textContent] = _toJSValue(newValue) } + } - @inlinable public func normalize() { + @inlinable final public func normalize() { let this = jsObject _ = this[Strings.normalize].function!(this: this, arguments: []) } - @inlinable public func cloneNode(deep: Bool? = nil) -> Self { + @inlinable final public func cloneNode(subtree: Bool? = nil) -> Node { let this = jsObject - return this[Strings.cloneNode].function!(this: this, arguments: [_toJSValue(deep)]).fromJSValue()! + return this[Strings.cloneNode].function!(this: this, arguments: [_toJSValue(subtree)]).fromJSValue()! } - @inlinable public func isEqualNode(otherNode: Node?) -> Bool { + @inlinable final public func isEqualNode(otherNode: Node?) -> Bool { let this = jsObject return this[Strings.isEqualNode].function!(this: this, arguments: [_toJSValue(otherNode)]).fromJSValue()! } - @inlinable public func isSameNode(otherNode: Node?) -> Bool { + @inlinable final public func isSameNode(otherNode: Node?) -> Bool { let this = jsObject return this[Strings.isSameNode].function!(this: this, arguments: [_toJSValue(otherNode)]).fromJSValue()! } @@ -13050,47 +14647,50 @@ open class Node: EventTarget { public static let DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: UInt16 = 0x20 - @inlinable public func compareDocumentPosition(other: Node) -> UInt16 { + @inlinable final public func compareDocumentPosition(other: Node) -> UInt16 { let this = jsObject - return this[Strings.compareDocumentPosition].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! + return this[Strings.compareDocumentPosition].function!(this: this, arguments: [_toJSValue(other)]) + .fromJSValue()! } - @inlinable public func contains(other: Node?) -> Bool { + @inlinable final public func contains(other: Node?) -> Bool { let this = jsObject return this[Strings.contains].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @inlinable public func lookupPrefix(namespace: String?) -> String? { + @inlinable final public func lookupPrefix(namespace: String?) -> String? { let this = jsObject return this[Strings.lookupPrefix].function!(this: this, arguments: [_toJSValue(namespace)]).fromJSValue() } - @inlinable public func lookupNamespaceURI(prefix: String?) -> String? { + @inlinable final public func lookupNamespaceURI(prefix: String?) -> String? { let this = jsObject return this[Strings.lookupNamespaceURI].function!(this: this, arguments: [_toJSValue(prefix)]).fromJSValue() } - @inlinable public func isDefaultNamespace(namespace: String?) -> Bool { + @inlinable final public func isDefaultNamespace(namespace: String?) -> Bool { let this = jsObject return this[Strings.isDefaultNamespace].function!(this: this, arguments: [_toJSValue(namespace)]).fromJSValue()! } - @inlinable public func insertBefore(node: Node, child: Node?) -> Self { + @inlinable final public func insertBefore(node: Node, child: Node?) -> Node { let this = jsObject - return this[Strings.insertBefore].function!(this: this, arguments: [_toJSValue(node), _toJSValue(child)]).fromJSValue()! + return this[Strings.insertBefore].function!(this: this, arguments: [_toJSValue(node), _toJSValue(child)]) + .fromJSValue()! } - @inlinable public func appendChild(node: Node) -> Self { + @inlinable final public func appendChild(node: Node) -> Node { let this = jsObject return this[Strings.appendChild].function!(this: this, arguments: [_toJSValue(node)]).fromJSValue()! } - @inlinable public func replaceChild(node: Node, child: Node) -> Self { + @inlinable final public func replaceChild(node: Node, child: Node) -> Node { let this = jsObject - return this[Strings.replaceChild].function!(this: this, arguments: [_toJSValue(node), _toJSValue(child)]).fromJSValue()! + return this[Strings.replaceChild].function!(this: this, arguments: [_toJSValue(node), _toJSValue(child)]) + .fromJSValue()! } - @inlinable public func removeChild(child: Node) -> Self { + @inlinable final public func removeChild(child: Node) -> Node { let this = jsObject return this[Strings.removeChild].function!(this: this, arguments: [_toJSValue(child)]).fromJSValue()! } @@ -13101,39 +14701,31 @@ public class NodeIterator: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _root = ReadonlyAttribute(jsObject: jsObject, name: Strings.root) - _referenceNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.referenceNode) - _pointerBeforeReferenceNode = ReadonlyAttribute(jsObject: jsObject, name: Strings.pointerBeforeReferenceNode) - _whatToShow = ReadonlyAttribute(jsObject: jsObject, name: Strings.whatToShow) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var root: Node + @inlinable public var root: Node { jsObject[Strings.root].fromJSValue()! } - @ReadonlyAttribute - public var referenceNode: Node + @inlinable public var referenceNode: Node { jsObject[Strings.referenceNode].fromJSValue()! } - @ReadonlyAttribute - public var pointerBeforeReferenceNode: Bool + @inlinable public var pointerBeforeReferenceNode: Bool { + jsObject[Strings.pointerBeforeReferenceNode].fromJSValue()! + } - @ReadonlyAttribute - public var whatToShow: UInt32 + @inlinable public var whatToShow: UInt32 { jsObject[Strings.whatToShow].fromJSValue()! } // XXX: member 'filter' is ignored - @inlinable public func nextNode() -> Node? { + @inlinable final public func nextNode() -> Node? { let this = jsObject return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func previousNode() -> Node? { + @inlinable final public func previousNode() -> Node? { let this = jsObject return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func detach() { + @inlinable final public func detach() { let this = jsObject _ = this[Strings.detach].function!(this: this, arguments: []) } @@ -13144,247 +14736,378 @@ public class NodeList: JSBridgedClass, Sequence { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public subscript(key: Int) -> Node? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> Node? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> Node? { + @inlinable final public func item(index: UInt32) -> Node? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } public typealias Element = Node - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } } public protocol NonDocumentTypeChildNode: JSBridgedClass {} -public extension NonDocumentTypeChildNode { - @inlinable var previousElementSibling: Element? { jsObject[Strings.previousElementSibling].fromJSValue() } +extension NonDocumentTypeChildNode { + @inlinable public var previousElementSibling: Element? { jsObject[Strings.previousElementSibling].fromJSValue() } - @inlinable var nextElementSibling: Element? { jsObject[Strings.nextElementSibling].fromJSValue() } + @inlinable public var nextElementSibling: Element? { jsObject[Strings.nextElementSibling].fromJSValue() } } - public protocol NonElementParentNode: JSBridgedClass {} -public extension NonElementParentNode { - @inlinable func getElementById(elementId: String) -> Element? { +extension NonElementParentNode { + @inlinable public func getElementById(elementId: String) -> Element? { let this = jsObject return this[Strings.getElementById].function!(this: this, arguments: [_toJSValue(elementId)]).fromJSValue() } } +public class NotRestoredReasonDetails: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NotRestoredReasonDetails].function } -public class OffscreenCanvas: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OffscreenCanvas].function } + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var reason: String { jsObject[Strings.reason].fromJSValue()! } + + @inlinable final public func toJSON() -> JSObject { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public class NotRestoredReasons: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NotRestoredReasons].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var src: String? { jsObject[Strings.src].fromJSValue() } + + @inlinable public var id: String? { jsObject[Strings.id].fromJSValue() } + + @inlinable public var name: String? { jsObject[Strings.name].fromJSValue() } + + @inlinable public var url: String? { jsObject[Strings.url].fromJSValue() } + + @inlinable public var reasons: [NotRestoredReasonDetails]? { jsObject[Strings.reasons].fromJSValue() } + + @inlinable public var children: [NotRestoredReasons]? { jsObject[Strings.children].fromJSValue() } - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height) - _oncontextlost = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncontextlost) - _oncontextrestored = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncontextrestored) - super.init(unsafelyWrapping: jsObject) + @inlinable final public func toJSON() -> JSObject { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } +} + +public class OffscreenCanvas: EventTarget { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.OffscreenCanvas].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(width: UInt64, height: UInt64) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(width), _toJSValue(height)])) } - @ReadWriteAttribute - public var width: UInt64 + @inlinable public var width: UInt64 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var height: UInt64 + @inlinable public var height: UInt64 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } // XXX: member 'getContext' is ignored - @inlinable public func transferToImageBitmap() -> ImageBitmap { + @inlinable final public func transferToImageBitmap() -> ImageBitmap { let this = jsObject return this[Strings.transferToImageBitmap].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func convertToBlob(options: ImageEncodeOptions? = nil) -> JSPromise { + @inlinable final public func convertToBlob(options: ImageEncodeOptions? = nil) -> JSPromise { let this = jsObject return this[Strings.convertToBlob].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func convertToBlob(options: ImageEncodeOptions? = nil) async throws -> Blob { - let this = jsObject - let _promise: JSPromise = this[Strings.convertToBlob].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func convertToBlob( + options: ImageEncodeOptions? = nil + ) async throws(JSException) -> Blob { + let this = jsObject + let _promise: JSPromise = this[Strings.convertToBlob].function!( + this: this, + arguments: [_toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @ClosureAttribute1Optional - public var oncontextlost: EventHandler + @inlinable public var oncontextlost: EventHandler { + get { + guard let function = jsObject[Strings.oncontextlost].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontextlost] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontextlost] = .null + } + } + } - @ClosureAttribute1Optional - public var oncontextrestored: EventHandler + @inlinable public var oncontextrestored: EventHandler { + get { + guard let function = jsObject[Strings.oncontextrestored].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontextrestored] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontextrestored] = .null + } + } + } } -public class OffscreenCanvasRenderingContext2D: JSBridgedClass, CanvasState, CanvasTransform, CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, CanvasDrawPath, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, CanvasPath { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.OffscreenCanvasRenderingContext2D].function } +public class OffscreenCanvasRenderingContext2D: JSBridgedClass, CanvasSettings, CanvasState, CanvasTransform, + CanvasCompositing, CanvasImageSmoothing, CanvasFillStrokeStyles, CanvasShadowStyles, CanvasFilters, CanvasRect, + CanvasDrawPath, CanvasText, CanvasDrawImage, CanvasImageData, CanvasPathDrawingStyles, CanvasTextDrawingStyles, + CanvasPath +{ + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.OffscreenCanvasRenderingContext2D].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas) - self.jsObject = jsObject + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var canvas: OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! } +} + +public class OverconstrainedError: DOMException { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.OverconstrainedError].function } - @inlinable public func commit() { - let this = jsObject - _ = this[Strings.commit].function!(this: this, arguments: []) + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(constraint: String, message: String? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(constraint), _toJSValue(message)])) } - @ReadonlyAttribute - public var canvas: OffscreenCanvas + @inlinable public var constraint: String { jsObject[Strings.constraint].fromJSValue()! } } -public class OverconstrainedError: DOMException { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OverconstrainedError].function } +public class PageRevealEvent: Event { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.PageRevealEvent].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint) - super.init(unsafelyWrapping: jsObject) + @inlinable public convenience init(type: String, eventInitDict: PageRevealEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @inlinable public convenience init(constraint: String, message: String? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(constraint), _toJSValue(message)])) + @inlinable public var viewTransition: ViewTransition? { jsObject[Strings.viewTransition].fromJSValue() } +} + +open class PageRevealEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + viewTransition: ViewTransition? + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) + object[Strings.viewTransition] = _toJSValue(viewTransition) + + self.init(unsafelyWrapping: object) } - @ReadonlyAttribute - public var constraint: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var viewTransition: ViewTransition? { + get { jsObject[Strings.viewTransition].fromJSValue() } + set { jsObject[Strings.viewTransition] = _toJSValue(newValue) } + } } +public class PageSwapEvent: Event { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.PageSwapEvent].function } -public class PageTransitionEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PageTransitionEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public convenience init(type: String, eventInitDict: PageSwapEventInit? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) + } + + @inlinable public var activation: NavigationActivation? { jsObject[Strings.activation].fromJSValue() } + + @inlinable public var viewTransition: ViewTransition? { jsObject[Strings.viewTransition].fromJSValue() } +} + +open class PageSwapEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + activation: NavigationActivation?, + viewTransition: ViewTransition? + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) + object[Strings.activation] = _toJSValue(activation) + object[Strings.viewTransition] = _toJSValue(viewTransition) + + self.init(unsafelyWrapping: object) + } - public required init(unsafelyWrapping jsObject: JSObject) { - _persisted = ReadonlyAttribute(jsObject: jsObject, name: Strings.persisted) - super.init(unsafelyWrapping: jsObject) + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var activation: NavigationActivation? { + get { jsObject[Strings.activation].fromJSValue() } + set { jsObject[Strings.activation] = _toJSValue(newValue) } + } + @inlinable public var viewTransition: ViewTransition? { + get { jsObject[Strings.viewTransition].fromJSValue() } + set { jsObject[Strings.viewTransition] = _toJSValue(newValue) } } +} +public class PageTransitionEvent: Event { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.PageTransitionEvent].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: PageTransitionEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var persisted: Bool + @inlinable public var persisted: Bool { jsObject[Strings.persisted].fromJSValue()! } } -public class PageTransitionEventInit: BridgedDictionary { - public convenience init(persisted: Bool) { +open class PageTransitionEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + persisted: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.persisted] = _toJSValue(persisted) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _persisted = ReadWriteAttribute(jsObject: object, name: Strings.persisted) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var persisted: Bool + @inlinable public var persisted: Bool { + get { jsObject[Strings.persisted].fromJSValue()! } + set { jsObject[Strings.persisted] = _toJSValue(newValue) } + } } - public protocol ParentNode: JSBridgedClass {} -public extension ParentNode { - @inlinable var children: HTMLCollection { jsObject[Strings.children].fromJSValue()! } +extension ParentNode { + @inlinable public var children: HTMLCollection { jsObject[Strings.children].fromJSValue()! } - @inlinable var firstElementChild: Element? { jsObject[Strings.firstElementChild].fromJSValue() } + @inlinable public var firstElementChild: Element? { jsObject[Strings.firstElementChild].fromJSValue() } - @inlinable var lastElementChild: Element? { jsObject[Strings.lastElementChild].fromJSValue() } + @inlinable public var lastElementChild: Element? { jsObject[Strings.lastElementChild].fromJSValue() } - @inlinable var childElementCount: UInt32 { jsObject[Strings.childElementCount].fromJSValue()! } + @inlinable public var childElementCount: UInt32 { jsObject[Strings.childElementCount].fromJSValue()! } - @inlinable func prepend(nodes: Node_or_String...) { + @inlinable public func prepend(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.prepend].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func append(nodes: Node_or_String...) { + @inlinable public func append(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.append].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func replaceChildren(nodes: Node_or_String...) { + @inlinable public func replaceChildren(nodes: Node_or_String...) { let this = jsObject _ = this[Strings.replaceChildren].function!(this: this, arguments: nodes.map(_toJSValue)) } - @inlinable func querySelector(selectors: String) -> Element? { + @inlinable public func querySelector(selectors: String) -> Element? { let this = jsObject return this[Strings.querySelector].function!(this: this, arguments: [_toJSValue(selectors)]).fromJSValue() } - @inlinable func querySelectorAll(selectors: String) -> NodeList { + @inlinable public func querySelectorAll(selectors: String) -> NodeList { let this = jsObject return this[Strings.querySelectorAll].function!(this: this, arguments: [_toJSValue(selectors)]).fromJSValue()! } } - public class Path2D: JSBridgedClass, CanvasPath { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Path2D].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(path: Path2D_or_String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(path)])) } - @inlinable public func addPath(path: Path2D, transform: DOMMatrix2DInit? = nil) { + @inlinable final public func addPath(path: Path2D, transform: DOMMatrix2DInit? = nil) { let this = jsObject _ = this[Strings.addPath].function!(this: this, arguments: [_toJSValue(path), _toJSValue(transform)]) } } public class Performance: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Performance].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Performance].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _timeOrigin = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeOrigin) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public func now() -> DOMHighResTimeStamp { + @inlinable final public func now() -> DOMHighResTimeStamp { let this = jsObject return this[Strings.now].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var timeOrigin: DOMHighResTimeStamp + @inlinable public var timeOrigin: DOMHighResTimeStamp { jsObject[Strings.timeOrigin].fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getEntries() -> PerformanceEntryList { + @inlinable final public func getEntries() -> PerformanceEntryList { let this = jsObject return this[Strings.getEntries].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getEntriesByType(type: String) -> PerformanceEntryList { + @inlinable final public func getEntriesByType(type: String) -> PerformanceEntryList { let this = jsObject return this[Strings.getEntriesByType].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } - @inlinable public func getEntriesByName(name: String, type: String? = nil) -> PerformanceEntryList { + @inlinable final public func getEntriesByName(name: String, type: String? = nil) -> PerformanceEntryList { let this = jsObject - return this[Strings.getEntriesByName].function!(this: this, arguments: [_toJSValue(name), _toJSValue(type)]).fromJSValue()! + return this[Strings.getEntriesByName].function!(this: this, arguments: [_toJSValue(name), _toJSValue(type)]) + .fromJSValue()! } } @@ -13393,27 +15116,21 @@ public class PerformanceEntry: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _entryType = ReadonlyAttribute(jsObject: jsObject, name: Strings.entryType) - _startTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.startTime) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var name: String + @inlinable public var id: UInt64 { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var entryType: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var startTime: DOMHighResTimeStamp + @inlinable public var entryType: String { jsObject[Strings.entryType].fromJSValue()! } - @ReadonlyAttribute - public var duration: DOMHighResTimeStamp + @inlinable public var startTime: DOMHighResTimeStamp { jsObject[Strings.startTime].fromJSValue()! } - @inlinable public func toJSON() -> JSObject { + @inlinable public var duration: DOMHighResTimeStamp { jsObject[Strings.duration].fromJSValue()! } + + @inlinable public var navigationId: UInt64 { jsObject[Strings.navigationId].fromJSValue()! } + + @inlinable final public func toJSON() -> JSObject { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -13424,175 +15141,175 @@ public class PerformanceObserver: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _supportedEntryTypes = ReadonlyAttribute(jsObject: jsObject, name: Strings.supportedEntryTypes) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(callback: @escaping PerformanceObserverCallback) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(callback)])) } - @inlinable public func observe(options: PerformanceObserverInit? = nil) { + @inlinable final public func observe(options: PerformanceObserverInit? = nil) { let this = jsObject _ = this[Strings.observe].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func disconnect() { + @inlinable final public func disconnect() { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: []) } - @inlinable public func takeRecords() -> PerformanceEntryList { + @inlinable final public func takeRecords() -> PerformanceEntryList { let this = jsObject return this[Strings.takeRecords].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var supportedEntryTypes: [String] + @inlinable public var supportedEntryTypes: [String] { jsObject[Strings.supportedEntryTypes].fromJSValue()! } } -public class PerformanceObserverCallbackOptions: BridgedDictionary { - public convenience init(droppedEntriesCount: UInt64) { +open class PerformanceObserverCallbackOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(droppedEntriesCount: UInt64? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.droppedEntriesCount] = _toJSValue(droppedEntriesCount) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _droppedEntriesCount = ReadWriteAttribute(jsObject: object, name: Strings.droppedEntriesCount) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var droppedEntriesCount: UInt64 + @inlinable public var droppedEntriesCount: UInt64 { + get { jsObject[Strings.droppedEntriesCount].fromJSValue()! } + set { jsObject[Strings.droppedEntriesCount] = _toJSValue(newValue) } + } } - public class PerformanceObserverEntryList: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.PerformanceObserverEntryList].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.PerformanceObserverEntryList].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func getEntries() -> PerformanceEntryList { + @inlinable final public func getEntries() -> PerformanceEntryList { let this = jsObject return this[Strings.getEntries].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getEntriesByType(type: String) -> PerformanceEntryList { + @inlinable final public func getEntriesByType(type: String) -> PerformanceEntryList { let this = jsObject return this[Strings.getEntriesByType].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! } - @inlinable public func getEntriesByName(name: String, type: String? = nil) -> PerformanceEntryList { + @inlinable final public func getEntriesByName(name: String, type: String? = nil) -> PerformanceEntryList { let this = jsObject - return this[Strings.getEntriesByName].function!(this: this, arguments: [_toJSValue(name), _toJSValue(type)]).fromJSValue()! + return this[Strings.getEntriesByName].function!(this: this, arguments: [_toJSValue(name), _toJSValue(type)]) + .fromJSValue()! } } -public class PerformanceObserverInit: BridgedDictionary { - public convenience init(entryTypes: [String], type: String, buffered: Bool) { +open class PerformanceObserverInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(entryTypes: [String]? = nil, type: String? = nil, buffered: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.entryTypes] = _toJSValue(entryTypes) object[Strings.type] = _toJSValue(type) object[Strings.buffered] = _toJSValue(buffered) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _entryTypes = ReadWriteAttribute(jsObject: object, name: Strings.entryTypes) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _buffered = ReadWriteAttribute(jsObject: object, name: Strings.buffered) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var entryTypes: [String] + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: String - - @ReadWriteAttribute - public var buffered: Bool + @inlinable public var entryTypes: [String] { + get { jsObject[Strings.entryTypes].fromJSValue()! } + set { jsObject[Strings.entryTypes] = _toJSValue(newValue) } + } + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var buffered: Bool { + get { jsObject[Strings.buffered].fromJSValue()! } + set { jsObject[Strings.buffered] = _toJSValue(newValue) } + } } +open class PermissionDescriptor: JSDictionaryCompatible { + public let jsObject: JSObject -public class PermissionDescriptor: BridgedDictionary { public convenience init(name: String) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.name] = _toJSValue(name) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _name = ReadWriteAttribute(jsObject: object, name: Strings.name) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var name: String + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } } +open class PermissionSetParameters: JSDictionaryCompatible { + public let jsObject: JSObject -public class PermissionSetParameters: BridgedDictionary { - public convenience init(descriptor: PermissionDescriptor, state: PermissionState) { + public convenience init(descriptor: JSObject, state: PermissionState) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.descriptor] = _toJSValue(descriptor) object[Strings.state] = _toJSValue(state) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _descriptor = ReadWriteAttribute(jsObject: object, name: Strings.descriptor) - _state = ReadWriteAttribute(jsObject: object, name: Strings.state) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var descriptor: PermissionDescriptor + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var state: PermissionState + @inlinable public var descriptor: JSObject { + get { jsObject[Strings.descriptor].fromJSValue()! } + set { jsObject[Strings.descriptor] = _toJSValue(newValue) } + } + @inlinable public var state: PermissionState { + get { jsObject[Strings.state].fromJSValue()! } + set { jsObject[Strings.state] = _toJSValue(newValue) } + } } - public enum PermissionState: JSString, JSValueCompatible { case granted = "granted" case denied = "denied" case prompt = "prompt" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class PermissionStatus: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PermissionStatus].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.PermissionStatus].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var state: PermissionState + @inlinable public var state: PermissionState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } } public class Permissions: JSBridgedClass { @@ -13600,83 +15317,72 @@ public class Permissions: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func query(permissionDesc: JSObject) -> JSPromise { + @inlinable final public func query(permissionDesc: JSObject) -> JSPromise { let this = jsObject return this[Strings.query].function!(this: this, arguments: [_toJSValue(permissionDesc)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func query(permissionDesc: JSObject) async throws -> PermissionStatus { - let this = jsObject - let _promise: JSPromise = this[Strings.query].function!(this: this, arguments: [_toJSValue(permissionDesc)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func query( + permissionDesc: JSObject + ) async throws(JSException) -> PermissionStatus { + let this = jsObject + let _promise: JSPromise = this[Strings.query].function!(this: this, arguments: [_toJSValue(permissionDesc)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class PlaneLayout: BridgedDictionary { +open class PlaneLayout: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(offset: UInt32, stride: UInt32) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.offset] = _toJSValue(offset) object[Strings.stride] = _toJSValue(stride) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _stride = ReadWriteAttribute(jsObject: object, name: Strings.stride) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var offset: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var stride: UInt32 + @inlinable public var offset: UInt32 { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var stride: UInt32 { + get { jsObject[Strings.stride].fromJSValue()! } + set { jsObject[Strings.stride] = _toJSValue(newValue) } + } } - public class Plugin: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Plugin].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _description = ReadonlyAttribute(jsObject: jsObject, name: Strings.description) - _filename = ReadonlyAttribute(jsObject: jsObject, name: Strings.filename) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var description: String + @inlinable public var description: String { jsObject[Strings.description].fromJSValue()! } - @ReadonlyAttribute - public var filename: String + @inlinable public var filename: String { jsObject[Strings.filename].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> MimeType? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> MimeType? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> MimeType? { + @inlinable final public func item(index: UInt32) -> MimeType? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public subscript(key: String) -> MimeType? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> MimeType? { jsObject[key].fromJSValue() } - @inlinable public func namedItem(name: String) -> MimeType? { + @inlinable final public func namedItem(name: String) -> MimeType? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } @@ -13687,328 +15393,324 @@ public class PluginArray: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func refresh() { + @inlinable final public func refresh() { let this = jsObject _ = this[Strings.refresh].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Plugin? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> Plugin? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> Plugin? { + @inlinable final public func item(index: UInt32) -> Plugin? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public subscript(key: String) -> Plugin? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: String) -> Plugin? { jsObject[key].fromJSValue() } - @inlinable public func namedItem(name: String) -> Plugin? { + @inlinable final public func namedItem(name: String) -> Plugin? { let this = jsObject return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } } public class PopStateEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PopStateEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.PopStateEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: PopStateEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var state: JSValue + @inlinable public var state: JSValue { jsObject[Strings.state].fromJSValue()! } + + @inlinable public var hasUAVisualTransition: Bool { jsObject[Strings.hasUAVisualTransition].fromJSValue()! } } -public class PopStateEventInit: BridgedDictionary { - public convenience init(state: JSValue) { +open class PopStateEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + state: JSValue? = nil, + hasUAVisualTransition: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.state] = _toJSValue(state) + object[Strings.hasUAVisualTransition] = _toJSValue(hasUAVisualTransition) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _state = ReadWriteAttribute(jsObject: object, name: Strings.state) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var state: JSValue + @inlinable public var state: JSValue { + get { jsObject[Strings.state].fromJSValue()! } + set { jsObject[Strings.state] = _toJSValue(newValue) } + } + @inlinable public var hasUAVisualTransition: Bool { + get { jsObject[Strings.hasUAVisualTransition].fromJSValue()! } + set { jsObject[Strings.hasUAVisualTransition] = _toJSValue(newValue) } + } } - public protocol PopoverInvokerElement: JSBridgedClass {} -public extension PopoverInvokerElement { - @inlinable var popoverTargetElement: Element? { +extension PopoverInvokerElement { + @inlinable public var popoverTargetElement: Element? { get { jsObject[Strings.popoverTargetElement].fromJSValue() } - nonmutating set { jsObject[Strings.popoverTargetElement] = _toJSValue(newValue) } + set { jsObject[Strings.popoverTargetElement] = _toJSValue(newValue) } } - @inlinable var popoverTargetAction: String { + @inlinable public var popoverTargetAction: String { get { jsObject[Strings.popoverTargetAction].fromJSValue()! } - nonmutating set { jsObject[Strings.popoverTargetAction] = _toJSValue(newValue) } + set { jsObject[Strings.popoverTargetAction] = _toJSValue(newValue) } } } - public enum PredefinedColorSpace: JSString, JSValueCompatible { case srgb = "srgb" case displayP3 = "display-p3" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum PremultiplyAlpha: JSString, JSValueCompatible { case none = "none" case premultiply = "premultiply" case `default` = "default" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class ProcessingInstruction: CharacterData { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProcessingInstruction].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ProcessingInstruction].function } - @ReadonlyAttribute - public var target: String + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var target: String { jsObject[Strings.target].fromJSValue()! } } public class ProgressEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProgressEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.ProgressEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _lengthComputable = ReadonlyAttribute(jsObject: jsObject, name: Strings.lengthComputable) - _loaded = ReadonlyAttribute(jsObject: jsObject, name: Strings.loaded) - _total = ReadonlyAttribute(jsObject: jsObject, name: Strings.total) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: ProgressEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var lengthComputable: Bool + @inlinable public var lengthComputable: Bool { jsObject[Strings.lengthComputable].fromJSValue()! } - @ReadonlyAttribute - public var loaded: UInt64 + @inlinable public var loaded: UInt64 { jsObject[Strings.loaded].fromJSValue()! } - @ReadonlyAttribute - public var total: UInt64 + @inlinable public var total: UInt64 { jsObject[Strings.total].fromJSValue()! } } -public class ProgressEventInit: BridgedDictionary { - public convenience init(lengthComputable: Bool, loaded: UInt64, total: UInt64) { +open class ProgressEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + lengthComputable: Bool? = nil, + loaded: UInt64? = nil, + total: UInt64? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.lengthComputable] = _toJSValue(lengthComputable) object[Strings.loaded] = _toJSValue(loaded) object[Strings.total] = _toJSValue(total) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _lengthComputable = ReadWriteAttribute(jsObject: object, name: Strings.lengthComputable) - _loaded = ReadWriteAttribute(jsObject: object, name: Strings.loaded) - _total = ReadWriteAttribute(jsObject: object, name: Strings.total) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var lengthComputable: Bool - - @ReadWriteAttribute - public var loaded: UInt64 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var total: UInt64 + @inlinable public var lengthComputable: Bool { + get { jsObject[Strings.lengthComputable].fromJSValue()! } + set { jsObject[Strings.lengthComputable] = _toJSValue(newValue) } + } + @inlinable public var loaded: UInt64 { + get { jsObject[Strings.loaded].fromJSValue()! } + set { jsObject[Strings.loaded] = _toJSValue(newValue) } + } + @inlinable public var total: UInt64 { + get { jsObject[Strings.total].fromJSValue()! } + set { jsObject[Strings.total] = _toJSValue(newValue) } + } } - public class PromiseRejectionEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PromiseRejectionEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _promise = ReadonlyAttribute(jsObject: jsObject, name: Strings.promise) - _reason = ReadonlyAttribute(jsObject: jsObject, name: Strings.reason) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.PromiseRejectionEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: PromiseRejectionEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var promise: JSPromise + @inlinable public var promise: JSObject { jsObject[Strings.promise].fromJSValue()! } - @ReadonlyAttribute - public var reason: JSValue + @inlinable public var reason: JSValue { jsObject[Strings.reason].fromJSValue()! } } -public class PromiseRejectionEventInit: BridgedDictionary { - public convenience init(promise: JSPromise, reason: JSValue) { +open class PromiseRejectionEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + promise: JSObject, + reason: JSValue? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.promise] = _toJSValue(promise) object[Strings.reason] = _toJSValue(reason) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _promise = ReadWriteAttribute(jsObject: object, name: Strings.promise) - _reason = ReadWriteAttribute(jsObject: object, name: Strings.reason) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var promise: JSPromise + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var reason: JSValue + @inlinable public var promise: JSObject { + get { jsObject[Strings.promise].fromJSValue()! } + set { jsObject[Strings.promise] = _toJSValue(newValue) } + } + @inlinable public var reason: JSValue { + get { jsObject[Strings.reason].fromJSValue()! } + set { jsObject[Strings.reason] = _toJSValue(newValue) } + } } +open class QueuingStrategy: JSDictionaryCompatible { + public let jsObject: JSObject -public class QueuingStrategy: BridgedDictionary { - public convenience init(highWaterMark: Double, size: @escaping QueuingStrategySize) { + public convenience init(highWaterMark: Double? = nil, size: QueuingStrategySize? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.highWaterMark] = _toJSValue(highWaterMark) - ClosureAttribute1[Strings.size, in: object] = size - self.init(unsafelyWrapping: object) - } + object[Strings.size] = _toJSValue(size) - public required init(unsafelyWrapping object: JSObject) { - _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark) - _size = ClosureAttribute1(jsObject: object, name: Strings.size) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var highWaterMark: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1 - public var size: QueuingStrategySize + @inlinable public var highWaterMark: Double { + get { jsObject[Strings.highWaterMark].fromJSValue()! } + set { jsObject[Strings.highWaterMark] = _toJSValue(newValue) } + } + @inlinable public var size: QueuingStrategySize { + get { + let function = jsObject[Strings.size].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.size] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } } +open class QueuingStrategyInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class QueuingStrategyInit: BridgedDictionary { public convenience init(highWaterMark: Double) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.highWaterMark] = _toJSValue(highWaterMark) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var highWaterMark: Double + @inlinable public var highWaterMark: Double { + get { jsObject[Strings.highWaterMark].fromJSValue()! } + set { jsObject[Strings.highWaterMark] = _toJSValue(newValue) } + } } - public class RadioNodeList: NodeList { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.RadioNodeList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.RadioNodeList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var value: String + @inlinable public var value: String { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } } public class Range: AbstractRange { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Range].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Range].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _commonAncestorContainer = ReadonlyAttribute(jsObject: jsObject, name: Strings.commonAncestorContainer) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ReadonlyAttribute - public var commonAncestorContainer: Node + @inlinable public var commonAncestorContainer: Node { jsObject[Strings.commonAncestorContainer].fromJSValue()! } - @inlinable public func setStart(node: Node, offset: UInt32) { + @inlinable final public func setStart(node: Node, offset: UInt32) { let this = jsObject _ = this[Strings.setStart].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]) } - @inlinable public func setEnd(node: Node, offset: UInt32) { + @inlinable final public func setEnd(node: Node, offset: UInt32) { let this = jsObject _ = this[Strings.setEnd].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]) } - @inlinable public func setStartBefore(node: Node) { + @inlinable final public func setStartBefore(node: Node) { let this = jsObject _ = this[Strings.setStartBefore].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func setStartAfter(node: Node) { + @inlinable final public func setStartAfter(node: Node) { let this = jsObject _ = this[Strings.setStartAfter].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func setEndBefore(node: Node) { + @inlinable final public func setEndBefore(node: Node) { let this = jsObject _ = this[Strings.setEndBefore].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func setEndAfter(node: Node) { + @inlinable final public func setEndAfter(node: Node) { let this = jsObject _ = this[Strings.setEndAfter].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func collapse(toStart: Bool? = nil) { + @inlinable final public func collapse(toStart: Bool? = nil) { let this = jsObject _ = this[Strings.collapse].function!(this: this, arguments: [_toJSValue(toStart)]) } - @inlinable public func selectNode(node: Node) { + @inlinable final public func selectNode(node: Node) { let this = jsObject _ = this[Strings.selectNode].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func selectNodeContents(node: Node) { + @inlinable final public func selectNodeContents(node: Node) { let this = jsObject _ = this[Strings.selectNodeContents].function!(this: this, arguments: [_toJSValue(node)]) } @@ -14021,455 +15723,489 @@ public class Range: AbstractRange { public static let END_TO_START: UInt16 = 3 - @inlinable public func compareBoundaryPoints(how: UInt16, sourceRange: Range) -> Int16 { + @inlinable final public func compareBoundaryPoints(how: UInt16, sourceRange: Range) -> Int16 { let this = jsObject - return this[Strings.compareBoundaryPoints].function!(this: this, arguments: [_toJSValue(how), _toJSValue(sourceRange)]).fromJSValue()! + return this[Strings.compareBoundaryPoints].function!( + this: this, + arguments: [_toJSValue(how), _toJSValue(sourceRange)] + ).fromJSValue()! } - @inlinable public func deleteContents() { + @inlinable final public func deleteContents() { let this = jsObject _ = this[Strings.deleteContents].function!(this: this, arguments: []) } - @inlinable public func extractContents() -> DocumentFragment { + @inlinable final public func extractContents() -> DocumentFragment { let this = jsObject return this[Strings.extractContents].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func cloneContents() -> DocumentFragment { + @inlinable final public func cloneContents() -> DocumentFragment { let this = jsObject return this[Strings.cloneContents].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func insertNode(node: Node) { + @inlinable final public func insertNode(node: Node) { let this = jsObject _ = this[Strings.insertNode].function!(this: this, arguments: [_toJSValue(node)]) } - @inlinable public func surroundContents(newParent: Node) { + @inlinable final public func surroundContents(newParent: Node) { let this = jsObject _ = this[Strings.surroundContents].function!(this: this, arguments: [_toJSValue(newParent)]) } - @inlinable public func cloneRange() -> Self { + @inlinable final public func cloneRange() -> Range { let this = jsObject return this[Strings.cloneRange].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func detach() { + @inlinable final public func detach() { let this = jsObject _ = this[Strings.detach].function!(this: this, arguments: []) } - @inlinable public func isPointInRange(node: Node, offset: UInt32) -> Bool { + @inlinable final public func isPointInRange(node: Node, offset: UInt32) -> Bool { let this = jsObject - return this[Strings.isPointInRange].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]).fromJSValue()! + return this[Strings.isPointInRange].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]) + .fromJSValue()! } - @inlinable public func comparePoint(node: Node, offset: UInt32) -> Int16 { + @inlinable final public func comparePoint(node: Node, offset: UInt32) -> Int16 { let this = jsObject - return this[Strings.comparePoint].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]).fromJSValue()! + return this[Strings.comparePoint].function!(this: this, arguments: [_toJSValue(node), _toJSValue(offset)]) + .fromJSValue()! } - @inlinable public func intersectsNode(node: Node) -> Bool { + @inlinable final public func intersectsNode(node: Node) -> Bool { let this = jsObject return this[Strings.intersectsNode].function!(this: this, arguments: [_toJSValue(node)]).fromJSValue()! } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } + + @inlinable final public func createContextualFragment(string: String_or_TrustedHTML) -> DocumentFragment { + let this = jsObject + return this[Strings.createContextualFragment].function!(this: this, arguments: [_toJSValue(string)]) + .fromJSValue()! } - @inlinable public func getClientRects() -> DOMRectList { + @inlinable final public func getClientRects() -> DOMRectList { let this = jsObject return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getBoundingClientRect() -> DOMRect { + @inlinable final public func getBoundingClientRect() -> DOMRect { let this = jsObject return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()! } } public class ReadableByteStreamController: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableByteStreamController].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.ReadableByteStreamController].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _byobRequest = ReadonlyAttribute(jsObject: jsObject, name: Strings.byobRequest) - _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var byobRequest: ReadableStreamBYOBRequest? + @inlinable public var byobRequest: ReadableStreamBYOBRequest? { jsObject[Strings.byobRequest].fromJSValue() } - @ReadonlyAttribute - public var desiredSize: Double? + @inlinable public var desiredSize: Double? { jsObject[Strings.desiredSize].fromJSValue() } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @inlinable public func enqueue(chunk: ArrayBufferView) { + @inlinable final public func enqueue(chunk: ArrayBufferView) { let this = jsObject _ = this[Strings.enqueue].function!(this: this, arguments: [_toJSValue(chunk)]) } - @inlinable public func error(e: JSValue? = nil) { + @inlinable final public func error(e: JSValue? = nil) { let this = jsObject _ = this[Strings.error].function!(this: this, arguments: [_toJSValue(e)]) } } -public class ReadableStream: JSBridgedClass, AsyncSequence { +public class ReadableStream: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStream].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _locked = ReadonlyAttribute(jsObject: jsObject, name: Strings.locked) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(underlyingSource: JSObject? = nil, strategy: QueuingStrategy? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(underlyingSource), _toJSValue(strategy)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(underlyingSource), _toJSValue(strategy)]) + ) } - @inlinable public class func from(asyncIterable: JSValue) -> Self { + @inlinable public class func from(asyncIterable: JSValue) -> ReadableStream { let this = constructor! return this[Strings.from].function!(this: this, arguments: [_toJSValue(asyncIterable)]).fromJSValue()! } - @ReadonlyAttribute - public var locked: Bool + @inlinable public var locked: Bool { jsObject[Strings.locked].fromJSValue()! } - @inlinable public func cancel(reason: JSValue? = nil) -> JSPromise { + @inlinable final public func cancel(reason: JSValue? = nil) -> JSPromise { let this = jsObject return this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func cancel(reason: JSValue? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func cancel( + reason: JSValue? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func getReader(options: ReadableStreamGetReaderOptions? = nil) -> ReadableStreamReader { + @inlinable final public func getReader(options: ReadableStreamGetReaderOptions? = nil) -> ReadableStreamReader { let this = jsObject return this[Strings.getReader].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func pipeThrough(transform: ReadableWritablePair, options: StreamPipeOptions? = nil) -> Self { + @inlinable final public func pipeThrough( + transform: ReadableWritablePair, + options: StreamPipeOptions? = nil + ) -> ReadableStream { let this = jsObject - return this[Strings.pipeThrough].function!(this: this, arguments: [_toJSValue(transform), _toJSValue(options)]).fromJSValue()! + return this[Strings.pipeThrough].function!(this: this, arguments: [_toJSValue(transform), _toJSValue(options)]) + .fromJSValue()! } - @inlinable public func pipeTo(destination: WritableStream, options: StreamPipeOptions? = nil) -> JSPromise { + @inlinable final public func pipeTo(destination: WritableStream, options: StreamPipeOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.pipeTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]).fromJSValue()! + return this[Strings.pipeTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func pipeTo(destination: WritableStream, options: StreamPipeOptions? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.pipeTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func pipeTo( + destination: WritableStream, + options: StreamPipeOptions? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.pipeTo].function!( + this: this, + arguments: [_toJSValue(destination), _toJSValue(options)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func tee() -> [ReadableStream] { + @inlinable final public func tee() -> [ReadableStream] { let this = jsObject return this[Strings.tee].function!(this: this, arguments: []).fromJSValue()! } - public typealias Element = JSValue - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - public func makeAsyncIterator() -> ValueIterableAsyncIterator { - ValueIterableAsyncIterator(sequence: self) - } + #if canImport(JavaScriptEventLoop) + public typealias Element = JSValue + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) public func makeAsyncIterator() + -> ValueIterableAsyncIterator + { ValueIterableAsyncIterator(sequence: self) } + #endif } +#if canImport(JavaScriptEventLoop) + extension ReadableStream: AsyncSequence {} +#endif + public class ReadableStreamBYOBReader: JSBridgedClass, ReadableStreamGenericReader { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamBYOBReader].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(stream: ReadableStream) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(stream)])) } - @inlinable public func read(view: ArrayBufferView) -> JSPromise { + @inlinable final public func read( + view: ArrayBufferView, + options: ReadableStreamBYOBReaderReadOptions? = nil + ) -> JSPromise { let this = jsObject - return this[Strings.read].function!(this: this, arguments: [_toJSValue(view)]).fromJSValue()! + return this[Strings.read].function!(this: this, arguments: [_toJSValue(view), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func read(view: ArrayBufferView) async throws -> ReadableStreamReadResult { - let this = jsObject - let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: [_toJSValue(view)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func read( + view: ArrayBufferView, + options: ReadableStreamBYOBReaderReadOptions? = nil + ) async throws(JSException) -> ReadableStreamReadResult { + let this = jsObject + let _promise: JSPromise = this[Strings.read].function!( + this: this, + arguments: [_toJSValue(view), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func releaseLock() { + @inlinable final public func releaseLock() { let this = jsObject _ = this[Strings.releaseLock].function!(this: this, arguments: []) } } +open class ReadableStreamBYOBReaderReadOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(min: UInt64? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.min] = _toJSValue(min) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var min: UInt64 { + get { jsObject[Strings.min].fromJSValue()! } + set { jsObject[Strings.min] = _toJSValue(newValue) } + } +} public class ReadableStreamBYOBRequest: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamBYOBRequest].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var view: ArrayBufferView? + @inlinable public var view: ArrayBufferView? { jsObject[Strings.view].fromJSValue() } - @inlinable public func respond(bytesWritten: UInt64) { + @inlinable final public func respond(bytesWritten: UInt64) { let this = jsObject _ = this[Strings.respond].function!(this: this, arguments: [_toJSValue(bytesWritten)]) } - @inlinable public func respondWithNewView(view: ArrayBufferView) { + @inlinable final public func respondWithNewView(view: ArrayBufferView) { let this = jsObject _ = this[Strings.respondWithNewView].function!(this: this, arguments: [_toJSValue(view)]) } } public class ReadableStreamDefaultController: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultController].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.ReadableStreamDefaultController].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var desiredSize: Double? + @inlinable public var desiredSize: Double? { jsObject[Strings.desiredSize].fromJSValue() } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @inlinable public func enqueue(chunk: JSValue? = nil) { + @inlinable final public func enqueue(chunk: JSValue? = nil) { let this = jsObject _ = this[Strings.enqueue].function!(this: this, arguments: [_toJSValue(chunk)]) } - @inlinable public func error(e: JSValue? = nil) { + @inlinable final public func error(e: JSValue? = nil) { let this = jsObject _ = this[Strings.error].function!(this: this, arguments: [_toJSValue(e)]) } } public class ReadableStreamDefaultReader: JSBridgedClass, ReadableStreamGenericReader { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultReader].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.ReadableStreamDefaultReader].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(stream: ReadableStream) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(stream)])) } - @inlinable public func read() -> JSPromise { + @inlinable final public func read() -> JSPromise { let this = jsObject return this[Strings.read].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func read() async throws -> ReadableStreamReadResult { - let this = jsObject - let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func read() + async throws(JSException) -> ReadableStreamReadResult + { + let this = jsObject + let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func releaseLock() { + @inlinable final public func releaseLock() { let this = jsObject _ = this[Strings.releaseLock].function!(this: this, arguments: []) } } public protocol ReadableStreamGenericReader: JSBridgedClass {} -public extension ReadableStreamGenericReader { - @inlinable var closed: JSPromise { jsObject[Strings.closed].fromJSValue()! } +extension ReadableStreamGenericReader { + @inlinable public var closed: JSPromise { jsObject[Strings.closed].fromJSValue()! } - @inlinable func cancel(reason: JSValue? = nil) -> JSPromise { + @inlinable public func cancel(reason: JSValue? = nil) -> JSPromise { let this = jsObject return this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func cancel(reason: JSValue? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func cancel( + reason: JSValue? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.cancel].function!(this: this, arguments: [_toJSValue(reason)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif } +open class ReadableStreamGetReaderOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ReadableStreamGetReaderOptions: BridgedDictionary { - public convenience init(mode: ReadableStreamReaderMode) { + public convenience init(mode: ReadableStreamReaderMode? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mode] = _toJSValue(mode) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mode: ReadableStreamReaderMode + @inlinable public var mode: ReadableStreamReaderMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } } +open class ReadableStreamIteratorOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ReadableStreamIteratorOptions: BridgedDictionary { - public convenience init(preventCancel: Bool) { + public convenience init(preventCancel: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.preventCancel] = _toJSValue(preventCancel) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _preventCancel = ReadWriteAttribute(jsObject: object, name: Strings.preventCancel) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var preventCancel: Bool + @inlinable public var preventCancel: Bool { + get { jsObject[Strings.preventCancel].fromJSValue()! } + set { jsObject[Strings.preventCancel] = _toJSValue(newValue) } + } } +open class ReadableStreamReadResult: JSDictionaryCompatible { + public let jsObject: JSObject -public class ReadableStreamReadResult: BridgedDictionary { - public convenience init(value: JSValue, done: Bool) { + public convenience init(value: JSValue? = nil, done: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.value] = _toJSValue(value) object[Strings.done] = _toJSValue(done) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _value = ReadWriteAttribute(jsObject: object, name: Strings.value) - _done = ReadWriteAttribute(jsObject: object, name: Strings.done) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var value: JSValue + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var done: Bool + @inlinable public var value: JSValue { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } + @inlinable public var done: Bool { + get { jsObject[Strings.done].fromJSValue()! } + set { jsObject[Strings.done] = _toJSValue(newValue) } + } } - public enum ReadableStreamReaderMode: JSString, JSValueCompatible { case byob = "byob" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ReadableStreamType: JSString, JSValueCompatible { case bytes = "bytes" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ReadableWritablePair: JSDictionaryCompatible { + public let jsObject: JSObject -public class ReadableWritablePair: BridgedDictionary { public convenience init(readable: ReadableStream, writable: WritableStream) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.readable] = _toJSValue(readable) object[Strings.writable] = _toJSValue(writable) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _readable = ReadWriteAttribute(jsObject: object, name: Strings.readable) - _writable = ReadWriteAttribute(jsObject: object, name: Strings.writable) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var readable: ReadableStream + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var writable: WritableStream + @inlinable public var readable: ReadableStream { + get { jsObject[Strings.readable].fromJSValue()! } + set { jsObject[Strings.readable] = _toJSValue(newValue) } + } + @inlinable public var writable: WritableStream { + get { jsObject[Strings.writable].fromJSValue()! } + set { jsObject[Strings.writable] = _toJSValue(newValue) } + } } - public enum ReadyState: JSString, JSValueCompatible { case closed = "closed" case open = "open" case ended = "ended" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RecordingState: JSString, JSValueCompatible { case inactive = "inactive" case recording = "recording" case paused = "paused" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ReferrerPolicy: JSString, JSValueCompatible { case _empty = "" case noReferrer = "no-referrer" @@ -14482,123 +16218,89 @@ public enum ReferrerPolicy: JSString, JSValueCompatible { case unsafeUrl = "unsafe-url" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class RegistrationOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class RegistrationOptions: BridgedDictionary { - public convenience init(scope: String, type: WorkerType, updateViaCache: ServiceWorkerUpdateViaCache) { + public convenience init( + scope: String? = nil, + type: WorkerType? = nil, + updateViaCache: ServiceWorkerUpdateViaCache? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.scope] = _toJSValue(scope) object[Strings.type] = _toJSValue(type) object[Strings.updateViaCache] = _toJSValue(updateViaCache) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _scope = ReadWriteAttribute(jsObject: object, name: Strings.scope) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _updateViaCache = ReadWriteAttribute(jsObject: object, name: Strings.updateViaCache) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var scope: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: WorkerType - - @ReadWriteAttribute - public var updateViaCache: ServiceWorkerUpdateViaCache + @inlinable public var scope: String { + get { jsObject[Strings.scope].fromJSValue()! } + set { jsObject[Strings.scope] = _toJSValue(newValue) } + } + @inlinable public var type: WorkerType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var updateViaCache: ServiceWorkerUpdateViaCache { + get { jsObject[Strings.updateViaCache].fromJSValue()! } + set { jsObject[Strings.updateViaCache] = _toJSValue(newValue) } + } } - public class Request: JSBridgedClass, Body { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Request].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _method = ReadonlyAttribute(jsObject: jsObject, name: Strings.method) - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _headers = ReadonlyAttribute(jsObject: jsObject, name: Strings.headers) - _destination = ReadonlyAttribute(jsObject: jsObject, name: Strings.destination) - _referrer = ReadonlyAttribute(jsObject: jsObject, name: Strings.referrer) - _referrerPolicy = ReadonlyAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _mode = ReadonlyAttribute(jsObject: jsObject, name: Strings.mode) - _credentials = ReadonlyAttribute(jsObject: jsObject, name: Strings.credentials) - _cache = ReadonlyAttribute(jsObject: jsObject, name: Strings.cache) - _redirect = ReadonlyAttribute(jsObject: jsObject, name: Strings.redirect) - _integrity = ReadonlyAttribute(jsObject: jsObject, name: Strings.integrity) - _keepalive = ReadonlyAttribute(jsObject: jsObject, name: Strings.keepalive) - _isReloadNavigation = ReadonlyAttribute(jsObject: jsObject, name: Strings.isReloadNavigation) - _isHistoryNavigation = ReadonlyAttribute(jsObject: jsObject, name: Strings.isHistoryNavigation) - _signal = ReadonlyAttribute(jsObject: jsObject, name: Strings.signal) - _duplex = ReadonlyAttribute(jsObject: jsObject, name: Strings.duplex) - self.jsObject = jsObject - } - - @inlinable public convenience init(input: RequestInfo, init: RequestInit? = nil) { + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public convenience init(input: RequestInfo, `init`: RequestInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(input), _toJSValue(`init`)])) } - @ReadonlyAttribute - public var method: String + @inlinable public var method: String { jsObject[Strings.method].fromJSValue()! } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } - @ReadonlyAttribute - public var headers: Headers + @inlinable public var headers: Headers { jsObject[Strings.headers].fromJSValue()! } - @ReadonlyAttribute - public var destination: RequestDestination + @inlinable public var destination: RequestDestination { jsObject[Strings.destination].fromJSValue()! } - @ReadonlyAttribute - public var referrer: String + @inlinable public var referrer: String { jsObject[Strings.referrer].fromJSValue()! } - @ReadonlyAttribute - public var referrerPolicy: ReferrerPolicy + @inlinable public var referrerPolicy: ReferrerPolicy { jsObject[Strings.referrerPolicy].fromJSValue()! } - @ReadonlyAttribute - public var mode: RequestMode + @inlinable public var mode: RequestMode { jsObject[Strings.mode].fromJSValue()! } - @ReadonlyAttribute - public var credentials: RequestCredentials + @inlinable public var credentials: RequestCredentials { jsObject[Strings.credentials].fromJSValue()! } - @ReadonlyAttribute - public var cache: RequestCache + @inlinable public var cache: RequestCache { jsObject[Strings.cache].fromJSValue()! } - @ReadonlyAttribute - public var redirect: RequestRedirect + @inlinable public var redirect: RequestRedirect { jsObject[Strings.redirect].fromJSValue()! } - @ReadonlyAttribute - public var integrity: String + @inlinable public var integrity: String { jsObject[Strings.integrity].fromJSValue()! } - @ReadonlyAttribute - public var keepalive: Bool + @inlinable public var keepalive: Bool { jsObject[Strings.keepalive].fromJSValue()! } - @ReadonlyAttribute - public var isReloadNavigation: Bool + @inlinable public var isReloadNavigation: Bool { jsObject[Strings.isReloadNavigation].fromJSValue()! } - @ReadonlyAttribute - public var isHistoryNavigation: Bool + @inlinable public var isHistoryNavigation: Bool { jsObject[Strings.isHistoryNavigation].fromJSValue()! } - @ReadonlyAttribute - public var signal: AbortSignal + @inlinable public var signal: AbortSignal { jsObject[Strings.signal].fromJSValue()! } - @ReadonlyAttribute - public var duplex: RequestDuplex + @inlinable public var duplex: RequestDuplex { jsObject[Strings.duplex].fromJSValue()! } - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> Request { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } @@ -14613,38 +16315,28 @@ public enum RequestCache: JSString, JSValueCompatible { case onlyIfCached = "only-if-cached" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RequestCredentials: JSString, JSValueCompatible { case omit = "omit" case sameOrigin = "same-origin" case include = "include" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RequestDestination: JSString, JSValueCompatible { case _empty = "" case audio = "audio" @@ -14655,6 +16347,7 @@ public enum RequestDestination: JSString, JSValueCompatible { case frame = "frame" case iframe = "iframe" case image = "image" + case json = "json" case manifest = "manifest" case object = "object" case paintworklet = "paintworklet" @@ -14668,38 +16361,46 @@ public enum RequestDestination: JSString, JSValueCompatible { case xslt = "xslt" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RequestDuplex: JSString, JSValueCompatible { case half = "half" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class RequestInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class RequestInit: BridgedDictionary { - public convenience init(method: String, headers: HeadersInit, body: BodyInit?, referrer: String, referrerPolicy: ReferrerPolicy, mode: RequestMode, credentials: RequestCredentials, cache: RequestCache, redirect: RequestRedirect, integrity: String, keepalive: Bool, signal: AbortSignal?, duplex: RequestDuplex, priority: RequestPriority, window: JSValue) { + public convenience init( + method: String? = nil, + headers: HeadersInit? = nil, + body: BodyInit?, + referrer: String? = nil, + referrerPolicy: ReferrerPolicy? = nil, + mode: RequestMode? = nil, + credentials: RequestCredentials? = nil, + cache: RequestCache? = nil, + redirect: RequestRedirect? = nil, + integrity: String? = nil, + keepalive: Bool? = nil, + signal: AbortSignal?, + duplex: RequestDuplex? = nil, + priority: RequestPriority? = nil, + window: JSValue? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.method] = _toJSValue(method) object[Strings.headers] = _toJSValue(headers) @@ -14716,74 +16417,73 @@ public class RequestInit: BridgedDictionary { object[Strings.duplex] = _toJSValue(duplex) object[Strings.priority] = _toJSValue(priority) object[Strings.window] = _toJSValue(window) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _method = ReadWriteAttribute(jsObject: object, name: Strings.method) - _headers = ReadWriteAttribute(jsObject: object, name: Strings.headers) - _body = ReadWriteAttribute(jsObject: object, name: Strings.body) - _referrer = ReadWriteAttribute(jsObject: object, name: Strings.referrer) - _referrerPolicy = ReadWriteAttribute(jsObject: object, name: Strings.referrerPolicy) - _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode) - _credentials = ReadWriteAttribute(jsObject: object, name: Strings.credentials) - _cache = ReadWriteAttribute(jsObject: object, name: Strings.cache) - _redirect = ReadWriteAttribute(jsObject: object, name: Strings.redirect) - _integrity = ReadWriteAttribute(jsObject: object, name: Strings.integrity) - _keepalive = ReadWriteAttribute(jsObject: object, name: Strings.keepalive) - _signal = ReadWriteAttribute(jsObject: object, name: Strings.signal) - _duplex = ReadWriteAttribute(jsObject: object, name: Strings.duplex) - _priority = ReadWriteAttribute(jsObject: object, name: Strings.priority) - _window = ReadWriteAttribute(jsObject: object, name: Strings.window) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var method: String - - @ReadWriteAttribute - public var headers: HeadersInit - - @ReadWriteAttribute - public var body: BodyInit? - - @ReadWriteAttribute - public var referrer: String - - @ReadWriteAttribute - public var referrerPolicy: ReferrerPolicy - - @ReadWriteAttribute - public var mode: RequestMode - - @ReadWriteAttribute - public var credentials: RequestCredentials - - @ReadWriteAttribute - public var cache: RequestCache - - @ReadWriteAttribute - public var redirect: RequestRedirect - - @ReadWriteAttribute - public var integrity: String - - @ReadWriteAttribute - public var keepalive: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var signal: AbortSignal? - - @ReadWriteAttribute - public var duplex: RequestDuplex - - @ReadWriteAttribute - public var priority: RequestPriority - - @ReadWriteAttribute - public var window: JSValue + @inlinable public var method: String { + get { jsObject[Strings.method].fromJSValue()! } + set { jsObject[Strings.method] = _toJSValue(newValue) } + } + @inlinable public var headers: HeadersInit { + get { jsObject[Strings.headers].fromJSValue()! } + set { jsObject[Strings.headers] = _toJSValue(newValue) } + } + @inlinable public var body: BodyInit? { + get { jsObject[Strings.body].fromJSValue() } + set { jsObject[Strings.body] = _toJSValue(newValue) } + } + @inlinable public var referrer: String { + get { jsObject[Strings.referrer].fromJSValue()! } + set { jsObject[Strings.referrer] = _toJSValue(newValue) } + } + @inlinable public var referrerPolicy: ReferrerPolicy { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } + @inlinable public var mode: RequestMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } + @inlinable public var credentials: RequestCredentials { + get { jsObject[Strings.credentials].fromJSValue()! } + set { jsObject[Strings.credentials] = _toJSValue(newValue) } + } + @inlinable public var cache: RequestCache { + get { jsObject[Strings.cache].fromJSValue()! } + set { jsObject[Strings.cache] = _toJSValue(newValue) } + } + @inlinable public var redirect: RequestRedirect { + get { jsObject[Strings.redirect].fromJSValue()! } + set { jsObject[Strings.redirect] = _toJSValue(newValue) } + } + @inlinable public var integrity: String { + get { jsObject[Strings.integrity].fromJSValue()! } + set { jsObject[Strings.integrity] = _toJSValue(newValue) } + } + @inlinable public var keepalive: Bool { + get { jsObject[Strings.keepalive].fromJSValue()! } + set { jsObject[Strings.keepalive] = _toJSValue(newValue) } + } + @inlinable public var signal: AbortSignal? { + get { jsObject[Strings.signal].fromJSValue() } + set { jsObject[Strings.signal] = _toJSValue(newValue) } + } + @inlinable public var duplex: RequestDuplex { + get { jsObject[Strings.duplex].fromJSValue()! } + set { jsObject[Strings.duplex] = _toJSValue(newValue) } + } + @inlinable public var priority: RequestPriority { + get { jsObject[Strings.priority].fromJSValue()! } + set { jsObject[Strings.priority] = _toJSValue(newValue) } + } + @inlinable public var window: JSValue { + get { jsObject[Strings.window].fromJSValue()! } + set { jsObject[Strings.window] = _toJSValue(newValue) } + } } - public enum RequestMode: JSString, JSValueCompatible { case navigate = "navigate" case sameOrigin = "same-origin" @@ -14791,57 +16491,42 @@ public enum RequestMode: JSString, JSValueCompatible { case cors = "cors" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RequestPriority: JSString, JSValueCompatible { case high = "high" case low = "low" case auto = "auto" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum RequestRedirect: JSString, JSValueCompatible { case follow = "follow" case error = "error" case manual = "manual" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ResizeQuality: JSString, JSValueCompatible { case pixelated = "pixelated" case low = "low" @@ -14849,107 +16534,89 @@ public enum ResizeQuality: JSString, JSValueCompatible { case high = "high" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class Response: JSBridgedClass, Body { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Response].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _redirected = ReadonlyAttribute(jsObject: jsObject, name: Strings.redirected) - _status = ReadonlyAttribute(jsObject: jsObject, name: Strings.status) - _ok = ReadonlyAttribute(jsObject: jsObject, name: Strings.ok) - _statusText = ReadonlyAttribute(jsObject: jsObject, name: Strings.statusText) - _headers = ReadonlyAttribute(jsObject: jsObject, name: Strings.headers) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(body: BodyInit? = nil, init: ResponseInit? = nil) { + @inlinable public convenience init(body: BodyInit? = nil, `init`: ResponseInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(body), _toJSValue(`init`)])) } - @inlinable public class func error() -> Self { + @inlinable public class func error() -> Response { let this = constructor! return this[Strings.error].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public class func redirect(url: String, status: UInt16? = nil) -> Self { + @inlinable public class func redirect(url: String, status: UInt16? = nil) -> Response { let this = constructor! - return this[Strings.redirect].function!(this: this, arguments: [_toJSValue(url), _toJSValue(status)]).fromJSValue()! + return this[Strings.redirect].function!(this: this, arguments: [_toJSValue(url), _toJSValue(status)]) + .fromJSValue()! } - @inlinable public class func json(data: JSValue, init: ResponseInit? = nil) -> Self { + @inlinable public class func json(data: JSValue, `init`: ResponseInit? = nil) -> Response { let this = constructor! - return this[Strings.json].function!(this: this, arguments: [_toJSValue(data), _toJSValue(`init`)]).fromJSValue()! + return this[Strings.json].function!(this: this, arguments: [_toJSValue(data), _toJSValue(`init`)]) + .fromJSValue()! } - @ReadonlyAttribute - public var type: ResponseType + @inlinable public var type: ResponseType { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } - @ReadonlyAttribute - public var redirected: Bool + @inlinable public var redirected: Bool { jsObject[Strings.redirected].fromJSValue()! } - @ReadonlyAttribute - public var status: UInt16 + @inlinable public var status: UInt16 { jsObject[Strings.status].fromJSValue()! } - @ReadonlyAttribute - public var ok: Bool + @inlinable public var ok: Bool { jsObject[Strings.ok].fromJSValue()! } - @ReadonlyAttribute - public var statusText: String + @inlinable public var statusText: String { jsObject[Strings.statusText].fromJSValue()! } - @ReadonlyAttribute - public var headers: Headers + @inlinable public var headers: Headers { jsObject[Strings.headers].fromJSValue()! } - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> Response { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } } -public class ResponseInit: BridgedDictionary { - public convenience init(status: UInt16, statusText: String, headers: HeadersInit) { +open class ResponseInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(status: UInt16? = nil, statusText: String? = nil, headers: HeadersInit? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.status] = _toJSValue(status) object[Strings.statusText] = _toJSValue(statusText) object[Strings.headers] = _toJSValue(headers) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _status = ReadWriteAttribute(jsObject: object, name: Strings.status) - _statusText = ReadWriteAttribute(jsObject: object, name: Strings.statusText) - _headers = ReadWriteAttribute(jsObject: object, name: Strings.headers) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var status: UInt16 - - @ReadWriteAttribute - public var statusText: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var headers: HeadersInit + @inlinable public var status: UInt16 { + get { jsObject[Strings.status].fromJSValue()! } + set { jsObject[Strings.status] = _toJSValue(newValue) } + } + @inlinable public var statusText: String { + get { jsObject[Strings.statusText].fromJSValue()! } + set { jsObject[Strings.statusText] = _toJSValue(newValue) } + } + @inlinable public var headers: HeadersInit { + get { jsObject[Strings.headers].fromJSValue()! } + set { jsObject[Strings.headers] = _toJSValue(newValue) } + } } - public enum ResponseType: JSString, JSValueCompatible { case basic = "basic" case cors = "cors" @@ -14959,93 +16626,215 @@ public enum ResponseType: JSString, JSValueCompatible { case opaqueredirect = "opaqueredirect" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class RouterCondition: JSDictionaryCompatible { + public let jsObject: JSObject -public class Screen: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Screen].function } + public convenience init( + urlPattern: URLPatternCompatible? = nil, + requestMethod: String? = nil, + requestMode: RequestMode? = nil, + requestDestination: RequestDestination? = nil, + runningStatus: RunningStatus? = nil, + or: [RouterCondition]? = nil, + not: RouterCondition? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.urlPattern] = _toJSValue(urlPattern) + object[Strings.requestMethod] = _toJSValue(requestMethod) + object[Strings.requestMode] = _toJSValue(requestMode) + object[Strings.requestDestination] = _toJSValue(requestDestination) + object[Strings.runningStatus] = _toJSValue(runningStatus) + object[Strings.or] = _toJSValue(or) + object[Strings.not] = _toJSValue(not) + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var urlPattern: URLPatternCompatible { + get { jsObject[Strings.urlPattern].fromJSValue()! } + set { jsObject[Strings.urlPattern] = _toJSValue(newValue) } + } + @inlinable public var requestMethod: String { + get { jsObject[Strings.requestMethod].fromJSValue()! } + set { jsObject[Strings.requestMethod] = _toJSValue(newValue) } + } + @inlinable public var requestMode: RequestMode { + get { jsObject[Strings.requestMode].fromJSValue()! } + set { jsObject[Strings.requestMode] = _toJSValue(newValue) } + } + @inlinable public var requestDestination: RequestDestination { + get { jsObject[Strings.requestDestination].fromJSValue()! } + set { jsObject[Strings.requestDestination] = _toJSValue(newValue) } + } + @inlinable public var runningStatus: RunningStatus { + get { jsObject[Strings.runningStatus].fromJSValue()! } + set { jsObject[Strings.runningStatus] = _toJSValue(newValue) } + } + @inlinable public var or: [RouterCondition] { + get { jsObject[Strings.or].fromJSValue()! } + set { jsObject[Strings.or] = _toJSValue(newValue) } + } + @inlinable public var not: RouterCondition { + get { jsObject[Strings.not].fromJSValue()! } + set { jsObject[Strings.not] = _toJSValue(newValue) } + } +} +open class RouterRule: JSDictionaryCompatible { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _availWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.availWidth) - _availHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.availHeight) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _colorDepth = ReadonlyAttribute(jsObject: jsObject, name: Strings.colorDepth) - _pixelDepth = ReadonlyAttribute(jsObject: jsObject, name: Strings.pixelDepth) - self.jsObject = jsObject + public convenience init(condition: RouterCondition, source: RouterSource) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.condition] = _toJSValue(condition) + object[Strings.source] = _toJSValue(source) + + self.init(unsafelyWrapping: object) } - @ReadonlyAttribute - public var availWidth: Int32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadonlyAttribute - public var availHeight: Int32 + @inlinable public var condition: RouterCondition { + get { jsObject[Strings.condition].fromJSValue()! } + set { jsObject[Strings.condition] = _toJSValue(newValue) } + } + @inlinable public var source: RouterSource { + get { jsObject[Strings.source].fromJSValue()! } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } +} +open class RouterSourceDict: JSDictionaryCompatible { + public let jsObject: JSObject - @ReadonlyAttribute - public var width: Int32 + public convenience init(cacheName: String? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.cacheName] = _toJSValue(cacheName) - @ReadonlyAttribute - public var height: Int32 + self.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var colorDepth: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadonlyAttribute - public var pixelDepth: UInt32 + @inlinable public var cacheName: String { + get { jsObject[Strings.cacheName].fromJSValue()! } + set { jsObject[Strings.cacheName] = _toJSValue(newValue) } + } } - -public enum ScrollBehavior: JSString, JSValueCompatible { - case auto = "auto" - case instant = "instant" - case smooth = "smooth" +public enum RouterSourceEnum: JSString, JSValueCompatible { + case cache = "cache" + case fetchEvent = "fetch-event" + case network = "network" + case raceNetworkAndFetchHandler = "race-network-and-fetch-handler" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} +public enum RunningStatus: JSString, JSValueCompatible { + case running = "running" + case notRunning = "not-running" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } + + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} +public class Screen: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Screen].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var availWidth: Int32 { jsObject[Strings.availWidth].fromJSValue()! } + + @inlinable public var availHeight: Int32 { jsObject[Strings.availHeight].fromJSValue()! } + + @inlinable public var width: Int32 { jsObject[Strings.width].fromJSValue()! } + + @inlinable public var height: Int32 { jsObject[Strings.height].fromJSValue()! } + + @inlinable public var colorDepth: UInt32 { jsObject[Strings.colorDepth].fromJSValue()! } + + @inlinable public var pixelDepth: UInt32 { jsObject[Strings.pixelDepth].fromJSValue()! } +} + +public enum ScrollBehavior: JSString, JSValueCompatible { + case auto = "auto" + case instant = "instant" + case smooth = "smooth" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } + + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} +public enum ScrollIntoViewContainer: JSString, JSValueCompatible { + case all = "all" + case nearest = "nearest" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ScrollIntoViewOptions: ScrollOptions { -public class ScrollIntoViewOptions: BridgedDictionary { - public convenience init(block: ScrollLogicalPosition, inline: ScrollLogicalPosition) { + public convenience init( + behavior: ScrollBehavior? = nil, + block: ScrollLogicalPosition? = nil, + inline: ScrollLogicalPosition? = nil, + container: ScrollIntoViewContainer? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.behavior] = _toJSValue(behavior) object[Strings.block] = _toJSValue(block) object[Strings.inline] = _toJSValue(inline) - self.init(unsafelyWrapping: object) - } + object[Strings.container] = _toJSValue(container) - public required init(unsafelyWrapping object: JSObject) { - _block = ReadWriteAttribute(jsObject: object, name: Strings.block) - _inline = ReadWriteAttribute(jsObject: object, name: Strings.inline) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var block: ScrollLogicalPosition + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var inline: ScrollLogicalPosition + @inlinable public var block: ScrollLogicalPosition { + get { jsObject[Strings.block].fromJSValue()! } + set { jsObject[Strings.block] = _toJSValue(newValue) } + } + @inlinable public var inline: ScrollLogicalPosition { + get { jsObject[Strings.inline].fromJSValue()! } + set { jsObject[Strings.inline] = _toJSValue(newValue) } + } + @inlinable public var container: ScrollIntoViewContainer { + get { jsObject[Strings.container].fromJSValue()! } + set { jsObject[Strings.container] = _toJSValue(newValue) } + } } - public enum ScrollLogicalPosition: JSString, JSValueCompatible { case start = "start" case center = "center" @@ -15053,74 +16842,66 @@ public enum ScrollLogicalPosition: JSString, JSValueCompatible { case nearest = "nearest" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ScrollOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class ScrollOptions: BridgedDictionary { - public convenience init(behavior: ScrollBehavior) { + public convenience init(behavior: ScrollBehavior? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.behavior] = _toJSValue(behavior) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _behavior = ReadWriteAttribute(jsObject: object, name: Strings.behavior) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var behavior: ScrollBehavior + @inlinable public var behavior: ScrollBehavior { + get { jsObject[Strings.behavior].fromJSValue()! } + set { jsObject[Strings.behavior] = _toJSValue(newValue) } + } } - public enum ScrollRestoration: JSString, JSValueCompatible { case auto = "auto" case manual = "manual" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class ScrollToOptions: ScrollOptions { -public class ScrollToOptions: BridgedDictionary { - public convenience init(left: Double, top: Double) { + public convenience init(behavior: ScrollBehavior? = nil, left: Double? = nil, top: Double? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.behavior] = _toJSValue(behavior) object[Strings.left] = _toJSValue(left) object[Strings.top] = _toJSValue(top) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _left = ReadWriteAttribute(jsObject: object, name: Strings.left) - _top = ReadWriteAttribute(jsObject: object, name: Strings.top) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var left: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var top: Double + @inlinable public var left: Double { + get { jsObject[Strings.left].fromJSValue()! } + set { jsObject[Strings.left] = _toJSValue(newValue) } + } + @inlinable public var top: Double { + get { jsObject[Strings.top].fromJSValue()! } + set { jsObject[Strings.top] = _toJSValue(newValue) } + } } - public enum SelectionMode: JSString, JSValueCompatible { case select = "select" case start = "start" @@ -15128,176 +16909,229 @@ public enum SelectionMode: JSString, JSValueCompatible { case preserve = "preserve" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class ServiceWorker: EventTarget, AbstractWorker { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorker].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorker].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _scriptURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.scriptURL) - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _onstatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstatechange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var scriptURL: String + @inlinable public var scriptURL: String { jsObject[Strings.scriptURL].fromJSValue()! } - @ReadonlyAttribute - public var state: ServiceWorkerState + @inlinable public var state: ServiceWorkerState { jsObject[Strings.state].fromJSValue()! } - @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) { + @inlinable final public func postMessage(message: JSValue, transfer: [JSObject]) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(transfer)]) } - @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { + @inlinable final public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(options)]) } - @ClosureAttribute1Optional - public var onstatechange: EventHandler + @inlinable public var onstatechange: EventHandler { + get { + guard let function = jsObject[Strings.onstatechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstatechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstatechange] = .null + } + } + } } public class ServiceWorkerContainer: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerContainer].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _controller = ReadonlyAttribute(jsObject: jsObject, name: Strings.controller) - _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready) - _oncontrollerchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncontrollerchange) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ServiceWorkerContainer].function } - @ReadonlyAttribute - public var controller: ServiceWorker? + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var ready: JSPromise + @inlinable public var controller: ServiceWorker? { jsObject[Strings.controller].fromJSValue() } - @inlinable public func register(scriptURL: String, options: RegistrationOptions? = nil) -> JSPromise { - let this = jsObject - return this[Strings.register].function!(this: this, arguments: [_toJSValue(scriptURL), _toJSValue(options)]).fromJSValue()! - } + @inlinable public var ready: JSPromise { jsObject[Strings.ready].fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func register(scriptURL: String, options: RegistrationOptions? = nil) async throws -> ServiceWorkerRegistration { + @inlinable final public func register( + scriptURL: String_or_TrustedScriptURL, + options: RegistrationOptions? = nil + ) -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.register].function!(this: this, arguments: [_toJSValue(scriptURL), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! + return this[Strings.register].function!(this: this, arguments: [_toJSValue(scriptURL), _toJSValue(options)]) + .fromJSValue()! } - @inlinable public func getRegistration(clientURL: String? = nil) -> JSPromise { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func register( + scriptURL: String_or_TrustedScriptURL, + options: RegistrationOptions? = nil + ) async throws(JSException) -> ServiceWorkerRegistration { + let this = jsObject + let _promise: JSPromise = this[Strings.register].function!( + this: this, + arguments: [_toJSValue(scriptURL), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable final public func getRegistration(clientURL: String? = nil) -> JSPromise { let this = jsObject return this[Strings.getRegistration].function!(this: this, arguments: [_toJSValue(clientURL)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getRegistration(clientURL: String? = nil) async throws -> ServiceWorkerRegistration? { - let this = jsObject - let _promise: JSPromise = this[Strings.getRegistration].function!(this: this, arguments: [_toJSValue(clientURL)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getRegistration( + clientURL: String? = nil + ) async throws(JSException) -> ServiceWorkerRegistration? { + let this = jsObject + let _promise: JSPromise = this[Strings.getRegistration].function!( + this: this, + arguments: [_toJSValue(clientURL)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func getRegistrations() -> JSPromise { + @inlinable final public func getRegistrations() -> JSPromise { let this = jsObject return this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getRegistrations() async throws -> [ServiceWorkerRegistration] { - let this = jsObject - let _promise: JSPromise = this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getRegistrations() + async throws(JSException) -> [ServiceWorkerRegistration] + { + let this = jsObject + let _promise: JSPromise = this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func startMessages() { + @inlinable final public func startMessages() { let this = jsObject _ = this[Strings.startMessages].function!(this: this, arguments: []) } - @ClosureAttribute1Optional - public var oncontrollerchange: EventHandler + @inlinable public var oncontrollerchange: EventHandler { + get { + guard let function = jsObject[Strings.oncontrollerchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncontrollerchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncontrollerchange] = .null + } + } + } - @ClosureAttribute1Optional - public var onmessage: EventHandler + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } + } - @ClosureAttribute1Optional - public var onmessageerror: EventHandler + @inlinable public var onmessageerror: EventHandler { + get { + guard let function = jsObject[Strings.onmessageerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessageerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessageerror] = .null + } + } + } } public class ServiceWorkerRegistration: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerRegistration].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _installing = ReadonlyAttribute(jsObject: jsObject, name: Strings.installing) - _waiting = ReadonlyAttribute(jsObject: jsObject, name: Strings.waiting) - _active = ReadonlyAttribute(jsObject: jsObject, name: Strings.active) - _navigationPreload = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigationPreload) - _scope = ReadonlyAttribute(jsObject: jsObject, name: Strings.scope) - _updateViaCache = ReadonlyAttribute(jsObject: jsObject, name: Strings.updateViaCache) - _onupdatefound = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onupdatefound) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ServiceWorkerRegistration].function } - @ReadonlyAttribute - public var installing: ServiceWorker? + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var waiting: ServiceWorker? + @inlinable public var installing: ServiceWorker? { jsObject[Strings.installing].fromJSValue() } - @ReadonlyAttribute - public var active: ServiceWorker? + @inlinable public var waiting: ServiceWorker? { jsObject[Strings.waiting].fromJSValue() } - @ReadonlyAttribute - public var navigationPreload: NavigationPreloadManager + @inlinable public var active: ServiceWorker? { jsObject[Strings.active].fromJSValue() } - @ReadonlyAttribute - public var scope: String + @inlinable public var navigationPreload: NavigationPreloadManager { + jsObject[Strings.navigationPreload].fromJSValue()! + } - @ReadonlyAttribute - public var updateViaCache: ServiceWorkerUpdateViaCache + @inlinable public var scope: String { jsObject[Strings.scope].fromJSValue()! } - @inlinable public func update() -> JSPromise { - let this = jsObject - return this[Strings.update].function!(this: this, arguments: []).fromJSValue()! + @inlinable public var updateViaCache: ServiceWorkerUpdateViaCache { + jsObject[Strings.updateViaCache].fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func update() async throws { + @inlinable final public func update() -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.update].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value + return this[Strings.update].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func unregister() -> JSPromise { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func update() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.update].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif + + @inlinable final public func unregister() -> JSPromise { let this = jsObject return this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func unregister() async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func unregister() + async throws(JSException) -> Bool + { + let this = jsObject + let _promise: JSPromise = this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @ClosureAttribute1Optional - public var onupdatefound: EventHandler + @inlinable public var onupdatefound: EventHandler { + get { + guard let function = jsObject[Strings.onupdatefound].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onupdatefound] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onupdatefound] = .null + } + } + } } public enum ServiceWorkerState: JSString, JSValueCompatible { @@ -15309,529 +17143,652 @@ public enum ServiceWorkerState: JSString, JSValueCompatible { case redundant = "redundant" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ServiceWorkerUpdateViaCache: JSString, JSValueCompatible { case imports = "imports" case all = "all" case none = "none" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - open class ShadowRoot: DocumentFragment, DocumentOrShadowRoot { - @inlinable override open class var constructor: JSFunction? { JSObject.global[Strings.ShadowRoot].function } + @inlinable open override class var constructor: JSFunction? { JSObject.global[Strings.ShadowRoot].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _mode = ReadonlyAttribute(jsObject: jsObject, name: Strings.mode) - _delegatesFocus = ReadonlyAttribute(jsObject: jsObject, name: Strings.delegatesFocus) - _slotAssignment = ReadonlyAttribute(jsObject: jsObject, name: Strings.slotAssignment) - _host = ReadonlyAttribute(jsObject: jsObject, name: Strings.host) - _onslotchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onslotchange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var mode: ShadowRootMode { jsObject[Strings.mode].fromJSValue()! } + + @inlinable public var delegatesFocus: Bool { jsObject[Strings.delegatesFocus].fromJSValue()! } + + @inlinable public var slotAssignment: SlotAssignmentMode { jsObject[Strings.slotAssignment].fromJSValue()! } + + @inlinable public var clonable: Bool { jsObject[Strings.clonable].fromJSValue()! } + + @inlinable public var serializable: Bool { jsObject[Strings.serializable].fromJSValue()! } - @ReadonlyAttribute - public var mode: ShadowRootMode + @inlinable public var host: Element { jsObject[Strings.host].fromJSValue()! } - @ReadonlyAttribute - public var delegatesFocus: Bool + @inlinable public var onslotchange: EventHandler { + get { + guard let function = jsObject[Strings.onslotchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onslotchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onslotchange] = .null + } + } + } - @ReadonlyAttribute - public var slotAssignment: SlotAssignmentMode + @inlinable final public func setHTMLUnsafe(html: String_or_TrustedHTML) { + let this = jsObject + _ = this[Strings.setHTMLUnsafe].function!(this: this, arguments: [_toJSValue(html)]) + } - @ReadonlyAttribute - public var host: Element + @inlinable final public func getHTML(options: GetHTMLOptions? = nil) -> String { + let this = jsObject + return this[Strings.getHTML].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! + } - @ClosureAttribute1Optional - public var onslotchange: EventHandler + @inlinable public var innerHTML: String_or_TrustedHTML { + get { jsObject[Strings.innerHTML].fromJSValue()! } + set { jsObject[Strings.innerHTML] = _toJSValue(newValue) } + } } -public class ShadowRootInit: BridgedDictionary { - public convenience init(mode: ShadowRootMode, delegatesFocus: Bool, slotAssignment: SlotAssignmentMode) { +open class ShadowRootInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + mode: ShadowRootMode, + delegatesFocus: Bool? = nil, + slotAssignment: SlotAssignmentMode? = nil, + clonable: Bool? = nil, + serializable: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mode] = _toJSValue(mode) object[Strings.delegatesFocus] = _toJSValue(delegatesFocus) object[Strings.slotAssignment] = _toJSValue(slotAssignment) - self.init(unsafelyWrapping: object) - } + object[Strings.clonable] = _toJSValue(clonable) + object[Strings.serializable] = _toJSValue(serializable) - public required init(unsafelyWrapping object: JSObject) { - _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode) - _delegatesFocus = ReadWriteAttribute(jsObject: object, name: Strings.delegatesFocus) - _slotAssignment = ReadWriteAttribute(jsObject: object, name: Strings.slotAssignment) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var mode: ShadowRootMode - - @ReadWriteAttribute - public var delegatesFocus: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var slotAssignment: SlotAssignmentMode + @inlinable public var mode: ShadowRootMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } + @inlinable public var delegatesFocus: Bool { + get { jsObject[Strings.delegatesFocus].fromJSValue()! } + set { jsObject[Strings.delegatesFocus] = _toJSValue(newValue) } + } + @inlinable public var slotAssignment: SlotAssignmentMode { + get { jsObject[Strings.slotAssignment].fromJSValue()! } + set { jsObject[Strings.slotAssignment] = _toJSValue(newValue) } + } + @inlinable public var clonable: Bool { + get { jsObject[Strings.clonable].fromJSValue()! } + set { jsObject[Strings.clonable] = _toJSValue(newValue) } + } + @inlinable public var serializable: Bool { + get { jsObject[Strings.serializable].fromJSValue()! } + set { jsObject[Strings.serializable] = _toJSValue(newValue) } + } } - public enum ShadowRootMode: JSString, JSValueCompatible { case open = "open" case closed = "closed" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class SharedWorker: EventTarget, AbstractWorker { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SharedWorker].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SharedWorker].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _port = ReadonlyAttribute(jsObject: jsObject, name: Strings.port) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(scriptURL: String, options: String_or_WorkerOptions? = nil) { + @inlinable public convenience init(scriptURL: String_or_TrustedScriptURL, options: String_or_WorkerOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(scriptURL), _toJSValue(options)])) } - @ReadonlyAttribute - public var port: MessagePort + @inlinable public var port: MessagePort { jsObject[Strings.port].fromJSValue()! } } +open class ShowPopoverOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(source: HTMLElement? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.source] = _toJSValue(source) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var source: HTMLElement { + get { jsObject[Strings.source].fromJSValue()! } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } +} public enum SlotAssignmentMode: JSString, JSValueCompatible { case manual = "manual" case named = "named" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol Slottable: JSBridgedClass {} -public extension Slottable { - @inlinable var assignedSlot: HTMLSlotElement? { jsObject[Strings.assignedSlot].fromJSValue() } +extension Slottable { + @inlinable public var assignedSlot: HTMLSlotElement? { jsObject[Strings.assignedSlot].fromJSValue() } } - public class SourceBuffer: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SourceBuffer].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SourceBuffer].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _mode = ReadWriteAttribute(jsObject: jsObject, name: Strings.mode) - _updating = ReadonlyAttribute(jsObject: jsObject, name: Strings.updating) - _buffered = ReadonlyAttribute(jsObject: jsObject, name: Strings.buffered) - _timestampOffset = ReadWriteAttribute(jsObject: jsObject, name: Strings.timestampOffset) - _audioTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioTracks) - _videoTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.videoTracks) - _textTracks = ReadonlyAttribute(jsObject: jsObject, name: Strings.textTracks) - _appendWindowStart = ReadWriteAttribute(jsObject: jsObject, name: Strings.appendWindowStart) - _appendWindowEnd = ReadWriteAttribute(jsObject: jsObject, name: Strings.appendWindowEnd) - _onupdatestart = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onupdatestart) - _onupdate = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onupdate) - _onupdateend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onupdateend) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - _onabort = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onabort) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var mode: AppendMode + @inlinable public var mode: AppendMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var updating: Bool + @inlinable public var updating: Bool { jsObject[Strings.updating].fromJSValue()! } - @ReadonlyAttribute - public var buffered: TimeRanges + @inlinable public var buffered: TimeRanges { jsObject[Strings.buffered].fromJSValue()! } - @ReadWriteAttribute - public var timestampOffset: Double + @inlinable public var timestampOffset: Double { + get { jsObject[Strings.timestampOffset].fromJSValue()! } + set { jsObject[Strings.timestampOffset] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var audioTracks: AudioTrackList + @inlinable public var audioTracks: AudioTrackList { jsObject[Strings.audioTracks].fromJSValue()! } - @ReadonlyAttribute - public var videoTracks: VideoTrackList + @inlinable public var videoTracks: VideoTrackList { jsObject[Strings.videoTracks].fromJSValue()! } - @ReadonlyAttribute - public var textTracks: TextTrackList + @inlinable public var textTracks: TextTrackList { jsObject[Strings.textTracks].fromJSValue()! } - @ReadWriteAttribute - public var appendWindowStart: Double + @inlinable public var appendWindowStart: Double { + get { jsObject[Strings.appendWindowStart].fromJSValue()! } + set { jsObject[Strings.appendWindowStart] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var appendWindowEnd: Double + @inlinable public var appendWindowEnd: Double { + get { jsObject[Strings.appendWindowEnd].fromJSValue()! } + set { jsObject[Strings.appendWindowEnd] = _toJSValue(newValue) } + } - @ClosureAttribute1Optional - public var onupdatestart: EventHandler + @inlinable public var onupdatestart: EventHandler { + get { + guard let function = jsObject[Strings.onupdatestart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onupdatestart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onupdatestart] = .null + } + } + } - @ClosureAttribute1Optional - public var onupdate: EventHandler + @inlinable public var onupdate: EventHandler { + get { + guard let function = jsObject[Strings.onupdate].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onupdate] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onupdate] = .null + } + } + } - @ClosureAttribute1Optional - public var onupdateend: EventHandler + @inlinable public var onupdateend: EventHandler { + get { + guard let function = jsObject[Strings.onupdateend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onupdateend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onupdateend] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @ClosureAttribute1Optional - public var onabort: EventHandler + @inlinable public var onabort: EventHandler { + get { + guard let function = jsObject[Strings.onabort].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onabort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onabort] = .null + } + } + } - @inlinable public func appendBuffer(data: BufferSource) { + @inlinable final public func appendBuffer(data: BufferSource) { let this = jsObject _ = this[Strings.appendBuffer].function!(this: this, arguments: [_toJSValue(data)]) } - @inlinable public func abort() { + @inlinable final public func abort() { let this = jsObject _ = this[Strings.abort].function!(this: this, arguments: []) } - @inlinable public func changeType(type: String) { + @inlinable final public func changeType(type: String) { let this = jsObject _ = this[Strings.changeType].function!(this: this, arguments: [_toJSValue(type)]) } - @inlinable public func remove(start: Double, end: Double) { + @inlinable final public func remove(start: Double, end: Double) { let this = jsObject _ = this[Strings.remove].function!(this: this, arguments: [_toJSValue(start), _toJSValue(end)]) } } public class SourceBufferList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SourceBufferList].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _onaddsourcebuffer = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddsourcebuffer) - _onremovesourcebuffer = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovesourcebuffer) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SourceBufferList].function } - @ReadonlyAttribute - public var length: UInt32 + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ClosureAttribute1Optional - public var onaddsourcebuffer: EventHandler + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ClosureAttribute1Optional - public var onremovesourcebuffer: EventHandler + @inlinable public var onaddsourcebuffer: EventHandler { + get { + guard let function = jsObject[Strings.onaddsourcebuffer].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaddsourcebuffer] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaddsourcebuffer] = .null + } + } + } - @inlinable public subscript(key: Int) -> SourceBuffer { - jsObject[key].fromJSValue()! + @inlinable public var onremovesourcebuffer: EventHandler { + get { + guard let function = jsObject[Strings.onremovesourcebuffer].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremovesourcebuffer] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremovesourcebuffer] = .null + } + } } + + @inlinable public subscript(key: Int) -> SourceBuffer { jsObject[key].fromJSValue()! } } public class StaticRange: AbstractRange { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StaticRange].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.StaticRange].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(init: StaticRangeInit) { + @inlinable public convenience init(`init`: StaticRangeInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } } -public class StaticRangeInit: BridgedDictionary { +open class StaticRangeInit: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(startContainer: Node, startOffset: UInt32, endContainer: Node, endOffset: UInt32) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.startContainer] = _toJSValue(startContainer) object[Strings.startOffset] = _toJSValue(startOffset) object[Strings.endContainer] = _toJSValue(endContainer) object[Strings.endOffset] = _toJSValue(endOffset) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _startContainer = ReadWriteAttribute(jsObject: object, name: Strings.startContainer) - _startOffset = ReadWriteAttribute(jsObject: object, name: Strings.startOffset) - _endContainer = ReadWriteAttribute(jsObject: object, name: Strings.endContainer) - _endOffset = ReadWriteAttribute(jsObject: object, name: Strings.endOffset) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var startContainer: Node - - @ReadWriteAttribute - public var startOffset: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var endContainer: Node - - @ReadWriteAttribute - public var endOffset: UInt32 + @inlinable public var startContainer: Node { + get { jsObject[Strings.startContainer].fromJSValue()! } + set { jsObject[Strings.startContainer] = _toJSValue(newValue) } + } + @inlinable public var startOffset: UInt32 { + get { jsObject[Strings.startOffset].fromJSValue()! } + set { jsObject[Strings.startOffset] = _toJSValue(newValue) } + } + @inlinable public var endContainer: Node { + get { jsObject[Strings.endContainer].fromJSValue()! } + set { jsObject[Strings.endContainer] = _toJSValue(newValue) } + } + @inlinable public var endOffset: UInt32 { + get { jsObject[Strings.endOffset].fromJSValue()! } + set { jsObject[Strings.endOffset] = _toJSValue(newValue) } + } } - public class Storage: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Storage].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public func key(index: UInt32) -> String? { + @inlinable final public func key(index: UInt32) -> String? { let this = jsObject return this[Strings.key].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } - @inlinable public func getItem(key: String) -> String? { + @inlinable final public func getItem(key: String) -> String? { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(key)]).fromJSValue() } @inlinable public subscript(key: String) -> String? { - get { - jsObject[key].fromJSValue() - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue() } + set { jsObject[key] = _toJSValue(newValue) } } @inlinable public func removeValue(forKey key: String) { _ = JSObject.global.Reflect.deleteProperty(jsObject, _toJSValue(key)) } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } } public class StorageEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StorageEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.StorageEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _key = ReadonlyAttribute(jsObject: jsObject, name: Strings.key) - _oldValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.oldValue) - _newValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.newValue) - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _storageArea = ReadonlyAttribute(jsObject: jsObject, name: Strings.storageArea) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: StorageEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var key: String? + @inlinable public var key: String? { jsObject[Strings.key].fromJSValue() } - @ReadonlyAttribute - public var oldValue: String? + @inlinable public var oldValue: String? { jsObject[Strings.oldValue].fromJSValue() } - @ReadonlyAttribute - public var newValue: String? + @inlinable public var newValue: String? { jsObject[Strings.newValue].fromJSValue() } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } - @ReadonlyAttribute - public var storageArea: Storage? + @inlinable public var storageArea: Storage? { jsObject[Strings.storageArea].fromJSValue() } - @inlinable public func initStorageEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, key: String? = nil, oldValue: String? = nil, newValue: String? = nil, url: String? = nil, storageArea: Storage? = nil) { + @inlinable final public func initStorageEvent( + type: String, + bubbles: Bool? = nil, + cancelable: Bool? = nil, + key: String? = nil, + oldValue: String? = nil, + newValue: String? = nil, + url: String? = nil, + storageArea: Storage? = nil + ) { let this = jsObject - _ = this[Strings.initStorageEvent].function!(this: this, arguments: [_toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(key), _toJSValue(oldValue), _toJSValue(newValue), _toJSValue(url), _toJSValue(storageArea)]) + _ = this[Strings.initStorageEvent].function!( + this: this, + arguments: [ + _toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(key), _toJSValue(oldValue), + _toJSValue(newValue), _toJSValue(url), _toJSValue(storageArea), + ] + ) } } -public class StorageEventInit: BridgedDictionary { - public convenience init(key: String?, oldValue: String?, newValue: String?, url: String, storageArea: Storage?) { +open class StorageEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + key: String?, + oldValue: String?, + newValue: String?, + url: String? = nil, + storageArea: Storage? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.key] = _toJSValue(key) object[Strings.oldValue] = _toJSValue(oldValue) object[Strings.newValue] = _toJSValue(newValue) object[Strings.url] = _toJSValue(url) object[Strings.storageArea] = _toJSValue(storageArea) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _key = ReadWriteAttribute(jsObject: object, name: Strings.key) - _oldValue = ReadWriteAttribute(jsObject: object, name: Strings.oldValue) - _newValue = ReadWriteAttribute(jsObject: object, name: Strings.newValue) - _url = ReadWriteAttribute(jsObject: object, name: Strings.url) - _storageArea = ReadWriteAttribute(jsObject: object, name: Strings.storageArea) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var key: String? - - @ReadWriteAttribute - public var oldValue: String? - - @ReadWriteAttribute - public var newValue: String? - - @ReadWriteAttribute - public var url: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var storageArea: Storage? + @inlinable public var key: String? { + get { jsObject[Strings.key].fromJSValue() } + set { jsObject[Strings.key] = _toJSValue(newValue) } + } + @inlinable public var oldValue: String? { + get { jsObject[Strings.oldValue].fromJSValue() } + set { jsObject[Strings.oldValue] = _toJSValue(newValue) } + } + @inlinable public var newValue: String? { + get { jsObject[Strings.newValue].fromJSValue() } + set { jsObject[Strings.newValue] = _toJSValue(newValue) } + } + @inlinable public var url: String { + get { jsObject[Strings.url].fromJSValue()! } + set { jsObject[Strings.url] = _toJSValue(newValue) } + } + @inlinable public var storageArea: Storage? { + get { jsObject[Strings.storageArea].fromJSValue() } + set { jsObject[Strings.storageArea] = _toJSValue(newValue) } + } } +open class StreamPipeOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class StreamPipeOptions: BridgedDictionary { - public convenience init(preventClose: Bool, preventAbort: Bool, preventCancel: Bool, signal: AbortSignal) { + public convenience init( + preventClose: Bool? = nil, + preventAbort: Bool? = nil, + preventCancel: Bool? = nil, + signal: AbortSignal? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.preventClose] = _toJSValue(preventClose) object[Strings.preventAbort] = _toJSValue(preventAbort) object[Strings.preventCancel] = _toJSValue(preventCancel) object[Strings.signal] = _toJSValue(signal) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _preventClose = ReadWriteAttribute(jsObject: object, name: Strings.preventClose) - _preventAbort = ReadWriteAttribute(jsObject: object, name: Strings.preventAbort) - _preventCancel = ReadWriteAttribute(jsObject: object, name: Strings.preventCancel) - _signal = ReadWriteAttribute(jsObject: object, name: Strings.signal) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var preventClose: Bool - - @ReadWriteAttribute - public var preventAbort: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var preventCancel: Bool - - @ReadWriteAttribute - public var signal: AbortSignal + @inlinable public var preventClose: Bool { + get { jsObject[Strings.preventClose].fromJSValue()! } + set { jsObject[Strings.preventClose] = _toJSValue(newValue) } + } + @inlinable public var preventAbort: Bool { + get { jsObject[Strings.preventAbort].fromJSValue()! } + set { jsObject[Strings.preventAbort] = _toJSValue(newValue) } + } + @inlinable public var preventCancel: Bool { + get { jsObject[Strings.preventCancel].fromJSValue()! } + set { jsObject[Strings.preventCancel] = _toJSValue(newValue) } + } + @inlinable public var signal: AbortSignal { + get { jsObject[Strings.signal].fromJSValue()! } + set { jsObject[Strings.signal] = _toJSValue(newValue) } + } } +open class StructuredSerializeOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class StructuredSerializeOptions: BridgedDictionary { - public convenience init(transfer: [JSObject]) { + public convenience init(transfer: [JSObject]? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.transfer] = _toJSValue(transfer) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var transfer: [JSObject] + @inlinable public var transfer: [JSObject] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } } - public class SubmitEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SubmitEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SubmitEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _submitter = ReadonlyAttribute(jsObject: jsObject, name: Strings.submitter) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: SubmitEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var submitter: HTMLElement? + @inlinable public var submitter: HTMLElement? { jsObject[Strings.submitter].fromJSValue() } } -public class SubmitEventInit: BridgedDictionary { - public convenience init(submitter: HTMLElement?) { +open class SubmitEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + submitter: HTMLElement? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.submitter] = _toJSValue(submitter) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _submitter = ReadWriteAttribute(jsObject: object, name: Strings.submitter) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var submitter: HTMLElement? + @inlinable public var submitter: HTMLElement? { + get { jsObject[Strings.submitter].fromJSValue() } + set { jsObject[Strings.submitter] = _toJSValue(newValue) } + } } +open class SvcOutputMetadata: JSDictionaryCompatible { + public let jsObject: JSObject -public class SvcOutputMetadata: BridgedDictionary { - public convenience init(temporalLayerId: UInt32) { + public convenience init(temporalLayerId: UInt32? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.temporalLayerId] = _toJSValue(temporalLayerId) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _temporalLayerId = ReadWriteAttribute(jsObject: object, name: Strings.temporalLayerId) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var temporalLayerId: UInt32 + @inlinable public var temporalLayerId: UInt32 { + get { jsObject[Strings.temporalLayerId].fromJSValue()! } + set { jsObject[Strings.temporalLayerId] = _toJSValue(newValue) } + } } - public class Text: CharacterData, Slottable, GeometryUtils { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Text].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Text].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _wholeText = ReadonlyAttribute(jsObject: jsObject, name: Strings.wholeText) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(data: String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(data)])) } - @inlinable public func splitText(offset: UInt32) -> Self { + @inlinable final public func splitText(offset: UInt32) -> Text { let this = jsObject return this[Strings.splitText].function!(this: this, arguments: [_toJSValue(offset)]).fromJSValue()! } - @ReadonlyAttribute - public var wholeText: String + @inlinable public var wholeText: String { jsObject[Strings.wholeText].fromJSValue()! } +} + +public class TextEvent: UIEvent { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TextEvent].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var data: String { jsObject[Strings.data].fromJSValue()! } + + @inlinable final public func initTextEvent( + type: String, + bubbles: Bool? = nil, + cancelable: Bool? = nil, + view: Window? = nil, + data: String? = nil + ) { + let this = jsObject + _ = this[Strings.initTextEvent].function!( + this: this, + arguments: [ + _toJSValue(type), _toJSValue(bubbles), _toJSValue(cancelable), _toJSValue(view), _toJSValue(data), + ] + ) + } } public class TextMetrics: JSBridgedClass { @@ -15839,151 +17796,140 @@ public class TextMetrics: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _actualBoundingBoxLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.actualBoundingBoxLeft) - _actualBoundingBoxRight = ReadonlyAttribute(jsObject: jsObject, name: Strings.actualBoundingBoxRight) - _fontBoundingBoxAscent = ReadonlyAttribute(jsObject: jsObject, name: Strings.fontBoundingBoxAscent) - _fontBoundingBoxDescent = ReadonlyAttribute(jsObject: jsObject, name: Strings.fontBoundingBoxDescent) - _actualBoundingBoxAscent = ReadonlyAttribute(jsObject: jsObject, name: Strings.actualBoundingBoxAscent) - _actualBoundingBoxDescent = ReadonlyAttribute(jsObject: jsObject, name: Strings.actualBoundingBoxDescent) - _emHeightAscent = ReadonlyAttribute(jsObject: jsObject, name: Strings.emHeightAscent) - _emHeightDescent = ReadonlyAttribute(jsObject: jsObject, name: Strings.emHeightDescent) - _hangingBaseline = ReadonlyAttribute(jsObject: jsObject, name: Strings.hangingBaseline) - _alphabeticBaseline = ReadonlyAttribute(jsObject: jsObject, name: Strings.alphabeticBaseline) - _ideographicBaseline = ReadonlyAttribute(jsObject: jsObject, name: Strings.ideographicBaseline) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var width: Double + @inlinable public var width: Double { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var actualBoundingBoxLeft: Double + @inlinable public var actualBoundingBoxLeft: Double { jsObject[Strings.actualBoundingBoxLeft].fromJSValue()! } - @ReadonlyAttribute - public var actualBoundingBoxRight: Double + @inlinable public var actualBoundingBoxRight: Double { jsObject[Strings.actualBoundingBoxRight].fromJSValue()! } - @ReadonlyAttribute - public var fontBoundingBoxAscent: Double + @inlinable public var fontBoundingBoxAscent: Double { jsObject[Strings.fontBoundingBoxAscent].fromJSValue()! } - @ReadonlyAttribute - public var fontBoundingBoxDescent: Double + @inlinable public var fontBoundingBoxDescent: Double { jsObject[Strings.fontBoundingBoxDescent].fromJSValue()! } - @ReadonlyAttribute - public var actualBoundingBoxAscent: Double + @inlinable public var actualBoundingBoxAscent: Double { jsObject[Strings.actualBoundingBoxAscent].fromJSValue()! } - @ReadonlyAttribute - public var actualBoundingBoxDescent: Double + @inlinable public var actualBoundingBoxDescent: Double { jsObject[Strings.actualBoundingBoxDescent].fromJSValue()! } - @ReadonlyAttribute - public var emHeightAscent: Double + @inlinable public var emHeightAscent: Double { jsObject[Strings.emHeightAscent].fromJSValue()! } - @ReadonlyAttribute - public var emHeightDescent: Double + @inlinable public var emHeightDescent: Double { jsObject[Strings.emHeightDescent].fromJSValue()! } - @ReadonlyAttribute - public var hangingBaseline: Double + @inlinable public var hangingBaseline: Double { jsObject[Strings.hangingBaseline].fromJSValue()! } - @ReadonlyAttribute - public var alphabeticBaseline: Double + @inlinable public var alphabeticBaseline: Double { jsObject[Strings.alphabeticBaseline].fromJSValue()! } - @ReadonlyAttribute - public var ideographicBaseline: Double + @inlinable public var ideographicBaseline: Double { jsObject[Strings.ideographicBaseline].fromJSValue()! } } public class TextTrack: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrack].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TextTrack].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _language = ReadonlyAttribute(jsObject: jsObject, name: Strings.language) - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _inBandMetadataTrackDispatchType = ReadonlyAttribute(jsObject: jsObject, name: Strings.inBandMetadataTrackDispatchType) - _mode = ReadWriteAttribute(jsObject: jsObject, name: Strings.mode) - _cues = ReadonlyAttribute(jsObject: jsObject, name: Strings.cues) - _activeCues = ReadonlyAttribute(jsObject: jsObject, name: Strings.activeCues) - _oncuechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncuechange) - _sourceBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.sourceBuffer) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var kind: TextTrackKind + @inlinable public var kind: TextTrackKind { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var label: String + @inlinable public var label: String { jsObject[Strings.label].fromJSValue()! } - @ReadonlyAttribute - public var language: String + @inlinable public var language: String { jsObject[Strings.language].fromJSValue()! } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var inBandMetadataTrackDispatchType: String + @inlinable public var inBandMetadataTrackDispatchType: String { + jsObject[Strings.inBandMetadataTrackDispatchType].fromJSValue()! + } - @ReadWriteAttribute - public var mode: TextTrackMode + @inlinable public var mode: TextTrackMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var cues: TextTrackCueList? + @inlinable public var cues: TextTrackCueList? { jsObject[Strings.cues].fromJSValue() } - @ReadonlyAttribute - public var activeCues: TextTrackCueList? + @inlinable public var activeCues: TextTrackCueList? { jsObject[Strings.activeCues].fromJSValue() } - @inlinable public func addCue(cue: TextTrackCue) { + @inlinable final public func addCue(cue: TextTrackCue) { let this = jsObject _ = this[Strings.addCue].function!(this: this, arguments: [_toJSValue(cue)]) } - @inlinable public func removeCue(cue: TextTrackCue) { + @inlinable final public func removeCue(cue: TextTrackCue) { let this = jsObject _ = this[Strings.removeCue].function!(this: this, arguments: [_toJSValue(cue)]) } - @ClosureAttribute1Optional - public var oncuechange: EventHandler + @inlinable public var oncuechange: EventHandler { + get { + guard let function = jsObject[Strings.oncuechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncuechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncuechange] = .null + } + } + } - @ReadonlyAttribute - public var sourceBuffer: SourceBuffer? + @inlinable public var sourceBuffer: SourceBuffer? { jsObject[Strings.sourceBuffer].fromJSValue() } } public class TextTrackCue: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCue].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCue].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track) - _id = ReadWriteAttribute(jsObject: jsObject, name: Strings.id) - _startTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.startTime) - _endTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.endTime) - _pauseOnExit = ReadWriteAttribute(jsObject: jsObject, name: Strings.pauseOnExit) - _onenter = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onenter) - _onexit = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onexit) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var track: TextTrack? + @inlinable public var track: TextTrack? { jsObject[Strings.track].fromJSValue() } - @ReadWriteAttribute - public var id: String + @inlinable public var id: String { + get { jsObject[Strings.id].fromJSValue()! } + set { jsObject[Strings.id] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var startTime: Double + @inlinable public var startTime: Double { + get { jsObject[Strings.startTime].fromJSValue()! } + set { jsObject[Strings.startTime] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var endTime: Double + @inlinable public var endTime: Double { + get { jsObject[Strings.endTime].fromJSValue()! } + set { jsObject[Strings.endTime] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pauseOnExit: Bool + @inlinable public var pauseOnExit: Bool { + get { jsObject[Strings.pauseOnExit].fromJSValue()! } + set { jsObject[Strings.pauseOnExit] = _toJSValue(newValue) } + } - @ClosureAttribute1Optional - public var onenter: EventHandler + @inlinable public var onenter: EventHandler { + get { + guard let function = jsObject[Strings.onenter].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onenter] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onenter] = .null + } + } + } - @ClosureAttribute1Optional - public var onexit: EventHandler + @inlinable public var onexit: EventHandler { + get { + guard let function = jsObject[Strings.onexit].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onexit] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onexit] = .null + } + } + } } public class TextTrackCueList: JSBridgedClass { @@ -15991,19 +17937,13 @@ public class TextTrackCueList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> TextTrackCue { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> TextTrackCue { jsObject[key].fromJSValue()! } - @inlinable public func getCueById(id: String) -> TextTrackCue? { + @inlinable final public func getCueById(id: String) -> TextTrackCue? { let this = jsObject return this[Strings.getCueById].function!(this: this, arguments: [_toJSValue(id)]).fromJSValue() } @@ -16017,50 +17957,69 @@ public enum TextTrackKind: JSString, JSValueCompatible { case metadata = "metadata" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class TextTrackList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TextTrackList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) - _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> TextTrack { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> TextTrack { jsObject[key].fromJSValue()! } - @inlinable public func getTrackById(id: String) -> TextTrack? { + @inlinable final public func getTrackById(id: String) -> TextTrack? { let this = jsObject return this[Strings.getTrackById].function!(this: this, arguments: [_toJSValue(id)]).fromJSValue() } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } - @ClosureAttribute1Optional - public var onaddtrack: EventHandler + @inlinable public var onaddtrack: EventHandler { + get { + guard let function = jsObject[Strings.onaddtrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaddtrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaddtrack] = .null + } + } + } - @ClosureAttribute1Optional - public var onremovetrack: EventHandler + @inlinable public var onremovetrack: EventHandler { + get { + guard let function = jsObject[Strings.onremovetrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremovetrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremovetrack] = .null + } + } + } } public enum TextTrackMode: JSString, JSValueCompatible { @@ -16069,235 +18028,246 @@ public enum TextTrackMode: JSString, JSValueCompatible { case showing = "showing" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class TimeRanges: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TimeRanges].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public func start(index: UInt32) -> Double { + @inlinable final public func start(index: UInt32) -> Double { let this = jsObject return this[Strings.start].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func end(index: UInt32) -> Double { + @inlinable final public func end(index: UInt32) -> Double { let this = jsObject return this[Strings.end].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } } public class ToggleEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ToggleEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.ToggleEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _oldState = ReadonlyAttribute(jsObject: jsObject, name: Strings.oldState) - _newState = ReadonlyAttribute(jsObject: jsObject, name: Strings.newState) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: ToggleEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var oldState: String + @inlinable public var oldState: String { jsObject[Strings.oldState].fromJSValue()! } - @ReadonlyAttribute - public var newState: String + @inlinable public var newState: String { jsObject[Strings.newState].fromJSValue()! } } -public class ToggleEventInit: BridgedDictionary { - public convenience init(oldState: String, newState: String) { +open class ToggleEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + oldState: String? = nil, + newState: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.oldState] = _toJSValue(oldState) object[Strings.newState] = _toJSValue(newState) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _oldState = ReadWriteAttribute(jsObject: object, name: Strings.oldState) - _newState = ReadWriteAttribute(jsObject: object, name: Strings.newState) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var oldState: String { + get { jsObject[Strings.oldState].fromJSValue()! } + set { jsObject[Strings.oldState] = _toJSValue(newValue) } + } + @inlinable public var newState: String { + get { jsObject[Strings.newState].fromJSValue()! } + set { jsObject[Strings.newState] = _toJSValue(newValue) } + } +} +open class TogglePopoverOptions: ShowPopoverOptions { + + public convenience init(source: HTMLElement? = nil, force: Bool? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.source] = _toJSValue(source) + object[Strings.force] = _toJSValue(force) + + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var oldState: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var newState: String + @inlinable public var force: Bool { + get { jsObject[Strings.force].fromJSValue()! } + set { jsObject[Strings.force] = _toJSValue(newValue) } + } } - public class Touch: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Touch].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _identifier = ReadonlyAttribute(jsObject: jsObject, name: Strings.identifier) - _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target) - _screenX = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenX) - _screenY = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenY) - _clientX = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientX) - _clientY = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientY) - _pageX = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageX) - _pageY = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageY) - _radiusX = ReadonlyAttribute(jsObject: jsObject, name: Strings.radiusX) - _radiusY = ReadonlyAttribute(jsObject: jsObject, name: Strings.radiusY) - _rotationAngle = ReadonlyAttribute(jsObject: jsObject, name: Strings.rotationAngle) - _force = ReadonlyAttribute(jsObject: jsObject, name: Strings.force) - _altitudeAngle = ReadonlyAttribute(jsObject: jsObject, name: Strings.altitudeAngle) - _azimuthAngle = ReadonlyAttribute(jsObject: jsObject, name: Strings.azimuthAngle) - _touchType = ReadonlyAttribute(jsObject: jsObject, name: Strings.touchType) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(touchInitDict: TouchInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(touchInitDict)])) } - @ReadonlyAttribute - public var identifier: Int32 + @inlinable public var identifier: Int32 { jsObject[Strings.identifier].fromJSValue()! } - @ReadonlyAttribute - public var target: EventTarget + @inlinable public var target: EventTarget { jsObject[Strings.target].fromJSValue()! } - @ReadonlyAttribute - public var screenX: Double + @inlinable public var screenX: Double { jsObject[Strings.screenX].fromJSValue()! } - @ReadonlyAttribute - public var screenY: Double + @inlinable public var screenY: Double { jsObject[Strings.screenY].fromJSValue()! } - @ReadonlyAttribute - public var clientX: Double + @inlinable public var clientX: Double { jsObject[Strings.clientX].fromJSValue()! } - @ReadonlyAttribute - public var clientY: Double + @inlinable public var clientY: Double { jsObject[Strings.clientY].fromJSValue()! } - @ReadonlyAttribute - public var pageX: Double + @inlinable public var pageX: Double { jsObject[Strings.pageX].fromJSValue()! } - @ReadonlyAttribute - public var pageY: Double + @inlinable public var pageY: Double { jsObject[Strings.pageY].fromJSValue()! } - @ReadonlyAttribute - public var radiusX: Float + @inlinable public var radiusX: Float { jsObject[Strings.radiusX].fromJSValue()! } - @ReadonlyAttribute - public var radiusY: Float + @inlinable public var radiusY: Float { jsObject[Strings.radiusY].fromJSValue()! } - @ReadonlyAttribute - public var rotationAngle: Float + @inlinable public var rotationAngle: Float { jsObject[Strings.rotationAngle].fromJSValue()! } - @ReadonlyAttribute - public var force: Float + @inlinable public var force: Float { jsObject[Strings.force].fromJSValue()! } - @ReadonlyAttribute - public var altitudeAngle: Float + @inlinable public var altitudeAngle: Float { jsObject[Strings.altitudeAngle].fromJSValue()! } - @ReadonlyAttribute - public var azimuthAngle: Float + @inlinable public var azimuthAngle: Float { jsObject[Strings.azimuthAngle].fromJSValue()! } - @ReadonlyAttribute - public var touchType: TouchType + @inlinable public var touchType: TouchType { jsObject[Strings.touchType].fromJSValue()! } } public class TouchEvent: UIEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TouchEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TouchEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _touches = ReadonlyAttribute(jsObject: jsObject, name: Strings.touches) - _targetTouches = ReadonlyAttribute(jsObject: jsObject, name: Strings.targetTouches) - _changedTouches = ReadonlyAttribute(jsObject: jsObject, name: Strings.changedTouches) - _altKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.altKey) - _metaKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.metaKey) - _ctrlKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.ctrlKey) - _shiftKey = ReadonlyAttribute(jsObject: jsObject, name: Strings.shiftKey) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: TouchEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var touches: TouchList + @inlinable public var touches: TouchList { jsObject[Strings.touches].fromJSValue()! } - @ReadonlyAttribute - public var targetTouches: TouchList + @inlinable public var targetTouches: TouchList { jsObject[Strings.targetTouches].fromJSValue()! } - @ReadonlyAttribute - public var changedTouches: TouchList + @inlinable public var changedTouches: TouchList { jsObject[Strings.changedTouches].fromJSValue()! } - @ReadonlyAttribute - public var altKey: Bool + @inlinable public var altKey: Bool { jsObject[Strings.altKey].fromJSValue()! } - @ReadonlyAttribute - public var metaKey: Bool + @inlinable public var metaKey: Bool { jsObject[Strings.metaKey].fromJSValue()! } - @ReadonlyAttribute - public var ctrlKey: Bool + @inlinable public var ctrlKey: Bool { jsObject[Strings.ctrlKey].fromJSValue()! } - @ReadonlyAttribute - public var shiftKey: Bool + @inlinable public var shiftKey: Bool { jsObject[Strings.shiftKey].fromJSValue()! } - @inlinable public subscript(key: String) -> Bool { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: String) -> Bool { jsObject[key].fromJSValue()! } - @inlinable public func getModifierState(keyArg: String) -> Bool { + @inlinable final public func getModifierState(keyArg: String) -> Bool { let this = jsObject return this[Strings.getModifierState].function!(this: this, arguments: [_toJSValue(keyArg)]).fromJSValue()! } } -public class TouchEventInit: BridgedDictionary { - public convenience init(touches: [Touch], targetTouches: [Touch], changedTouches: [Touch]) { +open class TouchEventInit: EventModifierInit { + + public convenience init( + ctrlKey: Bool? = nil, + shiftKey: Bool? = nil, + altKey: Bool? = nil, + metaKey: Bool? = nil, + modifierAltGraph: Bool? = nil, + modifierCapsLock: Bool? = nil, + modifierFn: Bool? = nil, + modifierFnLock: Bool? = nil, + modifierHyper: Bool? = nil, + modifierNumLock: Bool? = nil, + modifierScrollLock: Bool? = nil, + modifierSuper: Bool? = nil, + modifierSymbol: Bool? = nil, + modifierSymbolLock: Bool? = nil, + touches: [Touch]? = nil, + targetTouches: [Touch]? = nil, + changedTouches: [Touch]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ctrlKey] = _toJSValue(ctrlKey) + object[Strings.shiftKey] = _toJSValue(shiftKey) + object[Strings.altKey] = _toJSValue(altKey) + object[Strings.metaKey] = _toJSValue(metaKey) + object[Strings.modifierAltGraph] = _toJSValue(modifierAltGraph) + object[Strings.modifierCapsLock] = _toJSValue(modifierCapsLock) + object[Strings.modifierFn] = _toJSValue(modifierFn) + object[Strings.modifierFnLock] = _toJSValue(modifierFnLock) + object[Strings.modifierHyper] = _toJSValue(modifierHyper) + object[Strings.modifierNumLock] = _toJSValue(modifierNumLock) + object[Strings.modifierScrollLock] = _toJSValue(modifierScrollLock) + object[Strings.modifierSuper] = _toJSValue(modifierSuper) + object[Strings.modifierSymbol] = _toJSValue(modifierSymbol) + object[Strings.modifierSymbolLock] = _toJSValue(modifierSymbolLock) object[Strings.touches] = _toJSValue(touches) object[Strings.targetTouches] = _toJSValue(targetTouches) object[Strings.changedTouches] = _toJSValue(changedTouches) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _touches = ReadWriteAttribute(jsObject: object, name: Strings.touches) - _targetTouches = ReadWriteAttribute(jsObject: object, name: Strings.targetTouches) - _changedTouches = ReadWriteAttribute(jsObject: object, name: Strings.changedTouches) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var touches: [Touch] - - @ReadWriteAttribute - public var targetTouches: [Touch] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var changedTouches: [Touch] + @inlinable public var touches: [Touch] { + get { jsObject[Strings.touches].fromJSValue()! } + set { jsObject[Strings.touches] = _toJSValue(newValue) } + } + @inlinable public var targetTouches: [Touch] { + get { jsObject[Strings.targetTouches].fromJSValue()! } + set { jsObject[Strings.targetTouches] = _toJSValue(newValue) } + } + @inlinable public var changedTouches: [Touch] { + get { jsObject[Strings.changedTouches].fromJSValue()! } + set { jsObject[Strings.changedTouches] = _toJSValue(newValue) } + } } +open class TouchInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class TouchInit: BridgedDictionary { - public convenience init(identifier: Int32, target: EventTarget, clientX: Double, clientY: Double, screenX: Double, screenY: Double, pageX: Double, pageY: Double, radiusX: Float, radiusY: Float, rotationAngle: Float, force: Float, altitudeAngle: Double, azimuthAngle: Double, touchType: TouchType) { + public convenience init( + identifier: Int32, + target: EventTarget, + clientX: Double? = nil, + clientY: Double? = nil, + screenX: Double? = nil, + screenY: Double? = nil, + pageX: Double? = nil, + pageY: Double? = nil, + radiusX: Float? = nil, + radiusY: Float? = nil, + rotationAngle: Float? = nil, + force: Float? = nil, + altitudeAngle: Double? = nil, + azimuthAngle: Double? = nil, + touchType: TouchType? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.identifier] = _toJSValue(identifier) object[Strings.target] = _toJSValue(target) @@ -16314,92 +18284,85 @@ public class TouchInit: BridgedDictionary { object[Strings.altitudeAngle] = _toJSValue(altitudeAngle) object[Strings.azimuthAngle] = _toJSValue(azimuthAngle) object[Strings.touchType] = _toJSValue(touchType) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _identifier = ReadWriteAttribute(jsObject: object, name: Strings.identifier) - _target = ReadWriteAttribute(jsObject: object, name: Strings.target) - _clientX = ReadWriteAttribute(jsObject: object, name: Strings.clientX) - _clientY = ReadWriteAttribute(jsObject: object, name: Strings.clientY) - _screenX = ReadWriteAttribute(jsObject: object, name: Strings.screenX) - _screenY = ReadWriteAttribute(jsObject: object, name: Strings.screenY) - _pageX = ReadWriteAttribute(jsObject: object, name: Strings.pageX) - _pageY = ReadWriteAttribute(jsObject: object, name: Strings.pageY) - _radiusX = ReadWriteAttribute(jsObject: object, name: Strings.radiusX) - _radiusY = ReadWriteAttribute(jsObject: object, name: Strings.radiusY) - _rotationAngle = ReadWriteAttribute(jsObject: object, name: Strings.rotationAngle) - _force = ReadWriteAttribute(jsObject: object, name: Strings.force) - _altitudeAngle = ReadWriteAttribute(jsObject: object, name: Strings.altitudeAngle) - _azimuthAngle = ReadWriteAttribute(jsObject: object, name: Strings.azimuthAngle) - _touchType = ReadWriteAttribute(jsObject: object, name: Strings.touchType) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var identifier: Int32 - - @ReadWriteAttribute - public var target: EventTarget - - @ReadWriteAttribute - public var clientX: Double - - @ReadWriteAttribute - public var clientY: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var screenX: Double - - @ReadWriteAttribute - public var screenY: Double - - @ReadWriteAttribute - public var pageX: Double - - @ReadWriteAttribute - public var pageY: Double - - @ReadWriteAttribute - public var radiusX: Float - - @ReadWriteAttribute - public var radiusY: Float - - @ReadWriteAttribute - public var rotationAngle: Float - - @ReadWriteAttribute - public var force: Float - - @ReadWriteAttribute - public var altitudeAngle: Double - - @ReadWriteAttribute - public var azimuthAngle: Double - - @ReadWriteAttribute - public var touchType: TouchType + @inlinable public var identifier: Int32 { + get { jsObject[Strings.identifier].fromJSValue()! } + set { jsObject[Strings.identifier] = _toJSValue(newValue) } + } + @inlinable public var target: EventTarget { + get { jsObject[Strings.target].fromJSValue()! } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } + @inlinable public var clientX: Double { + get { jsObject[Strings.clientX].fromJSValue()! } + set { jsObject[Strings.clientX] = _toJSValue(newValue) } + } + @inlinable public var clientY: Double { + get { jsObject[Strings.clientY].fromJSValue()! } + set { jsObject[Strings.clientY] = _toJSValue(newValue) } + } + @inlinable public var screenX: Double { + get { jsObject[Strings.screenX].fromJSValue()! } + set { jsObject[Strings.screenX] = _toJSValue(newValue) } + } + @inlinable public var screenY: Double { + get { jsObject[Strings.screenY].fromJSValue()! } + set { jsObject[Strings.screenY] = _toJSValue(newValue) } + } + @inlinable public var pageX: Double { + get { jsObject[Strings.pageX].fromJSValue()! } + set { jsObject[Strings.pageX] = _toJSValue(newValue) } + } + @inlinable public var pageY: Double { + get { jsObject[Strings.pageY].fromJSValue()! } + set { jsObject[Strings.pageY] = _toJSValue(newValue) } + } + @inlinable public var radiusX: Float { + get { jsObject[Strings.radiusX].fromJSValue()! } + set { jsObject[Strings.radiusX] = _toJSValue(newValue) } + } + @inlinable public var radiusY: Float { + get { jsObject[Strings.radiusY].fromJSValue()! } + set { jsObject[Strings.radiusY] = _toJSValue(newValue) } + } + @inlinable public var rotationAngle: Float { + get { jsObject[Strings.rotationAngle].fromJSValue()! } + set { jsObject[Strings.rotationAngle] = _toJSValue(newValue) } + } + @inlinable public var force: Float { + get { jsObject[Strings.force].fromJSValue()! } + set { jsObject[Strings.force] = _toJSValue(newValue) } + } + @inlinable public var altitudeAngle: Double { + get { jsObject[Strings.altitudeAngle].fromJSValue()! } + set { jsObject[Strings.altitudeAngle] = _toJSValue(newValue) } + } + @inlinable public var azimuthAngle: Double { + get { jsObject[Strings.azimuthAngle].fromJSValue()! } + set { jsObject[Strings.azimuthAngle] = _toJSValue(newValue) } + } + @inlinable public var touchType: TouchType { + get { jsObject[Strings.touchType].fromJSValue()! } + set { jsObject[Strings.touchType] = _toJSValue(newValue) } + } } - public class TouchList: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TouchList].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> Touch? { - jsObject[key].fromJSValue() - } + @inlinable public subscript(key: Int) -> Touch? { jsObject[key].fromJSValue() } - @inlinable public func item(index: UInt32) -> Touch? { + @inlinable final public func item(index: UInt32) -> Touch? { let this = jsObject return this[Strings.item].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } @@ -16410,197 +18373,351 @@ public enum TouchType: JSString, JSValueCompatible { case stylus = "stylus" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class TrackEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TrackEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TrackEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: TrackEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var track: AudioTrack_or_TextTrack_or_VideoTrack? + @inlinable public var track: AudioTrack_or_TextTrack_or_VideoTrack? { jsObject[Strings.track].fromJSValue() } } -public class TrackEventInit: BridgedDictionary { - public convenience init(track: AudioTrack_or_TextTrack_or_VideoTrack?) { +open class TrackEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + track: AudioTrack_or_TextTrack_or_VideoTrack? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.track] = _toJSValue(track) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _track = ReadWriteAttribute(jsObject: object, name: Strings.track) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var track: AudioTrack_or_TextTrack_or_VideoTrack? + @inlinable public var track: AudioTrack_or_TextTrack_or_VideoTrack? { + get { jsObject[Strings.track].fromJSValue() } + set { jsObject[Strings.track] = _toJSValue(newValue) } + } } - public class TransformStream: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStream].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _readable = ReadonlyAttribute(jsObject: jsObject, name: Strings.readable) - _writable = ReadonlyAttribute(jsObject: jsObject, name: Strings.writable) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(transformer: JSObject? = nil, writableStrategy: QueuingStrategy? = nil, readableStrategy: QueuingStrategy? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(transformer), _toJSValue(writableStrategy), _toJSValue(readableStrategy)])) + @inlinable public convenience init( + transformer: JSObject? = nil, + writableStrategy: QueuingStrategy? = nil, + readableStrategy: QueuingStrategy? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(transformer), _toJSValue(writableStrategy), _toJSValue(readableStrategy), + ]) + ) } - @ReadonlyAttribute - public var readable: ReadableStream + @inlinable public var readable: ReadableStream { jsObject[Strings.readable].fromJSValue()! } - @ReadonlyAttribute - public var writable: WritableStream + @inlinable public var writable: WritableStream { jsObject[Strings.writable].fromJSValue()! } } public class TransformStreamDefaultController: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStreamDefaultController].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.TransformStreamDefaultController].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var desiredSize: Double? + @inlinable public var desiredSize: Double? { jsObject[Strings.desiredSize].fromJSValue() } - @inlinable public func enqueue(chunk: JSValue? = nil) { + @inlinable final public func enqueue(chunk: JSValue? = nil) { let this = jsObject _ = this[Strings.enqueue].function!(this: this, arguments: [_toJSValue(chunk)]) } - @inlinable public func error(reason: JSValue? = nil) { + @inlinable final public func error(reason: JSValue? = nil) { let this = jsObject _ = this[Strings.error].function!(this: this, arguments: [_toJSValue(reason)]) } - @inlinable public func terminate() { + @inlinable final public func terminate() { let this = jsObject _ = this[Strings.terminate].function!(this: this, arguments: []) } } -public class Transformer: BridgedDictionary { - public convenience init(start: @escaping TransformerStartCallback, transform: @escaping TransformerTransformCallback, flush: @escaping TransformerFlushCallback, readableType: JSValue, writableType: JSValue) { +open class Transformer: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + start: TransformerStartCallback? = nil, + transform: TransformerTransformCallback? = nil, + flush: TransformerFlushCallback? = nil, + cancel: TransformerCancelCallback? = nil, + readableType: JSValue? = nil, + writableType: JSValue? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute2[Strings.transform, in: object] = transform - ClosureAttribute1[Strings.flush, in: object] = flush + object[Strings.start] = _toJSValue(start) + object[Strings.transform] = _toJSValue(transform) + object[Strings.flush] = _toJSValue(flush) + object[Strings.cancel] = _toJSValue(cancel) object[Strings.readableType] = _toJSValue(readableType) object[Strings.writableType] = _toJSValue(writableType) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _transform = ClosureAttribute2(jsObject: object, name: Strings.transform) - _flush = ClosureAttribute1(jsObject: object, name: Strings.flush) - _readableType = ReadWriteAttribute(jsObject: object, name: Strings.readableType) - _writableType = ReadWriteAttribute(jsObject: object, name: Strings.writableType) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute1 - public var start: TransformerStartCallback - - @ClosureAttribute2 - public var transform: TransformerTransformCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1 - public var flush: TransformerFlushCallback - - @ReadWriteAttribute - public var readableType: JSValue - - @ReadWriteAttribute - public var writableType: JSValue + @inlinable public var start: TransformerStartCallback { + get { + let function = jsObject[Strings.start].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.start] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var transform: TransformerTransformCallback { + get { + let function = jsObject[Strings.transform].function! + return { function(_toJSValue($0), _toJSValue($1)).fromJSValue()! } + } + set { + jsObject[Strings.transform] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)) }.jsValue + } + } + @inlinable public var flush: TransformerFlushCallback { + get { + let function = jsObject[Strings.flush].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.flush] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var cancel: TransformerCancelCallback { + get { + let function = jsObject[Strings.cancel].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.cancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var readableType: JSValue { + get { jsObject[Strings.readableType].fromJSValue()! } + set { jsObject[Strings.readableType] = _toJSValue(newValue) } + } + @inlinable public var writableType: JSValue { + get { jsObject[Strings.writableType].fromJSValue()! } + set { jsObject[Strings.writableType] = _toJSValue(newValue) } + } } - public class TreeWalker: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TreeWalker].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _root = ReadonlyAttribute(jsObject: jsObject, name: Strings.root) - _whatToShow = ReadonlyAttribute(jsObject: jsObject, name: Strings.whatToShow) - _currentNode = ReadWriteAttribute(jsObject: jsObject, name: Strings.currentNode) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var root: Node + @inlinable public var root: Node { jsObject[Strings.root].fromJSValue()! } - @ReadonlyAttribute - public var whatToShow: UInt32 + @inlinable public var whatToShow: UInt32 { jsObject[Strings.whatToShow].fromJSValue()! } // XXX: member 'filter' is ignored - @ReadWriteAttribute - public var currentNode: Node + @inlinable public var currentNode: Node { + get { jsObject[Strings.currentNode].fromJSValue()! } + set { jsObject[Strings.currentNode] = _toJSValue(newValue) } + } - @inlinable public func parentNode() -> Node? { + @inlinable final public func parentNode() -> Node? { let this = jsObject return this[Strings.parentNode].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func firstChild() -> Node? { + @inlinable final public func firstChild() -> Node? { let this = jsObject return this[Strings.firstChild].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func lastChild() -> Node? { + @inlinable final public func lastChild() -> Node? { let this = jsObject return this[Strings.lastChild].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func previousSibling() -> Node? { + @inlinable final public func previousSibling() -> Node? { let this = jsObject return this[Strings.previousSibling].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func nextSibling() -> Node? { + @inlinable final public func nextSibling() -> Node? { let this = jsObject return this[Strings.nextSibling].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func previousNode() -> Node? { + @inlinable final public func previousNode() -> Node? { let this = jsObject return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func nextNode() -> Node? { + @inlinable final public func nextNode() -> Node? { let this = jsObject return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue() } } +public class TrustedHTML: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TrustedHTML].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } + + @inlinable final public func toJSON() -> String { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public class TrustedScript: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TrustedScript].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } + + @inlinable final public func toJSON() -> String { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public class TrustedScriptURL: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TrustedScriptURL].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } + + @inlinable final public func toJSON() -> String { + let this = jsObject + return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! + } +} + +public class TrustedTypePolicy: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TrustedTypePolicy].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } + + @inlinable final public func createHTML(input: String, arguments: JSValue...) -> TrustedHTML { + let this = jsObject + return this[Strings.createHTML].function!( + this: this, + arguments: [_toJSValue(input)] + arguments.map(_toJSValue) + ).fromJSValue()! + } + + @inlinable final public func createScript(input: String, arguments: JSValue...) -> TrustedScript { + let this = jsObject + return this[Strings.createScript].function!( + this: this, + arguments: [_toJSValue(input)] + arguments.map(_toJSValue) + ).fromJSValue()! + } + + @inlinable final public func createScriptURL(input: String, arguments: JSValue...) -> TrustedScriptURL { + let this = jsObject + return this[Strings.createScriptURL].function!( + this: this, + arguments: [_toJSValue(input)] + arguments.map(_toJSValue) + ).fromJSValue()! + } +} + +public class TrustedTypePolicyFactory: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TrustedTypePolicyFactory].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + // XXX: member 'createPolicy' is ignored + + @inlinable final public func isHTML(value: JSValue) -> Bool { + let this = jsObject + return this[Strings.isHTML].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable final public func isScript(value: JSValue) -> Bool { + let this = jsObject + return this[Strings.isScript].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable final public func isScriptURL(value: JSValue) -> Bool { + let this = jsObject + return this[Strings.isScriptURL].function!(this: this, arguments: [_toJSValue(value)]).fromJSValue()! + } + + @inlinable public var emptyHTML: TrustedHTML { jsObject[Strings.emptyHTML].fromJSValue()! } + + @inlinable public var emptyScript: TrustedScript { jsObject[Strings.emptyScript].fromJSValue()! } + + @inlinable final public func getAttributeType( + tagName: String, + attribute: String, + elementNs: String? = nil, + attrNs: String? = nil + ) -> String? { + let this = jsObject + return this[Strings.getAttributeType].function!( + this: this, + arguments: [_toJSValue(tagName), _toJSValue(attribute), _toJSValue(elementNs), _toJSValue(attrNs)] + ).fromJSValue() + } + + @inlinable final public func getPropertyType(tagName: String, property: String, elementNs: String? = nil) -> String? + { + let this = jsObject + return this[Strings.getPropertyType].function!( + this: this, + arguments: [_toJSValue(tagName), _toJSValue(property), _toJSValue(elementNs)] + ).fromJSValue() + } + + @inlinable public var defaultPolicy: TrustedTypePolicy? { jsObject[Strings.defaultPolicy].fromJSValue() } +} + public typealias EventHandler = EventHandlerNonNull? public typealias OnErrorEventHandler = OnErrorEventHandlerNonNull? public typealias OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull? @@ -16609,6 +18726,7 @@ public typealias DOMHighResTimeStamp = Double public typealias EpochTimeStamp = UInt64 public typealias PerformanceEntryList = [PerformanceEntry] + public typealias MutationCallback = ([MutationRecord], MutationObserver) -> Void public typealias BlobCallback = (Blob?) -> Void public typealias FunctionStringCallback = (String) -> Void @@ -16617,6 +18735,7 @@ public typealias EventHandlerNonNull = (Event) -> JSValue public typealias OnErrorEventHandlerNonNull = (Event_or_String, String, UInt32, UInt32, JSValue) -> JSValue public typealias OnBeforeUnloadEventHandlerNonNull = (Event) -> String? public typealias FrameRequestCallback = (DOMHighResTimeStamp) -> Void +public typealias ViewTransitionUpdateCallback = () -> JSPromise public typealias UnderlyingSourceStartCallback = (ReadableStreamController) -> JSValue public typealias UnderlyingSourcePullCallback = (ReadableStreamController) -> JSPromise public typealias UnderlyingSourceCancelCallback = (JSValue) -> JSPromise @@ -16627,191 +18746,466 @@ public typealias UnderlyingSinkAbortCallback = (JSValue) -> JSPromise public typealias TransformerStartCallback = (TransformStreamDefaultController) -> JSValue public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> JSPromise +public typealias TransformerCancelCallback = (JSValue) -> JSPromise public typealias QueuingStrategySize = (JSValue) -> Double -public typealias NavigatorUserMediaSuccessCallback = (MediaStream) -> Void -public typealias NavigatorUserMediaErrorCallback = (DOMException) -> Void public typealias AudioDataOutputCallback = (AudioData) -> Void public typealias VideoFrameOutputCallback = (VideoFrame) -> Void public typealias EncodedAudioChunkOutputCallback = (EncodedAudioChunk, EncodedAudioChunkMetadata) -> Void public typealias EncodedVideoChunkOutputCallback = (EncodedVideoChunk, EncodedVideoChunkMetadata) -> Void public typealias WebCodecsErrorCallback = (DOMException) -> Void -public typealias PerformanceObserverCallback = (PerformanceObserverEntryList, PerformanceObserver, PerformanceObserverCallbackOptions) -> Void +public typealias PerformanceObserverCallback = ( + PerformanceObserverEntryList, PerformanceObserver, PerformanceObserverCallbackOptions +) -> Void +public typealias CreateHTMLCallback = (String, JSValue...) -> String? +public typealias CreateScriptCallback = (String, JSValue...) -> String? +public typealias CreateScriptURLCallback = (String, JSValue...) -> String? public class UIEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.UIEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.UIEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view) - _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail) - _which = ReadonlyAttribute(jsObject: jsObject, name: Strings.which) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: UIEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var view: Window? + @inlinable public var view: Window? { jsObject[Strings.view].fromJSValue() } - @ReadonlyAttribute - public var detail: Int32 + @inlinable public var detail: Int32 { jsObject[Strings.detail].fromJSValue()! } - @inlinable public func initUIEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: Window? = nil, detailArg: Int32? = nil) { + @inlinable final public func initUIEvent( + typeArg: String, + bubblesArg: Bool? = nil, + cancelableArg: Bool? = nil, + viewArg: Window? = nil, + detailArg: Int32? = nil + ) { let this = jsObject - _ = this[Strings.initUIEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), _toJSValue(detailArg)]) + _ = this[Strings.initUIEvent].function!( + this: this, + arguments: [ + _toJSValue(typeArg), _toJSValue(bubblesArg), _toJSValue(cancelableArg), _toJSValue(viewArg), + _toJSValue(detailArg), + ] + ) } - @ReadonlyAttribute - public var which: UInt32 + @inlinable public var which: UInt32 { jsObject[Strings.which].fromJSValue()! } } -public class UIEventInit: BridgedDictionary { - public convenience init(view: Window?, detail: Int32, which: UInt32) { +open class UIEventInit: EventInit { + + public convenience init( + bubbles: Bool? = nil, + cancelable: Bool? = nil, + composed: Bool? = nil, + view: Window?, + detail: Int32? = nil, + which: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.bubbles] = _toJSValue(bubbles) + object[Strings.cancelable] = _toJSValue(cancelable) + object[Strings.composed] = _toJSValue(composed) object[Strings.view] = _toJSValue(view) object[Strings.detail] = _toJSValue(detail) object[Strings.which] = _toJSValue(which) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _view = ReadWriteAttribute(jsObject: object, name: Strings.view) - _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail) - _which = ReadWriteAttribute(jsObject: object, name: Strings.which) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var view: Window? - - @ReadWriteAttribute - public var detail: Int32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var which: UInt32 + @inlinable public var view: Window? { + get { jsObject[Strings.view].fromJSValue() } + set { jsObject[Strings.view] = _toJSValue(newValue) } + } + @inlinable public var detail: Int32 { + get { jsObject[Strings.detail].fromJSValue()! } + set { jsObject[Strings.detail] = _toJSValue(newValue) } + } + @inlinable public var which: UInt32 { + get { jsObject[Strings.which].fromJSValue()! } + set { jsObject[Strings.which] = _toJSValue(newValue) } + } } +open class ULongRange: JSDictionaryCompatible { + public let jsObject: JSObject -public class ULongRange: BridgedDictionary { - public convenience init(max: UInt32, min: UInt32) { + public convenience init(max: UInt32? = nil, min: UInt32? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.max] = _toJSValue(max) object[Strings.min] = _toJSValue(min) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _max = ReadWriteAttribute(jsObject: object, name: Strings.max) - _min = ReadWriteAttribute(jsObject: object, name: Strings.min) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var max: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var min: UInt32 + @inlinable public var max: UInt32 { + get { jsObject[Strings.max].fromJSValue()! } + set { jsObject[Strings.max] = _toJSValue(newValue) } + } + @inlinable public var min: UInt32 { + get { jsObject[Strings.min].fromJSValue()! } + set { jsObject[Strings.min] = _toJSValue(newValue) } + } } +extension URL { -public extension URL { - @inlinable class func createObjectURL(obj: Blob_or_MediaSource) -> String { + @inlinable public class func createObjectURL(obj: Blob_or_MediaSource) -> String { let this = constructor! return this[Strings.createObjectURL].function!(this: this, arguments: [_toJSValue(obj)]).fromJSValue()! } - @inlinable class func revokeObjectURL(url: String) { + @inlinable public class func revokeObjectURL(url: String) { let this = constructor! _ = this[Strings.revokeObjectURL].function!(this: this, arguments: [_toJSValue(url)]) } } -public class UnderlyingSink: BridgedDictionary { - public convenience init(start: @escaping UnderlyingSinkStartCallback, write: @escaping UnderlyingSinkWriteCallback, close: @escaping UnderlyingSinkCloseCallback, abort: @escaping UnderlyingSinkAbortCallback, type: JSValue) { +public class URLPattern: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URLPattern].function } + + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public convenience init(input: URLPatternInput, baseURL: String, options: URLPatternOptions? = nil) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(input), _toJSValue(baseURL), _toJSValue(options), + ]) + ) + } + + @inlinable public convenience init(input: URLPatternInput? = nil, options: URLPatternOptions? = nil) { + self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(input), _toJSValue(options)])) + } + + @inlinable final public func test(input: URLPatternInput? = nil, baseURL: String? = nil) -> Bool { + let this = jsObject + return this[Strings.test].function!(this: this, arguments: [_toJSValue(input), _toJSValue(baseURL)]) + .fromJSValue()! + } + + @inlinable final public func exec(input: URLPatternInput? = nil, baseURL: String? = nil) -> URLPatternResult? { + let this = jsObject + return this[Strings.exec].function!(this: this, arguments: [_toJSValue(input), _toJSValue(baseURL)]) + .fromJSValue() + } + + @inlinable public var `protocol`: String { jsObject[Strings.`protocol`].fromJSValue()! } + + @inlinable public var username: String { jsObject[Strings.username].fromJSValue()! } + + @inlinable public var password: String { jsObject[Strings.password].fromJSValue()! } + + @inlinable public var hostname: String { jsObject[Strings.hostname].fromJSValue()! } + + @inlinable public var port: String { jsObject[Strings.port].fromJSValue()! } + + @inlinable public var pathname: String { jsObject[Strings.pathname].fromJSValue()! } + + @inlinable public var search: String { jsObject[Strings.search].fromJSValue()! } + + @inlinable public var hash: String { jsObject[Strings.hash].fromJSValue()! } + + @inlinable public var hasRegExpGroups: Bool { jsObject[Strings.hasRegExpGroups].fromJSValue()! } +} + +open class URLPatternComponentResult: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(input: String? = nil, groups: JSObject? = nil) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute2[Strings.write, in: object] = write - ClosureAttribute0[Strings.close, in: object] = close - ClosureAttribute1[Strings.abort, in: object] = abort - object[Strings.type] = _toJSValue(type) + object[Strings.input] = _toJSValue(input) + object[Strings.groups] = _toJSValue(groups) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var input: String { + get { jsObject[Strings.input].fromJSValue()! } + set { jsObject[Strings.input] = _toJSValue(newValue) } + } + @inlinable public var groups: JSObject { + get { jsObject[Strings.groups].fromJSValue()! } + set { jsObject[Strings.groups] = _toJSValue(newValue) } + } +} +open class URLPatternInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + `protocol`: String? = nil, + username: String? = nil, + password: String? = nil, + hostname: String? = nil, + port: String? = nil, + pathname: String? = nil, + search: String? = nil, + hash: String? = nil, + baseURL: String? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.`protocol`] = _toJSValue(`protocol`) + object[Strings.username] = _toJSValue(username) + object[Strings.password] = _toJSValue(password) + object[Strings.hostname] = _toJSValue(hostname) + object[Strings.port] = _toJSValue(port) + object[Strings.pathname] = _toJSValue(pathname) + object[Strings.search] = _toJSValue(search) + object[Strings.hash] = _toJSValue(hash) + object[Strings.baseURL] = _toJSValue(baseURL) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var `protocol`: String { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } + } + @inlinable public var username: String { + get { jsObject[Strings.username].fromJSValue()! } + set { jsObject[Strings.username] = _toJSValue(newValue) } + } + @inlinable public var password: String { + get { jsObject[Strings.password].fromJSValue()! } + set { jsObject[Strings.password] = _toJSValue(newValue) } + } + @inlinable public var hostname: String { + get { jsObject[Strings.hostname].fromJSValue()! } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } + } + @inlinable public var port: String { + get { jsObject[Strings.port].fromJSValue()! } + set { jsObject[Strings.port] = _toJSValue(newValue) } + } + @inlinable public var pathname: String { + get { jsObject[Strings.pathname].fromJSValue()! } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } + } + @inlinable public var search: String { + get { jsObject[Strings.search].fromJSValue()! } + set { jsObject[Strings.search] = _toJSValue(newValue) } + } + @inlinable public var hash: String { + get { jsObject[Strings.hash].fromJSValue()! } + set { jsObject[Strings.hash] = _toJSValue(newValue) } + } + @inlinable public var baseURL: String { + get { jsObject[Strings.baseURL].fromJSValue()! } + set { jsObject[Strings.baseURL] = _toJSValue(newValue) } + } +} +open class URLPatternOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(ignoreCase: Bool? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.ignoreCase] = _toJSValue(ignoreCase) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _write = ClosureAttribute2(jsObject: object, name: Strings.write) - _close = ClosureAttribute0(jsObject: object, name: Strings.close) - _abort = ClosureAttribute1(jsObject: object, name: Strings.abort) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var ignoreCase: Bool { + get { jsObject[Strings.ignoreCase].fromJSValue()! } + set { jsObject[Strings.ignoreCase] = _toJSValue(newValue) } } +} +open class URLPatternResult: JSDictionaryCompatible { + public let jsObject: JSObject - @ClosureAttribute1 - public var start: UnderlyingSinkStartCallback + public convenience init( + inputs: [URLPatternInput]? = nil, + `protocol`: URLPatternComponentResult? = nil, + username: URLPatternComponentResult? = nil, + password: URLPatternComponentResult? = nil, + hostname: URLPatternComponentResult? = nil, + port: URLPatternComponentResult? = nil, + pathname: URLPatternComponentResult? = nil, + search: URLPatternComponentResult? = nil, + hash: URLPatternComponentResult? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.inputs] = _toJSValue(inputs) + object[Strings.`protocol`] = _toJSValue(`protocol`) + object[Strings.username] = _toJSValue(username) + object[Strings.password] = _toJSValue(password) + object[Strings.hostname] = _toJSValue(hostname) + object[Strings.port] = _toJSValue(port) + object[Strings.pathname] = _toJSValue(pathname) + object[Strings.search] = _toJSValue(search) + object[Strings.hash] = _toJSValue(hash) - @ClosureAttribute2 - public var write: UnderlyingSinkWriteCallback + self.init(unsafelyWrapping: object) + } - @ClosureAttribute0 - public var close: UnderlyingSinkCloseCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1 - public var abort: UnderlyingSinkAbortCallback + @inlinable public var inputs: [URLPatternInput] { + get { jsObject[Strings.inputs].fromJSValue()! } + set { jsObject[Strings.inputs] = _toJSValue(newValue) } + } + @inlinable public var `protocol`: URLPatternComponentResult { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } + } + @inlinable public var username: URLPatternComponentResult { + get { jsObject[Strings.username].fromJSValue()! } + set { jsObject[Strings.username] = _toJSValue(newValue) } + } + @inlinable public var password: URLPatternComponentResult { + get { jsObject[Strings.password].fromJSValue()! } + set { jsObject[Strings.password] = _toJSValue(newValue) } + } + @inlinable public var hostname: URLPatternComponentResult { + get { jsObject[Strings.hostname].fromJSValue()! } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } + } + @inlinable public var port: URLPatternComponentResult { + get { jsObject[Strings.port].fromJSValue()! } + set { jsObject[Strings.port] = _toJSValue(newValue) } + } + @inlinable public var pathname: URLPatternComponentResult { + get { jsObject[Strings.pathname].fromJSValue()! } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } + } + @inlinable public var search: URLPatternComponentResult { + get { jsObject[Strings.search].fromJSValue()! } + set { jsObject[Strings.search] = _toJSValue(newValue) } + } + @inlinable public var hash: URLPatternComponentResult { + get { jsObject[Strings.hash].fromJSValue()! } + set { jsObject[Strings.hash] = _toJSValue(newValue) } + } +} +open class UnderlyingSink: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + start: UnderlyingSinkStartCallback? = nil, + write: UnderlyingSinkWriteCallback? = nil, + close: UnderlyingSinkCloseCallback? = nil, + abort: UnderlyingSinkAbortCallback? = nil, + type: JSValue? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.start] = _toJSValue(start) + object[Strings.write] = _toJSValue(write) + object[Strings.close] = _toJSValue(close) + object[Strings.abort] = _toJSValue(abort) + object[Strings.type] = _toJSValue(type) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: JSValue + @inlinable public var start: UnderlyingSinkStartCallback { + get { + let function = jsObject[Strings.start].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.start] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var write: UnderlyingSinkWriteCallback { + get { + let function = jsObject[Strings.write].function! + return { function(_toJSValue($0), _toJSValue($1)).fromJSValue()! } + } + set { + jsObject[Strings.write] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)) }.jsValue + } + } + @inlinable public var close: UnderlyingSinkCloseCallback { + get { + let function = jsObject[Strings.close].function! + return { function().fromJSValue()! } + } + set { jsObject[Strings.close] = JSClosure { _ in _toJSValue(newValue()) }.jsValue } + } + @inlinable public var abort: UnderlyingSinkAbortCallback { + get { + let function = jsObject[Strings.abort].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.abort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var type: JSValue { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } +open class UnderlyingSource: JSDictionaryCompatible { + public let jsObject: JSObject -public class UnderlyingSource: BridgedDictionary { - public convenience init(start: @escaping UnderlyingSourceStartCallback, pull: @escaping UnderlyingSourcePullCallback, cancel: @escaping UnderlyingSourceCancelCallback, type: ReadableStreamType, autoAllocateChunkSize: UInt64) { + public convenience init( + start: UnderlyingSourceStartCallback? = nil, + pull: UnderlyingSourcePullCallback? = nil, + cancel: UnderlyingSourceCancelCallback? = nil, + type: ReadableStreamType? = nil, + autoAllocateChunkSize: UInt64? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1[Strings.start, in: object] = start - ClosureAttribute1[Strings.pull, in: object] = pull - ClosureAttribute1[Strings.cancel, in: object] = cancel + object[Strings.start] = _toJSValue(start) + object[Strings.pull] = _toJSValue(pull) + object[Strings.cancel] = _toJSValue(cancel) object[Strings.type] = _toJSValue(type) object[Strings.autoAllocateChunkSize] = _toJSValue(autoAllocateChunkSize) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _start = ClosureAttribute1(jsObject: object, name: Strings.start) - _pull = ClosureAttribute1(jsObject: object, name: Strings.pull) - _cancel = ClosureAttribute1(jsObject: object, name: Strings.cancel) - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _autoAllocateChunkSize = ReadWriteAttribute(jsObject: object, name: Strings.autoAllocateChunkSize) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute1 - public var start: UnderlyingSourceStartCallback - - @ClosureAttribute1 - public var pull: UnderlyingSourcePullCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1 - public var cancel: UnderlyingSourceCancelCallback - - @ReadWriteAttribute - public var type: ReadableStreamType - - @ReadWriteAttribute - public var autoAllocateChunkSize: UInt64 + @inlinable public var start: UnderlyingSourceStartCallback { + get { + let function = jsObject[Strings.start].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.start] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var pull: UnderlyingSourcePullCallback { + get { + let function = jsObject[Strings.pull].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.pull] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var cancel: UnderlyingSourceCancelCallback { + get { + let function = jsObject[Strings.cancel].function! + return { function(_toJSValue($0)).fromJSValue()! } + } + set { jsObject[Strings.cancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue } + } + @inlinable public var type: ReadableStreamType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var autoAllocateChunkSize: UInt64 { + get { jsObject[Strings.autoAllocateChunkSize].fromJSValue()! } + set { jsObject[Strings.autoAllocateChunkSize] = _toJSValue(newValue) } + } } - public class UserActivation: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.UserActivation].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _hasBeenActive = ReadonlyAttribute(jsObject: jsObject, name: Strings.hasBeenActive) - _isActive = ReadonlyAttribute(jsObject: jsObject, name: Strings.isActive) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var hasBeenActive: Bool + @inlinable public var hasBeenActive: Bool { jsObject[Strings.hasBeenActive].fromJSValue()! } - @ReadonlyAttribute - public var isActive: Bool + @inlinable public var isActive: Bool { jsObject[Strings.isActive].fromJSValue()! } } public class ValidityState: JSBridgedClass { @@ -16819,57 +19213,46 @@ public class ValidityState: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _valueMissing = ReadonlyAttribute(jsObject: jsObject, name: Strings.valueMissing) - _typeMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.typeMismatch) - _patternMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternMismatch) - _tooLong = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooLong) - _tooShort = ReadonlyAttribute(jsObject: jsObject, name: Strings.tooShort) - _rangeUnderflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeUnderflow) - _rangeOverflow = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeOverflow) - _stepMismatch = ReadonlyAttribute(jsObject: jsObject, name: Strings.stepMismatch) - _badInput = ReadonlyAttribute(jsObject: jsObject, name: Strings.badInput) - _customError = ReadonlyAttribute(jsObject: jsObject, name: Strings.customError) - _valid = ReadonlyAttribute(jsObject: jsObject, name: Strings.valid) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var valueMissing: Bool + @inlinable public var valueMissing: Bool { jsObject[Strings.valueMissing].fromJSValue()! } - @ReadonlyAttribute - public var typeMismatch: Bool + @inlinable public var typeMismatch: Bool { jsObject[Strings.typeMismatch].fromJSValue()! } - @ReadonlyAttribute - public var patternMismatch: Bool + @inlinable public var patternMismatch: Bool { jsObject[Strings.patternMismatch].fromJSValue()! } - @ReadonlyAttribute - public var tooLong: Bool + @inlinable public var tooLong: Bool { jsObject[Strings.tooLong].fromJSValue()! } - @ReadonlyAttribute - public var tooShort: Bool + @inlinable public var tooShort: Bool { jsObject[Strings.tooShort].fromJSValue()! } - @ReadonlyAttribute - public var rangeUnderflow: Bool + @inlinable public var rangeUnderflow: Bool { jsObject[Strings.rangeUnderflow].fromJSValue()! } - @ReadonlyAttribute - public var rangeOverflow: Bool + @inlinable public var rangeOverflow: Bool { jsObject[Strings.rangeOverflow].fromJSValue()! } - @ReadonlyAttribute - public var stepMismatch: Bool + @inlinable public var stepMismatch: Bool { jsObject[Strings.stepMismatch].fromJSValue()! } - @ReadonlyAttribute - public var badInput: Bool + @inlinable public var badInput: Bool { jsObject[Strings.badInput].fromJSValue()! } - @ReadonlyAttribute - public var customError: Bool + @inlinable public var customError: Bool { jsObject[Strings.customError].fromJSValue()! } - @ReadonlyAttribute - public var valid: Bool + @inlinable public var valid: Bool { jsObject[Strings.valid].fromJSValue()! } } -public class ValidityStateFlags: BridgedDictionary { - public convenience init(valueMissing: Bool, typeMismatch: Bool, patternMismatch: Bool, tooLong: Bool, tooShort: Bool, rangeUnderflow: Bool, rangeOverflow: Bool, stepMismatch: Bool, badInput: Bool, customError: Bool) { +open class ValidityStateFlags: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + valueMissing: Bool? = nil, + typeMismatch: Bool? = nil, + patternMismatch: Bool? = nil, + tooLong: Bool? = nil, + tooShort: Bool? = nil, + rangeUnderflow: Bool? = nil, + rangeOverflow: Bool? = nil, + stepMismatch: Bool? = nil, + badInput: Bool? = nil, + customError: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.valueMissing] = _toJSValue(valueMissing) object[Strings.typeMismatch] = _toJSValue(typeMismatch) @@ -16881,54 +19264,53 @@ public class ValidityStateFlags: BridgedDictionary { object[Strings.stepMismatch] = _toJSValue(stepMismatch) object[Strings.badInput] = _toJSValue(badInput) object[Strings.customError] = _toJSValue(customError) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _valueMissing = ReadWriteAttribute(jsObject: object, name: Strings.valueMissing) - _typeMismatch = ReadWriteAttribute(jsObject: object, name: Strings.typeMismatch) - _patternMismatch = ReadWriteAttribute(jsObject: object, name: Strings.patternMismatch) - _tooLong = ReadWriteAttribute(jsObject: object, name: Strings.tooLong) - _tooShort = ReadWriteAttribute(jsObject: object, name: Strings.tooShort) - _rangeUnderflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeUnderflow) - _rangeOverflow = ReadWriteAttribute(jsObject: object, name: Strings.rangeOverflow) - _stepMismatch = ReadWriteAttribute(jsObject: object, name: Strings.stepMismatch) - _badInput = ReadWriteAttribute(jsObject: object, name: Strings.badInput) - _customError = ReadWriteAttribute(jsObject: object, name: Strings.customError) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var valueMissing: Bool - - @ReadWriteAttribute - public var typeMismatch: Bool - - @ReadWriteAttribute - public var patternMismatch: Bool - - @ReadWriteAttribute - public var tooLong: Bool - - @ReadWriteAttribute - public var tooShort: Bool - - @ReadWriteAttribute - public var rangeUnderflow: Bool - - @ReadWriteAttribute - public var rangeOverflow: Bool - - @ReadWriteAttribute - public var stepMismatch: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var badInput: Bool - - @ReadWriteAttribute - public var customError: Bool + @inlinable public var valueMissing: Bool { + get { jsObject[Strings.valueMissing].fromJSValue()! } + set { jsObject[Strings.valueMissing] = _toJSValue(newValue) } + } + @inlinable public var typeMismatch: Bool { + get { jsObject[Strings.typeMismatch].fromJSValue()! } + set { jsObject[Strings.typeMismatch] = _toJSValue(newValue) } + } + @inlinable public var patternMismatch: Bool { + get { jsObject[Strings.patternMismatch].fromJSValue()! } + set { jsObject[Strings.patternMismatch] = _toJSValue(newValue) } + } + @inlinable public var tooLong: Bool { + get { jsObject[Strings.tooLong].fromJSValue()! } + set { jsObject[Strings.tooLong] = _toJSValue(newValue) } + } + @inlinable public var tooShort: Bool { + get { jsObject[Strings.tooShort].fromJSValue()! } + set { jsObject[Strings.tooShort] = _toJSValue(newValue) } + } + @inlinable public var rangeUnderflow: Bool { + get { jsObject[Strings.rangeUnderflow].fromJSValue()! } + set { jsObject[Strings.rangeUnderflow] = _toJSValue(newValue) } + } + @inlinable public var rangeOverflow: Bool { + get { jsObject[Strings.rangeOverflow].fromJSValue()! } + set { jsObject[Strings.rangeOverflow] = _toJSValue(newValue) } + } + @inlinable public var stepMismatch: Bool { + get { jsObject[Strings.stepMismatch].fromJSValue()! } + set { jsObject[Strings.stepMismatch] = _toJSValue(newValue) } + } + @inlinable public var badInput: Bool { + get { jsObject[Strings.badInput].fromJSValue()! } + set { jsObject[Strings.badInput] = _toJSValue(newValue) } + } + @inlinable public var customError: Bool { + get { jsObject[Strings.customError].fromJSValue()! } + set { jsObject[Strings.customError] = _toJSValue(newValue) } + } } - public enum VideoColorPrimaries: JSString, JSValueCompatible { case bt709 = "bt709" case bt470bg = "bt470bg" @@ -16937,136 +19319,134 @@ public enum VideoColorPrimaries: JSString, JSValueCompatible { case smpte432 = "smpte432" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class VideoColorSpace: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoColorSpace].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _primaries = ReadonlyAttribute(jsObject: jsObject, name: Strings.primaries) - _transfer = ReadonlyAttribute(jsObject: jsObject, name: Strings.transfer) - _matrix = ReadonlyAttribute(jsObject: jsObject, name: Strings.matrix) - _fullRange = ReadonlyAttribute(jsObject: jsObject, name: Strings.fullRange) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: VideoColorSpaceInit? = nil) { + @inlinable public convenience init(`init`: VideoColorSpaceInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var primaries: VideoColorPrimaries? + @inlinable public var primaries: VideoColorPrimaries? { jsObject[Strings.primaries].fromJSValue() } - @ReadonlyAttribute - public var transfer: VideoTransferCharacteristics? + @inlinable public var transfer: VideoTransferCharacteristics? { jsObject[Strings.transfer].fromJSValue() } - @ReadonlyAttribute - public var matrix: VideoMatrixCoefficients? + @inlinable public var matrix: VideoMatrixCoefficients? { jsObject[Strings.matrix].fromJSValue() } - @ReadonlyAttribute - public var fullRange: Bool? + @inlinable public var fullRange: Bool? { jsObject[Strings.fullRange].fromJSValue() } - @inlinable public func toJSON() -> VideoColorSpaceInit { + @inlinable final public func toJSON() -> VideoColorSpaceInit { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } } -public class VideoColorSpaceInit: BridgedDictionary { - public convenience init(primaries: VideoColorPrimaries?, transfer: VideoTransferCharacteristics?, matrix: VideoMatrixCoefficients?, fullRange: Bool?) { +open class VideoColorSpaceInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + primaries: VideoColorPrimaries?, + transfer: VideoTransferCharacteristics?, + matrix: VideoMatrixCoefficients?, + fullRange: Bool? + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.primaries] = _toJSValue(primaries) object[Strings.transfer] = _toJSValue(transfer) object[Strings.matrix] = _toJSValue(matrix) object[Strings.fullRange] = _toJSValue(fullRange) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _primaries = ReadWriteAttribute(jsObject: object, name: Strings.primaries) - _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) - _matrix = ReadWriteAttribute(jsObject: object, name: Strings.matrix) - _fullRange = ReadWriteAttribute(jsObject: object, name: Strings.fullRange) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var primaries: VideoColorPrimaries? - - @ReadWriteAttribute - public var transfer: VideoTransferCharacteristics? + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var matrix: VideoMatrixCoefficients? - - @ReadWriteAttribute - public var fullRange: Bool? + @inlinable public var primaries: VideoColorPrimaries? { + get { jsObject[Strings.primaries].fromJSValue() } + set { jsObject[Strings.primaries] = _toJSValue(newValue) } + } + @inlinable public var transfer: VideoTransferCharacteristics? { + get { jsObject[Strings.transfer].fromJSValue() } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } + @inlinable public var matrix: VideoMatrixCoefficients? { + get { jsObject[Strings.matrix].fromJSValue() } + set { jsObject[Strings.matrix] = _toJSValue(newValue) } + } + @inlinable public var fullRange: Bool? { + get { jsObject[Strings.fullRange].fromJSValue() } + set { jsObject[Strings.fullRange] = _toJSValue(newValue) } + } } - public class VideoDecoder: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VideoDecoder].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.VideoDecoder].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize) - _ondequeue = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondequeue) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(init: VideoDecoderInit) { + @inlinable public convenience init(`init`: VideoDecoderInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var state: CodecState + @inlinable public var state: CodecState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var decodeQueueSize: UInt32 + @inlinable public var decodeQueueSize: UInt32 { jsObject[Strings.decodeQueueSize].fromJSValue()! } - @ClosureAttribute1Optional - public var ondequeue: EventHandler + @inlinable public var ondequeue: EventHandler { + get { + guard let function = jsObject[Strings.ondequeue].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondequeue] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondequeue] = .null + } + } + } - @inlinable public func configure(config: VideoDecoderConfig) { + @inlinable final public func configure(config: VideoDecoderConfig) { let this = jsObject _ = this[Strings.configure].function!(this: this, arguments: [_toJSValue(config)]) } - @inlinable public func decode(chunk: EncodedVideoChunk) { + @inlinable final public func decode(chunk: EncodedVideoChunk) { let this = jsObject _ = this[Strings.decode].function!(this: this, arguments: [_toJSValue(chunk)]) } - @inlinable public func flush() -> JSPromise { + @inlinable final public func flush() -> JSPromise { let this = jsObject return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func flush() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func flush() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } @@ -17076,16 +19456,36 @@ public class VideoDecoder: EventTarget { return this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public class func isConfigSupported(config: VideoDecoderConfig) async throws -> VideoDecoderSupport { - let this = constructor! - let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public class func isConfigSupported( + config: VideoDecoderConfig + ) async throws(JSException) -> VideoDecoderSupport { + let this = constructor! + let _promise: JSPromise = this[Strings.isConfigSupported].function!( + this: this, + arguments: [_toJSValue(config)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class VideoDecoderConfig: BridgedDictionary { - public convenience init(codec: String, description: AllowSharedBufferSource, codedWidth: UInt32, codedHeight: UInt32, displayAspectWidth: UInt32, displayAspectHeight: UInt32, colorSpace: VideoColorSpaceInit, hardwareAcceleration: HardwareAcceleration, optimizeForLatency: Bool) { +open class VideoDecoderConfig: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + codec: String, + description: AllowSharedBufferSource? = nil, + codedWidth: UInt32? = nil, + codedHeight: UInt32? = nil, + displayAspectWidth: UInt32? = nil, + displayAspectHeight: UInt32? = nil, + colorSpace: VideoColorSpaceInit? = nil, + hardwareAcceleration: HardwareAcceleration? = nil, + optimizeForLatency: Bool? = nil, + rotation: Double? = nil, + flip: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.codec] = _toJSValue(codec) object[Strings.description] = _toJSValue(description) @@ -17096,143 +19496,179 @@ public class VideoDecoderConfig: BridgedDictionary { object[Strings.colorSpace] = _toJSValue(colorSpace) object[Strings.hardwareAcceleration] = _toJSValue(hardwareAcceleration) object[Strings.optimizeForLatency] = _toJSValue(optimizeForLatency) - self.init(unsafelyWrapping: object) - } + object[Strings.rotation] = _toJSValue(rotation) + object[Strings.flip] = _toJSValue(flip) - public required init(unsafelyWrapping object: JSObject) { - _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) - _description = ReadWriteAttribute(jsObject: object, name: Strings.description) - _codedWidth = ReadWriteAttribute(jsObject: object, name: Strings.codedWidth) - _codedHeight = ReadWriteAttribute(jsObject: object, name: Strings.codedHeight) - _displayAspectWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayAspectWidth) - _displayAspectHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayAspectHeight) - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - _hardwareAcceleration = ReadWriteAttribute(jsObject: object, name: Strings.hardwareAcceleration) - _optimizeForLatency = ReadWriteAttribute(jsObject: object, name: Strings.optimizeForLatency) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var codec: String - - @ReadWriteAttribute - public var description: AllowSharedBufferSource - - @ReadWriteAttribute - public var codedWidth: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var codedHeight: UInt32 - - @ReadWriteAttribute - public var displayAspectWidth: UInt32 - - @ReadWriteAttribute - public var displayAspectHeight: UInt32 - - @ReadWriteAttribute - public var colorSpace: VideoColorSpaceInit - - @ReadWriteAttribute - public var hardwareAcceleration: HardwareAcceleration - - @ReadWriteAttribute - public var optimizeForLatency: Bool + @inlinable public var codec: String { + get { jsObject[Strings.codec].fromJSValue()! } + set { jsObject[Strings.codec] = _toJSValue(newValue) } + } + @inlinable public var description: AllowSharedBufferSource { + get { jsObject[Strings.description].fromJSValue()! } + set { jsObject[Strings.description] = _toJSValue(newValue) } + } + @inlinable public var codedWidth: UInt32 { + get { jsObject[Strings.codedWidth].fromJSValue()! } + set { jsObject[Strings.codedWidth] = _toJSValue(newValue) } + } + @inlinable public var codedHeight: UInt32 { + get { jsObject[Strings.codedHeight].fromJSValue()! } + set { jsObject[Strings.codedHeight] = _toJSValue(newValue) } + } + @inlinable public var displayAspectWidth: UInt32 { + get { jsObject[Strings.displayAspectWidth].fromJSValue()! } + set { jsObject[Strings.displayAspectWidth] = _toJSValue(newValue) } + } + @inlinable public var displayAspectHeight: UInt32 { + get { jsObject[Strings.displayAspectHeight].fromJSValue()! } + set { jsObject[Strings.displayAspectHeight] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: VideoColorSpaceInit { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } + @inlinable public var hardwareAcceleration: HardwareAcceleration { + get { jsObject[Strings.hardwareAcceleration].fromJSValue()! } + set { jsObject[Strings.hardwareAcceleration] = _toJSValue(newValue) } + } + @inlinable public var optimizeForLatency: Bool { + get { jsObject[Strings.optimizeForLatency].fromJSValue()! } + set { jsObject[Strings.optimizeForLatency] = _toJSValue(newValue) } + } + @inlinable public var rotation: Double { + get { jsObject[Strings.rotation].fromJSValue()! } + set { jsObject[Strings.rotation] = _toJSValue(newValue) } + } + @inlinable public var flip: Bool { + get { jsObject[Strings.flip].fromJSValue()! } + set { jsObject[Strings.flip] = _toJSValue(newValue) } + } } +open class VideoDecoderInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoDecoderInit: BridgedDictionary { public convenience init(output: @escaping VideoFrameOutputCallback, error: @escaping WebCodecsErrorCallback) { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute1Void[Strings.output, in: object] = output - ClosureAttribute1Void[Strings.error, in: object] = error - self.init(unsafelyWrapping: object) - } + object[Strings.output] = _toJSValue(output) + object[Strings.error] = _toJSValue(error) - public required init(unsafelyWrapping object: JSObject) { - _output = ClosureAttribute1Void(jsObject: object, name: Strings.output) - _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute1Void - public var output: VideoFrameOutputCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1Void - public var error: WebCodecsErrorCallback + @inlinable public var output: VideoFrameOutputCallback { + get { + let function = jsObject[Strings.output].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.output] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } + @inlinable public var error: WebCodecsErrorCallback { + get { + let function = jsObject[Strings.error].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.error] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } } +open class VideoDecoderSupport: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoDecoderSupport: BridgedDictionary { - public convenience init(supported: Bool, config: VideoDecoderConfig) { + public convenience init(supported: Bool? = nil, config: VideoDecoderConfig? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.supported] = _toJSValue(supported) object[Strings.config] = _toJSValue(config) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) - _config = ReadWriteAttribute(jsObject: object, name: Strings.config) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var supported: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var config: VideoDecoderConfig + @inlinable public var supported: Bool { + get { jsObject[Strings.supported].fromJSValue()! } + set { jsObject[Strings.supported] = _toJSValue(newValue) } + } + @inlinable public var config: VideoDecoderConfig { + get { jsObject[Strings.config].fromJSValue()! } + set { jsObject[Strings.config] = _toJSValue(newValue) } + } } - public class VideoEncoder: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VideoEncoder].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.VideoEncoder].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize) - _ondequeue = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondequeue) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(init: VideoEncoderInit) { + @inlinable public convenience init(`init`: VideoEncoderInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var state: CodecState + @inlinable public var state: CodecState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var encodeQueueSize: UInt32 + @inlinable public var encodeQueueSize: UInt32 { jsObject[Strings.encodeQueueSize].fromJSValue()! } - @ClosureAttribute1Optional - public var ondequeue: EventHandler + @inlinable public var ondequeue: EventHandler { + get { + guard let function = jsObject[Strings.ondequeue].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ondequeue] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ondequeue] = .null + } + } + } - @inlinable public func configure(config: VideoEncoderConfig) { + @inlinable final public func configure(config: VideoEncoderConfig) { let this = jsObject _ = this[Strings.configure].function!(this: this, arguments: [_toJSValue(config)]) } - @inlinable public func encode(frame: VideoFrame, options: VideoEncoderEncodeOptions? = nil) { + @inlinable final public func encode(frame: VideoFrame, options: VideoEncoderEncodeOptions? = nil) { let this = jsObject _ = this[Strings.encode].function!(this: this, arguments: [_toJSValue(frame), _toJSValue(options)]) } - @inlinable public func flush() -> JSPromise { + @inlinable final public func flush() -> JSPromise { let this = jsObject return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func flush() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func flush() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } @@ -17242,12 +19678,18 @@ public class VideoEncoder: EventTarget { return this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public class func isConfigSupported(config: VideoEncoderConfig) async throws -> VideoEncoderSupport { - let this = constructor! - let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [_toJSValue(config)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public class func isConfigSupported( + config: VideoEncoderConfig + ) async throws(JSException) -> VideoEncoderSupport { + let this = constructor! + let _promise: JSPromise = this[Strings.isConfigSupported].function!( + this: this, + arguments: [_toJSValue(config)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public enum VideoEncoderBitrateMode: JSString, JSValueCompatible { @@ -17256,21 +19698,32 @@ public enum VideoEncoderBitrateMode: JSString, JSValueCompatible { case quantizer = "quantizer" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class VideoEncoderConfig: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoEncoderConfig: BridgedDictionary { - public convenience init(codec: String, width: UInt32, height: UInt32, displayWidth: UInt32, displayHeight: UInt32, bitrate: UInt64, framerate: Double, hardwareAcceleration: HardwareAcceleration, alpha: AlphaOption, scalabilityMode: String, bitrateMode: VideoEncoderBitrateMode, latencyMode: LatencyMode) { + public convenience init( + codec: String, + width: UInt32, + height: UInt32, + displayWidth: UInt32? = nil, + displayHeight: UInt32? = nil, + bitrate: UInt64? = nil, + framerate: Double? = nil, + hardwareAcceleration: HardwareAcceleration? = nil, + alpha: AlphaOption? = nil, + scalabilityMode: String? = nil, + bitrateMode: VideoEncoderBitrateMode? = nil, + latencyMode: LatencyMode? = nil, + contentHint: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.codec] = _toJSValue(codec) object[Strings.width] = _toJSValue(width) @@ -17284,120 +19737,146 @@ public class VideoEncoderConfig: BridgedDictionary { object[Strings.scalabilityMode] = _toJSValue(scalabilityMode) object[Strings.bitrateMode] = _toJSValue(bitrateMode) object[Strings.latencyMode] = _toJSValue(latencyMode) - self.init(unsafelyWrapping: object) - } + object[Strings.contentHint] = _toJSValue(contentHint) - public required init(unsafelyWrapping object: JSObject) { - _codec = ReadWriteAttribute(jsObject: object, name: Strings.codec) - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) - _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) - _bitrate = ReadWriteAttribute(jsObject: object, name: Strings.bitrate) - _framerate = ReadWriteAttribute(jsObject: object, name: Strings.framerate) - _hardwareAcceleration = ReadWriteAttribute(jsObject: object, name: Strings.hardwareAcceleration) - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - _scalabilityMode = ReadWriteAttribute(jsObject: object, name: Strings.scalabilityMode) - _bitrateMode = ReadWriteAttribute(jsObject: object, name: Strings.bitrateMode) - _latencyMode = ReadWriteAttribute(jsObject: object, name: Strings.latencyMode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var codec: String - - @ReadWriteAttribute - public var width: UInt32 - - @ReadWriteAttribute - public var height: UInt32 - - @ReadWriteAttribute - public var displayWidth: UInt32 - - @ReadWriteAttribute - public var displayHeight: UInt32 - - @ReadWriteAttribute - public var bitrate: UInt64 - - @ReadWriteAttribute - public var framerate: Double - - @ReadWriteAttribute - public var hardwareAcceleration: HardwareAcceleration + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var alpha: AlphaOption - - @ReadWriteAttribute - public var scalabilityMode: String - - @ReadWriteAttribute - public var bitrateMode: VideoEncoderBitrateMode - - @ReadWriteAttribute - public var latencyMode: LatencyMode + @inlinable public var codec: String { + get { jsObject[Strings.codec].fromJSValue()! } + set { jsObject[Strings.codec] = _toJSValue(newValue) } + } + @inlinable public var width: UInt32 { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: UInt32 { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } + @inlinable public var displayWidth: UInt32 { + get { jsObject[Strings.displayWidth].fromJSValue()! } + set { jsObject[Strings.displayWidth] = _toJSValue(newValue) } + } + @inlinable public var displayHeight: UInt32 { + get { jsObject[Strings.displayHeight].fromJSValue()! } + set { jsObject[Strings.displayHeight] = _toJSValue(newValue) } + } + @inlinable public var bitrate: UInt64 { + get { jsObject[Strings.bitrate].fromJSValue()! } + set { jsObject[Strings.bitrate] = _toJSValue(newValue) } + } + @inlinable public var framerate: Double { + get { jsObject[Strings.framerate].fromJSValue()! } + set { jsObject[Strings.framerate] = _toJSValue(newValue) } + } + @inlinable public var hardwareAcceleration: HardwareAcceleration { + get { jsObject[Strings.hardwareAcceleration].fromJSValue()! } + set { jsObject[Strings.hardwareAcceleration] = _toJSValue(newValue) } + } + @inlinable public var alpha: AlphaOption { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } + @inlinable public var scalabilityMode: String { + get { jsObject[Strings.scalabilityMode].fromJSValue()! } + set { jsObject[Strings.scalabilityMode] = _toJSValue(newValue) } + } + @inlinable public var bitrateMode: VideoEncoderBitrateMode { + get { jsObject[Strings.bitrateMode].fromJSValue()! } + set { jsObject[Strings.bitrateMode] = _toJSValue(newValue) } + } + @inlinable public var latencyMode: LatencyMode { + get { jsObject[Strings.latencyMode].fromJSValue()! } + set { jsObject[Strings.latencyMode] = _toJSValue(newValue) } + } + @inlinable public var contentHint: String { + get { jsObject[Strings.contentHint].fromJSValue()! } + set { jsObject[Strings.contentHint] = _toJSValue(newValue) } + } } +open class VideoEncoderEncodeOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoEncoderEncodeOptions: BridgedDictionary { - public convenience init(keyFrame: Bool) { + public convenience init(keyFrame: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.keyFrame] = _toJSValue(keyFrame) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _keyFrame = ReadWriteAttribute(jsObject: object, name: Strings.keyFrame) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var keyFrame: Bool + @inlinable public var keyFrame: Bool { + get { jsObject[Strings.keyFrame].fromJSValue()! } + set { jsObject[Strings.keyFrame] = _toJSValue(newValue) } + } } +open class VideoEncoderInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoEncoderInit: BridgedDictionary { - public convenience init(output: @escaping EncodedVideoChunkOutputCallback, error: @escaping WebCodecsErrorCallback) { + public convenience init(output: @escaping EncodedVideoChunkOutputCallback, error: @escaping WebCodecsErrorCallback) + { let object = JSObject.global[Strings.Object].function!.new() - ClosureAttribute2Void[Strings.output, in: object] = output - ClosureAttribute1Void[Strings.error, in: object] = error - self.init(unsafelyWrapping: object) - } + object[Strings.output] = _toJSValue(output) + object[Strings.error] = _toJSValue(error) - public required init(unsafelyWrapping object: JSObject) { - _output = ClosureAttribute2Void(jsObject: object, name: Strings.output) - _error = ClosureAttribute1Void(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ClosureAttribute2Void - public var output: EncodedVideoChunkOutputCallback + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ClosureAttribute1Void - public var error: WebCodecsErrorCallback + @inlinable public var output: EncodedVideoChunkOutputCallback { + get { + let function = jsObject[Strings.output].function! + return { function(_toJSValue($0), _toJSValue($1)) } + } + set { + jsObject[Strings.output] = + JSClosure { + newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!) + return .undefined + }.jsValue + } + } + @inlinable public var error: WebCodecsErrorCallback { + get { + let function = jsObject[Strings.error].function! + return { function(_toJSValue($0)) } + } + set { + jsObject[Strings.error] = + JSClosure { + newValue($0[0].fromJSValue()!) + return .undefined + }.jsValue + } + } } +open class VideoEncoderSupport: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoEncoderSupport: BridgedDictionary { - public convenience init(supported: Bool, config: VideoEncoderConfig) { + public convenience init(supported: Bool? = nil, config: VideoEncoderConfig? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.supported] = _toJSValue(supported) object[Strings.config] = _toJSValue(config) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported) - _config = ReadWriteAttribute(jsObject: object, name: Strings.config) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var supported: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var config: VideoEncoderConfig + @inlinable public var supported: Bool { + get { jsObject[Strings.supported].fromJSValue()! } + set { jsObject[Strings.supported] = _toJSValue(newValue) } + } + @inlinable public var config: VideoEncoderConfig { + get { jsObject[Strings.config].fromJSValue()! } + set { jsObject[Strings.config] = _toJSValue(newValue) } + } } - public enum VideoFacingModeEnum: JSString, JSValueCompatible { case user = "user" case environment = "environment" @@ -17405,111 +19884,116 @@ public enum VideoFacingModeEnum: JSString, JSValueCompatible { case right = "right" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class VideoFrame: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoFrame].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format) - _codedWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedWidth) - _codedHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedHeight) - _codedRect = ReadonlyAttribute(jsObject: jsObject, name: Strings.codedRect) - _visibleRect = ReadonlyAttribute(jsObject: jsObject, name: Strings.visibleRect) - _displayWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.displayWidth) - _displayHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.displayHeight) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - _colorSpace = ReadonlyAttribute(jsObject: jsObject, name: Strings.colorSpace) - self.jsObject = jsObject - } - - @inlinable public convenience init(image: CanvasImageSource, init: VideoFrameInit? = nil) { + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public convenience init(image: CanvasImageSource, `init`: VideoFrameInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(image), _toJSValue(`init`)])) } - @inlinable public convenience init(data: AllowSharedBufferSource, init: VideoFrameBufferInit) { + @inlinable public convenience init(data: AllowSharedBufferSource, `init`: VideoFrameBufferInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(data), _toJSValue(`init`)])) } - @ReadonlyAttribute - public var format: VideoPixelFormat? + @inlinable public var format: VideoPixelFormat? { jsObject[Strings.format].fromJSValue() } + + @inlinable public var codedWidth: UInt32 { jsObject[Strings.codedWidth].fromJSValue()! } + + @inlinable public var codedHeight: UInt32 { jsObject[Strings.codedHeight].fromJSValue()! } - @ReadonlyAttribute - public var codedWidth: UInt32 + @inlinable public var codedRect: DOMRectReadOnly? { jsObject[Strings.codedRect].fromJSValue() } - @ReadonlyAttribute - public var codedHeight: UInt32 + @inlinable public var visibleRect: DOMRectReadOnly? { jsObject[Strings.visibleRect].fromJSValue() } - @ReadonlyAttribute - public var codedRect: DOMRectReadOnly? + @inlinable public var rotation: Double { jsObject[Strings.rotation].fromJSValue()! } - @ReadonlyAttribute - public var visibleRect: DOMRectReadOnly? + @inlinable public var flip: Bool { jsObject[Strings.flip].fromJSValue()! } - @ReadonlyAttribute - public var displayWidth: UInt32 + @inlinable public var displayWidth: UInt32 { jsObject[Strings.displayWidth].fromJSValue()! } - @ReadonlyAttribute - public var displayHeight: UInt32 + @inlinable public var displayHeight: UInt32 { jsObject[Strings.displayHeight].fromJSValue()! } - @ReadonlyAttribute - public var duration: UInt64? + @inlinable public var duration: UInt64? { jsObject[Strings.duration].fromJSValue() } - @ReadonlyAttribute - public var timestamp: Int64 + @inlinable public var timestamp: Int64 { jsObject[Strings.timestamp].fromJSValue()! } - @ReadonlyAttribute - public var colorSpace: VideoColorSpace + @inlinable public var colorSpace: VideoColorSpace { jsObject[Strings.colorSpace].fromJSValue()! } - @inlinable public func metadata() -> VideoFrameMetadata { + @inlinable final public func metadata() -> VideoFrameMetadata { let this = jsObject return this[Strings.metadata].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func allocationSize(options: VideoFrameCopyToOptions? = nil) -> UInt32 { + @inlinable final public func allocationSize(options: VideoFrameCopyToOptions? = nil) -> UInt32 { let this = jsObject return this[Strings.allocationSize].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func copyTo(destination: AllowSharedBufferSource, options: VideoFrameCopyToOptions? = nil) -> JSPromise { + @inlinable final public func copyTo( + destination: AllowSharedBufferSource, + options: VideoFrameCopyToOptions? = nil + ) -> JSPromise { let this = jsObject - return this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]).fromJSValue()! + return this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func copyTo(destination: AllowSharedBufferSource, options: VideoFrameCopyToOptions? = nil) async throws -> [PlaneLayout] { - let this = jsObject - let _promise: JSPromise = this[Strings.copyTo].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func copyTo( + destination: AllowSharedBufferSource, + options: VideoFrameCopyToOptions? = nil + ) async throws(JSException) -> [PlaneLayout] { + let this = jsObject + let _promise: JSPromise = this[Strings.copyTo].function!( + this: this, + arguments: [_toJSValue(destination), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func clone() -> Self { + @inlinable final public func clone() -> VideoFrame { let this = jsObject return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } } -public class VideoFrameBufferInit: BridgedDictionary { - public convenience init(format: VideoPixelFormat, codedWidth: UInt32, codedHeight: UInt32, timestamp: Int64, duration: UInt64, layout: [PlaneLayout], visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32, colorSpace: VideoColorSpaceInit, transfer: [ArrayBuffer]) { +open class VideoFrameBufferInit: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + format: VideoPixelFormat, + codedWidth: UInt32, + codedHeight: UInt32, + timestamp: Int64, + duration: UInt64? = nil, + layout: [PlaneLayout]? = nil, + visibleRect: DOMRectInit? = nil, + rotation: Double? = nil, + flip: Bool? = nil, + displayWidth: UInt32? = nil, + displayHeight: UInt32? = nil, + colorSpace: VideoColorSpaceInit? = nil, + transfer: [ArrayBuffer]? = nil, + metadata: VideoFrameMetadata? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.format] = _toJSValue(format) object[Strings.codedWidth] = _toJSValue(codedWidth) @@ -17518,141 +20002,192 @@ public class VideoFrameBufferInit: BridgedDictionary { object[Strings.duration] = _toJSValue(duration) object[Strings.layout] = _toJSValue(layout) object[Strings.visibleRect] = _toJSValue(visibleRect) + object[Strings.rotation] = _toJSValue(rotation) + object[Strings.flip] = _toJSValue(flip) object[Strings.displayWidth] = _toJSValue(displayWidth) object[Strings.displayHeight] = _toJSValue(displayHeight) object[Strings.colorSpace] = _toJSValue(colorSpace) object[Strings.transfer] = _toJSValue(transfer) - self.init(unsafelyWrapping: object) - } + object[Strings.metadata] = _toJSValue(metadata) - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _codedWidth = ReadWriteAttribute(jsObject: object, name: Strings.codedWidth) - _codedHeight = ReadWriteAttribute(jsObject: object, name: Strings.codedHeight) - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) - _visibleRect = ReadWriteAttribute(jsObject: object, name: Strings.visibleRect) - _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) - _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: VideoPixelFormat - - @ReadWriteAttribute - public var codedWidth: UInt32 - - @ReadWriteAttribute - public var codedHeight: UInt32 - - @ReadWriteAttribute - public var timestamp: Int64 - - @ReadWriteAttribute - public var duration: UInt64 - - @ReadWriteAttribute - public var layout: [PlaneLayout] - - @ReadWriteAttribute - public var visibleRect: DOMRectInit - - @ReadWriteAttribute - public var displayWidth: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var displayHeight: UInt32 - - @ReadWriteAttribute - public var colorSpace: VideoColorSpaceInit - - @ReadWriteAttribute - public var transfer: [ArrayBuffer] + @inlinable public var format: VideoPixelFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var codedWidth: UInt32 { + get { jsObject[Strings.codedWidth].fromJSValue()! } + set { jsObject[Strings.codedWidth] = _toJSValue(newValue) } + } + @inlinable public var codedHeight: UInt32 { + get { jsObject[Strings.codedHeight].fromJSValue()! } + set { jsObject[Strings.codedHeight] = _toJSValue(newValue) } + } + @inlinable public var timestamp: Int64 { + get { jsObject[Strings.timestamp].fromJSValue()! } + set { jsObject[Strings.timestamp] = _toJSValue(newValue) } + } + @inlinable public var duration: UInt64 { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var layout: [PlaneLayout] { + get { jsObject[Strings.layout].fromJSValue()! } + set { jsObject[Strings.layout] = _toJSValue(newValue) } + } + @inlinable public var visibleRect: DOMRectInit { + get { jsObject[Strings.visibleRect].fromJSValue()! } + set { jsObject[Strings.visibleRect] = _toJSValue(newValue) } + } + @inlinable public var rotation: Double { + get { jsObject[Strings.rotation].fromJSValue()! } + set { jsObject[Strings.rotation] = _toJSValue(newValue) } + } + @inlinable public var flip: Bool { + get { jsObject[Strings.flip].fromJSValue()! } + set { jsObject[Strings.flip] = _toJSValue(newValue) } + } + @inlinable public var displayWidth: UInt32 { + get { jsObject[Strings.displayWidth].fromJSValue()! } + set { jsObject[Strings.displayWidth] = _toJSValue(newValue) } + } + @inlinable public var displayHeight: UInt32 { + get { jsObject[Strings.displayHeight].fromJSValue()! } + set { jsObject[Strings.displayHeight] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: VideoColorSpaceInit { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } + @inlinable public var transfer: [ArrayBuffer] { + get { jsObject[Strings.transfer].fromJSValue()! } + set { jsObject[Strings.transfer] = _toJSValue(newValue) } + } + @inlinable public var metadata: VideoFrameMetadata { + get { jsObject[Strings.metadata].fromJSValue()! } + set { jsObject[Strings.metadata] = _toJSValue(newValue) } + } } +open class VideoFrameCopyToOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoFrameCopyToOptions: BridgedDictionary { - public convenience init(rect: DOMRectInit, layout: [PlaneLayout]) { + public convenience init( + rect: DOMRectInit? = nil, + layout: [PlaneLayout]? = nil, + format: VideoPixelFormat? = nil, + colorSpace: PredefinedColorSpace? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.rect] = _toJSValue(rect) object[Strings.layout] = _toJSValue(layout) - self.init(unsafelyWrapping: object) - } + object[Strings.format] = _toJSValue(format) + object[Strings.colorSpace] = _toJSValue(colorSpace) - public required init(unsafelyWrapping object: JSObject) { - _rect = ReadWriteAttribute(jsObject: object, name: Strings.rect) - _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var rect: DOMRectInit + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var layout: [PlaneLayout] + @inlinable public var rect: DOMRectInit { + get { jsObject[Strings.rect].fromJSValue()! } + set { jsObject[Strings.rect] = _toJSValue(newValue) } + } + @inlinable public var layout: [PlaneLayout] { + get { jsObject[Strings.layout].fromJSValue()! } + set { jsObject[Strings.layout] = _toJSValue(newValue) } + } + @inlinable public var format: VideoPixelFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } } +open class VideoFrameInit: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoFrameInit: BridgedDictionary { - public convenience init(duration: UInt64, timestamp: Int64, alpha: AlphaOption, visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32, metadata: VideoFrameMetadata) { + public convenience init( + duration: UInt64? = nil, + timestamp: Int64? = nil, + alpha: AlphaOption? = nil, + visibleRect: DOMRectInit? = nil, + rotation: Double? = nil, + flip: Bool? = nil, + displayWidth: UInt32? = nil, + displayHeight: UInt32? = nil, + metadata: VideoFrameMetadata? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.duration] = _toJSValue(duration) object[Strings.timestamp] = _toJSValue(timestamp) object[Strings.alpha] = _toJSValue(alpha) object[Strings.visibleRect] = _toJSValue(visibleRect) + object[Strings.rotation] = _toJSValue(rotation) + object[Strings.flip] = _toJSValue(flip) object[Strings.displayWidth] = _toJSValue(displayWidth) object[Strings.displayHeight] = _toJSValue(displayHeight) object[Strings.metadata] = _toJSValue(metadata) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - _visibleRect = ReadWriteAttribute(jsObject: object, name: Strings.visibleRect) - _displayWidth = ReadWriteAttribute(jsObject: object, name: Strings.displayWidth) - _displayHeight = ReadWriteAttribute(jsObject: object, name: Strings.displayHeight) - _metadata = ReadWriteAttribute(jsObject: object, name: Strings.metadata) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var duration: UInt64 - - @ReadWriteAttribute - public var timestamp: Int64 - - @ReadWriteAttribute - public var alpha: AlphaOption + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var visibleRect: DOMRectInit - - @ReadWriteAttribute - public var displayWidth: UInt32 - - @ReadWriteAttribute - public var displayHeight: UInt32 - - @ReadWriteAttribute - public var metadata: VideoFrameMetadata + @inlinable public var duration: UInt64 { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var timestamp: Int64 { + get { jsObject[Strings.timestamp].fromJSValue()! } + set { jsObject[Strings.timestamp] = _toJSValue(newValue) } + } + @inlinable public var alpha: AlphaOption { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } + @inlinable public var visibleRect: DOMRectInit { + get { jsObject[Strings.visibleRect].fromJSValue()! } + set { jsObject[Strings.visibleRect] = _toJSValue(newValue) } + } + @inlinable public var rotation: Double { + get { jsObject[Strings.rotation].fromJSValue()! } + set { jsObject[Strings.rotation] = _toJSValue(newValue) } + } + @inlinable public var flip: Bool { + get { jsObject[Strings.flip].fromJSValue()! } + set { jsObject[Strings.flip] = _toJSValue(newValue) } + } + @inlinable public var displayWidth: UInt32 { + get { jsObject[Strings.displayWidth].fromJSValue()! } + set { jsObject[Strings.displayWidth] = _toJSValue(newValue) } + } + @inlinable public var displayHeight: UInt32 { + get { jsObject[Strings.displayHeight].fromJSValue()! } + set { jsObject[Strings.displayHeight] = _toJSValue(newValue) } + } + @inlinable public var metadata: VideoFrameMetadata { + get { jsObject[Strings.metadata].fromJSValue()! } + set { jsObject[Strings.metadata] = _toJSValue(newValue) } + } } +open class VideoFrameMetadata: JSDictionaryCompatible { + public let jsObject: JSObject -public class VideoFrameMetadata: BridgedDictionary { public convenience init() { let object = JSObject.global[Strings.Object].function!.new() self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } +} public enum VideoMatrixCoefficients: JSString, JSValueCompatible { case rgb = "rgb" case bt709 = "bt709" @@ -17661,24 +20196,33 @@ public enum VideoMatrixCoefficients: JSString, JSValueCompatible { case bt2020Ncl = "bt2020-ncl" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum VideoPixelFormat: JSString, JSValueCompatible { case i420 = "I420" + case i420P10 = "I420P10" + case i420P12 = "I420P12" case i420A = "I420A" + case i420AP10 = "I420AP10" + case i420AP12 = "I420AP12" case i422 = "I422" + case i422P10 = "I422P10" + case i422P12 = "I422P12" + case i422A = "I422A" + case i422AP10 = "I422AP10" + case i422AP12 = "I422AP12" case i444 = "I444" + case i444P10 = "I444P10" + case i444P12 = "I444P12" + case i444A = "I444A" + case i444AP10 = "I444AP10" + case i444AP12 = "I444AP12" case nV12 = "NV12" case rGBA = "RGBA" case rGBX = "RGBX" @@ -17686,106 +20230,107 @@ public enum VideoPixelFormat: JSString, JSValueCompatible { case bGRX = "BGRX" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum VideoResizeModeEnum: JSString, JSValueCompatible { case none = "none" case cropAndScale = "crop-and-scale" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class VideoTrack: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoTrack].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _label = ReadonlyAttribute(jsObject: jsObject, name: Strings.label) - _language = ReadonlyAttribute(jsObject: jsObject, name: Strings.language) - _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected) - _sourceBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.sourceBuffer) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var kind: String + @inlinable public var kind: String { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var label: String + @inlinable public var label: String { jsObject[Strings.label].fromJSValue()! } - @ReadonlyAttribute - public var language: String + @inlinable public var language: String { jsObject[Strings.language].fromJSValue()! } - @ReadWriteAttribute - public var selected: Bool + @inlinable public var selected: Bool { + get { jsObject[Strings.selected].fromJSValue()! } + set { jsObject[Strings.selected] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var sourceBuffer: SourceBuffer? + @inlinable public var sourceBuffer: SourceBuffer? { jsObject[Strings.sourceBuffer].fromJSValue() } } public class VideoTrackList: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VideoTrackList].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.VideoTrackList].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _selectedIndex = ReadonlyAttribute(jsObject: jsObject, name: Strings.selectedIndex) - _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange) - _onaddtrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaddtrack) - _onremovetrack = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremovetrack) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @inlinable public subscript(key: Int) -> VideoTrack { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: Int) -> VideoTrack { jsObject[key].fromJSValue()! } - @inlinable public func getTrackById(id: String) -> VideoTrack? { + @inlinable final public func getTrackById(id: String) -> VideoTrack? { let this = jsObject return this[Strings.getTrackById].function!(this: this, arguments: [_toJSValue(id)]).fromJSValue() } - @ReadonlyAttribute - public var selectedIndex: Int32 + @inlinable public var selectedIndex: Int32 { jsObject[Strings.selectedIndex].fromJSValue()! } - @ClosureAttribute1Optional - public var onchange: EventHandler + @inlinable public var onchange: EventHandler { + get { + guard let function = jsObject[Strings.onchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onchange] = .null + } + } + } - @ClosureAttribute1Optional - public var onaddtrack: EventHandler + @inlinable public var onaddtrack: EventHandler { + get { + guard let function = jsObject[Strings.onaddtrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaddtrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaddtrack] = .null + } + } + } - @ClosureAttribute1Optional - public var onremovetrack: EventHandler + @inlinable public var onremovetrack: EventHandler { + get { + guard let function = jsObject[Strings.onremovetrack].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremovetrack] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremovetrack] = .null + } + } + } } public enum VideoTransferCharacteristics: JSString, JSValueCompatible { @@ -17797,100 +20342,108 @@ public enum VideoTransferCharacteristics: JSString, JSValueCompatible { case hlg = "hlg" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +public class ViewTransition: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ViewTransition].function } -public class VisibilityStateEntry: PerformanceEntry { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VisibilityStateEntry].function } + public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _entryType = ReadonlyAttribute(jsObject: jsObject, name: Strings.entryType) - _startTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.startTime) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var updateCallbackDone: JSPromise { jsObject[Strings.updateCallbackDone].fromJSValue()! } + + @inlinable public var ready: JSPromise { jsObject[Strings.ready].fromJSValue()! } + + @inlinable public var finished: JSPromise { jsObject[Strings.finished].fromJSValue()! } - @usableFromInline let _name: ReadonlyAttribute - @inlinable override public var name: String { _name.wrappedValue } + @inlinable final public func skipTransition() { + let this = jsObject + _ = this[Strings.skipTransition].function!(this: this, arguments: []) + } +} - @usableFromInline let _entryType: ReadonlyAttribute - @inlinable override public var entryType: String { _entryType.wrappedValue } +public class VisibilityStateEntry: PerformanceEntry { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.VisibilityStateEntry].function + } - @usableFromInline let _startTime: ReadonlyAttribute - @inlinable override public var startTime: DOMHighResTimeStamp { _startTime.wrappedValue } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - // XXX: override of property `duration` removed because the type here is UInt32 but the - // type in the superclass is DOMHighResTimestamp (Double). } public class VisualViewport: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VisualViewport].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.VisualViewport].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _offsetLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetLeft) - _offsetTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.offsetTop) - _pageLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageLeft) - _pageTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageTop) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _scale = ReadonlyAttribute(jsObject: jsObject, name: Strings.scale) - _onresize = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onresize) - _onscroll = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onscroll) - _onscrollend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onscrollend) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var offsetLeft: Double + @inlinable public var offsetLeft: Double { jsObject[Strings.offsetLeft].fromJSValue()! } - @ReadonlyAttribute - public var offsetTop: Double + @inlinable public var offsetTop: Double { jsObject[Strings.offsetTop].fromJSValue()! } - @ReadonlyAttribute - public var pageLeft: Double + @inlinable public var pageLeft: Double { jsObject[Strings.pageLeft].fromJSValue()! } - @ReadonlyAttribute - public var pageTop: Double + @inlinable public var pageTop: Double { jsObject[Strings.pageTop].fromJSValue()! } - @ReadonlyAttribute - public var width: Double + @inlinable public var width: Double { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: Double + @inlinable public var height: Double { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var scale: Double + @inlinable public var scale: Double { jsObject[Strings.scale].fromJSValue()! } - @ClosureAttribute1Optional - public var onresize: EventHandler + @inlinable public var onresize: EventHandler { + get { + guard let function = jsObject[Strings.onresize].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onresize] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onresize] = .null + } + } + } - @ClosureAttribute1Optional - public var onscroll: EventHandler + @inlinable public var onscroll: EventHandler { + get { + guard let function = jsObject[Strings.onscroll].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscroll] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscroll] = .null + } + } + } - @ClosureAttribute1Optional - public var onscrollend: EventHandler + @inlinable public var onscrollend: EventHandler { + get { + guard let function = jsObject[Strings.onscrollend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onscrollend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onscrollend] = .null + } + } + } } public class WheelEvent: MouseEvent { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WheelEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WheelEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _deltaX = ReadonlyAttribute(jsObject: jsObject, name: Strings.deltaX) - _deltaY = ReadonlyAttribute(jsObject: jsObject, name: Strings.deltaY) - _deltaZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.deltaZ) - _deltaMode = ReadonlyAttribute(jsObject: jsObject, name: Strings.deltaMode) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: WheelEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) @@ -17902,845 +20455,1011 @@ public class WheelEvent: MouseEvent { public static let DOM_DELTA_PAGE: UInt32 = 0x02 - @ReadonlyAttribute - public var deltaX: Double + @inlinable public var deltaX: Double { jsObject[Strings.deltaX].fromJSValue()! } - @ReadonlyAttribute - public var deltaY: Double + @inlinable public var deltaY: Double { jsObject[Strings.deltaY].fromJSValue()! } - @ReadonlyAttribute - public var deltaZ: Double + @inlinable public var deltaZ: Double { jsObject[Strings.deltaZ].fromJSValue()! } - @ReadonlyAttribute - public var deltaMode: UInt32 + @inlinable public var deltaMode: UInt32 { jsObject[Strings.deltaMode].fromJSValue()! } } -public class WheelEventInit: BridgedDictionary { - public convenience init(deltaX: Double, deltaY: Double, deltaZ: Double, deltaMode: UInt32) { +open class WheelEventInit: MouseEventInit { + + public convenience init( + screenX: Int32? = nil, + screenY: Int32? = nil, + clientX: Int32? = nil, + clientY: Int32? = nil, + button: Int16? = nil, + buttons: UInt16? = nil, + relatedTarget: EventTarget?, + deltaX: Double? = nil, + deltaY: Double? = nil, + deltaZ: Double? = nil, + deltaMode: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.screenX] = _toJSValue(screenX) + object[Strings.screenY] = _toJSValue(screenY) + object[Strings.clientX] = _toJSValue(clientX) + object[Strings.clientY] = _toJSValue(clientY) + object[Strings.button] = _toJSValue(button) + object[Strings.buttons] = _toJSValue(buttons) + object[Strings.relatedTarget] = _toJSValue(relatedTarget) object[Strings.deltaX] = _toJSValue(deltaX) object[Strings.deltaY] = _toJSValue(deltaY) object[Strings.deltaZ] = _toJSValue(deltaZ) object[Strings.deltaMode] = _toJSValue(deltaMode) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _deltaX = ReadWriteAttribute(jsObject: object, name: Strings.deltaX) - _deltaY = ReadWriteAttribute(jsObject: object, name: Strings.deltaY) - _deltaZ = ReadWriteAttribute(jsObject: object, name: Strings.deltaZ) - _deltaMode = ReadWriteAttribute(jsObject: object, name: Strings.deltaMode) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var deltaX: Double - - @ReadWriteAttribute - public var deltaY: Double - - @ReadWriteAttribute - public var deltaZ: Double - - @ReadWriteAttribute - public var deltaMode: UInt32 -} - -public class Window: EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, AnimationFrameProvider, WindowSessionStorage, WindowLocalStorage { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Window].function } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @inlinable public static var global: Window { - Window(unsafelyWrapping: JSObject.global) + @inlinable public var deltaX: Double { + get { jsObject[Strings.deltaX].fromJSValue()! } + set { jsObject[Strings.deltaX] = _toJSValue(newValue) } + } + @inlinable public var deltaY: Double { + get { jsObject[Strings.deltaY].fromJSValue()! } + set { jsObject[Strings.deltaY] = _toJSValue(newValue) } } + @inlinable public var deltaZ: Double { + get { jsObject[Strings.deltaZ].fromJSValue()! } + set { jsObject[Strings.deltaZ] = _toJSValue(newValue) } + } + @inlinable public var deltaMode: UInt32 { + get { jsObject[Strings.deltaMode].fromJSValue()! } + set { jsObject[Strings.deltaMode] = _toJSValue(newValue) } + } +} +public class Window: EventTarget, GlobalEventHandlers, WindowEventHandlers, WindowOrWorkerGlobalScope, + AnimationFrameProvider, WindowSessionStorage, WindowLocalStorage +{ + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Window].function } + + @inlinable public static var global: Window { Window(unsafelyWrapping: JSObject.global) } - public required init(unsafelyWrapping jsObject: JSObject) { - _event = ReadonlyAttribute(jsObject: jsObject, name: Strings.event) - _window = ReadonlyAttribute(jsObject: jsObject, name: Strings.window) - _self = ReadonlyAttribute(jsObject: jsObject, name: Strings._self) - _document = ReadonlyAttribute(jsObject: jsObject, name: Strings.document) - _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name) - _location = ReadonlyAttribute(jsObject: jsObject, name: Strings.location) - _history = ReadonlyAttribute(jsObject: jsObject, name: Strings.history) - _navigation = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigation) - _customElements = ReadonlyAttribute(jsObject: jsObject, name: Strings.customElements) - _locationbar = ReadonlyAttribute(jsObject: jsObject, name: Strings.locationbar) - _menubar = ReadonlyAttribute(jsObject: jsObject, name: Strings.menubar) - _personalbar = ReadonlyAttribute(jsObject: jsObject, name: Strings.personalbar) - _scrollbars = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollbars) - _statusbar = ReadonlyAttribute(jsObject: jsObject, name: Strings.statusbar) - _toolbar = ReadonlyAttribute(jsObject: jsObject, name: Strings.toolbar) - _status = ReadWriteAttribute(jsObject: jsObject, name: Strings.status) - _closed = ReadonlyAttribute(jsObject: jsObject, name: Strings.closed) - _frames = ReadonlyAttribute(jsObject: jsObject, name: Strings.frames) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _top = ReadonlyAttribute(jsObject: jsObject, name: Strings.top) - _opener = ReadWriteAttribute(jsObject: jsObject, name: Strings.opener) - _parent = ReadonlyAttribute(jsObject: jsObject, name: Strings.parent) - _frameElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.frameElement) - _navigator = ReadonlyAttribute(jsObject: jsObject, name: Strings.navigator) - _clientInformation = ReadonlyAttribute(jsObject: jsObject, name: Strings.clientInformation) - _originAgentCluster = ReadonlyAttribute(jsObject: jsObject, name: Strings.originAgentCluster) - _external = ReadonlyAttribute(jsObject: jsObject, name: Strings.external) - _screen = ReadonlyAttribute(jsObject: jsObject, name: Strings.screen) - _visualViewport = ReadonlyAttribute(jsObject: jsObject, name: Strings.visualViewport) - _innerWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.innerWidth) - _innerHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.innerHeight) - _scrollX = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollX) - _pageXOffset = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageXOffset) - _scrollY = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollY) - _pageYOffset = ReadonlyAttribute(jsObject: jsObject, name: Strings.pageYOffset) - _screenX = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenX) - _screenLeft = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenLeft) - _screenY = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenY) - _screenTop = ReadonlyAttribute(jsObject: jsObject, name: Strings.screenTop) - _outerWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.outerWidth) - _outerHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.outerHeight) - _devicePixelRatio = ReadonlyAttribute(jsObject: jsObject, name: Strings.devicePixelRatio) - super.init(unsafelyWrapping: jsObject) + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var event: Event? { jsObject[Strings.event].fromJSValue()! } + + @inlinable public var window: WindowProxy { jsObject[Strings.window].fromJSValue()! } + + @inlinable public var `self`: WindowProxy { jsObject[Strings._self].fromJSValue()! } + + @inlinable public var document: Document { jsObject[Strings.document].fromJSValue()! } + + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } } - @ReadonlyAttribute - public var event: Event? + @inlinable public var location: Location { jsObject[Strings.location].fromJSValue()! } + + @inlinable public var history: History { jsObject[Strings.history].fromJSValue()! } - @ReadonlyAttribute - public var window: WindowProxy + @inlinable public var navigation: Navigation { jsObject[Strings.navigation].fromJSValue()! } - @ReadonlyAttribute - public var `self`: WindowProxy + @inlinable public var customElements: CustomElementRegistry { jsObject[Strings.customElements].fromJSValue()! } - @ReadonlyAttribute - public var document: Document + @inlinable public var locationbar: BarProp { jsObject[Strings.locationbar].fromJSValue()! } - @ReadWriteAttribute - public var name: String + @inlinable public var menubar: BarProp { jsObject[Strings.menubar].fromJSValue()! } - @ReadonlyAttribute - public var location: Location + @inlinable public var personalbar: BarProp { jsObject[Strings.personalbar].fromJSValue()! } - @ReadonlyAttribute - public var history: History + @inlinable public var scrollbars: BarProp { jsObject[Strings.scrollbars].fromJSValue()! } - @ReadonlyAttribute - public var navigation: Navigation + @inlinable public var statusbar: BarProp { jsObject[Strings.statusbar].fromJSValue()! } - @ReadonlyAttribute - public var customElements: CustomElementRegistry - - @ReadonlyAttribute - public var locationbar: BarProp - - @ReadonlyAttribute - public var menubar: BarProp + @inlinable public var toolbar: BarProp { jsObject[Strings.toolbar].fromJSValue()! } + + @inlinable public var status: String { + get { jsObject[Strings.status].fromJSValue()! } + set { jsObject[Strings.status] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var personalbar: BarProp - - @ReadonlyAttribute - public var scrollbars: BarProp - - @ReadonlyAttribute - public var statusbar: BarProp - - @ReadonlyAttribute - public var toolbar: BarProp - - @ReadWriteAttribute - public var status: String - - @inlinable public func close() { + @inlinable final public func close() { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var closed: Bool + @inlinable public var closed: Bool { jsObject[Strings.closed].fromJSValue()! } - @inlinable public func stop() { + @inlinable final public func stop() { let this = jsObject _ = this[Strings.stop].function!(this: this, arguments: []) } - @inlinable public func focus() { + @inlinable final public func focus() { let this = jsObject _ = this[Strings.focus].function!(this: this, arguments: []) } - @inlinable public func blur() { + @inlinable final public func blur() { let this = jsObject _ = this[Strings.blur].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var frames: WindowProxy + @inlinable public var frames: WindowProxy { jsObject[Strings.frames].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var top: WindowProxy? + @inlinable public var top: WindowProxy? { jsObject[Strings.top].fromJSValue() } - @ReadWriteAttribute - public var opener: JSValue + @inlinable public var opener: JSValue { + get { jsObject[Strings.opener].fromJSValue()! } + set { jsObject[Strings.opener] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var parent: WindowProxy? + @inlinable public var parent: WindowProxy? { jsObject[Strings.parent].fromJSValue() } - @ReadonlyAttribute - public var frameElement: Element? + @inlinable public var frameElement: Element? { jsObject[Strings.frameElement].fromJSValue() } - @inlinable public func open(url: String? = nil, target: String? = nil, features: String? = nil) -> WindowProxy? { + @inlinable final public func open( + url: String? = nil, + target: String? = nil, + features: String? = nil + ) -> WindowProxy? { let this = jsObject - return this[Strings.open].function!(this: this, arguments: [_toJSValue(url), _toJSValue(target), _toJSValue(features)]).fromJSValue() + return this[Strings.open].function!( + this: this, + arguments: [_toJSValue(url), _toJSValue(target), _toJSValue(features)] + ).fromJSValue() } - @inlinable public subscript(key: String) -> JSObject { - jsObject[key].fromJSValue()! - } + @inlinable public subscript(key: String) -> JSObject { jsObject[key].fromJSValue()! } - @ReadonlyAttribute - public var navigator: Navigator + @inlinable public var navigator: Navigator { jsObject[Strings.navigator].fromJSValue()! } - @ReadonlyAttribute - public var clientInformation: Navigator + @inlinable public var clientInformation: Navigator { jsObject[Strings.clientInformation].fromJSValue()! } - @ReadonlyAttribute - public var originAgentCluster: Bool + @inlinable public var originAgentCluster: Bool { jsObject[Strings.originAgentCluster].fromJSValue()! } - @inlinable public func alert() { + @inlinable final public func alert() { let this = jsObject _ = this[Strings.alert].function!(this: this, arguments: []) } - @inlinable public func alert(message: String) { + @inlinable final public func alert(message: String) { let this = jsObject _ = this[Strings.alert].function!(this: this, arguments: [_toJSValue(message)]) } - @inlinable public func confirm(message: String? = nil) -> Bool { + @inlinable final public func confirm(message: String? = nil) -> Bool { let this = jsObject return this[Strings.confirm].function!(this: this, arguments: [_toJSValue(message)]).fromJSValue()! } - @inlinable public func prompt(message: String? = nil, default: String? = nil) -> String? { + @inlinable final public func prompt(message: String? = nil, `default`: String? = nil) -> String? { let this = jsObject - return this[Strings.prompt].function!(this: this, arguments: [_toJSValue(message), _toJSValue(`default`)]).fromJSValue() + return this[Strings.prompt].function!(this: this, arguments: [_toJSValue(message), _toJSValue(`default`)]) + .fromJSValue() } - @inlinable public func print() { + @inlinable final public func print() { let this = jsObject _ = this[Strings.print].function!(this: this, arguments: []) } - @inlinable public func postMessage(message: JSValue, targetOrigin: String, transfer: [JSObject]? = nil) { + @inlinable final public func postMessage(message: JSValue, targetOrigin: String, transfer: [JSObject]? = nil) { let this = jsObject - _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(targetOrigin), _toJSValue(transfer)]) + _ = this[Strings.postMessage].function!( + this: this, + arguments: [_toJSValue(message), _toJSValue(targetOrigin), _toJSValue(transfer)] + ) } - @inlinable public func postMessage(message: JSValue, options: WindowPostMessageOptions? = nil) { + @inlinable final public func postMessage(message: JSValue, options: WindowPostMessageOptions? = nil) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(options)]) } - @inlinable public func captureEvents() { + @inlinable final public func captureEvents() { let this = jsObject _ = this[Strings.captureEvents].function!(this: this, arguments: []) } - @inlinable public func releaseEvents() { + @inlinable final public func releaseEvents() { let this = jsObject _ = this[Strings.releaseEvents].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var external: External + @inlinable public var external: External { jsObject[Strings.external].fromJSValue()! } - @inlinable public func matchMedia(query: String) -> MediaQueryList { + @inlinable final public func matchMedia(query: String) -> MediaQueryList { let this = jsObject return this[Strings.matchMedia].function!(this: this, arguments: [_toJSValue(query)]).fromJSValue()! } - @ReadonlyAttribute - public var screen: Screen + @inlinable public var screen: Screen { jsObject[Strings.screen].fromJSValue()! } - @ReadonlyAttribute - public var visualViewport: VisualViewport? + @inlinable public var visualViewport: VisualViewport? { jsObject[Strings.visualViewport].fromJSValue() } - @inlinable public func moveTo(x: Int32, y: Int32) { + @inlinable final public func moveTo(x: Int32, y: Int32) { let this = jsObject _ = this[Strings.moveTo].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func moveBy(x: Int32, y: Int32) { + @inlinable final public func moveBy(x: Int32, y: Int32) { let this = jsObject _ = this[Strings.moveBy].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func resizeTo(width: Int32, height: Int32) { + @inlinable final public func resizeTo(width: Int32, height: Int32) { let this = jsObject _ = this[Strings.resizeTo].function!(this: this, arguments: [_toJSValue(width), _toJSValue(height)]) } - @inlinable public func resizeBy(x: Int32, y: Int32) { + @inlinable final public func resizeBy(x: Int32, y: Int32) { let this = jsObject _ = this[Strings.resizeBy].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @ReadonlyAttribute - public var innerWidth: Int32 + @inlinable public var innerWidth: Int32 { jsObject[Strings.innerWidth].fromJSValue()! } - @ReadonlyAttribute - public var innerHeight: Int32 + @inlinable public var innerHeight: Int32 { jsObject[Strings.innerHeight].fromJSValue()! } - @ReadonlyAttribute - public var scrollX: Double + @inlinable public var scrollX: Double { jsObject[Strings.scrollX].fromJSValue()! } - @ReadonlyAttribute - public var pageXOffset: Double + @inlinable public var pageXOffset: Double { jsObject[Strings.pageXOffset].fromJSValue()! } - @ReadonlyAttribute - public var scrollY: Double + @inlinable public var scrollY: Double { jsObject[Strings.scrollY].fromJSValue()! } - @ReadonlyAttribute - public var pageYOffset: Double + @inlinable public var pageYOffset: Double { jsObject[Strings.pageYOffset].fromJSValue()! } - @inlinable public func scroll(options: ScrollToOptions? = nil) { + @inlinable final public func scroll(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scroll].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scroll(x: Double, y: Double) { + @inlinable final public func scroll(x: Double, y: Double) { let this = jsObject _ = this[Strings.scroll].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func scrollTo(options: ScrollToOptions? = nil) { + @inlinable final public func scrollTo(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scrollTo].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scrollTo(x: Double, y: Double) { + @inlinable final public func scrollTo(x: Double, y: Double) { let this = jsObject _ = this[Strings.scrollTo].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @inlinable public func scrollBy(options: ScrollToOptions? = nil) { + @inlinable final public func scrollBy(options: ScrollToOptions? = nil) { let this = jsObject _ = this[Strings.scrollBy].function!(this: this, arguments: [_toJSValue(options)]) } - @inlinable public func scrollBy(x: Double, y: Double) { + @inlinable final public func scrollBy(x: Double, y: Double) { let this = jsObject _ = this[Strings.scrollBy].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y)]) } - @ReadonlyAttribute - public var screenX: Int32 + @inlinable public var screenX: Int32 { jsObject[Strings.screenX].fromJSValue()! } - @ReadonlyAttribute - public var screenLeft: Int32 + @inlinable public var screenLeft: Int32 { jsObject[Strings.screenLeft].fromJSValue()! } - @ReadonlyAttribute - public var screenY: Int32 + @inlinable public var screenY: Int32 { jsObject[Strings.screenY].fromJSValue()! } - @ReadonlyAttribute - public var screenTop: Int32 + @inlinable public var screenTop: Int32 { jsObject[Strings.screenTop].fromJSValue()! } - @ReadonlyAttribute - public var outerWidth: Int32 + @inlinable public var outerWidth: Int32 { jsObject[Strings.outerWidth].fromJSValue()! } - @ReadonlyAttribute - public var outerHeight: Int32 + @inlinable public var outerHeight: Int32 { jsObject[Strings.outerHeight].fromJSValue()! } - @ReadonlyAttribute - public var devicePixelRatio: Double + @inlinable public var devicePixelRatio: Double { jsObject[Strings.devicePixelRatio].fromJSValue()! } } public protocol WindowEventHandlers: JSBridgedClass {} -public extension WindowEventHandlers { - @inlinable var onafterprint: EventHandler { - get { ClosureAttribute1Optional[Strings.onafterprint, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onafterprint, in: jsObject] = newValue } +extension WindowEventHandlers { + @inlinable public var onafterprint: EventHandler { + get { + guard let function = jsObject[Strings.onafterprint].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onafterprint] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onafterprint] = .null + } + } + } + + @inlinable public var onbeforeprint: EventHandler { + get { + guard let function = jsObject[Strings.onbeforeprint].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbeforeprint] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbeforeprint] = .null + } + } + } + + @inlinable public var onbeforeunload: OnBeforeUnloadEventHandler { + get { + guard let function = jsObject[Strings.onbeforeunload].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbeforeunload] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbeforeunload] = .null + } + } } - @inlinable var onbeforeprint: EventHandler { - get { ClosureAttribute1Optional[Strings.onbeforeprint, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onbeforeprint, in: jsObject] = newValue } + @inlinable public var onhashchange: EventHandler { + get { + guard let function = jsObject[Strings.onhashchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onhashchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onhashchange] = .null + } + } } - @inlinable var onbeforeunload: OnBeforeUnloadEventHandler { - get { ClosureAttribute1Optional[Strings.onbeforeunload, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onbeforeunload, in: jsObject] = newValue } + @inlinable public var onlanguagechange: EventHandler { + get { + guard let function = jsObject[Strings.onlanguagechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onlanguagechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onlanguagechange] = .null + } + } } - @inlinable var onhashchange: EventHandler { - get { ClosureAttribute1Optional[Strings.onhashchange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onhashchange, in: jsObject] = newValue } + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } } - @inlinable var onlanguagechange: EventHandler { - get { ClosureAttribute1Optional[Strings.onlanguagechange, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onlanguagechange, in: jsObject] = newValue } + @inlinable public var onmessageerror: EventHandler { + get { + guard let function = jsObject[Strings.onmessageerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessageerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessageerror] = .null + } + } } - @inlinable var onmessage: EventHandler { - get { ClosureAttribute1Optional[Strings.onmessage, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmessage, in: jsObject] = newValue } + @inlinable public var onoffline: EventHandler { + get { + guard let function = jsObject[Strings.onoffline].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onoffline] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onoffline] = .null + } + } } - @inlinable var onmessageerror: EventHandler { - get { ClosureAttribute1Optional[Strings.onmessageerror, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onmessageerror, in: jsObject] = newValue } + @inlinable public var ononline: EventHandler { + get { + guard let function = jsObject[Strings.ononline].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ononline] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ononline] = .null + } + } } - @inlinable var onoffline: EventHandler { - get { ClosureAttribute1Optional[Strings.onoffline, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onoffline, in: jsObject] = newValue } + @inlinable public var onpagehide: EventHandler { + get { + guard let function = jsObject[Strings.onpagehide].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpagehide] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpagehide] = .null + } + } } - @inlinable var ononline: EventHandler { - get { ClosureAttribute1Optional[Strings.ononline, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ononline, in: jsObject] = newValue } + @inlinable public var onpagereveal: EventHandler { + get { + guard let function = jsObject[Strings.onpagereveal].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpagereveal] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpagereveal] = .null + } + } } - @inlinable var onpagehide: EventHandler { - get { ClosureAttribute1Optional[Strings.onpagehide, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onpagehide, in: jsObject] = newValue } + @inlinable public var onpageshow: EventHandler { + get { + guard let function = jsObject[Strings.onpageshow].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpageshow] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpageshow] = .null + } + } } - @inlinable var onpageshow: EventHandler { - get { ClosureAttribute1Optional[Strings.onpageshow, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onpageshow, in: jsObject] = newValue } + @inlinable public var onpageswap: EventHandler { + get { + guard let function = jsObject[Strings.onpageswap].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpageswap] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpageswap] = .null + } + } } - @inlinable var onpopstate: EventHandler { - get { ClosureAttribute1Optional[Strings.onpopstate, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onpopstate, in: jsObject] = newValue } + @inlinable public var onpopstate: EventHandler { + get { + guard let function = jsObject[Strings.onpopstate].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onpopstate] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onpopstate] = .null + } + } } - @inlinable var onrejectionhandled: EventHandler { - get { ClosureAttribute1Optional[Strings.onrejectionhandled, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onrejectionhandled, in: jsObject] = newValue } + @inlinable public var onrejectionhandled: EventHandler { + get { + guard let function = jsObject[Strings.onrejectionhandled].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onrejectionhandled] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onrejectionhandled] = .null + } + } } - @inlinable var onstorage: EventHandler { - get { ClosureAttribute1Optional[Strings.onstorage, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onstorage, in: jsObject] = newValue } + @inlinable public var onstorage: EventHandler { + get { + guard let function = jsObject[Strings.onstorage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstorage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstorage] = .null + } + } } - @inlinable var onunhandledrejection: EventHandler { - get { ClosureAttribute1Optional[Strings.onunhandledrejection, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onunhandledrejection, in: jsObject] = newValue } + @inlinable public var onunhandledrejection: EventHandler { + get { + guard let function = jsObject[Strings.onunhandledrejection].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onunhandledrejection] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onunhandledrejection] = .null + } + } } - @inlinable var onunload: EventHandler { - get { ClosureAttribute1Optional[Strings.onunload, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.onunload, in: jsObject] = newValue } + @inlinable public var onunload: EventHandler { + get { + guard let function = jsObject[Strings.onunload].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onunload] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onunload] = .null + } + } } } - public protocol WindowLocalStorage: JSBridgedClass {} -public extension WindowLocalStorage { - @inlinable var localStorage: Storage { jsObject[Strings.localStorage].fromJSValue()! } +extension WindowLocalStorage { + @inlinable public var localStorage: Storage { jsObject[Strings.localStorage].fromJSValue()! } } - public protocol WindowOrWorkerGlobalScope: JSBridgedClass {} -public extension WindowOrWorkerGlobalScope { - @inlinable var origin: String { jsObject[Strings.origin].fromJSValue()! } +extension WindowOrWorkerGlobalScope { + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @inlinable var isSecureContext: Bool { jsObject[Strings.isSecureContext].fromJSValue()! } + @inlinable public var isSecureContext: Bool { jsObject[Strings.isSecureContext].fromJSValue()! } - @inlinable var crossOriginIsolated: Bool { jsObject[Strings.crossOriginIsolated].fromJSValue()! } + @inlinable public var crossOriginIsolated: Bool { jsObject[Strings.crossOriginIsolated].fromJSValue()! } - @inlinable func reportError(e: JSValue) { + @inlinable public func reportError(e: JSValue) { let this = jsObject _ = this[Strings.reportError].function!(this: this, arguments: [_toJSValue(e)]) } - @inlinable func btoa(data: String) -> String { + @inlinable public func btoa(data: String) -> String { let this = jsObject return this[Strings.btoa].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @inlinable func atob(data: String) -> String { + @inlinable public func atob(data: String) -> String { let this = jsObject return this[Strings.atob].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @inlinable func setTimeout(handler: TimerHandler, timeout: Int32? = nil, arguments: JSValue...) -> Int32 { + @inlinable public func setTimeout(handler: TimerHandler, timeout: Int32? = nil, arguments: JSValue...) -> Int32 { let this = jsObject - return this[Strings.setTimeout].function!(this: this, arguments: [_toJSValue(handler), _toJSValue(timeout)] + arguments.map(_toJSValue)).fromJSValue()! + return this[Strings.setTimeout].function!( + this: this, + arguments: [_toJSValue(handler), _toJSValue(timeout)] + arguments.map(_toJSValue) + ).fromJSValue()! } - @inlinable func clearTimeout(id: Int32? = nil) { + @inlinable public func clearTimeout(id: Int32? = nil) { let this = jsObject _ = this[Strings.clearTimeout].function!(this: this, arguments: [_toJSValue(id)]) } - @inlinable func setInterval(handler: TimerHandler, timeout: Int32? = nil, arguments: JSValue...) -> Int32 { + @inlinable public func setInterval(handler: TimerHandler, timeout: Int32? = nil, arguments: JSValue...) -> Int32 { let this = jsObject - return this[Strings.setInterval].function!(this: this, arguments: [_toJSValue(handler), _toJSValue(timeout)] + arguments.map(_toJSValue)).fromJSValue()! + return this[Strings.setInterval].function!( + this: this, + arguments: [_toJSValue(handler), _toJSValue(timeout)] + arguments.map(_toJSValue) + ).fromJSValue()! } - @inlinable func clearInterval(id: Int32? = nil) { + @inlinable public func clearInterval(id: Int32? = nil) { let this = jsObject _ = this[Strings.clearInterval].function!(this: this, arguments: [_toJSValue(id)]) } - @inlinable func queueMicrotask(callback: @escaping VoidFunction) { + @inlinable public func queueMicrotask(callback: @escaping VoidFunction) { let this = jsObject _ = this[Strings.queueMicrotask].function!(this: this, arguments: [_toJSValue(callback)]) } - @inlinable func createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions? = nil) -> JSPromise { + @inlinable public func createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions? = nil) -> JSPromise + { let this = jsObject - return this[Strings.createImageBitmap].function!(this: this, arguments: [_toJSValue(image), _toJSValue(options)]).fromJSValue()! + return this[Strings.createImageBitmap].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(options)] + ).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func createImageBitmap(image: ImageBitmapSource, options: ImageBitmapOptions? = nil) async throws -> ImageBitmap { - let this = jsObject - let _promise: JSPromise = this[Strings.createImageBitmap].function!(this: this, arguments: [_toJSValue(image), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func createImageBitmap( + image: ImageBitmapSource, + options: ImageBitmapOptions? = nil + ) async throws(JSException) -> ImageBitmap { + let this = jsObject + let _promise: JSPromise = this[Strings.createImageBitmap].function!( + this: this, + arguments: [_toJSValue(image), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable func createImageBitmap(image: ImageBitmapSource, sx: Int32, sy: Int32, sw: Int32, sh: Int32, options: ImageBitmapOptions? = nil) -> JSPromise { + @inlinable public func createImageBitmap( + image: ImageBitmapSource, + sx: Int32, + sy: Int32, + sw: Int32, + sh: Int32, + options: ImageBitmapOptions? = nil + ) -> JSPromise { let this = jsObject - return this[Strings.createImageBitmap].function!(this: this, arguments: [_toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(options)]).fromJSValue()! + return this[Strings.createImageBitmap].function!( + this: this, + arguments: [ + _toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(options), + ] + ).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func createImageBitmap(image: ImageBitmapSource, sx: Int32, sy: Int32, sw: Int32, sh: Int32, options: ImageBitmapOptions? = nil) async throws -> ImageBitmap { - let this = jsObject - let _promise: JSPromise = this[Strings.createImageBitmap].function!(this: this, arguments: [_toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func createImageBitmap( + image: ImageBitmapSource, + sx: Int32, + sy: Int32, + sw: Int32, + sh: Int32, + options: ImageBitmapOptions? = nil + ) async throws(JSException) -> ImageBitmap { + let this = jsObject + let _promise: JSPromise = this[Strings.createImageBitmap].function!( + this: this, + arguments: [ + _toJSValue(image), _toJSValue(sx), _toJSValue(sy), _toJSValue(sw), _toJSValue(sh), + _toJSValue(options), + ] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable func structuredClone(value: JSValue, options: StructuredSerializeOptions? = nil) -> JSValue { + @inlinable public func structuredClone(value: JSValue, options: StructuredSerializeOptions? = nil) -> JSValue { let this = jsObject - return this[Strings.structuredClone].function!(this: this, arguments: [_toJSValue(value), _toJSValue(options)]).fromJSValue()! + return this[Strings.structuredClone].function!(this: this, arguments: [_toJSValue(value), _toJSValue(options)]) + .fromJSValue()! } - @inlinable var performance: Performance { jsObject[Strings.performance].fromJSValue()! } + @inlinable public var performance: Performance { jsObject[Strings.performance].fromJSValue()! } - @inlinable func fetch(input: RequestInfo, init: RequestInit? = nil) -> JSPromise { + @inlinable public func fetch(input: RequestInfo, `init`: RequestInit? = nil) -> JSPromise { let this = jsObject - return this[Strings.fetch].function!(this: this, arguments: [_toJSValue(input), _toJSValue(`init`)]).fromJSValue()! + return this[Strings.fetch].function!(this: this, arguments: [_toJSValue(input), _toJSValue(`init`)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable func fetch(input: RequestInfo, init: RequestInit? = nil) async throws -> Response { - let this = jsObject - let _promise: JSPromise = this[Strings.fetch].function!(this: this, arguments: [_toJSValue(input), _toJSValue(`init`)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable public func fetch( + input: RequestInfo, + `init`: RequestInit? = nil + ) async throws(JSException) -> Response { + let this = jsObject + let _promise: JSPromise = this[Strings.fetch].function!( + this: this, + arguments: [_toJSValue(input), _toJSValue(`init`)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable var caches: CacheStorage { jsObject[Strings.caches].fromJSValue()! } + @inlinable public var caches: CacheStorage { jsObject[Strings.caches].fromJSValue()! } + + @inlinable public var trustedTypes: TrustedTypePolicyFactory { jsObject[Strings.trustedTypes].fromJSValue()! } } +open class WindowPostMessageOptions: StructuredSerializeOptions { -public class WindowPostMessageOptions: BridgedDictionary { - public convenience init(targetOrigin: String) { + public convenience init(transfer: [JSObject]? = nil, targetOrigin: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.transfer] = _toJSValue(transfer) object[Strings.targetOrigin] = _toJSValue(targetOrigin) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _targetOrigin = ReadWriteAttribute(jsObject: object, name: Strings.targetOrigin) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var targetOrigin: String + @inlinable public var targetOrigin: String { + get { jsObject[Strings.targetOrigin].fromJSValue()! } + set { jsObject[Strings.targetOrigin] = _toJSValue(newValue) } + } } - public protocol WindowSessionStorage: JSBridgedClass {} -public extension WindowSessionStorage { - @inlinable var sessionStorage: Storage { jsObject[Strings.sessionStorage].fromJSValue()! } +extension WindowSessionStorage { + @inlinable public var sessionStorage: Storage { jsObject[Strings.sessionStorage].fromJSValue()! } } +public class Worker: EventTarget, AbstractWorker, MessageEventTarget { + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Worker].function } -public class Worker: EventTarget, AbstractWorker { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Worker].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _onmessageerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessageerror) - super.init(unsafelyWrapping: jsObject) - } - - @inlinable public convenience init(scriptURL: String, options: WorkerOptions? = nil) { + @inlinable public convenience init(scriptURL: String_or_TrustedScriptURL, options: WorkerOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(scriptURL), _toJSValue(options)])) } - @inlinable public func terminate() { + @inlinable final public func terminate() { let this = jsObject _ = this[Strings.terminate].function!(this: this, arguments: []) } - @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) { + @inlinable final public func postMessage(message: JSValue, transfer: [JSObject]) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(transfer)]) } - @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { + @inlinable final public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) { let this = jsObject _ = this[Strings.postMessage].function!(this: this, arguments: [_toJSValue(message), _toJSValue(options)]) } - - @ClosureAttribute1Optional - public var onmessage: EventHandler - - @ClosureAttribute1Optional - public var onmessageerror: EventHandler } -public class WorkerOptions: BridgedDictionary { - public convenience init(type: WorkerType, credentials: RequestCredentials, name: String) { +open class WorkerOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(type: WorkerType? = nil, credentials: RequestCredentials? = nil, name: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.credentials] = _toJSValue(credentials) object[Strings.name] = _toJSValue(name) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _credentials = ReadWriteAttribute(jsObject: object, name: Strings.credentials) - _name = ReadWriteAttribute(jsObject: object, name: Strings.name) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: WorkerType - - @ReadWriteAttribute - public var credentials: RequestCredentials + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var name: String + @inlinable public var type: WorkerType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var credentials: RequestCredentials { + get { jsObject[Strings.credentials].fromJSValue()! } + set { jsObject[Strings.credentials] = _toJSValue(newValue) } + } + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } } - public enum WorkerType: JSString, JSValueCompatible { case classic = "classic" case module = "module" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - open class Worklet: JSBridgedClass { @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.Worklet].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func addModule(moduleURL: String, options: WorkletOptions? = nil) -> JSPromise { + @inlinable final public func addModule(moduleURL: String, options: WorkletOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.addModule].function!(this: this, arguments: [_toJSValue(moduleURL), _toJSValue(options)]).fromJSValue()! + return this[Strings.addModule].function!(this: this, arguments: [_toJSValue(moduleURL), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func addModule(moduleURL: String, options: WorkletOptions? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.addModule].function!(this: this, arguments: [_toJSValue(moduleURL), _toJSValue(options)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func addModule( + moduleURL: String, + options: WorkletOptions? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.addModule].function!( + this: this, + arguments: [_toJSValue(moduleURL), _toJSValue(options)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif } -public class WorkletOptions: BridgedDictionary { - public convenience init(credentials: RequestCredentials) { +open class WorkletOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(credentials: RequestCredentials? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.credentials] = _toJSValue(credentials) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _credentials = ReadWriteAttribute(jsObject: object, name: Strings.credentials) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var credentials: RequestCredentials + @inlinable public var credentials: RequestCredentials { + get { jsObject[Strings.credentials].fromJSValue()! } + set { jsObject[Strings.credentials] = _toJSValue(newValue) } + } } - open class WritableStream: JSBridgedClass { @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.WritableStream].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _locked = ReadonlyAttribute(jsObject: jsObject, name: Strings.locked) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(underlyingSink: JSObject? = nil, strategy: QueuingStrategy? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(underlyingSink), _toJSValue(strategy)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(underlyingSink), _toJSValue(strategy)]) + ) } - @ReadonlyAttribute - public var locked: Bool + @inlinable public var locked: Bool { jsObject[Strings.locked].fromJSValue()! } - @inlinable public func abort(reason: JSValue? = nil) -> JSPromise { + @inlinable final public func abort(reason: JSValue? = nil) -> JSPromise { let this = jsObject return this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func abort(reason: JSValue? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func abort( + reason: JSValue? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func close() -> JSPromise { + @inlinable final public func close() -> JSPromise { let this = jsObject return this[Strings.close].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func close() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func close() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func getWriter() -> WritableStreamDefaultWriter { + @inlinable final public func getWriter() -> WritableStreamDefaultWriter { let this = jsObject return this[Strings.getWriter].function!(this: this, arguments: []).fromJSValue()! } } public class WritableStreamDefaultController: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WritableStreamDefaultController].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.WritableStreamDefaultController].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _signal = ReadonlyAttribute(jsObject: jsObject, name: Strings.signal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var signal: AbortSignal + @inlinable public var signal: AbortSignal { jsObject[Strings.signal].fromJSValue()! } - @inlinable public func error(e: JSValue? = nil) { + @inlinable final public func error(e: JSValue? = nil) { let this = jsObject _ = this[Strings.error].function!(this: this, arguments: [_toJSValue(e)]) } } public class WritableStreamDefaultWriter: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WritableStreamDefaultWriter].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.WritableStreamDefaultWriter].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _closed = ReadonlyAttribute(jsObject: jsObject, name: Strings.closed) - _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize) - _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(stream: WritableStream) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(stream)])) } - @ReadonlyAttribute - public var closed: JSPromise + @inlinable public var closed: JSPromise { jsObject[Strings.closed].fromJSValue()! } - @ReadonlyAttribute - public var desiredSize: Double? + @inlinable public var desiredSize: Double? { jsObject[Strings.desiredSize].fromJSValue() } - @ReadonlyAttribute - public var ready: JSPromise + @inlinable public var ready: JSPromise { jsObject[Strings.ready].fromJSValue()! } - @inlinable public func abort(reason: JSValue? = nil) -> JSPromise { + @inlinable final public func abort(reason: JSValue? = nil) -> JSPromise { let this = jsObject return this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func abort(reason: JSValue? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func abort( + reason: JSValue? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.abort].function!(this: this, arguments: [_toJSValue(reason)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func close() -> JSPromise { + @inlinable final public func close() -> JSPromise { let this = jsObject return this[Strings.close].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func close() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func close() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func releaseLock() { + @inlinable final public func releaseLock() { let this = jsObject _ = this[Strings.releaseLock].function!(this: this, arguments: []) } - @inlinable public func write(chunk: JSValue? = nil) -> JSPromise { + @inlinable final public func write(chunk: JSValue? = nil) -> JSPromise { let this = jsObject return this[Strings.write].function!(this: this, arguments: [_toJSValue(chunk)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func write(chunk: JSValue? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.write].function!(this: this, arguments: [_toJSValue(chunk)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func write( + chunk: JSValue? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.write].function!(this: this, arguments: [_toJSValue(chunk)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif } public class XMLDocument: Document { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.XMLDocument].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.XMLDocument].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class XMLHttpRequest: XMLHttpRequestEventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.XMLHttpRequest].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.XMLHttpRequest].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _onreadystatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onreadystatechange) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _timeout = ReadWriteAttribute(jsObject: jsObject, name: Strings.timeout) - _withCredentials = ReadWriteAttribute(jsObject: jsObject, name: Strings.withCredentials) - _upload = ReadonlyAttribute(jsObject: jsObject, name: Strings.upload) - _responseURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.responseURL) - _status = ReadonlyAttribute(jsObject: jsObject, name: Strings.status) - _statusText = ReadonlyAttribute(jsObject: jsObject, name: Strings.statusText) - _responseType = ReadWriteAttribute(jsObject: jsObject, name: Strings.responseType) - _response = ReadonlyAttribute(jsObject: jsObject, name: Strings.response) - _responseText = ReadonlyAttribute(jsObject: jsObject, name: Strings.responseText) - _responseXML = ReadonlyAttribute(jsObject: jsObject, name: Strings.responseXML) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @ClosureAttribute1Optional - public var onreadystatechange: EventHandler + @inlinable public var onreadystatechange: EventHandler { + get { + guard let function = jsObject[Strings.onreadystatechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onreadystatechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onreadystatechange] = .null + } + } + } public static let UNSENT: UInt16 = 0 @@ -18752,114 +21471,193 @@ public class XMLHttpRequest: XMLHttpRequestEventTarget { public static let DONE: UInt16 = 4 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @inlinable public func open(method: String, url: String) { + @inlinable final public func open(method: String, url: String) { let this = jsObject _ = this[Strings.open].function!(this: this, arguments: [_toJSValue(method), _toJSValue(url)]) } - @inlinable public func open(method: String, url: String, async: Bool, username: String? = nil, password: String? = nil) { + @inlinable final public func open( + method: String, + url: String, + async: Bool, + username: String? = nil, + password: String? = nil + ) { let this = jsObject - _ = this[Strings.open].function!(this: this, arguments: [_toJSValue(method), _toJSValue(url), _toJSValue(async), _toJSValue(username), _toJSValue(password)]) + _ = this[Strings.open].function!( + this: this, + arguments: [ + _toJSValue(method), _toJSValue(url), _toJSValue(async), _toJSValue(username), _toJSValue(password), + ] + ) } - @inlinable public func setRequestHeader(name: String, value: String) { + @inlinable final public func setRequestHeader(name: String, value: String) { let this = jsObject _ = this[Strings.setRequestHeader].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @ReadWriteAttribute - public var timeout: UInt32 + @inlinable public var timeout: UInt32 { + get { jsObject[Strings.timeout].fromJSValue()! } + set { jsObject[Strings.timeout] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var withCredentials: Bool + @inlinable public var withCredentials: Bool { + get { jsObject[Strings.withCredentials].fromJSValue()! } + set { jsObject[Strings.withCredentials] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var upload: XMLHttpRequestUpload + @inlinable public var upload: XMLHttpRequestUpload { jsObject[Strings.upload].fromJSValue()! } - @inlinable public func send(body: Document_or_XMLHttpRequestBodyInit? = nil) { + @inlinable final public func send(body: Document_or_XMLHttpRequestBodyInit? = nil) { let this = jsObject _ = this[Strings.send].function!(this: this, arguments: [_toJSValue(body)]) } - @inlinable public func abort() { + @inlinable final public func abort() { let this = jsObject _ = this[Strings.abort].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var responseURL: String + @inlinable public var responseURL: String { jsObject[Strings.responseURL].fromJSValue()! } - @ReadonlyAttribute - public var status: UInt16 + @inlinable public var status: UInt16 { jsObject[Strings.status].fromJSValue()! } - @ReadonlyAttribute - public var statusText: String + @inlinable public var statusText: String { jsObject[Strings.statusText].fromJSValue()! } - @inlinable public func getResponseHeader(name: String) -> String? { + @inlinable final public func getResponseHeader(name: String) -> String? { let this = jsObject return this[Strings.getResponseHeader].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func getAllResponseHeaders() -> String { + @inlinable final public func getAllResponseHeaders() -> String { let this = jsObject return this[Strings.getAllResponseHeaders].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func overrideMimeType(mime: String) { + @inlinable final public func overrideMimeType(mime: String) { let this = jsObject _ = this[Strings.overrideMimeType].function!(this: this, arguments: [_toJSValue(mime)]) } - @ReadWriteAttribute - public var responseType: XMLHttpRequestResponseType + @inlinable public var responseType: XMLHttpRequestResponseType { + get { jsObject[Strings.responseType].fromJSValue()! } + set { jsObject[Strings.responseType] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var response: JSValue + @inlinable public var response: JSValue { jsObject[Strings.response].fromJSValue()! } - @ReadonlyAttribute - public var responseText: String + @inlinable public var responseText: String { jsObject[Strings.responseText].fromJSValue()! } - @ReadonlyAttribute - public var responseXML: Document? + @inlinable public var responseXML: Document? { jsObject[Strings.responseXML].fromJSValue() } } public class XMLHttpRequestEventTarget: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.XMLHttpRequestEventTarget].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _onloadstart = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onloadstart) - _onprogress = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onprogress) - _onabort = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onabort) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - _onload = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onload) - _ontimeout = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ontimeout) - _onloadend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onloadend) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.XMLHttpRequestEventTarget].function } - @ClosureAttribute1Optional - public var onloadstart: EventHandler + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var onloadstart: EventHandler { + get { + guard let function = jsObject[Strings.onloadstart].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadstart] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadstart] = .null + } + } + } - @ClosureAttribute1Optional - public var onprogress: EventHandler + @inlinable public var onprogress: EventHandler { + get { + guard let function = jsObject[Strings.onprogress].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onprogress] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onprogress] = .null + } + } + } - @ClosureAttribute1Optional - public var onabort: EventHandler + @inlinable public var onabort: EventHandler { + get { + guard let function = jsObject[Strings.onabort].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onabort] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onabort] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @ClosureAttribute1Optional - public var onload: EventHandler + @inlinable public var onload: EventHandler { + get { + guard let function = jsObject[Strings.onload].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onload] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onload] = .null + } + } + } - @ClosureAttribute1Optional - public var ontimeout: EventHandler + @inlinable public var ontimeout: EventHandler { + get { + guard let function = jsObject[Strings.ontimeout].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ontimeout] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ontimeout] = .null + } + } + } - @ClosureAttribute1Optional - public var onloadend: EventHandler + @inlinable public var onloadend: EventHandler { + get { + guard let function = jsObject[Strings.onloadend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onloadend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onloadend] = .null + } + } + } } public enum XMLHttpRequestResponseType: JSString, JSValueCompatible { @@ -18871,24 +21669,35 @@ public enum XMLHttpRequestResponseType: JSString, JSValueCompatible { case text = "text" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class XMLHttpRequestUpload: XMLHttpRequestEventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.XMLHttpRequestUpload].function } + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.XMLHttpRequestUpload].function + } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + +} + +public class XMLSerializer: JSBridgedClass { + @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.XMLSerializer].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + public let jsObject: JSObject + + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } + + @inlinable final public func serializeToString(root: Node) -> String { + let this = jsObject + return this[Strings.serializeToString].function!(this: this, arguments: [_toJSValue(root)]).fromJSValue()! } } @@ -18897,36 +21706,36 @@ public class XPathEvaluator: JSBridgedClass, XPathEvaluatorBase { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } } public protocol XPathEvaluatorBase: JSBridgedClass {} -public extension XPathEvaluatorBase { +extension XPathEvaluatorBase { // XXX: method 'createExpression' is ignored // XXX: method 'createNSResolver' is ignored // XXX: method 'evaluate' is ignored } - public class XPathExpression: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.XPathExpression].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func evaluate(contextNode: Node, type: UInt16? = nil, result: XPathResult? = nil) -> XPathResult { + @inlinable final public func evaluate( + contextNode: Node, + type: UInt16? = nil, + result: XPathResult? = nil + ) -> XPathResult { let this = jsObject - return this[Strings.evaluate].function!(this: this, arguments: [_toJSValue(contextNode), _toJSValue(type), _toJSValue(result)]).fromJSValue()! + return this[Strings.evaluate].function!( + this: this, + arguments: [_toJSValue(contextNode), _toJSValue(type), _toJSValue(result)] + ).fromJSValue()! } } @@ -18935,16 +21744,7 @@ public class XPathResult: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _resultType = ReadonlyAttribute(jsObject: jsObject, name: Strings.resultType) - _numberValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberValue) - _stringValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.stringValue) - _booleanValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.booleanValue) - _singleNodeValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.singleNodeValue) - _invalidIteratorState = ReadonlyAttribute(jsObject: jsObject, name: Strings.invalidIteratorState) - _snapshotLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.snapshotLength) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let ANY_TYPE: UInt16 = 0 @@ -18966,33 +21766,26 @@ public class XPathResult: JSBridgedClass { public static let FIRST_ORDERED_NODE_TYPE: UInt16 = 9 - @ReadonlyAttribute - public var resultType: UInt16 + @inlinable public var resultType: UInt16 { jsObject[Strings.resultType].fromJSValue()! } - @ReadonlyAttribute - public var numberValue: Double + @inlinable public var numberValue: Double { jsObject[Strings.numberValue].fromJSValue()! } - @ReadonlyAttribute - public var stringValue: String + @inlinable public var stringValue: String { jsObject[Strings.stringValue].fromJSValue()! } - @ReadonlyAttribute - public var booleanValue: Bool + @inlinable public var booleanValue: Bool { jsObject[Strings.booleanValue].fromJSValue()! } - @ReadonlyAttribute - public var singleNodeValue: Node? + @inlinable public var singleNodeValue: Node? { jsObject[Strings.singleNodeValue].fromJSValue() } - @ReadonlyAttribute - public var invalidIteratorState: Bool + @inlinable public var invalidIteratorState: Bool { jsObject[Strings.invalidIteratorState].fromJSValue()! } - @ReadonlyAttribute - public var snapshotLength: UInt32 + @inlinable public var snapshotLength: UInt32 { jsObject[Strings.snapshotLength].fromJSValue()! } - @inlinable public func iterateNext() -> Node? { + @inlinable final public func iterateNext() -> Node? { let this = jsObject return this[Strings.iterateNext].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func snapshotItem(index: UInt32) -> Node? { + @inlinable final public func snapshotItem(index: UInt32) -> Node? { let this = jsObject return this[Strings.snapshotItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue() } @@ -19003,50 +21796,58 @@ public class XSLTProcessor: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init() { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) - } + @inlinable public convenience init() { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [])) } - @inlinable public func importStylesheet(style: Node) { + @inlinable final public func importStylesheet(style: Node) { let this = jsObject _ = this[Strings.importStylesheet].function!(this: this, arguments: [_toJSValue(style)]) } - @inlinable public func transformToFragment(source: Node, output: Document) -> DocumentFragment { + @inlinable final public func transformToFragment(source: Node, output: Document) -> DocumentFragment { let this = jsObject - return this[Strings.transformToFragment].function!(this: this, arguments: [_toJSValue(source), _toJSValue(output)]).fromJSValue()! + return this[Strings.transformToFragment].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(output)] + ).fromJSValue()! } - @inlinable public func transformToDocument(source: Node) -> Document { + @inlinable final public func transformToDocument(source: Node) -> Document { let this = jsObject return this[Strings.transformToDocument].function!(this: this, arguments: [_toJSValue(source)]).fromJSValue()! } - @inlinable public func setParameter(namespaceURI: String, localName: String, value: JSValue) { + @inlinable final public func setParameter(namespaceURI: String, localName: String, value: JSValue) { let this = jsObject - _ = this[Strings.setParameter].function!(this: this, arguments: [_toJSValue(namespaceURI), _toJSValue(localName), _toJSValue(value)]) + _ = this[Strings.setParameter].function!( + this: this, + arguments: [_toJSValue(namespaceURI), _toJSValue(localName), _toJSValue(value)] + ) } - @inlinable public func getParameter(namespaceURI: String, localName: String) -> JSValue { + @inlinable final public func getParameter(namespaceURI: String, localName: String) -> JSValue { let this = jsObject - return this[Strings.getParameter].function!(this: this, arguments: [_toJSValue(namespaceURI), _toJSValue(localName)]).fromJSValue()! + return this[Strings.getParameter].function!( + this: this, + arguments: [_toJSValue(namespaceURI), _toJSValue(localName)] + ).fromJSValue()! } - @inlinable public func removeParameter(namespaceURI: String, localName: String) { + @inlinable final public func removeParameter(namespaceURI: String, localName: String) { let this = jsObject - _ = this[Strings.removeParameter].function!(this: this, arguments: [_toJSValue(namespaceURI), _toJSValue(localName)]) + _ = this[Strings.removeParameter].function!( + this: this, + arguments: [_toJSValue(namespaceURI), _toJSValue(localName)] + ) } - @inlinable public func clearParameters() { + @inlinable final public func clearParameters() { let this = jsObject _ = this[Strings.clearParameters].function!(this: this, arguments: []) } - @inlinable public func reset() { + @inlinable final public func reset() { let this = jsObject _ = this[Strings.reset].function!(this: this, arguments: []) } @@ -19054,1720 +21855,1821 @@ public class XSLTProcessor: JSBridgedClass { @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let AbortController: JSString = "AbortController" - @usableFromInline static let AbortSignal: JSString = "AbortSignal" - @usableFromInline static let AbstractRange: JSString = "AbstractRange" - @usableFromInline static let AddSearchProvider: JSString = "AddSearchProvider" - @usableFromInline static let Attr: JSString = "Attr" - @usableFromInline static let AudioData: JSString = "AudioData" - @usableFromInline static let AudioDecoder: JSString = "AudioDecoder" - @usableFromInline static let AudioEncoder: JSString = "AudioEncoder" - @usableFromInline static let AudioTrack: JSString = "AudioTrack" - @usableFromInline static let AudioTrackList: JSString = "AudioTrackList" - @usableFromInline static let BarProp: JSString = "BarProp" - @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent" - @usableFromInline static let Blob: JSString = "Blob" - @usableFromInline static let BlobEvent: JSString = "BlobEvent" - @usableFromInline static let BroadcastChannel: JSString = "BroadcastChannel" - @usableFromInline static let ByteLengthQueuingStrategy: JSString = "ByteLengthQueuingStrategy" - @usableFromInline static let CDATASection: JSString = "CDATASection" - @usableFromInline static let CSSPseudoElement: JSString = "CSSPseudoElement" - @usableFromInline static let Cache: JSString = "Cache" - @usableFromInline static let CacheStorage: JSString = "CacheStorage" - @usableFromInline static let CanvasGradient: JSString = "CanvasGradient" - @usableFromInline static let CanvasPattern: JSString = "CanvasPattern" - @usableFromInline static let CanvasRenderingContext2D: JSString = "CanvasRenderingContext2D" - @usableFromInline static let CaretPosition: JSString = "CaretPosition" - @usableFromInline static let CharacterData: JSString = "CharacterData" - @usableFromInline static let Comment: JSString = "Comment" - @usableFromInline static let CompositionEvent: JSString = "CompositionEvent" - @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy" - @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry" - @usableFromInline static let CustomEvent: JSString = "CustomEvent" - @usableFromInline static let DOMImplementation: JSString = "DOMImplementation" - @usableFromInline static let DOMMatrix: JSString = "DOMMatrix" - @usableFromInline static let DOMMatrixReadOnly: JSString = "DOMMatrixReadOnly" - @usableFromInline static let DOMParser: JSString = "DOMParser" - @usableFromInline static let DOMPoint: JSString = "DOMPoint" - @usableFromInline static let DOMPointReadOnly: JSString = "DOMPointReadOnly" - @usableFromInline static let DOMQuad: JSString = "DOMQuad" - @usableFromInline static let DOMRect: JSString = "DOMRect" - @usableFromInline static let DOMRectList: JSString = "DOMRectList" - @usableFromInline static let DOMRectReadOnly: JSString = "DOMRectReadOnly" - @usableFromInline static let DOMStringList: JSString = "DOMStringList" - @usableFromInline static let DOMStringMap: JSString = "DOMStringMap" - @usableFromInline static let DOMTokenList: JSString = "DOMTokenList" - @usableFromInline static let DataTransfer: JSString = "DataTransfer" - @usableFromInline static let DataTransferItem: JSString = "DataTransferItem" - @usableFromInline static let DataTransferItemList: JSString = "DataTransferItemList" - @usableFromInline static let Document: JSString = "Document" - @usableFromInline static let DocumentFragment: JSString = "DocumentFragment" - @usableFromInline static let DocumentType: JSString = "DocumentType" - @usableFromInline static let DragEvent: JSString = "DragEvent" - @usableFromInline static let Element: JSString = "Element" - @usableFromInline static let ElementInternals: JSString = "ElementInternals" - @usableFromInline static let EncodedAudioChunk: JSString = "EncodedAudioChunk" - @usableFromInline static let EncodedVideoChunk: JSString = "EncodedVideoChunk" - @usableFromInline static let ErrorEvent: JSString = "ErrorEvent" - @usableFromInline static let Event: JSString = "Event" - @usableFromInline static let EventSource: JSString = "EventSource" - @usableFromInline static let EventTarget: JSString = "EventTarget" - @usableFromInline static let External: JSString = "External" - @usableFromInline static let File: JSString = "File" - @usableFromInline static let FileList: JSString = "FileList" - @usableFromInline static let FileReader: JSString = "FileReader" - @usableFromInline static let FocusEvent: JSString = "FocusEvent" - @usableFromInline static let FormData: JSString = "FormData" - @usableFromInline static let FormDataEvent: JSString = "FormDataEvent" - @usableFromInline static let HTMLAllCollection: JSString = "HTMLAllCollection" - @usableFromInline static let HTMLAnchorElement: JSString = "HTMLAnchorElement" - @usableFromInline static let HTMLAreaElement: JSString = "HTMLAreaElement" - @usableFromInline static let HTMLAudioElement: JSString = "HTMLAudioElement" - @usableFromInline static let HTMLBRElement: JSString = "HTMLBRElement" - @usableFromInline static let HTMLBaseElement: JSString = "HTMLBaseElement" - @usableFromInline static let HTMLBodyElement: JSString = "HTMLBodyElement" - @usableFromInline static let HTMLButtonElement: JSString = "HTMLButtonElement" - @usableFromInline static let HTMLCanvasElement: JSString = "HTMLCanvasElement" - @usableFromInline static let HTMLCollection: JSString = "HTMLCollection" - @usableFromInline static let HTMLDListElement: JSString = "HTMLDListElement" - @usableFromInline static let HTMLDataElement: JSString = "HTMLDataElement" - @usableFromInline static let HTMLDataListElement: JSString = "HTMLDataListElement" - @usableFromInline static let HTMLDetailsElement: JSString = "HTMLDetailsElement" - @usableFromInline static let HTMLDialogElement: JSString = "HTMLDialogElement" - @usableFromInline static let HTMLDirectoryElement: JSString = "HTMLDirectoryElement" - @usableFromInline static let HTMLDivElement: JSString = "HTMLDivElement" - @usableFromInline static let HTMLElement: JSString = "HTMLElement" - @usableFromInline static let HTMLEmbedElement: JSString = "HTMLEmbedElement" - @usableFromInline static let HTMLFieldSetElement: JSString = "HTMLFieldSetElement" - @usableFromInline static let HTMLFontElement: JSString = "HTMLFontElement" - @usableFromInline static let HTMLFormControlsCollection: JSString = "HTMLFormControlsCollection" - @usableFromInline static let HTMLFormElement: JSString = "HTMLFormElement" - @usableFromInline static let HTMLFrameElement: JSString = "HTMLFrameElement" - @usableFromInline static let HTMLFrameSetElement: JSString = "HTMLFrameSetElement" - @usableFromInline static let HTMLHRElement: JSString = "HTMLHRElement" - @usableFromInline static let HTMLHeadElement: JSString = "HTMLHeadElement" - @usableFromInline static let HTMLHeadingElement: JSString = "HTMLHeadingElement" - @usableFromInline static let HTMLHtmlElement: JSString = "HTMLHtmlElement" - @usableFromInline static let HTMLIFrameElement: JSString = "HTMLIFrameElement" - @usableFromInline static let HTMLImageElement: JSString = "HTMLImageElement" - @usableFromInline static let HTMLInputElement: JSString = "HTMLInputElement" - @usableFromInline static let HTMLLIElement: JSString = "HTMLLIElement" - @usableFromInline static let HTMLLabelElement: JSString = "HTMLLabelElement" - @usableFromInline static let HTMLLegendElement: JSString = "HTMLLegendElement" - @usableFromInline static let HTMLLinkElement: JSString = "HTMLLinkElement" - @usableFromInline static let HTMLMapElement: JSString = "HTMLMapElement" - @usableFromInline static let HTMLMarqueeElement: JSString = "HTMLMarqueeElement" - @usableFromInline static let HTMLMediaElement: JSString = "HTMLMediaElement" - @usableFromInline static let HTMLMenuElement: JSString = "HTMLMenuElement" - @usableFromInline static let HTMLMetaElement: JSString = "HTMLMetaElement" - @usableFromInline static let HTMLMeterElement: JSString = "HTMLMeterElement" - @usableFromInline static let HTMLModElement: JSString = "HTMLModElement" - @usableFromInline static let HTMLOListElement: JSString = "HTMLOListElement" - @usableFromInline static let HTMLObjectElement: JSString = "HTMLObjectElement" - @usableFromInline static let HTMLOptGroupElement: JSString = "HTMLOptGroupElement" - @usableFromInline static let HTMLOptionElement: JSString = "HTMLOptionElement" - @usableFromInline static let HTMLOptionsCollection: JSString = "HTMLOptionsCollection" - @usableFromInline static let HTMLOutputElement: JSString = "HTMLOutputElement" - @usableFromInline static let HTMLParagraphElement: JSString = "HTMLParagraphElement" - @usableFromInline static let HTMLParamElement: JSString = "HTMLParamElement" - @usableFromInline static let HTMLPictureElement: JSString = "HTMLPictureElement" - @usableFromInline static let HTMLPreElement: JSString = "HTMLPreElement" - @usableFromInline static let HTMLProgressElement: JSString = "HTMLProgressElement" - @usableFromInline static let HTMLQuoteElement: JSString = "HTMLQuoteElement" - @usableFromInline static let HTMLScriptElement: JSString = "HTMLScriptElement" - @usableFromInline static let HTMLSelectElement: JSString = "HTMLSelectElement" - @usableFromInline static let HTMLSlotElement: JSString = "HTMLSlotElement" - @usableFromInline static let HTMLSourceElement: JSString = "HTMLSourceElement" - @usableFromInline static let HTMLSpanElement: JSString = "HTMLSpanElement" - @usableFromInline static let HTMLStyleElement: JSString = "HTMLStyleElement" - @usableFromInline static let HTMLTableCaptionElement: JSString = "HTMLTableCaptionElement" - @usableFromInline static let HTMLTableCellElement: JSString = "HTMLTableCellElement" - @usableFromInline static let HTMLTableColElement: JSString = "HTMLTableColElement" - @usableFromInline static let HTMLTableElement: JSString = "HTMLTableElement" - @usableFromInline static let HTMLTableRowElement: JSString = "HTMLTableRowElement" - @usableFromInline static let HTMLTableSectionElement: JSString = "HTMLTableSectionElement" - @usableFromInline static let HTMLTemplateElement: JSString = "HTMLTemplateElement" - @usableFromInline static let HTMLTextAreaElement: JSString = "HTMLTextAreaElement" - @usableFromInline static let HTMLTimeElement: JSString = "HTMLTimeElement" - @usableFromInline static let HTMLTitleElement: JSString = "HTMLTitleElement" - @usableFromInline static let HTMLTrackElement: JSString = "HTMLTrackElement" - @usableFromInline static let HTMLUListElement: JSString = "HTMLUListElement" - @usableFromInline static let HTMLUnknownElement: JSString = "HTMLUnknownElement" - @usableFromInline static let HTMLVideoElement: JSString = "HTMLVideoElement" - @usableFromInline static let HashChangeEvent: JSString = "HashChangeEvent" - @usableFromInline static let Headers: JSString = "Headers" - @usableFromInline static let History: JSString = "History" - @usableFromInline static let ImageBitmap: JSString = "ImageBitmap" - @usableFromInline static let ImageBitmapRenderingContext: JSString = "ImageBitmapRenderingContext" - @usableFromInline static let ImageData: JSString = "ImageData" - @usableFromInline static let ImageDecoder: JSString = "ImageDecoder" - @usableFromInline static let ImageTrack: JSString = "ImageTrack" - @usableFromInline static let ImageTrackList: JSString = "ImageTrackList" - @usableFromInline static let InputDeviceInfo: JSString = "InputDeviceInfo" - @usableFromInline static let InputEvent: JSString = "InputEvent" - @usableFromInline static let IsSearchProviderInstalled: JSString = "IsSearchProviderInstalled" - @usableFromInline static let KeyboardEvent: JSString = "KeyboardEvent" - @usableFromInline static let Location: JSString = "Location" - @usableFromInline static let MathMLElement: JSString = "MathMLElement" - @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo" - @usableFromInline static let MediaDevices: JSString = "MediaDevices" - @usableFromInline static let MediaError: JSString = "MediaError" - @usableFromInline static let MediaQueryList: JSString = "MediaQueryList" - @usableFromInline static let MediaQueryListEvent: JSString = "MediaQueryListEvent" - @usableFromInline static let MediaRecorder: JSString = "MediaRecorder" - @usableFromInline static let MediaSource: JSString = "MediaSource" - @usableFromInline static let MediaSourceHandle: JSString = "MediaSourceHandle" - @usableFromInline static let MediaStream: JSString = "MediaStream" - @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack" - @usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent" - @usableFromInline static let MessageChannel: JSString = "MessageChannel" - @usableFromInline static let MessageEvent: JSString = "MessageEvent" - @usableFromInline static let MessagePort: JSString = "MessagePort" - @usableFromInline static let MimeType: JSString = "MimeType" - @usableFromInline static let MimeTypeArray: JSString = "MimeTypeArray" - @usableFromInline static let MouseEvent: JSString = "MouseEvent" - @usableFromInline static let MutationEvent: JSString = "MutationEvent" - @usableFromInline static let MutationObserver: JSString = "MutationObserver" - @usableFromInline static let MutationRecord: JSString = "MutationRecord" - @usableFromInline static let NamedNodeMap: JSString = "NamedNodeMap" - @usableFromInline static let NavigateEvent: JSString = "NavigateEvent" - @usableFromInline static let Navigation: JSString = "Navigation" - @usableFromInline static let NavigationCurrentEntryChangeEvent: JSString = "NavigationCurrentEntryChangeEvent" - @usableFromInline static let NavigationDestination: JSString = "NavigationDestination" - @usableFromInline static let NavigationHistoryEntry: JSString = "NavigationHistoryEntry" - @usableFromInline static let NavigationPreloadManager: JSString = "NavigationPreloadManager" - @usableFromInline static let NavigationTransition: JSString = "NavigationTransition" - @usableFromInline static let Navigator: JSString = "Navigator" - @usableFromInline static let Node: JSString = "Node" - @usableFromInline static let NodeIterator: JSString = "NodeIterator" - @usableFromInline static let NodeList: JSString = "NodeList" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas" - @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D" - @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError" - @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent" - @usableFromInline static let Path2D: JSString = "Path2D" - @usableFromInline static let Performance: JSString = "Performance" - @usableFromInline static let PerformanceEntry: JSString = "PerformanceEntry" - @usableFromInline static let PerformanceObserver: JSString = "PerformanceObserver" - @usableFromInline static let PerformanceObserverEntryList: JSString = "PerformanceObserverEntryList" - @usableFromInline static let PermissionStatus: JSString = "PermissionStatus" - @usableFromInline static let Permissions: JSString = "Permissions" - @usableFromInline static let Plugin: JSString = "Plugin" - @usableFromInline static let PluginArray: JSString = "PluginArray" - @usableFromInline static let PopStateEvent: JSString = "PopStateEvent" - @usableFromInline static let ProcessingInstruction: JSString = "ProcessingInstruction" - @usableFromInline static let ProgressEvent: JSString = "ProgressEvent" - @usableFromInline static let PromiseRejectionEvent: JSString = "PromiseRejectionEvent" - @usableFromInline static let RadioNodeList: JSString = "RadioNodeList" - @usableFromInline static let Range: JSString = "Range" - @usableFromInline static let ReadableByteStreamController: JSString = "ReadableByteStreamController" - @usableFromInline static let ReadableStream: JSString = "ReadableStream" - @usableFromInline static let ReadableStreamBYOBReader: JSString = "ReadableStreamBYOBReader" - @usableFromInline static let ReadableStreamBYOBRequest: JSString = "ReadableStreamBYOBRequest" - @usableFromInline static let ReadableStreamDefaultController: JSString = "ReadableStreamDefaultController" - @usableFromInline static let ReadableStreamDefaultReader: JSString = "ReadableStreamDefaultReader" - @usableFromInline static let Request: JSString = "Request" - @usableFromInline static let Response: JSString = "Response" - @usableFromInline static let Screen: JSString = "Screen" - @usableFromInline static let ServiceWorker: JSString = "ServiceWorker" - @usableFromInline static let ServiceWorkerContainer: JSString = "ServiceWorkerContainer" - @usableFromInline static let ServiceWorkerRegistration: JSString = "ServiceWorkerRegistration" - @usableFromInline static let ShadowRoot: JSString = "ShadowRoot" - @usableFromInline static let SharedWorker: JSString = "SharedWorker" - @usableFromInline static let SourceBuffer: JSString = "SourceBuffer" - @usableFromInline static let SourceBufferList: JSString = "SourceBufferList" - @usableFromInline static let StaticRange: JSString = "StaticRange" - @usableFromInline static let Storage: JSString = "Storage" - @usableFromInline static let StorageEvent: JSString = "StorageEvent" - @usableFromInline static let SubmitEvent: JSString = "SubmitEvent" - @usableFromInline static let Text: JSString = "Text" - @usableFromInline static let TextMetrics: JSString = "TextMetrics" - @usableFromInline static let TextTrack: JSString = "TextTrack" - @usableFromInline static let TextTrackCue: JSString = "TextTrackCue" - @usableFromInline static let TextTrackCueList: JSString = "TextTrackCueList" - @usableFromInline static let TextTrackList: JSString = "TextTrackList" - @usableFromInline static let TimeRanges: JSString = "TimeRanges" - @usableFromInline static let ToggleEvent: JSString = "ToggleEvent" - @usableFromInline static let Touch: JSString = "Touch" - @usableFromInline static let TouchEvent: JSString = "TouchEvent" - @usableFromInline static let TouchList: JSString = "TouchList" - @usableFromInline static let TrackEvent: JSString = "TrackEvent" - @usableFromInline static let TransformStream: JSString = "TransformStream" - @usableFromInline static let TransformStreamDefaultController: JSString = "TransformStreamDefaultController" - @usableFromInline static let TreeWalker: JSString = "TreeWalker" - @usableFromInline static let UIEvent: JSString = "UIEvent" - @usableFromInline static let URL: JSString = "URL" - @usableFromInline static let UserActivation: JSString = "UserActivation" - @usableFromInline static let ValidityState: JSString = "ValidityState" - @usableFromInline static let VideoColorSpace: JSString = "VideoColorSpace" - @usableFromInline static let VideoDecoder: JSString = "VideoDecoder" - @usableFromInline static let VideoEncoder: JSString = "VideoEncoder" - @usableFromInline static let VideoFrame: JSString = "VideoFrame" - @usableFromInline static let VideoTrack: JSString = "VideoTrack" - @usableFromInline static let VideoTrackList: JSString = "VideoTrackList" - @usableFromInline static let VisibilityStateEntry: JSString = "VisibilityStateEntry" - @usableFromInline static let VisualViewport: JSString = "VisualViewport" - @usableFromInline static let WheelEvent: JSString = "WheelEvent" - @usableFromInline static let Window: JSString = "Window" - @usableFromInline static let Worker: JSString = "Worker" - @usableFromInline static let Worklet: JSString = "Worklet" - @usableFromInline static let WritableStream: JSString = "WritableStream" - @usableFromInline static let WritableStreamDefaultController: JSString = "WritableStreamDefaultController" - @usableFromInline static let WritableStreamDefaultWriter: JSString = "WritableStreamDefaultWriter" - @usableFromInline static let XMLDocument: JSString = "XMLDocument" - @usableFromInline static let XMLHttpRequest: JSString = "XMLHttpRequest" - @usableFromInline static let XMLHttpRequestEventTarget: JSString = "XMLHttpRequestEventTarget" - @usableFromInline static let XMLHttpRequestUpload: JSString = "XMLHttpRequestUpload" - @usableFromInline static let XPathEvaluator: JSString = "XPathEvaluator" - @usableFromInline static let XPathExpression: JSString = "XPathExpression" - @usableFromInline static let XPathResult: JSString = "XPathResult" - @usableFromInline static let XSLTProcessor: JSString = "XSLTProcessor" - @usableFromInline static let a: JSString = "a" - @usableFromInline static let aLink: JSString = "aLink" - @usableFromInline static let abbr: JSString = "abbr" - @usableFromInline static let abort: JSString = "abort" - @usableFromInline static let aborted: JSString = "aborted" - @usableFromInline static let accept: JSString = "accept" - @usableFromInline static let acceptCharset: JSString = "acceptCharset" - @usableFromInline static let accessKey: JSString = "accessKey" - @usableFromInline static let accessKeyLabel: JSString = "accessKeyLabel" - @usableFromInline static let action: JSString = "action" - @usableFromInline static let active: JSString = "active" - @usableFromInline static let activeCues: JSString = "activeCues" - @usableFromInline static let activeElement: JSString = "activeElement" - @usableFromInline static let activeSourceBuffers: JSString = "activeSourceBuffers" - @usableFromInline static let actualBoundingBoxAscent: JSString = "actualBoundingBoxAscent" - @usableFromInline static let actualBoundingBoxDescent: JSString = "actualBoundingBoxDescent" - @usableFromInline static let actualBoundingBoxLeft: JSString = "actualBoundingBoxLeft" - @usableFromInline static let actualBoundingBoxRight: JSString = "actualBoundingBoxRight" - @usableFromInline static let add: JSString = "add" - @usableFromInline static let addAll: JSString = "addAll" - @usableFromInline static let addColorStop: JSString = "addColorStop" - @usableFromInline static let addCue: JSString = "addCue" - @usableFromInline static let addEventListener: JSString = "addEventListener" - @usableFromInline static let addListener: JSString = "addListener" - @usableFromInline static let addModule: JSString = "addModule" - @usableFromInline static let addPath: JSString = "addPath" - @usableFromInline static let addSourceBuffer: JSString = "addSourceBuffer" - @usableFromInline static let addTextTrack: JSString = "addTextTrack" - @usableFromInline static let addTrack: JSString = "addTrack" - @usableFromInline static let addedNodes: JSString = "addedNodes" - @usableFromInline static let adoptNode: JSString = "adoptNode" - @usableFromInline static let advanced: JSString = "advanced" - @usableFromInline static let after: JSString = "after" - @usableFromInline static let alert: JSString = "alert" - @usableFromInline static let align: JSString = "align" - @usableFromInline static let alinkColor: JSString = "alinkColor" - @usableFromInline static let all: JSString = "all" - @usableFromInline static let allocationSize: JSString = "allocationSize" - @usableFromInline static let allow: JSString = "allow" - @usableFromInline static let allowFullscreen: JSString = "allowFullscreen" - @usableFromInline static let alpha: JSString = "alpha" - @usableFromInline static let alphaSideData: JSString = "alphaSideData" - @usableFromInline static let alphabeticBaseline: JSString = "alphabeticBaseline" - @usableFromInline static let alt: JSString = "alt" - @usableFromInline static let altKey: JSString = "altKey" - @usableFromInline static let altitudeAngle: JSString = "altitudeAngle" - @usableFromInline static let ancestorOrigins: JSString = "ancestorOrigins" - @usableFromInline static let anchors: JSString = "anchors" - @usableFromInline static let animated: JSString = "animated" - @usableFromInline static let any: JSString = "any" - @usableFromInline static let appCodeName: JSString = "appCodeName" - @usableFromInline static let appName: JSString = "appName" - @usableFromInline static let appVersion: JSString = "appVersion" - @usableFromInline static let append: JSString = "append" - @usableFromInline static let appendBuffer: JSString = "appendBuffer" - @usableFromInline static let appendChild: JSString = "appendChild" - @usableFromInline static let appendData: JSString = "appendData" - @usableFromInline static let appendWindowEnd: JSString = "appendWindowEnd" - @usableFromInline static let appendWindowStart: JSString = "appendWindowStart" - @usableFromInline static let applets: JSString = "applets" - @usableFromInline static let applyConstraints: JSString = "applyConstraints" - @usableFromInline static let arc: JSString = "arc" - @usableFromInline static let arcTo: JSString = "arcTo" - @usableFromInline static let archive: JSString = "archive" - @usableFromInline static let areas: JSString = "areas" - @usableFromInline static let ariaActiveDescendantElement: JSString = "ariaActiveDescendantElement" - @usableFromInline static let ariaAtomic: JSString = "ariaAtomic" - @usableFromInline static let ariaAutoComplete: JSString = "ariaAutoComplete" - @usableFromInline static let ariaBusy: JSString = "ariaBusy" - @usableFromInline static let ariaChecked: JSString = "ariaChecked" - @usableFromInline static let ariaColCount: JSString = "ariaColCount" - @usableFromInline static let ariaColIndex: JSString = "ariaColIndex" - @usableFromInline static let ariaColIndexText: JSString = "ariaColIndexText" - @usableFromInline static let ariaColSpan: JSString = "ariaColSpan" - @usableFromInline static let ariaControlsElements: JSString = "ariaControlsElements" - @usableFromInline static let ariaCurrent: JSString = "ariaCurrent" - @usableFromInline static let ariaDescribedByElements: JSString = "ariaDescribedByElements" - @usableFromInline static let ariaDescription: JSString = "ariaDescription" - @usableFromInline static let ariaDetailsElements: JSString = "ariaDetailsElements" - @usableFromInline static let ariaDisabled: JSString = "ariaDisabled" - @usableFromInline static let ariaErrorMessageElements: JSString = "ariaErrorMessageElements" - @usableFromInline static let ariaExpanded: JSString = "ariaExpanded" - @usableFromInline static let ariaFlowToElements: JSString = "ariaFlowToElements" - @usableFromInline static let ariaHasPopup: JSString = "ariaHasPopup" - @usableFromInline static let ariaHidden: JSString = "ariaHidden" - @usableFromInline static let ariaInvalid: JSString = "ariaInvalid" - @usableFromInline static let ariaKeyShortcuts: JSString = "ariaKeyShortcuts" - @usableFromInline static let ariaLabel: JSString = "ariaLabel" - @usableFromInline static let ariaLabelledByElements: JSString = "ariaLabelledByElements" - @usableFromInline static let ariaLevel: JSString = "ariaLevel" - @usableFromInline static let ariaLive: JSString = "ariaLive" - @usableFromInline static let ariaModal: JSString = "ariaModal" - @usableFromInline static let ariaMultiLine: JSString = "ariaMultiLine" - @usableFromInline static let ariaMultiSelectable: JSString = "ariaMultiSelectable" - @usableFromInline static let ariaOrientation: JSString = "ariaOrientation" - @usableFromInline static let ariaOwnsElements: JSString = "ariaOwnsElements" - @usableFromInline static let ariaPlaceholder: JSString = "ariaPlaceholder" - @usableFromInline static let ariaPosInSet: JSString = "ariaPosInSet" - @usableFromInline static let ariaPressed: JSString = "ariaPressed" - @usableFromInline static let ariaReadOnly: JSString = "ariaReadOnly" - @usableFromInline static let ariaRequired: JSString = "ariaRequired" - @usableFromInline static let ariaRoleDescription: JSString = "ariaRoleDescription" - @usableFromInline static let ariaRowCount: JSString = "ariaRowCount" - @usableFromInline static let ariaRowIndex: JSString = "ariaRowIndex" - @usableFromInline static let ariaRowIndexText: JSString = "ariaRowIndexText" - @usableFromInline static let ariaRowSpan: JSString = "ariaRowSpan" - @usableFromInline static let ariaSelected: JSString = "ariaSelected" - @usableFromInline static let ariaSetSize: JSString = "ariaSetSize" - @usableFromInline static let ariaSort: JSString = "ariaSort" - @usableFromInline static let ariaValueMax: JSString = "ariaValueMax" - @usableFromInline static let ariaValueMin: JSString = "ariaValueMin" - @usableFromInline static let ariaValueNow: JSString = "ariaValueNow" - @usableFromInline static let ariaValueText: JSString = "ariaValueText" - @usableFromInline static let arrayBuffer: JSString = "arrayBuffer" + @usableFromInline static let `AbortController`: JSString = "AbortController" + @usableFromInline static let `AbortSignal`: JSString = "AbortSignal" + @usableFromInline static let `AbstractRange`: JSString = "AbstractRange" + @usableFromInline static let `AddSearchProvider`: JSString = "AddSearchProvider" + @usableFromInline static let `Attr`: JSString = "Attr" + @usableFromInline static let `AudioData`: JSString = "AudioData" + @usableFromInline static let `AudioDecoder`: JSString = "AudioDecoder" + @usableFromInline static let `AudioEncoder`: JSString = "AudioEncoder" + @usableFromInline static let `AudioTrack`: JSString = "AudioTrack" + @usableFromInline static let `AudioTrackList`: JSString = "AudioTrackList" + @usableFromInline static let `BarProp`: JSString = "BarProp" + @usableFromInline static let `BeforeUnloadEvent`: JSString = "BeforeUnloadEvent" + @usableFromInline static let `Blob`: JSString = "Blob" + @usableFromInline static let `BlobEvent`: JSString = "BlobEvent" + @usableFromInline static let `BroadcastChannel`: JSString = "BroadcastChannel" + @usableFromInline static let `BufferedChangeEvent`: JSString = "BufferedChangeEvent" + @usableFromInline static let `ByteLengthQueuingStrategy`: JSString = "ByteLengthQueuingStrategy" + @usableFromInline static let `CDATASection`: JSString = "CDATASection" + @usableFromInline static let `CSSPseudoElement`: JSString = "CSSPseudoElement" + @usableFromInline static let `Cache`: JSString = "Cache" + @usableFromInline static let `CacheStorage`: JSString = "CacheStorage" + @usableFromInline static let `CanvasGradient`: JSString = "CanvasGradient" + @usableFromInline static let `CanvasPattern`: JSString = "CanvasPattern" + @usableFromInline static let `CanvasRenderingContext2D`: JSString = "CanvasRenderingContext2D" + @usableFromInline static let `CaretPosition`: JSString = "CaretPosition" + @usableFromInline static let `CharacterData`: JSString = "CharacterData" + @usableFromInline static let `CloseWatcher`: JSString = "CloseWatcher" + @usableFromInline static let `CommandEvent`: JSString = "CommandEvent" + @usableFromInline static let `Comment`: JSString = "Comment" + @usableFromInline static let `CompositionEvent`: JSString = "CompositionEvent" + @usableFromInline static let `CountQueuingStrategy`: JSString = "CountQueuingStrategy" + @usableFromInline static let `CustomElementRegistry`: JSString = "CustomElementRegistry" + @usableFromInline static let `CustomEvent`: JSString = "CustomEvent" + @usableFromInline static let `CustomStateSet`: JSString = "CustomStateSet" + @usableFromInline static let `DOMImplementation`: JSString = "DOMImplementation" + @usableFromInline static let `DOMMatrix`: JSString = "DOMMatrix" + @usableFromInline static let `DOMMatrixReadOnly`: JSString = "DOMMatrixReadOnly" + @usableFromInline static let `DOMParser`: JSString = "DOMParser" + @usableFromInline static let `DOMPoint`: JSString = "DOMPoint" + @usableFromInline static let `DOMPointReadOnly`: JSString = "DOMPointReadOnly" + @usableFromInline static let `DOMQuad`: JSString = "DOMQuad" + @usableFromInline static let `DOMRect`: JSString = "DOMRect" + @usableFromInline static let `DOMRectList`: JSString = "DOMRectList" + @usableFromInline static let `DOMRectReadOnly`: JSString = "DOMRectReadOnly" + @usableFromInline static let `DOMStringList`: JSString = "DOMStringList" + @usableFromInline static let `DOMStringMap`: JSString = "DOMStringMap" + @usableFromInline static let `DOMTokenList`: JSString = "DOMTokenList" + @usableFromInline static let `DataTransfer`: JSString = "DataTransfer" + @usableFromInline static let `DataTransferItem`: JSString = "DataTransferItem" + @usableFromInline static let `DataTransferItemList`: JSString = "DataTransferItemList" + @usableFromInline static let `DeviceChangeEvent`: JSString = "DeviceChangeEvent" + @usableFromInline static let `Document`: JSString = "Document" + @usableFromInline static let `DocumentFragment`: JSString = "DocumentFragment" + @usableFromInline static let `DocumentType`: JSString = "DocumentType" + @usableFromInline static let `DragEvent`: JSString = "DragEvent" + @usableFromInline static let `Element`: JSString = "Element" + @usableFromInline static let `ElementInternals`: JSString = "ElementInternals" + @usableFromInline static let `EncodedAudioChunk`: JSString = "EncodedAudioChunk" + @usableFromInline static let `EncodedVideoChunk`: JSString = "EncodedVideoChunk" + @usableFromInline static let `ErrorEvent`: JSString = "ErrorEvent" + @usableFromInline static let `Event`: JSString = "Event" + @usableFromInline static let `EventSource`: JSString = "EventSource" + @usableFromInline static let `EventTarget`: JSString = "EventTarget" + @usableFromInline static let `External`: JSString = "External" + @usableFromInline static let `File`: JSString = "File" + @usableFromInline static let `FileList`: JSString = "FileList" + @usableFromInline static let `FileReader`: JSString = "FileReader" + @usableFromInline static let `FocusEvent`: JSString = "FocusEvent" + @usableFromInline static let `FormData`: JSString = "FormData" + @usableFromInline static let `FormDataEvent`: JSString = "FormDataEvent" + @usableFromInline static let `HTMLAllCollection`: JSString = "HTMLAllCollection" + @usableFromInline static let `HTMLAnchorElement`: JSString = "HTMLAnchorElement" + @usableFromInline static let `HTMLAreaElement`: JSString = "HTMLAreaElement" + @usableFromInline static let `HTMLAudioElement`: JSString = "HTMLAudioElement" + @usableFromInline static let `HTMLBRElement`: JSString = "HTMLBRElement" + @usableFromInline static let `HTMLBaseElement`: JSString = "HTMLBaseElement" + @usableFromInline static let `HTMLBodyElement`: JSString = "HTMLBodyElement" + @usableFromInline static let `HTMLButtonElement`: JSString = "HTMLButtonElement" + @usableFromInline static let `HTMLCanvasElement`: JSString = "HTMLCanvasElement" + @usableFromInline static let `HTMLCollection`: JSString = "HTMLCollection" + @usableFromInline static let `HTMLDListElement`: JSString = "HTMLDListElement" + @usableFromInline static let `HTMLDataElement`: JSString = "HTMLDataElement" + @usableFromInline static let `HTMLDataListElement`: JSString = "HTMLDataListElement" + @usableFromInline static let `HTMLDetailsElement`: JSString = "HTMLDetailsElement" + @usableFromInline static let `HTMLDialogElement`: JSString = "HTMLDialogElement" + @usableFromInline static let `HTMLDirectoryElement`: JSString = "HTMLDirectoryElement" + @usableFromInline static let `HTMLDivElement`: JSString = "HTMLDivElement" + @usableFromInline static let `HTMLElement`: JSString = "HTMLElement" + @usableFromInline static let `HTMLEmbedElement`: JSString = "HTMLEmbedElement" + @usableFromInline static let `HTMLFieldSetElement`: JSString = "HTMLFieldSetElement" + @usableFromInline static let `HTMLFontElement`: JSString = "HTMLFontElement" + @usableFromInline static let `HTMLFormControlsCollection`: JSString = "HTMLFormControlsCollection" + @usableFromInline static let `HTMLFormElement`: JSString = "HTMLFormElement" + @usableFromInline static let `HTMLFrameElement`: JSString = "HTMLFrameElement" + @usableFromInline static let `HTMLFrameSetElement`: JSString = "HTMLFrameSetElement" + @usableFromInline static let `HTMLHRElement`: JSString = "HTMLHRElement" + @usableFromInline static let `HTMLHeadElement`: JSString = "HTMLHeadElement" + @usableFromInline static let `HTMLHeadingElement`: JSString = "HTMLHeadingElement" + @usableFromInline static let `HTMLHtmlElement`: JSString = "HTMLHtmlElement" + @usableFromInline static let `HTMLIFrameElement`: JSString = "HTMLIFrameElement" + @usableFromInline static let `HTMLImageElement`: JSString = "HTMLImageElement" + @usableFromInline static let `HTMLInputElement`: JSString = "HTMLInputElement" + @usableFromInline static let `HTMLLIElement`: JSString = "HTMLLIElement" + @usableFromInline static let `HTMLLabelElement`: JSString = "HTMLLabelElement" + @usableFromInline static let `HTMLLegendElement`: JSString = "HTMLLegendElement" + @usableFromInline static let `HTMLLinkElement`: JSString = "HTMLLinkElement" + @usableFromInline static let `HTMLMapElement`: JSString = "HTMLMapElement" + @usableFromInline static let `HTMLMarqueeElement`: JSString = "HTMLMarqueeElement" + @usableFromInline static let `HTMLMediaElement`: JSString = "HTMLMediaElement" + @usableFromInline static let `HTMLMenuElement`: JSString = "HTMLMenuElement" + @usableFromInline static let `HTMLMetaElement`: JSString = "HTMLMetaElement" + @usableFromInline static let `HTMLMeterElement`: JSString = "HTMLMeterElement" + @usableFromInline static let `HTMLModElement`: JSString = "HTMLModElement" + @usableFromInline static let `HTMLOListElement`: JSString = "HTMLOListElement" + @usableFromInline static let `HTMLObjectElement`: JSString = "HTMLObjectElement" + @usableFromInline static let `HTMLOptGroupElement`: JSString = "HTMLOptGroupElement" + @usableFromInline static let `HTMLOptionElement`: JSString = "HTMLOptionElement" + @usableFromInline static let `HTMLOptionsCollection`: JSString = "HTMLOptionsCollection" + @usableFromInline static let `HTMLOutputElement`: JSString = "HTMLOutputElement" + @usableFromInline static let `HTMLParagraphElement`: JSString = "HTMLParagraphElement" + @usableFromInline static let `HTMLParamElement`: JSString = "HTMLParamElement" + @usableFromInline static let `HTMLPictureElement`: JSString = "HTMLPictureElement" + @usableFromInline static let `HTMLPreElement`: JSString = "HTMLPreElement" + @usableFromInline static let `HTMLProgressElement`: JSString = "HTMLProgressElement" + @usableFromInline static let `HTMLQuoteElement`: JSString = "HTMLQuoteElement" + @usableFromInline static let `HTMLScriptElement`: JSString = "HTMLScriptElement" + @usableFromInline static let `HTMLSelectElement`: JSString = "HTMLSelectElement" + @usableFromInline static let `HTMLSlotElement`: JSString = "HTMLSlotElement" + @usableFromInline static let `HTMLSourceElement`: JSString = "HTMLSourceElement" + @usableFromInline static let `HTMLSpanElement`: JSString = "HTMLSpanElement" + @usableFromInline static let `HTMLStyleElement`: JSString = "HTMLStyleElement" + @usableFromInline static let `HTMLTableCaptionElement`: JSString = "HTMLTableCaptionElement" + @usableFromInline static let `HTMLTableCellElement`: JSString = "HTMLTableCellElement" + @usableFromInline static let `HTMLTableColElement`: JSString = "HTMLTableColElement" + @usableFromInline static let `HTMLTableElement`: JSString = "HTMLTableElement" + @usableFromInline static let `HTMLTableRowElement`: JSString = "HTMLTableRowElement" + @usableFromInline static let `HTMLTableSectionElement`: JSString = "HTMLTableSectionElement" + @usableFromInline static let `HTMLTemplateElement`: JSString = "HTMLTemplateElement" + @usableFromInline static let `HTMLTextAreaElement`: JSString = "HTMLTextAreaElement" + @usableFromInline static let `HTMLTimeElement`: JSString = "HTMLTimeElement" + @usableFromInline static let `HTMLTitleElement`: JSString = "HTMLTitleElement" + @usableFromInline static let `HTMLTrackElement`: JSString = "HTMLTrackElement" + @usableFromInline static let `HTMLUListElement`: JSString = "HTMLUListElement" + @usableFromInline static let `HTMLUnknownElement`: JSString = "HTMLUnknownElement" + @usableFromInline static let `HTMLVideoElement`: JSString = "HTMLVideoElement" + @usableFromInline static let `HashChangeEvent`: JSString = "HashChangeEvent" + @usableFromInline static let `Headers`: JSString = "Headers" + @usableFromInline static let `History`: JSString = "History" + @usableFromInline static let `ImageBitmap`: JSString = "ImageBitmap" + @usableFromInline static let `ImageBitmapRenderingContext`: JSString = "ImageBitmapRenderingContext" + @usableFromInline static let `ImageData`: JSString = "ImageData" + @usableFromInline static let `ImageDecoder`: JSString = "ImageDecoder" + @usableFromInline static let `ImageTrack`: JSString = "ImageTrack" + @usableFromInline static let `ImageTrackList`: JSString = "ImageTrackList" + @usableFromInline static let `InputDeviceInfo`: JSString = "InputDeviceInfo" + @usableFromInline static let `InputEvent`: JSString = "InputEvent" + @usableFromInline static let `IsSearchProviderInstalled`: JSString = "IsSearchProviderInstalled" + @usableFromInline static let `KeyboardEvent`: JSString = "KeyboardEvent" + @usableFromInline static let `Location`: JSString = "Location" + @usableFromInline static let `ManagedMediaSource`: JSString = "ManagedMediaSource" + @usableFromInline static let `ManagedSourceBuffer`: JSString = "ManagedSourceBuffer" + @usableFromInline static let `MathMLElement`: JSString = "MathMLElement" + @usableFromInline static let `MediaDeviceInfo`: JSString = "MediaDeviceInfo" + @usableFromInline static let `MediaDevices`: JSString = "MediaDevices" + @usableFromInline static let `MediaError`: JSString = "MediaError" + @usableFromInline static let `MediaQueryList`: JSString = "MediaQueryList" + @usableFromInline static let `MediaQueryListEvent`: JSString = "MediaQueryListEvent" + @usableFromInline static let `MediaRecorder`: JSString = "MediaRecorder" + @usableFromInline static let `MediaSource`: JSString = "MediaSource" + @usableFromInline static let `MediaSourceHandle`: JSString = "MediaSourceHandle" + @usableFromInline static let `MediaStream`: JSString = "MediaStream" + @usableFromInline static let `MediaStreamTrack`: JSString = "MediaStreamTrack" + @usableFromInline static let `MediaStreamTrackEvent`: JSString = "MediaStreamTrackEvent" + @usableFromInline static let `MessageChannel`: JSString = "MessageChannel" + @usableFromInline static let `MessageEvent`: JSString = "MessageEvent" + @usableFromInline static let `MessagePort`: JSString = "MessagePort" + @usableFromInline static let `MimeType`: JSString = "MimeType" + @usableFromInline static let `MimeTypeArray`: JSString = "MimeTypeArray" + @usableFromInline static let `MouseEvent`: JSString = "MouseEvent" + @usableFromInline static let `MutationObserver`: JSString = "MutationObserver" + @usableFromInline static let `MutationRecord`: JSString = "MutationRecord" + @usableFromInline static let `NamedNodeMap`: JSString = "NamedNodeMap" + @usableFromInline static let `NavigateEvent`: JSString = "NavigateEvent" + @usableFromInline static let `Navigation`: JSString = "Navigation" + @usableFromInline static let `NavigationActivation`: JSString = "NavigationActivation" + @usableFromInline static let `NavigationCurrentEntryChangeEvent`: JSString = "NavigationCurrentEntryChangeEvent" + @usableFromInline static let `NavigationDestination`: JSString = "NavigationDestination" + @usableFromInline static let `NavigationHistoryEntry`: JSString = "NavigationHistoryEntry" + @usableFromInline static let `NavigationPreloadManager`: JSString = "NavigationPreloadManager" + @usableFromInline static let `NavigationTransition`: JSString = "NavigationTransition" + @usableFromInline static let `Navigator`: JSString = "Navigator" + @usableFromInline static let `Node`: JSString = "Node" + @usableFromInline static let `NodeIterator`: JSString = "NodeIterator" + @usableFromInline static let `NodeList`: JSString = "NodeList" + @usableFromInline static let `NotRestoredReasonDetails`: JSString = "NotRestoredReasonDetails" + @usableFromInline static let `NotRestoredReasons`: JSString = "NotRestoredReasons" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `OffscreenCanvas`: JSString = "OffscreenCanvas" + @usableFromInline static let `OffscreenCanvasRenderingContext2D`: JSString = "OffscreenCanvasRenderingContext2D" + @usableFromInline static let `OverconstrainedError`: JSString = "OverconstrainedError" + @usableFromInline static let `PageRevealEvent`: JSString = "PageRevealEvent" + @usableFromInline static let `PageSwapEvent`: JSString = "PageSwapEvent" + @usableFromInline static let `PageTransitionEvent`: JSString = "PageTransitionEvent" + @usableFromInline static let `Path2D`: JSString = "Path2D" + @usableFromInline static let `Performance`: JSString = "Performance" + @usableFromInline static let `PerformanceEntry`: JSString = "PerformanceEntry" + @usableFromInline static let `PerformanceObserver`: JSString = "PerformanceObserver" + @usableFromInline static let `PerformanceObserverEntryList`: JSString = "PerformanceObserverEntryList" + @usableFromInline static let `PermissionStatus`: JSString = "PermissionStatus" + @usableFromInline static let `Permissions`: JSString = "Permissions" + @usableFromInline static let `Plugin`: JSString = "Plugin" + @usableFromInline static let `PluginArray`: JSString = "PluginArray" + @usableFromInline static let `PopStateEvent`: JSString = "PopStateEvent" + @usableFromInline static let `ProcessingInstruction`: JSString = "ProcessingInstruction" + @usableFromInline static let `ProgressEvent`: JSString = "ProgressEvent" + @usableFromInline static let `PromiseRejectionEvent`: JSString = "PromiseRejectionEvent" + @usableFromInline static let `RadioNodeList`: JSString = "RadioNodeList" + @usableFromInline static let `Range`: JSString = "Range" + @usableFromInline static let `ReadableByteStreamController`: JSString = "ReadableByteStreamController" + @usableFromInline static let `ReadableStream`: JSString = "ReadableStream" + @usableFromInline static let `ReadableStreamBYOBReader`: JSString = "ReadableStreamBYOBReader" + @usableFromInline static let `ReadableStreamBYOBRequest`: JSString = "ReadableStreamBYOBRequest" + @usableFromInline static let `ReadableStreamDefaultController`: JSString = "ReadableStreamDefaultController" + @usableFromInline static let `ReadableStreamDefaultReader`: JSString = "ReadableStreamDefaultReader" + @usableFromInline static let `Request`: JSString = "Request" + @usableFromInline static let `Response`: JSString = "Response" + @usableFromInline static let `Screen`: JSString = "Screen" + @usableFromInline static let `ServiceWorker`: JSString = "ServiceWorker" + @usableFromInline static let `ServiceWorkerContainer`: JSString = "ServiceWorkerContainer" + @usableFromInline static let `ServiceWorkerRegistration`: JSString = "ServiceWorkerRegistration" + @usableFromInline static let `ShadowRoot`: JSString = "ShadowRoot" + @usableFromInline static let `SharedWorker`: JSString = "SharedWorker" + @usableFromInline static let `SourceBuffer`: JSString = "SourceBuffer" + @usableFromInline static let `SourceBufferList`: JSString = "SourceBufferList" + @usableFromInline static let `StaticRange`: JSString = "StaticRange" + @usableFromInline static let `Storage`: JSString = "Storage" + @usableFromInline static let `StorageEvent`: JSString = "StorageEvent" + @usableFromInline static let `SubmitEvent`: JSString = "SubmitEvent" + @usableFromInline static let `Text`: JSString = "Text" + @usableFromInline static let `TextEvent`: JSString = "TextEvent" + @usableFromInline static let `TextMetrics`: JSString = "TextMetrics" + @usableFromInline static let `TextTrack`: JSString = "TextTrack" + @usableFromInline static let `TextTrackCue`: JSString = "TextTrackCue" + @usableFromInline static let `TextTrackCueList`: JSString = "TextTrackCueList" + @usableFromInline static let `TextTrackList`: JSString = "TextTrackList" + @usableFromInline static let `TimeRanges`: JSString = "TimeRanges" + @usableFromInline static let `ToggleEvent`: JSString = "ToggleEvent" + @usableFromInline static let `Touch`: JSString = "Touch" + @usableFromInline static let `TouchEvent`: JSString = "TouchEvent" + @usableFromInline static let `TouchList`: JSString = "TouchList" + @usableFromInline static let `TrackEvent`: JSString = "TrackEvent" + @usableFromInline static let `TransformStream`: JSString = "TransformStream" + @usableFromInline static let `TransformStreamDefaultController`: JSString = "TransformStreamDefaultController" + @usableFromInline static let `TreeWalker`: JSString = "TreeWalker" + @usableFromInline static let `TrustedHTML`: JSString = "TrustedHTML" + @usableFromInline static let `TrustedScript`: JSString = "TrustedScript" + @usableFromInline static let `TrustedScriptURL`: JSString = "TrustedScriptURL" + @usableFromInline static let `TrustedTypePolicy`: JSString = "TrustedTypePolicy" + @usableFromInline static let `TrustedTypePolicyFactory`: JSString = "TrustedTypePolicyFactory" + @usableFromInline static let `UIEvent`: JSString = "UIEvent" + @usableFromInline static let `URL`: JSString = "URL" + @usableFromInline static let `URLPattern`: JSString = "URLPattern" + @usableFromInline static let `UserActivation`: JSString = "UserActivation" + @usableFromInline static let `ValidityState`: JSString = "ValidityState" + @usableFromInline static let `VideoColorSpace`: JSString = "VideoColorSpace" + @usableFromInline static let `VideoDecoder`: JSString = "VideoDecoder" + @usableFromInline static let `VideoEncoder`: JSString = "VideoEncoder" + @usableFromInline static let `VideoFrame`: JSString = "VideoFrame" + @usableFromInline static let `VideoTrack`: JSString = "VideoTrack" + @usableFromInline static let `VideoTrackList`: JSString = "VideoTrackList" + @usableFromInline static let `ViewTransition`: JSString = "ViewTransition" + @usableFromInline static let `VisibilityStateEntry`: JSString = "VisibilityStateEntry" + @usableFromInline static let `VisualViewport`: JSString = "VisualViewport" + @usableFromInline static let `WheelEvent`: JSString = "WheelEvent" + @usableFromInline static let `Window`: JSString = "Window" + @usableFromInline static let `Worker`: JSString = "Worker" + @usableFromInline static let `Worklet`: JSString = "Worklet" + @usableFromInline static let `WritableStream`: JSString = "WritableStream" + @usableFromInline static let `WritableStreamDefaultController`: JSString = "WritableStreamDefaultController" + @usableFromInline static let `WritableStreamDefaultWriter`: JSString = "WritableStreamDefaultWriter" + @usableFromInline static let `XMLDocument`: JSString = "XMLDocument" + @usableFromInline static let `XMLHttpRequest`: JSString = "XMLHttpRequest" + @usableFromInline static let `XMLHttpRequestEventTarget`: JSString = "XMLHttpRequestEventTarget" + @usableFromInline static let `XMLHttpRequestUpload`: JSString = "XMLHttpRequestUpload" + @usableFromInline static let `XMLSerializer`: JSString = "XMLSerializer" + @usableFromInline static let `XPathEvaluator`: JSString = "XPathEvaluator" + @usableFromInline static let `XPathExpression`: JSString = "XPathExpression" + @usableFromInline static let `XPathResult`: JSString = "XPathResult" + @usableFromInline static let `XSLTProcessor`: JSString = "XSLTProcessor" + @usableFromInline static let `a`: JSString = "a" + @usableFromInline static let `aLink`: JSString = "aLink" + @usableFromInline static let `abbr`: JSString = "abbr" + @usableFromInline static let `abort`: JSString = "abort" + @usableFromInline static let `aborted`: JSString = "aborted" + @usableFromInline static let `accept`: JSString = "accept" + @usableFromInline static let `acceptCharset`: JSString = "acceptCharset" + @usableFromInline static let `accessKey`: JSString = "accessKey" + @usableFromInline static let `accessKeyLabel`: JSString = "accessKeyLabel" + @usableFromInline static let `action`: JSString = "action" + @usableFromInline static let `activation`: JSString = "activation" + @usableFromInline static let `active`: JSString = "active" + @usableFromInline static let `activeCues`: JSString = "activeCues" + @usableFromInline static let `activeElement`: JSString = "activeElement" + @usableFromInline static let `activeSourceBuffers`: JSString = "activeSourceBuffers" + @usableFromInline static let `actualBoundingBoxAscent`: JSString = "actualBoundingBoxAscent" + @usableFromInline static let `actualBoundingBoxDescent`: JSString = "actualBoundingBoxDescent" + @usableFromInline static let `actualBoundingBoxLeft`: JSString = "actualBoundingBoxLeft" + @usableFromInline static let `actualBoundingBoxRight`: JSString = "actualBoundingBoxRight" + @usableFromInline static let `add`: JSString = "add" + @usableFromInline static let `addAll`: JSString = "addAll" + @usableFromInline static let `addColorStop`: JSString = "addColorStop" + @usableFromInline static let `addCue`: JSString = "addCue" + @usableFromInline static let `addEventListener`: JSString = "addEventListener" + @usableFromInline static let `addListener`: JSString = "addListener" + @usableFromInline static let `addModule`: JSString = "addModule" + @usableFromInline static let `addPath`: JSString = "addPath" + @usableFromInline static let `addSourceBuffer`: JSString = "addSourceBuffer" + @usableFromInline static let `addTextTrack`: JSString = "addTextTrack" + @usableFromInline static let `addTrack`: JSString = "addTrack" + @usableFromInline static let `addedNodes`: JSString = "addedNodes" + @usableFromInline static let `addedRanges`: JSString = "addedRanges" + @usableFromInline static let `adoptNode`: JSString = "adoptNode" + @usableFromInline static let `advanced`: JSString = "advanced" + @usableFromInline static let `after`: JSString = "after" + @usableFromInline static let `alert`: JSString = "alert" + @usableFromInline static let `align`: JSString = "align" + @usableFromInline static let `alinkColor`: JSString = "alinkColor" + @usableFromInline static let `all`: JSString = "all" + @usableFromInline static let `allocationSize`: JSString = "allocationSize" + @usableFromInline static let `allow`: JSString = "allow" + @usableFromInline static let `allowFullscreen`: JSString = "allowFullscreen" + @usableFromInline static let `alpha`: JSString = "alpha" + @usableFromInline static let `alphaSideData`: JSString = "alphaSideData" + @usableFromInline static let `alphabeticBaseline`: JSString = "alphabeticBaseline" + @usableFromInline static let `alt`: JSString = "alt" + @usableFromInline static let `altKey`: JSString = "altKey" + @usableFromInline static let `altitudeAngle`: JSString = "altitudeAngle" + @usableFromInline static let `ancestorOrigins`: JSString = "ancestorOrigins" + @usableFromInline static let `anchors`: JSString = "anchors" + @usableFromInline static let `animated`: JSString = "animated" + @usableFromInline static let `any`: JSString = "any" + @usableFromInline static let `appCodeName`: JSString = "appCodeName" + @usableFromInline static let `appName`: JSString = "appName" + @usableFromInline static let `appVersion`: JSString = "appVersion" + @usableFromInline static let `append`: JSString = "append" + @usableFromInline static let `appendBuffer`: JSString = "appendBuffer" + @usableFromInline static let `appendChild`: JSString = "appendChild" + @usableFromInline static let `appendData`: JSString = "appendData" + @usableFromInline static let `appendWindowEnd`: JSString = "appendWindowEnd" + @usableFromInline static let `appendWindowStart`: JSString = "appendWindowStart" + @usableFromInline static let `applets`: JSString = "applets" + @usableFromInline static let `applyConstraints`: JSString = "applyConstraints" + @usableFromInline static let `arc`: JSString = "arc" + @usableFromInline static let `arcTo`: JSString = "arcTo" + @usableFromInline static let `archive`: JSString = "archive" + @usableFromInline static let `areas`: JSString = "areas" + @usableFromInline static let `ariaActiveDescendantElement`: JSString = "ariaActiveDescendantElement" + @usableFromInline static let `ariaAtomic`: JSString = "ariaAtomic" + @usableFromInline static let `ariaAutoComplete`: JSString = "ariaAutoComplete" + @usableFromInline static let `ariaBrailleLabel`: JSString = "ariaBrailleLabel" + @usableFromInline static let `ariaBrailleRoleDescription`: JSString = "ariaBrailleRoleDescription" + @usableFromInline static let `ariaBusy`: JSString = "ariaBusy" + @usableFromInline static let `ariaChecked`: JSString = "ariaChecked" + @usableFromInline static let `ariaColCount`: JSString = "ariaColCount" + @usableFromInline static let `ariaColIndex`: JSString = "ariaColIndex" + @usableFromInline static let `ariaColIndexText`: JSString = "ariaColIndexText" + @usableFromInline static let `ariaColSpan`: JSString = "ariaColSpan" + @usableFromInline static let `ariaControlsElements`: JSString = "ariaControlsElements" + @usableFromInline static let `ariaCurrent`: JSString = "ariaCurrent" + @usableFromInline static let `ariaDescribedByElements`: JSString = "ariaDescribedByElements" + @usableFromInline static let `ariaDescription`: JSString = "ariaDescription" + @usableFromInline static let `ariaDetailsElements`: JSString = "ariaDetailsElements" + @usableFromInline static let `ariaDisabled`: JSString = "ariaDisabled" + @usableFromInline static let `ariaErrorMessageElements`: JSString = "ariaErrorMessageElements" + @usableFromInline static let `ariaExpanded`: JSString = "ariaExpanded" + @usableFromInline static let `ariaFlowToElements`: JSString = "ariaFlowToElements" + @usableFromInline static let `ariaHasPopup`: JSString = "ariaHasPopup" + @usableFromInline static let `ariaHidden`: JSString = "ariaHidden" + @usableFromInline static let `ariaInvalid`: JSString = "ariaInvalid" + @usableFromInline static let `ariaKeyShortcuts`: JSString = "ariaKeyShortcuts" + @usableFromInline static let `ariaLabel`: JSString = "ariaLabel" + @usableFromInline static let `ariaLabelledByElements`: JSString = "ariaLabelledByElements" + @usableFromInline static let `ariaLevel`: JSString = "ariaLevel" + @usableFromInline static let `ariaLive`: JSString = "ariaLive" + @usableFromInline static let `ariaModal`: JSString = "ariaModal" + @usableFromInline static let `ariaMultiLine`: JSString = "ariaMultiLine" + @usableFromInline static let `ariaMultiSelectable`: JSString = "ariaMultiSelectable" + @usableFromInline static let `ariaOrientation`: JSString = "ariaOrientation" + @usableFromInline static let `ariaOwnsElements`: JSString = "ariaOwnsElements" + @usableFromInline static let `ariaPlaceholder`: JSString = "ariaPlaceholder" + @usableFromInline static let `ariaPosInSet`: JSString = "ariaPosInSet" + @usableFromInline static let `ariaPressed`: JSString = "ariaPressed" + @usableFromInline static let `ariaReadOnly`: JSString = "ariaReadOnly" + @usableFromInline static let `ariaRelevant`: JSString = "ariaRelevant" + @usableFromInline static let `ariaRequired`: JSString = "ariaRequired" + @usableFromInline static let `ariaRoleDescription`: JSString = "ariaRoleDescription" + @usableFromInline static let `ariaRowCount`: JSString = "ariaRowCount" + @usableFromInline static let `ariaRowIndex`: JSString = "ariaRowIndex" + @usableFromInline static let `ariaRowIndexText`: JSString = "ariaRowIndexText" + @usableFromInline static let `ariaRowSpan`: JSString = "ariaRowSpan" + @usableFromInline static let `ariaSelected`: JSString = "ariaSelected" + @usableFromInline static let `ariaSetSize`: JSString = "ariaSetSize" + @usableFromInline static let `ariaSort`: JSString = "ariaSort" + @usableFromInline static let `ariaValueMax`: JSString = "ariaValueMax" + @usableFromInline static let `ariaValueMin`: JSString = "ariaValueMin" + @usableFromInline static let `ariaValueNow`: JSString = "ariaValueNow" + @usableFromInline static let `ariaValueText`: JSString = "ariaValueText" + @usableFromInline static let `arrayBuffer`: JSString = "arrayBuffer" @usableFromInline static let `as`: JSString = "as" - @usableFromInline static let aspectRatio: JSString = "aspectRatio" - @usableFromInline static let assign: JSString = "assign" - @usableFromInline static let assignedElements: JSString = "assignedElements" - @usableFromInline static let assignedNodes: JSString = "assignedNodes" - @usableFromInline static let assignedSlot: JSString = "assignedSlot" - @usableFromInline static let async: JSString = "async" - @usableFromInline static let atob: JSString = "atob" - @usableFromInline static let attachInternals: JSString = "attachInternals" - @usableFromInline static let attachShadow: JSString = "attachShadow" - @usableFromInline static let attrChange: JSString = "attrChange" - @usableFromInline static let attrName: JSString = "attrName" - @usableFromInline static let attributeFilter: JSString = "attributeFilter" - @usableFromInline static let attributeName: JSString = "attributeName" - @usableFromInline static let attributeNamespace: JSString = "attributeNamespace" - @usableFromInline static let attributeOldValue: JSString = "attributeOldValue" - @usableFromInline static let attributes: JSString = "attributes" - @usableFromInline static let audio: JSString = "audio" - @usableFromInline static let audioBitrateMode: JSString = "audioBitrateMode" - @usableFromInline static let audioBitsPerSecond: JSString = "audioBitsPerSecond" - @usableFromInline static let audioTracks: JSString = "audioTracks" - @usableFromInline static let autoAllocateChunkSize: JSString = "autoAllocateChunkSize" - @usableFromInline static let autoGainControl: JSString = "autoGainControl" - @usableFromInline static let autocapitalize: JSString = "autocapitalize" - @usableFromInline static let autocomplete: JSString = "autocomplete" - @usableFromInline static let autofocus: JSString = "autofocus" - @usableFromInline static let autoplay: JSString = "autoplay" - @usableFromInline static let availHeight: JSString = "availHeight" - @usableFromInline static let availWidth: JSString = "availWidth" - @usableFromInline static let axis: JSString = "axis" - @usableFromInline static let azimuthAngle: JSString = "azimuthAngle" - @usableFromInline static let b: JSString = "b" - @usableFromInline static let back: JSString = "back" - @usableFromInline static let background: JSString = "background" - @usableFromInline static let badInput: JSString = "badInput" - @usableFromInline static let baseURI: JSString = "baseURI" - @usableFromInline static let before: JSString = "before" - @usableFromInline static let beginPath: JSString = "beginPath" - @usableFromInline static let behavior: JSString = "behavior" - @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo" - @usableFromInline static let bgColor: JSString = "bgColor" - @usableFromInline static let bitrate: JSString = "bitrate" - @usableFromInline static let bitrateMode: JSString = "bitrateMode" - @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond" - @usableFromInline static let blob: JSString = "blob" - @usableFromInline static let block: JSString = "block" - @usableFromInline static let blocking: JSString = "blocking" - @usableFromInline static let blur: JSString = "blur" - @usableFromInline static let body: JSString = "body" - @usableFromInline static let bodyUsed: JSString = "bodyUsed" - @usableFromInline static let booleanValue: JSString = "booleanValue" - @usableFromInline static let border: JSString = "border" - @usableFromInline static let bottom: JSString = "bottom" - @usableFromInline static let box: JSString = "box" - @usableFromInline static let btoa: JSString = "btoa" - @usableFromInline static let bubbles: JSString = "bubbles" - @usableFromInline static let buffered: JSString = "buffered" - @usableFromInline static let button: JSString = "button" - @usableFromInline static let buttons: JSString = "buttons" - @usableFromInline static let byobRequest: JSString = "byobRequest" - @usableFromInline static let byteLength: JSString = "byteLength" - @usableFromInline static let c: JSString = "c" - @usableFromInline static let cache: JSString = "cache" - @usableFromInline static let cacheName: JSString = "cacheName" - @usableFromInline static let caches: JSString = "caches" - @usableFromInline static let canConstructInDedicatedWorker: JSString = "canConstructInDedicatedWorker" - @usableFromInline static let canGoBack: JSString = "canGoBack" - @usableFromInline static let canGoForward: JSString = "canGoForward" - @usableFromInline static let canIntercept: JSString = "canIntercept" - @usableFromInline static let canPlayType: JSString = "canPlayType" - @usableFromInline static let cancel: JSString = "cancel" - @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame" - @usableFromInline static let cancelBubble: JSString = "cancelBubble" - @usableFromInline static let cancelable: JSString = "cancelable" - @usableFromInline static let canvas: JSString = "canvas" - @usableFromInline static let caption: JSString = "caption" - @usableFromInline static let capture: JSString = "capture" - @usableFromInline static let captureEvents: JSString = "captureEvents" - @usableFromInline static let caretPositionFromPoint: JSString = "caretPositionFromPoint" - @usableFromInline static let cellIndex: JSString = "cellIndex" - @usableFromInline static let cellPadding: JSString = "cellPadding" - @usableFromInline static let cellSpacing: JSString = "cellSpacing" - @usableFromInline static let cells: JSString = "cells" - @usableFromInline static let ch: JSString = "ch" - @usableFromInline static let chOff: JSString = "chOff" - @usableFromInline static let changeType: JSString = "changeType" - @usableFromInline static let changedTouches: JSString = "changedTouches" - @usableFromInline static let channelCount: JSString = "channelCount" - @usableFromInline static let charCode: JSString = "charCode" - @usableFromInline static let characterData: JSString = "characterData" - @usableFromInline static let characterDataOldValue: JSString = "characterDataOldValue" - @usableFromInline static let characterSet: JSString = "characterSet" - @usableFromInline static let charset: JSString = "charset" - @usableFromInline static let checkOpacity: JSString = "checkOpacity" - @usableFromInline static let checkValidity: JSString = "checkValidity" - @usableFromInline static let checkVisibility: JSString = "checkVisibility" - @usableFromInline static let checkVisibilityCSS: JSString = "checkVisibilityCSS" - @usableFromInline static let checked: JSString = "checked" - @usableFromInline static let childElementCount: JSString = "childElementCount" - @usableFromInline static let childList: JSString = "childList" - @usableFromInline static let childNodes: JSString = "childNodes" - @usableFromInline static let children: JSString = "children" - @usableFromInline static let cite: JSString = "cite" - @usableFromInline static let classList: JSString = "classList" - @usableFromInline static let className: JSString = "className" - @usableFromInline static let clear: JSString = "clear" - @usableFromInline static let clearData: JSString = "clearData" - @usableFromInline static let clearInterval: JSString = "clearInterval" - @usableFromInline static let clearLiveSeekableRange: JSString = "clearLiveSeekableRange" - @usableFromInline static let clearParameters: JSString = "clearParameters" - @usableFromInline static let clearRect: JSString = "clearRect" - @usableFromInline static let clearTimeout: JSString = "clearTimeout" - @usableFromInline static let click: JSString = "click" - @usableFromInline static let clientHeight: JSString = "clientHeight" - @usableFromInline static let clientId: JSString = "clientId" - @usableFromInline static let clientInformation: JSString = "clientInformation" - @usableFromInline static let clientLeft: JSString = "clientLeft" - @usableFromInline static let clientTop: JSString = "clientTop" - @usableFromInline static let clientWidth: JSString = "clientWidth" - @usableFromInline static let clientX: JSString = "clientX" - @usableFromInline static let clientY: JSString = "clientY" - @usableFromInline static let clip: JSString = "clip" - @usableFromInline static let clone: JSString = "clone" - @usableFromInline static let cloneContents: JSString = "cloneContents" - @usableFromInline static let cloneNode: JSString = "cloneNode" - @usableFromInline static let cloneRange: JSString = "cloneRange" - @usableFromInline static let close: JSString = "close" - @usableFromInline static let closePath: JSString = "closePath" - @usableFromInline static let closed: JSString = "closed" - @usableFromInline static let closest: JSString = "closest" - @usableFromInline static let code: JSString = "code" - @usableFromInline static let codeBase: JSString = "codeBase" - @usableFromInline static let codeType: JSString = "codeType" - @usableFromInline static let codec: JSString = "codec" - @usableFromInline static let codedHeight: JSString = "codedHeight" - @usableFromInline static let codedRect: JSString = "codedRect" - @usableFromInline static let codedWidth: JSString = "codedWidth" - @usableFromInline static let colSpan: JSString = "colSpan" - @usableFromInline static let collapse: JSString = "collapse" - @usableFromInline static let collapsed: JSString = "collapsed" - @usableFromInline static let colno: JSString = "colno" - @usableFromInline static let color: JSString = "color" - @usableFromInline static let colorDepth: JSString = "colorDepth" - @usableFromInline static let colorSpace: JSString = "colorSpace" - @usableFromInline static let colorSpaceConversion: JSString = "colorSpaceConversion" - @usableFromInline static let cols: JSString = "cols" - @usableFromInline static let commit: JSString = "commit" - @usableFromInline static let committed: JSString = "committed" - @usableFromInline static let commonAncestorContainer: JSString = "commonAncestorContainer" - @usableFromInline static let compact: JSString = "compact" - @usableFromInline static let compareBoundaryPoints: JSString = "compareBoundaryPoints" - @usableFromInline static let compareDocumentPosition: JSString = "compareDocumentPosition" - @usableFromInline static let comparePoint: JSString = "comparePoint" - @usableFromInline static let compatMode: JSString = "compatMode" - @usableFromInline static let complete: JSString = "complete" - @usableFromInline static let completeFramesOnly: JSString = "completeFramesOnly" - @usableFromInline static let completed: JSString = "completed" - @usableFromInline static let composed: JSString = "composed" - @usableFromInline static let composedPath: JSString = "composedPath" - @usableFromInline static let config: JSString = "config" - @usableFromInline static let configure: JSString = "configure" - @usableFromInline static let confirm: JSString = "confirm" - @usableFromInline static let constraint: JSString = "constraint" - @usableFromInline static let contains: JSString = "contains" - @usableFromInline static let content: JSString = "content" - @usableFromInline static let contentDocument: JSString = "contentDocument" - @usableFromInline static let contentEditable: JSString = "contentEditable" - @usableFromInline static let contentType: JSString = "contentType" - @usableFromInline static let contentWindow: JSString = "contentWindow" - @usableFromInline static let control: JSString = "control" - @usableFromInline static let controller: JSString = "controller" - @usableFromInline static let controls: JSString = "controls" - @usableFromInline static let convertPointFromNode: JSString = "convertPointFromNode" - @usableFromInline static let convertQuadFromNode: JSString = "convertQuadFromNode" - @usableFromInline static let convertRectFromNode: JSString = "convertRectFromNode" - @usableFromInline static let convertToBlob: JSString = "convertToBlob" - @usableFromInline static let cookie: JSString = "cookie" - @usableFromInline static let cookieEnabled: JSString = "cookieEnabled" - @usableFromInline static let coords: JSString = "coords" - @usableFromInline static let copyTo: JSString = "copyTo" - @usableFromInline static let createAttribute: JSString = "createAttribute" - @usableFromInline static let createAttributeNS: JSString = "createAttributeNS" - @usableFromInline static let createCDATASection: JSString = "createCDATASection" - @usableFromInline static let createCaption: JSString = "createCaption" - @usableFromInline static let createComment: JSString = "createComment" - @usableFromInline static let createConicGradient: JSString = "createConicGradient" - @usableFromInline static let createDocument: JSString = "createDocument" - @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment" - @usableFromInline static let createDocumentType: JSString = "createDocumentType" - @usableFromInline static let createElement: JSString = "createElement" - @usableFromInline static let createElementNS: JSString = "createElementNS" - @usableFromInline static let createEvent: JSString = "createEvent" - @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument" - @usableFromInline static let createImageBitmap: JSString = "createImageBitmap" - @usableFromInline static let createImageData: JSString = "createImageData" - @usableFromInline static let createLinearGradient: JSString = "createLinearGradient" - @usableFromInline static let createObjectURL: JSString = "createObjectURL" - @usableFromInline static let createPattern: JSString = "createPattern" - @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction" - @usableFromInline static let createRadialGradient: JSString = "createRadialGradient" - @usableFromInline static let createRange: JSString = "createRange" - @usableFromInline static let createTBody: JSString = "createTBody" - @usableFromInline static let createTFoot: JSString = "createTFoot" - @usableFromInline static let createTHead: JSString = "createTHead" - @usableFromInline static let createTextNode: JSString = "createTextNode" - @usableFromInline static let credentials: JSString = "credentials" - @usableFromInline static let crossOrigin: JSString = "crossOrigin" - @usableFromInline static let crossOriginIsolated: JSString = "crossOriginIsolated" - @usableFromInline static let ctrlKey: JSString = "ctrlKey" - @usableFromInline static let cues: JSString = "cues" - @usableFromInline static let currentEntry: JSString = "currentEntry" - @usableFromInline static let currentNode: JSString = "currentNode" - @usableFromInline static let currentScript: JSString = "currentScript" - @usableFromInline static let currentSrc: JSString = "currentSrc" - @usableFromInline static let currentTarget: JSString = "currentTarget" - @usableFromInline static let currentTime: JSString = "currentTime" - @usableFromInline static let customElements: JSString = "customElements" - @usableFromInline static let customError: JSString = "customError" - @usableFromInline static let d: JSString = "d" - @usableFromInline static let data: JSString = "data" - @usableFromInline static let dataTransfer: JSString = "dataTransfer" - @usableFromInline static let dataset: JSString = "dataset" - @usableFromInline static let dateTime: JSString = "dateTime" - @usableFromInline static let declare: JSString = "declare" - @usableFromInline static let decode: JSString = "decode" - @usableFromInline static let decodeQueueSize: JSString = "decodeQueueSize" - @usableFromInline static let decoderConfig: JSString = "decoderConfig" - @usableFromInline static let decoding: JSString = "decoding" + @usableFromInline static let `aspectRatio`: JSString = "aspectRatio" + @usableFromInline static let `assign`: JSString = "assign" + @usableFromInline static let `assignedElements`: JSString = "assignedElements" + @usableFromInline static let `assignedNodes`: JSString = "assignedNodes" + @usableFromInline static let `assignedSlot`: JSString = "assignedSlot" + @usableFromInline static let `async`: JSString = "async" + @usableFromInline static let `atob`: JSString = "atob" + @usableFromInline static let `attachInternals`: JSString = "attachInternals" + @usableFromInline static let `attachShadow`: JSString = "attachShadow" + @usableFromInline static let `attributeFilter`: JSString = "attributeFilter" + @usableFromInline static let `attributeName`: JSString = "attributeName" + @usableFromInline static let `attributeNamespace`: JSString = "attributeNamespace" + @usableFromInline static let `attributeOldValue`: JSString = "attributeOldValue" + @usableFromInline static let `attributes`: JSString = "attributes" + @usableFromInline static let `audio`: JSString = "audio" + @usableFromInline static let `audioBitrateMode`: JSString = "audioBitrateMode" + @usableFromInline static let `audioBitsPerSecond`: JSString = "audioBitsPerSecond" + @usableFromInline static let `audioTracks`: JSString = "audioTracks" + @usableFromInline static let `autoAllocateChunkSize`: JSString = "autoAllocateChunkSize" + @usableFromInline static let `autoGainControl`: JSString = "autoGainControl" + @usableFromInline static let `autocapitalize`: JSString = "autocapitalize" + @usableFromInline static let `autocomplete`: JSString = "autocomplete" + @usableFromInline static let `autocorrect`: JSString = "autocorrect" + @usableFromInline static let `autofocus`: JSString = "autofocus" + @usableFromInline static let `autoplay`: JSString = "autoplay" + @usableFromInline static let `availHeight`: JSString = "availHeight" + @usableFromInline static let `availWidth`: JSString = "availWidth" + @usableFromInline static let `axis`: JSString = "axis" + @usableFromInline static let `azimuthAngle`: JSString = "azimuthAngle" + @usableFromInline static let `b`: JSString = "b" + @usableFromInline static let `back`: JSString = "back" + @usableFromInline static let `background`: JSString = "background" + @usableFromInline static let `backgroundBlur`: JSString = "backgroundBlur" + @usableFromInline static let `badInput`: JSString = "badInput" + @usableFromInline static let `baseURI`: JSString = "baseURI" + @usableFromInline static let `baseURL`: JSString = "baseURL" + @usableFromInline static let `before`: JSString = "before" + @usableFromInline static let `beginPath`: JSString = "beginPath" + @usableFromInline static let `behavior`: JSString = "behavior" + @usableFromInline static let `bezierCurveTo`: JSString = "bezierCurveTo" + @usableFromInline static let `bgColor`: JSString = "bgColor" + @usableFromInline static let `bitrate`: JSString = "bitrate" + @usableFromInline static let `bitrateMode`: JSString = "bitrateMode" + @usableFromInline static let `bitsPerSecond`: JSString = "bitsPerSecond" + @usableFromInline static let `blob`: JSString = "blob" + @usableFromInline static let `block`: JSString = "block" + @usableFromInline static let `blocking`: JSString = "blocking" + @usableFromInline static let `blur`: JSString = "blur" + @usableFromInline static let `body`: JSString = "body" + @usableFromInline static let `bodyUsed`: JSString = "bodyUsed" + @usableFromInline static let `booleanValue`: JSString = "booleanValue" + @usableFromInline static let `border`: JSString = "border" + @usableFromInline static let `bottom`: JSString = "bottom" + @usableFromInline static let `box`: JSString = "box" + @usableFromInline static let `btoa`: JSString = "btoa" + @usableFromInline static let `bubbles`: JSString = "bubbles" + @usableFromInline static let `buffered`: JSString = "buffered" + @usableFromInline static let `button`: JSString = "button" + @usableFromInline static let `buttons`: JSString = "buttons" + @usableFromInline static let `byobRequest`: JSString = "byobRequest" + @usableFromInline static let `byteLength`: JSString = "byteLength" + @usableFromInline static let `bytes`: JSString = "bytes" + @usableFromInline static let `c`: JSString = "c" + @usableFromInline static let `cache`: JSString = "cache" + @usableFromInline static let `cacheName`: JSString = "cacheName" + @usableFromInline static let `caches`: JSString = "caches" + @usableFromInline static let `canConstructInDedicatedWorker`: JSString = "canConstructInDedicatedWorker" + @usableFromInline static let `canGoBack`: JSString = "canGoBack" + @usableFromInline static let `canGoForward`: JSString = "canGoForward" + @usableFromInline static let `canIntercept`: JSString = "canIntercept" + @usableFromInline static let `canPlayType`: JSString = "canPlayType" + @usableFromInline static let `cancel`: JSString = "cancel" + @usableFromInline static let `cancelAnimationFrame`: JSString = "cancelAnimationFrame" + @usableFromInline static let `cancelBubble`: JSString = "cancelBubble" + @usableFromInline static let `cancelable`: JSString = "cancelable" + @usableFromInline static let `canvas`: JSString = "canvas" + @usableFromInline static let `caption`: JSString = "caption" + @usableFromInline static let `capture`: JSString = "capture" + @usableFromInline static let `captureEvents`: JSString = "captureEvents" + @usableFromInline static let `caretPositionFromPoint`: JSString = "caretPositionFromPoint" + @usableFromInline static let `cellIndex`: JSString = "cellIndex" + @usableFromInline static let `cellPadding`: JSString = "cellPadding" + @usableFromInline static let `cellSpacing`: JSString = "cellSpacing" + @usableFromInline static let `cells`: JSString = "cells" + @usableFromInline static let `ch`: JSString = "ch" + @usableFromInline static let `chOff`: JSString = "chOff" + @usableFromInline static let `changeType`: JSString = "changeType" + @usableFromInline static let `changedTouches`: JSString = "changedTouches" + @usableFromInline static let `channelCount`: JSString = "channelCount" + @usableFromInline static let `charCode`: JSString = "charCode" + @usableFromInline static let `characterData`: JSString = "characterData" + @usableFromInline static let `characterDataOldValue`: JSString = "characterDataOldValue" + @usableFromInline static let `characterSet`: JSString = "characterSet" + @usableFromInline static let `charset`: JSString = "charset" + @usableFromInline static let `checkOpacity`: JSString = "checkOpacity" + @usableFromInline static let `checkValidity`: JSString = "checkValidity" + @usableFromInline static let `checkVisibility`: JSString = "checkVisibility" + @usableFromInline static let `checkVisibilityCSS`: JSString = "checkVisibilityCSS" + @usableFromInline static let `checked`: JSString = "checked" + @usableFromInline static let `childElementCount`: JSString = "childElementCount" + @usableFromInline static let `childList`: JSString = "childList" + @usableFromInline static let `childNodes`: JSString = "childNodes" + @usableFromInline static let `children`: JSString = "children" + @usableFromInline static let `cite`: JSString = "cite" + @usableFromInline static let `classList`: JSString = "classList" + @usableFromInline static let `className`: JSString = "className" + @usableFromInline static let `clear`: JSString = "clear" + @usableFromInline static let `clearData`: JSString = "clearData" + @usableFromInline static let `clearInterval`: JSString = "clearInterval" + @usableFromInline static let `clearLiveSeekableRange`: JSString = "clearLiveSeekableRange" + @usableFromInline static let `clearParameters`: JSString = "clearParameters" + @usableFromInline static let `clearRect`: JSString = "clearRect" + @usableFromInline static let `clearTimeout`: JSString = "clearTimeout" + @usableFromInline static let `click`: JSString = "click" + @usableFromInline static let `clientHeight`: JSString = "clientHeight" + @usableFromInline static let `clientId`: JSString = "clientId" + @usableFromInline static let `clientInformation`: JSString = "clientInformation" + @usableFromInline static let `clientLeft`: JSString = "clientLeft" + @usableFromInline static let `clientTop`: JSString = "clientTop" + @usableFromInline static let `clientWidth`: JSString = "clientWidth" + @usableFromInline static let `clientX`: JSString = "clientX" + @usableFromInline static let `clientY`: JSString = "clientY" + @usableFromInline static let `clip`: JSString = "clip" + @usableFromInline static let `clonable`: JSString = "clonable" + @usableFromInline static let `clone`: JSString = "clone" + @usableFromInline static let `cloneContents`: JSString = "cloneContents" + @usableFromInline static let `cloneNode`: JSString = "cloneNode" + @usableFromInline static let `cloneRange`: JSString = "cloneRange" + @usableFromInline static let `close`: JSString = "close" + @usableFromInline static let `closePath`: JSString = "closePath" + @usableFromInline static let `closed`: JSString = "closed" + @usableFromInline static let `closedBy`: JSString = "closedBy" + @usableFromInline static let `closest`: JSString = "closest" + @usableFromInline static let `code`: JSString = "code" + @usableFromInline static let `codeBase`: JSString = "codeBase" + @usableFromInline static let `codeType`: JSString = "codeType" + @usableFromInline static let `codec`: JSString = "codec" + @usableFromInline static let `codedHeight`: JSString = "codedHeight" + @usableFromInline static let `codedRect`: JSString = "codedRect" + @usableFromInline static let `codedWidth`: JSString = "codedWidth" + @usableFromInline static let `colSpan`: JSString = "colSpan" + @usableFromInline static let `collapse`: JSString = "collapse" + @usableFromInline static let `collapsed`: JSString = "collapsed" + @usableFromInline static let `colno`: JSString = "colno" + @usableFromInline static let `color`: JSString = "color" + @usableFromInline static let `colorDepth`: JSString = "colorDepth" + @usableFromInline static let `colorSpace`: JSString = "colorSpace" + @usableFromInline static let `colorSpaceConversion`: JSString = "colorSpaceConversion" + @usableFromInline static let `colorType`: JSString = "colorType" + @usableFromInline static let `cols`: JSString = "cols" + @usableFromInline static let `command`: JSString = "command" + @usableFromInline static let `commandForElement`: JSString = "commandForElement" + @usableFromInline static let `committed`: JSString = "committed" + @usableFromInline static let `commonAncestorContainer`: JSString = "commonAncestorContainer" + @usableFromInline static let `compact`: JSString = "compact" + @usableFromInline static let `compareBoundaryPoints`: JSString = "compareBoundaryPoints" + @usableFromInline static let `compareDocumentPosition`: JSString = "compareDocumentPosition" + @usableFromInline static let `comparePoint`: JSString = "comparePoint" + @usableFromInline static let `compatMode`: JSString = "compatMode" + @usableFromInline static let `complete`: JSString = "complete" + @usableFromInline static let `completeFramesOnly`: JSString = "completeFramesOnly" + @usableFromInline static let `completed`: JSString = "completed" + @usableFromInline static let `composed`: JSString = "composed" + @usableFromInline static let `composedPath`: JSString = "composedPath" + @usableFromInline static let `condition`: JSString = "condition" + @usableFromInline static let `config`: JSString = "config" + @usableFromInline static let `configure`: JSString = "configure" + @usableFromInline static let `confirm`: JSString = "confirm" + @usableFromInline static let `constraint`: JSString = "constraint" + @usableFromInline static let `container`: JSString = "container" + @usableFromInline static let `contains`: JSString = "contains" + @usableFromInline static let `content`: JSString = "content" + @usableFromInline static let `contentDocument`: JSString = "contentDocument" + @usableFromInline static let `contentEditable`: JSString = "contentEditable" + @usableFromInline static let `contentHint`: JSString = "contentHint" + @usableFromInline static let `contentType`: JSString = "contentType" + @usableFromInline static let `contentVisibilityAuto`: JSString = "contentVisibilityAuto" + @usableFromInline static let `contentWindow`: JSString = "contentWindow" + @usableFromInline static let `control`: JSString = "control" + @usableFromInline static let `controller`: JSString = "controller" + @usableFromInline static let `controls`: JSString = "controls" + @usableFromInline static let `convertPointFromNode`: JSString = "convertPointFromNode" + @usableFromInline static let `convertQuadFromNode`: JSString = "convertQuadFromNode" + @usableFromInline static let `convertRectFromNode`: JSString = "convertRectFromNode" + @usableFromInline static let `convertToBlob`: JSString = "convertToBlob" + @usableFromInline static let `cookie`: JSString = "cookie" + @usableFromInline static let `cookieEnabled`: JSString = "cookieEnabled" + @usableFromInline static let `coords`: JSString = "coords" + @usableFromInline static let `copyTo`: JSString = "copyTo" + @usableFromInline static let `createAttribute`: JSString = "createAttribute" + @usableFromInline static let `createAttributeNS`: JSString = "createAttributeNS" + @usableFromInline static let `createCDATASection`: JSString = "createCDATASection" + @usableFromInline static let `createCaption`: JSString = "createCaption" + @usableFromInline static let `createComment`: JSString = "createComment" + @usableFromInline static let `createConicGradient`: JSString = "createConicGradient" + @usableFromInline static let `createContextualFragment`: JSString = "createContextualFragment" + @usableFromInline static let `createDocument`: JSString = "createDocument" + @usableFromInline static let `createDocumentFragment`: JSString = "createDocumentFragment" + @usableFromInline static let `createDocumentType`: JSString = "createDocumentType" + @usableFromInline static let `createElement`: JSString = "createElement" + @usableFromInline static let `createElementNS`: JSString = "createElementNS" + @usableFromInline static let `createEvent`: JSString = "createEvent" + @usableFromInline static let `createHTML`: JSString = "createHTML" + @usableFromInline static let `createHTMLDocument`: JSString = "createHTMLDocument" + @usableFromInline static let `createImageBitmap`: JSString = "createImageBitmap" + @usableFromInline static let `createImageData`: JSString = "createImageData" + @usableFromInline static let `createLinearGradient`: JSString = "createLinearGradient" + @usableFromInline static let `createObjectURL`: JSString = "createObjectURL" + @usableFromInline static let `createPattern`: JSString = "createPattern" + @usableFromInline static let `createProcessingInstruction`: JSString = "createProcessingInstruction" + @usableFromInline static let `createRadialGradient`: JSString = "createRadialGradient" + @usableFromInline static let `createRange`: JSString = "createRange" + @usableFromInline static let `createScript`: JSString = "createScript" + @usableFromInline static let `createScriptURL`: JSString = "createScriptURL" + @usableFromInline static let `createTBody`: JSString = "createTBody" + @usableFromInline static let `createTFoot`: JSString = "createTFoot" + @usableFromInline static let `createTHead`: JSString = "createTHead" + @usableFromInline static let `createTextNode`: JSString = "createTextNode" + @usableFromInline static let `credentials`: JSString = "credentials" + @usableFromInline static let `crossOrigin`: JSString = "crossOrigin" + @usableFromInline static let `crossOriginIsolated`: JSString = "crossOriginIsolated" + @usableFromInline static let `ctrlKey`: JSString = "ctrlKey" + @usableFromInline static let `cues`: JSString = "cues" + @usableFromInline static let `currentCSSZoom`: JSString = "currentCSSZoom" + @usableFromInline static let `currentEntry`: JSString = "currentEntry" + @usableFromInline static let `currentNode`: JSString = "currentNode" + @usableFromInline static let `currentScript`: JSString = "currentScript" + @usableFromInline static let `currentSrc`: JSString = "currentSrc" + @usableFromInline static let `currentTarget`: JSString = "currentTarget" + @usableFromInline static let `currentTime`: JSString = "currentTime" + @usableFromInline static let `customElements`: JSString = "customElements" + @usableFromInline static let `customError`: JSString = "customError" + @usableFromInline static let `d`: JSString = "d" + @usableFromInline static let `data`: JSString = "data" + @usableFromInline static let `dataTransfer`: JSString = "dataTransfer" + @usableFromInline static let `dataset`: JSString = "dataset" + @usableFromInline static let `dateTime`: JSString = "dateTime" + @usableFromInline static let `declare`: JSString = "declare" + @usableFromInline static let `decode`: JSString = "decode" + @usableFromInline static let `decodeQueueSize`: JSString = "decodeQueueSize" + @usableFromInline static let `decoderConfig`: JSString = "decoderConfig" + @usableFromInline static let `decoding`: JSString = "decoding" @usableFromInline static let `default`: JSString = "default" - @usableFromInline static let defaultChecked: JSString = "defaultChecked" - @usableFromInline static let defaultMuted: JSString = "defaultMuted" - @usableFromInline static let defaultPlaybackRate: JSString = "defaultPlaybackRate" - @usableFromInline static let defaultPrevented: JSString = "defaultPrevented" - @usableFromInline static let defaultSelected: JSString = "defaultSelected" - @usableFromInline static let defaultValue: JSString = "defaultValue" - @usableFromInline static let defaultView: JSString = "defaultView" + @usableFromInline static let `defaultChecked`: JSString = "defaultChecked" + @usableFromInline static let `defaultMuted`: JSString = "defaultMuted" + @usableFromInline static let `defaultPlaybackRate`: JSString = "defaultPlaybackRate" + @usableFromInline static let `defaultPolicy`: JSString = "defaultPolicy" + @usableFromInline static let `defaultPrevented`: JSString = "defaultPrevented" + @usableFromInline static let `defaultSelected`: JSString = "defaultSelected" + @usableFromInline static let `defaultValue`: JSString = "defaultValue" + @usableFromInline static let `defaultView`: JSString = "defaultView" @usableFromInline static let `defer`: JSString = "defer" - @usableFromInline static let define: JSString = "define" - @usableFromInline static let delegatesFocus: JSString = "delegatesFocus" - @usableFromInline static let delete: JSString = "delete" - @usableFromInline static let deleteCaption: JSString = "deleteCaption" - @usableFromInline static let deleteCell: JSString = "deleteCell" - @usableFromInline static let deleteContents: JSString = "deleteContents" - @usableFromInline static let deleteData: JSString = "deleteData" - @usableFromInline static let deleteRow: JSString = "deleteRow" - @usableFromInline static let deleteTFoot: JSString = "deleteTFoot" - @usableFromInline static let deleteTHead: JSString = "deleteTHead" - @usableFromInline static let deltaMode: JSString = "deltaMode" - @usableFromInline static let deltaX: JSString = "deltaX" - @usableFromInline static let deltaY: JSString = "deltaY" - @usableFromInline static let deltaZ: JSString = "deltaZ" - @usableFromInline static let description: JSString = "description" - @usableFromInline static let descriptor: JSString = "descriptor" - @usableFromInline static let designMode: JSString = "designMode" - @usableFromInline static let desiredHeight: JSString = "desiredHeight" - @usableFromInline static let desiredSize: JSString = "desiredSize" - @usableFromInline static let desiredWidth: JSString = "desiredWidth" - @usableFromInline static let destination: JSString = "destination" - @usableFromInline static let desynchronized: JSString = "desynchronized" - @usableFromInline static let detach: JSString = "detach" - @usableFromInline static let detail: JSString = "detail" - @usableFromInline static let deviceId: JSString = "deviceId" - @usableFromInline static let devicePixelRatio: JSString = "devicePixelRatio" - @usableFromInline static let dir: JSString = "dir" - @usableFromInline static let dirName: JSString = "dirName" - @usableFromInline static let direction: JSString = "direction" - @usableFromInline static let disable: JSString = "disable" - @usableFromInline static let disabled: JSString = "disabled" - @usableFromInline static let disconnect: JSString = "disconnect" - @usableFromInline static let dispatchEvent: JSString = "dispatchEvent" - @usableFromInline static let displayAspectHeight: JSString = "displayAspectHeight" - @usableFromInline static let displayAspectWidth: JSString = "displayAspectWidth" - @usableFromInline static let displayHeight: JSString = "displayHeight" - @usableFromInline static let displayWidth: JSString = "displayWidth" - @usableFromInline static let doctype: JSString = "doctype" - @usableFromInline static let document: JSString = "document" - @usableFromInline static let documentElement: JSString = "documentElement" - @usableFromInline static let documentURI: JSString = "documentURI" - @usableFromInline static let domain: JSString = "domain" - @usableFromInline static let done: JSString = "done" - @usableFromInline static let download: JSString = "download" - @usableFromInline static let downloadRequest: JSString = "downloadRequest" - @usableFromInline static let draggable: JSString = "draggable" - @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded" - @usableFromInline static let drawImage: JSString = "drawImage" - @usableFromInline static let dropEffect: JSString = "dropEffect" - @usableFromInline static let droppedEntriesCount: JSString = "droppedEntriesCount" - @usableFromInline static let duplex: JSString = "duplex" - @usableFromInline static let duration: JSString = "duration" - @usableFromInline static let e: JSString = "e" - @usableFromInline static let echoCancellation: JSString = "echoCancellation" - @usableFromInline static let effectAllowed: JSString = "effectAllowed" - @usableFromInline static let element: JSString = "element" - @usableFromInline static let elementFromPoint: JSString = "elementFromPoint" - @usableFromInline static let elements: JSString = "elements" - @usableFromInline static let elementsFromPoint: JSString = "elementsFromPoint" - @usableFromInline static let ellipse: JSString = "ellipse" - @usableFromInline static let emHeightAscent: JSString = "emHeightAscent" - @usableFromInline static let emHeightDescent: JSString = "emHeightDescent" - @usableFromInline static let embeds: JSString = "embeds" - @usableFromInline static let enable: JSString = "enable" - @usableFromInline static let enabled: JSString = "enabled" - @usableFromInline static let enabledPlugin: JSString = "enabledPlugin" - @usableFromInline static let encode: JSString = "encode" - @usableFromInline static let encodeQueueSize: JSString = "encodeQueueSize" - @usableFromInline static let encoding: JSString = "encoding" - @usableFromInline static let enctype: JSString = "enctype" - @usableFromInline static let end: JSString = "end" - @usableFromInline static let endContainer: JSString = "endContainer" - @usableFromInline static let endOfStream: JSString = "endOfStream" - @usableFromInline static let endOffset: JSString = "endOffset" - @usableFromInline static let endTime: JSString = "endTime" - @usableFromInline static let ended: JSString = "ended" - @usableFromInline static let endings: JSString = "endings" - @usableFromInline static let enqueue: JSString = "enqueue" - @usableFromInline static let enterKeyHint: JSString = "enterKeyHint" - @usableFromInline static let entries: JSString = "entries" - @usableFromInline static let entryType: JSString = "entryType" - @usableFromInline static let entryTypes: JSString = "entryTypes" - @usableFromInline static let enumerateDevices: JSString = "enumerateDevices" - @usableFromInline static let error: JSString = "error" - @usableFromInline static let evaluate: JSString = "evaluate" - @usableFromInline static let event: JSString = "event" - @usableFromInline static let eventPhase: JSString = "eventPhase" - @usableFromInline static let exact: JSString = "exact" - @usableFromInline static let execCommand: JSString = "execCommand" - @usableFromInline static let extends: JSString = "extends" - @usableFromInline static let external: JSString = "external" - @usableFromInline static let extractContents: JSString = "extractContents" - @usableFromInline static let f: JSString = "f" - @usableFromInline static let face: JSString = "face" - @usableFromInline static let facingMode: JSString = "facingMode" - @usableFromInline static let fastSeek: JSString = "fastSeek" - @usableFromInline static let fetch: JSString = "fetch" - @usableFromInline static let fetchPriority: JSString = "fetchPriority" - @usableFromInline static let fgColor: JSString = "fgColor" - @usableFromInline static let filename: JSString = "filename" - @usableFromInline static let files: JSString = "files" - @usableFromInline static let fill: JSString = "fill" - @usableFromInline static let fillRect: JSString = "fillRect" - @usableFromInline static let fillStyle: JSString = "fillStyle" - @usableFromInline static let fillText: JSString = "fillText" - @usableFromInline static let filter: JSString = "filter" - @usableFromInline static let finished: JSString = "finished" - @usableFromInline static let firstChild: JSString = "firstChild" - @usableFromInline static let firstElementChild: JSString = "firstElementChild" - @usableFromInline static let flatten: JSString = "flatten" - @usableFromInline static let flipX: JSString = "flipX" - @usableFromInline static let flipY: JSString = "flipY" - @usableFromInline static let flush: JSString = "flush" - @usableFromInline static let focus: JSString = "focus" - @usableFromInline static let focusReset: JSString = "focusReset" - @usableFromInline static let focusVisible: JSString = "focusVisible" - @usableFromInline static let font: JSString = "font" - @usableFromInline static let fontBoundingBoxAscent: JSString = "fontBoundingBoxAscent" - @usableFromInline static let fontBoundingBoxDescent: JSString = "fontBoundingBoxDescent" - @usableFromInline static let fontKerning: JSString = "fontKerning" - @usableFromInline static let fontStretch: JSString = "fontStretch" - @usableFromInline static let fontVariantCaps: JSString = "fontVariantCaps" - @usableFromInline static let force: JSString = "force" - @usableFromInline static let form: JSString = "form" - @usableFromInline static let formAction: JSString = "formAction" - @usableFromInline static let formData: JSString = "formData" - @usableFromInline static let formEnctype: JSString = "formEnctype" - @usableFromInline static let formMethod: JSString = "formMethod" - @usableFromInline static let formNoValidate: JSString = "formNoValidate" - @usableFromInline static let formTarget: JSString = "formTarget" - @usableFromInline static let format: JSString = "format" - @usableFromInline static let forms: JSString = "forms" - @usableFromInline static let forward: JSString = "forward" - @usableFromInline static let frame: JSString = "frame" - @usableFromInline static let frameBorder: JSString = "frameBorder" - @usableFromInline static let frameCount: JSString = "frameCount" - @usableFromInline static let frameElement: JSString = "frameElement" - @usableFromInline static let frameIndex: JSString = "frameIndex" - @usableFromInline static let frameOffset: JSString = "frameOffset" - @usableFromInline static let frameRate: JSString = "frameRate" - @usableFromInline static let framerate: JSString = "framerate" - @usableFromInline static let frames: JSString = "frames" - @usableFromInline static let from: JSString = "from" - @usableFromInline static let fromBox: JSString = "fromBox" - @usableFromInline static let fromFloat32Array: JSString = "fromFloat32Array" - @usableFromInline static let fromFloat64Array: JSString = "fromFloat64Array" - @usableFromInline static let fromMatrix: JSString = "fromMatrix" - @usableFromInline static let fromPoint: JSString = "fromPoint" - @usableFromInline static let fromQuad: JSString = "fromQuad" - @usableFromInline static let fromRect: JSString = "fromRect" - @usableFromInline static let fullRange: JSString = "fullRange" - @usableFromInline static let get: JSString = "get" - @usableFromInline static let getAll: JSString = "getAll" - @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders" - @usableFromInline static let getAsFile: JSString = "getAsFile" - @usableFromInline static let getAsString: JSString = "getAsString" - @usableFromInline static let getAttribute: JSString = "getAttribute" - @usableFromInline static let getAttributeNS: JSString = "getAttributeNS" - @usableFromInline static let getAttributeNames: JSString = "getAttributeNames" - @usableFromInline static let getAttributeNode: JSString = "getAttributeNode" - @usableFromInline static let getAttributeNodeNS: JSString = "getAttributeNodeNS" - @usableFromInline static let getAudioTracks: JSString = "getAudioTracks" - @usableFromInline static let getBoundingClientRect: JSString = "getBoundingClientRect" - @usableFromInline static let getBounds: JSString = "getBounds" - @usableFromInline static let getBoxQuads: JSString = "getBoxQuads" - @usableFromInline static let getCapabilities: JSString = "getCapabilities" - @usableFromInline static let getClientRect: JSString = "getClientRect" - @usableFromInline static let getClientRects: JSString = "getClientRects" - @usableFromInline static let getConstraints: JSString = "getConstraints" - @usableFromInline static let getContextAttributes: JSString = "getContextAttributes" - @usableFromInline static let getCueById: JSString = "getCueById" - @usableFromInline static let getData: JSString = "getData" - @usableFromInline static let getElementById: JSString = "getElementById" - @usableFromInline static let getElementsByClassName: JSString = "getElementsByClassName" - @usableFromInline static let getElementsByName: JSString = "getElementsByName" - @usableFromInline static let getElementsByTagName: JSString = "getElementsByTagName" - @usableFromInline static let getElementsByTagNameNS: JSString = "getElementsByTagNameNS" - @usableFromInline static let getEntries: JSString = "getEntries" - @usableFromInline static let getEntriesByName: JSString = "getEntriesByName" - @usableFromInline static let getEntriesByType: JSString = "getEntriesByType" - @usableFromInline static let getImageData: JSString = "getImageData" - @usableFromInline static let getItem: JSString = "getItem" - @usableFromInline static let getLineDash: JSString = "getLineDash" - @usableFromInline static let getModifierState: JSString = "getModifierState" - @usableFromInline static let getName: JSString = "getName" - @usableFromInline static let getNamedItem: JSString = "getNamedItem" - @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS" - @usableFromInline static let getParameter: JSString = "getParameter" - @usableFromInline static let getReader: JSString = "getReader" - @usableFromInline static let getRegistration: JSString = "getRegistration" - @usableFromInline static let getRegistrations: JSString = "getRegistrations" - @usableFromInline static let getResponseHeader: JSString = "getResponseHeader" - @usableFromInline static let getRootNode: JSString = "getRootNode" - @usableFromInline static let getSVGDocument: JSString = "getSVGDocument" - @usableFromInline static let getSetCookie: JSString = "getSetCookie" - @usableFromInline static let getSettings: JSString = "getSettings" - @usableFromInline static let getStartDate: JSString = "getStartDate" - @usableFromInline static let getState: JSString = "getState" - @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints" - @usableFromInline static let getTrackById: JSString = "getTrackById" - @usableFromInline static let getTracks: JSString = "getTracks" - @usableFromInline static let getTransform: JSString = "getTransform" - @usableFromInline static let getUserMedia: JSString = "getUserMedia" - @usableFromInline static let getVideoTracks: JSString = "getVideoTracks" - @usableFromInline static let getWriter: JSString = "getWriter" - @usableFromInline static let globalAlpha: JSString = "globalAlpha" - @usableFromInline static let globalCompositeOperation: JSString = "globalCompositeOperation" - @usableFromInline static let go: JSString = "go" - @usableFromInline static let groupId: JSString = "groupId" - @usableFromInline static let handle: JSString = "handle" - @usableFromInline static let handled: JSString = "handled" - @usableFromInline static let handler: JSString = "handler" - @usableFromInline static let hangingBaseline: JSString = "hangingBaseline" - @usableFromInline static let hardwareAcceleration: JSString = "hardwareAcceleration" - @usableFromInline static let hardwareConcurrency: JSString = "hardwareConcurrency" - @usableFromInline static let has: JSString = "has" - @usableFromInline static let hasAttribute: JSString = "hasAttribute" - @usableFromInline static let hasAttributeNS: JSString = "hasAttributeNS" - @usableFromInline static let hasAttributes: JSString = "hasAttributes" - @usableFromInline static let hasBeenActive: JSString = "hasBeenActive" - @usableFromInline static let hasChildNodes: JSString = "hasChildNodes" - @usableFromInline static let hasFeature: JSString = "hasFeature" - @usableFromInline static let hasFocus: JSString = "hasFocus" - @usableFromInline static let hash: JSString = "hash" - @usableFromInline static let hashChange: JSString = "hashChange" - @usableFromInline static let head: JSString = "head" - @usableFromInline static let headerValue: JSString = "headerValue" - @usableFromInline static let headers: JSString = "headers" - @usableFromInline static let height: JSString = "height" - @usableFromInline static let hidden: JSString = "hidden" - @usableFromInline static let hidePopover: JSString = "hidePopover" - @usableFromInline static let high: JSString = "high" - @usableFromInline static let highWaterMark: JSString = "highWaterMark" - @usableFromInline static let history: JSString = "history" - @usableFromInline static let host: JSString = "host" - @usableFromInline static let hostname: JSString = "hostname" - @usableFromInline static let href: JSString = "href" - @usableFromInline static let hreflang: JSString = "hreflang" - @usableFromInline static let hspace: JSString = "hspace" - @usableFromInline static let htmlFor: JSString = "htmlFor" - @usableFromInline static let httpEquiv: JSString = "httpEquiv" - @usableFromInline static let id: JSString = "id" - @usableFromInline static let ideal: JSString = "ideal" - @usableFromInline static let identifier: JSString = "identifier" - @usableFromInline static let ideographicBaseline: JSString = "ideographicBaseline" - @usableFromInline static let ignoreMethod: JSString = "ignoreMethod" - @usableFromInline static let ignoreSearch: JSString = "ignoreSearch" - @usableFromInline static let ignoreVary: JSString = "ignoreVary" - @usableFromInline static let image: JSString = "image" - @usableFromInline static let imageOrientation: JSString = "imageOrientation" - @usableFromInline static let imageSizes: JSString = "imageSizes" - @usableFromInline static let imageSmoothingEnabled: JSString = "imageSmoothingEnabled" - @usableFromInline static let imageSmoothingQuality: JSString = "imageSmoothingQuality" - @usableFromInline static let imageSrcset: JSString = "imageSrcset" - @usableFromInline static let images: JSString = "images" - @usableFromInline static let implementation: JSString = "implementation" - @usableFromInline static let importNode: JSString = "importNode" - @usableFromInline static let importStylesheet: JSString = "importStylesheet" - @usableFromInline static let inBandMetadataTrackDispatchType: JSString = "inBandMetadataTrackDispatchType" - @usableFromInline static let includeUncontrolled: JSString = "includeUncontrolled" - @usableFromInline static let indeterminate: JSString = "indeterminate" - @usableFromInline static let index: JSString = "index" - @usableFromInline static let inert: JSString = "inert" - @usableFromInline static let info: JSString = "info" - @usableFromInline static let initCompositionEvent: JSString = "initCompositionEvent" - @usableFromInline static let initCustomEvent: JSString = "initCustomEvent" - @usableFromInline static let initEvent: JSString = "initEvent" - @usableFromInline static let initKeyboardEvent: JSString = "initKeyboardEvent" - @usableFromInline static let initMessageEvent: JSString = "initMessageEvent" - @usableFromInline static let initMouseEvent: JSString = "initMouseEvent" - @usableFromInline static let initMutationEvent: JSString = "initMutationEvent" - @usableFromInline static let initStorageEvent: JSString = "initStorageEvent" - @usableFromInline static let initUIEvent: JSString = "initUIEvent" - @usableFromInline static let inline: JSString = "inline" - @usableFromInline static let innerHeight: JSString = "innerHeight" - @usableFromInline static let innerText: JSString = "innerText" - @usableFromInline static let innerWidth: JSString = "innerWidth" - @usableFromInline static let inputEncoding: JSString = "inputEncoding" - @usableFromInline static let inputMode: JSString = "inputMode" - @usableFromInline static let inputType: JSString = "inputType" - @usableFromInline static let insertAdjacentElement: JSString = "insertAdjacentElement" - @usableFromInline static let insertAdjacentText: JSString = "insertAdjacentText" - @usableFromInline static let insertBefore: JSString = "insertBefore" - @usableFromInline static let insertCell: JSString = "insertCell" - @usableFromInline static let insertData: JSString = "insertData" - @usableFromInline static let insertNode: JSString = "insertNode" - @usableFromInline static let insertRow: JSString = "insertRow" - @usableFromInline static let installing: JSString = "installing" - @usableFromInline static let integrity: JSString = "integrity" - @usableFromInline static let intercept: JSString = "intercept" - @usableFromInline static let intersectsNode: JSString = "intersectsNode" - @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState" - @usableFromInline static let inverse: JSString = "inverse" - @usableFromInline static let invertSelf: JSString = "invertSelf" + @usableFromInline static let `define`: JSString = "define" + @usableFromInline static let `delegatesFocus`: JSString = "delegatesFocus" + @usableFromInline static let `delete`: JSString = "delete" + @usableFromInline static let `deleteCaption`: JSString = "deleteCaption" + @usableFromInline static let `deleteCell`: JSString = "deleteCell" + @usableFromInline static let `deleteContents`: JSString = "deleteContents" + @usableFromInline static let `deleteData`: JSString = "deleteData" + @usableFromInline static let `deleteRow`: JSString = "deleteRow" + @usableFromInline static let `deleteTFoot`: JSString = "deleteTFoot" + @usableFromInline static let `deleteTHead`: JSString = "deleteTHead" + @usableFromInline static let `deltaMode`: JSString = "deltaMode" + @usableFromInline static let `deltaX`: JSString = "deltaX" + @usableFromInline static let `deltaY`: JSString = "deltaY" + @usableFromInline static let `deltaZ`: JSString = "deltaZ" + @usableFromInline static let `description`: JSString = "description" + @usableFromInline static let `descriptor`: JSString = "descriptor" + @usableFromInline static let `designMode`: JSString = "designMode" + @usableFromInline static let `desiredHeight`: JSString = "desiredHeight" + @usableFromInline static let `desiredSize`: JSString = "desiredSize" + @usableFromInline static let `desiredWidth`: JSString = "desiredWidth" + @usableFromInline static let `destination`: JSString = "destination" + @usableFromInline static let `destroy`: JSString = "destroy" + @usableFromInline static let `desynchronized`: JSString = "desynchronized" + @usableFromInline static let `detach`: JSString = "detach" + @usableFromInline static let `detail`: JSString = "detail" + @usableFromInline static let `deviceId`: JSString = "deviceId" + @usableFromInline static let `devicePixelRatio`: JSString = "devicePixelRatio" + @usableFromInline static let `devices`: JSString = "devices" + @usableFromInline static let `dir`: JSString = "dir" + @usableFromInline static let `dirName`: JSString = "dirName" + @usableFromInline static let `direction`: JSString = "direction" + @usableFromInline static let `disable`: JSString = "disable" + @usableFromInline static let `disabled`: JSString = "disabled" + @usableFromInline static let `disconnect`: JSString = "disconnect" + @usableFromInline static let `dispatchEvent`: JSString = "dispatchEvent" + @usableFromInline static let `displayAspectHeight`: JSString = "displayAspectHeight" + @usableFromInline static let `displayAspectWidth`: JSString = "displayAspectWidth" + @usableFromInline static let `displayHeight`: JSString = "displayHeight" + @usableFromInline static let `displayWidth`: JSString = "displayWidth" + @usableFromInline static let `doctype`: JSString = "doctype" + @usableFromInline static let `document`: JSString = "document" + @usableFromInline static let `documentElement`: JSString = "documentElement" + @usableFromInline static let `documentURI`: JSString = "documentURI" + @usableFromInline static let `domain`: JSString = "domain" + @usableFromInline static let `done`: JSString = "done" + @usableFromInline static let `download`: JSString = "download" + @usableFromInline static let `downloadRequest`: JSString = "downloadRequest" + @usableFromInline static let `draggable`: JSString = "draggable" + @usableFromInline static let `drawFocusIfNeeded`: JSString = "drawFocusIfNeeded" + @usableFromInline static let `drawImage`: JSString = "drawImage" + @usableFromInline static let `dropEffect`: JSString = "dropEffect" + @usableFromInline static let `droppedEntriesCount`: JSString = "droppedEntriesCount" + @usableFromInline static let `duplex`: JSString = "duplex" + @usableFromInline static let `duration`: JSString = "duration" + @usableFromInline static let `e`: JSString = "e" + @usableFromInline static let `echoCancellation`: JSString = "echoCancellation" + @usableFromInline static let `effectAllowed`: JSString = "effectAllowed" + @usableFromInline static let `element`: JSString = "element" + @usableFromInline static let `elementFromPoint`: JSString = "elementFromPoint" + @usableFromInline static let `elements`: JSString = "elements" + @usableFromInline static let `elementsFromPoint`: JSString = "elementsFromPoint" + @usableFromInline static let `ellipse`: JSString = "ellipse" + @usableFromInline static let `emHeightAscent`: JSString = "emHeightAscent" + @usableFromInline static let `emHeightDescent`: JSString = "emHeightDescent" + @usableFromInline static let `embeds`: JSString = "embeds" + @usableFromInline static let `emptyHTML`: JSString = "emptyHTML" + @usableFromInline static let `emptyScript`: JSString = "emptyScript" + @usableFromInline static let `enable`: JSString = "enable" + @usableFromInline static let `enabled`: JSString = "enabled" + @usableFromInline static let `enabledPlugin`: JSString = "enabledPlugin" + @usableFromInline static let `encode`: JSString = "encode" + @usableFromInline static let `encodeQueueSize`: JSString = "encodeQueueSize" + @usableFromInline static let `encoding`: JSString = "encoding" + @usableFromInline static let `enctype`: JSString = "enctype" + @usableFromInline static let `end`: JSString = "end" + @usableFromInline static let `endContainer`: JSString = "endContainer" + @usableFromInline static let `endOfStream`: JSString = "endOfStream" + @usableFromInline static let `endOffset`: JSString = "endOffset" + @usableFromInline static let `endTime`: JSString = "endTime" + @usableFromInline static let `ended`: JSString = "ended" + @usableFromInline static let `endings`: JSString = "endings" + @usableFromInline static let `enqueue`: JSString = "enqueue" + @usableFromInline static let `enterKeyHint`: JSString = "enterKeyHint" + @usableFromInline static let `entries`: JSString = "entries" + @usableFromInline static let `entry`: JSString = "entry" + @usableFromInline static let `entryType`: JSString = "entryType" + @usableFromInline static let `entryTypes`: JSString = "entryTypes" + @usableFromInline static let `enumerateDevices`: JSString = "enumerateDevices" + @usableFromInline static let `error`: JSString = "error" + @usableFromInline static let `evaluate`: JSString = "evaluate" + @usableFromInline static let `event`: JSString = "event" + @usableFromInline static let `eventPhase`: JSString = "eventPhase" + @usableFromInline static let `exact`: JSString = "exact" + @usableFromInline static let `exec`: JSString = "exec" + @usableFromInline static let `execCommand`: JSString = "execCommand" + @usableFromInline static let `extends`: JSString = "extends" + @usableFromInline static let `external`: JSString = "external" + @usableFromInline static let `extractContents`: JSString = "extractContents" + @usableFromInline static let `f`: JSString = "f" + @usableFromInline static let `face`: JSString = "face" + @usableFromInline static let `facingMode`: JSString = "facingMode" + @usableFromInline static let `fastSeek`: JSString = "fastSeek" + @usableFromInline static let `fetch`: JSString = "fetch" + @usableFromInline static let `fetchPriority`: JSString = "fetchPriority" + @usableFromInline static let `fgColor`: JSString = "fgColor" + @usableFromInline static let `filename`: JSString = "filename" + @usableFromInline static let `files`: JSString = "files" + @usableFromInline static let `fill`: JSString = "fill" + @usableFromInline static let `fillRect`: JSString = "fillRect" + @usableFromInline static let `fillStyle`: JSString = "fillStyle" + @usableFromInline static let `fillText`: JSString = "fillText" + @usableFromInline static let `filter`: JSString = "filter" + @usableFromInline static let `finished`: JSString = "finished" + @usableFromInline static let `firstChild`: JSString = "firstChild" + @usableFromInline static let `firstElementChild`: JSString = "firstElementChild" + @usableFromInline static let `flatten`: JSString = "flatten" + @usableFromInline static let `flip`: JSString = "flip" + @usableFromInline static let `flipX`: JSString = "flipX" + @usableFromInline static let `flipY`: JSString = "flipY" + @usableFromInline static let `flush`: JSString = "flush" + @usableFromInline static let `focus`: JSString = "focus" + @usableFromInline static let `focusReset`: JSString = "focusReset" + @usableFromInline static let `focusVisible`: JSString = "focusVisible" + @usableFromInline static let `font`: JSString = "font" + @usableFromInline static let `fontBoundingBoxAscent`: JSString = "fontBoundingBoxAscent" + @usableFromInline static let `fontBoundingBoxDescent`: JSString = "fontBoundingBoxDescent" + @usableFromInline static let `fontKerning`: JSString = "fontKerning" + @usableFromInline static let `fontStretch`: JSString = "fontStretch" + @usableFromInline static let `fontVariantCaps`: JSString = "fontVariantCaps" + @usableFromInline static let `force`: JSString = "force" + @usableFromInline static let `form`: JSString = "form" + @usableFromInline static let `formAction`: JSString = "formAction" + @usableFromInline static let `formData`: JSString = "formData" + @usableFromInline static let `formEnctype`: JSString = "formEnctype" + @usableFromInline static let `formMethod`: JSString = "formMethod" + @usableFromInline static let `formNoValidate`: JSString = "formNoValidate" + @usableFromInline static let `formTarget`: JSString = "formTarget" + @usableFromInline static let `format`: JSString = "format" + @usableFromInline static let `forms`: JSString = "forms" + @usableFromInline static let `forward`: JSString = "forward" + @usableFromInline static let `frame`: JSString = "frame" + @usableFromInline static let `frameBorder`: JSString = "frameBorder" + @usableFromInline static let `frameCount`: JSString = "frameCount" + @usableFromInline static let `frameElement`: JSString = "frameElement" + @usableFromInline static let `frameIndex`: JSString = "frameIndex" + @usableFromInline static let `frameOffset`: JSString = "frameOffset" + @usableFromInline static let `frameRate`: JSString = "frameRate" + @usableFromInline static let `framerate`: JSString = "framerate" + @usableFromInline static let `frames`: JSString = "frames" + @usableFromInline static let `from`: JSString = "from" + @usableFromInline static let `fromBox`: JSString = "fromBox" + @usableFromInline static let `fromFloat32Array`: JSString = "fromFloat32Array" + @usableFromInline static let `fromFloat64Array`: JSString = "fromFloat64Array" + @usableFromInline static let `fromMatrix`: JSString = "fromMatrix" + @usableFromInline static let `fromPoint`: JSString = "fromPoint" + @usableFromInline static let `fromQuad`: JSString = "fromQuad" + @usableFromInline static let `fromRect`: JSString = "fromRect" + @usableFromInline static let `fullRange`: JSString = "fullRange" + @usableFromInline static let `get`: JSString = "get" + @usableFromInline static let `getAll`: JSString = "getAll" + @usableFromInline static let `getAllResponseHeaders`: JSString = "getAllResponseHeaders" + @usableFromInline static let `getAsFile`: JSString = "getAsFile" + @usableFromInline static let `getAsString`: JSString = "getAsString" + @usableFromInline static let `getAttribute`: JSString = "getAttribute" + @usableFromInline static let `getAttributeNS`: JSString = "getAttributeNS" + @usableFromInline static let `getAttributeNames`: JSString = "getAttributeNames" + @usableFromInline static let `getAttributeNode`: JSString = "getAttributeNode" + @usableFromInline static let `getAttributeNodeNS`: JSString = "getAttributeNodeNS" + @usableFromInline static let `getAttributeType`: JSString = "getAttributeType" + @usableFromInline static let `getAudioTracks`: JSString = "getAudioTracks" + @usableFromInline static let `getBoundingClientRect`: JSString = "getBoundingClientRect" + @usableFromInline static let `getBounds`: JSString = "getBounds" + @usableFromInline static let `getBoxQuads`: JSString = "getBoxQuads" + @usableFromInline static let `getCapabilities`: JSString = "getCapabilities" + @usableFromInline static let `getClientRect`: JSString = "getClientRect" + @usableFromInline static let `getClientRects`: JSString = "getClientRects" + @usableFromInline static let `getConstraints`: JSString = "getConstraints" + @usableFromInline static let `getContextAttributes`: JSString = "getContextAttributes" + @usableFromInline static let `getCueById`: JSString = "getCueById" + @usableFromInline static let `getData`: JSString = "getData" + @usableFromInline static let `getElementById`: JSString = "getElementById" + @usableFromInline static let `getElementsByClassName`: JSString = "getElementsByClassName" + @usableFromInline static let `getElementsByName`: JSString = "getElementsByName" + @usableFromInline static let `getElementsByTagName`: JSString = "getElementsByTagName" + @usableFromInline static let `getElementsByTagNameNS`: JSString = "getElementsByTagNameNS" + @usableFromInline static let `getEntries`: JSString = "getEntries" + @usableFromInline static let `getEntriesByName`: JSString = "getEntriesByName" + @usableFromInline static let `getEntriesByType`: JSString = "getEntriesByType" + @usableFromInline static let `getHTML`: JSString = "getHTML" + @usableFromInline static let `getImageData`: JSString = "getImageData" + @usableFromInline static let `getItem`: JSString = "getItem" + @usableFromInline static let `getLineDash`: JSString = "getLineDash" + @usableFromInline static let `getModifierState`: JSString = "getModifierState" + @usableFromInline static let `getName`: JSString = "getName" + @usableFromInline static let `getNamedItem`: JSString = "getNamedItem" + @usableFromInline static let `getNamedItemNS`: JSString = "getNamedItemNS" + @usableFromInline static let `getParameter`: JSString = "getParameter" + @usableFromInline static let `getPropertyType`: JSString = "getPropertyType" + @usableFromInline static let `getReader`: JSString = "getReader" + @usableFromInline static let `getRegistration`: JSString = "getRegistration" + @usableFromInline static let `getRegistrations`: JSString = "getRegistrations" + @usableFromInline static let `getResponseHeader`: JSString = "getResponseHeader" + @usableFromInline static let `getRootNode`: JSString = "getRootNode" + @usableFromInline static let `getSVGDocument`: JSString = "getSVGDocument" + @usableFromInline static let `getSetCookie`: JSString = "getSetCookie" + @usableFromInline static let `getSettings`: JSString = "getSettings" + @usableFromInline static let `getStartDate`: JSString = "getStartDate" + @usableFromInline static let `getState`: JSString = "getState" + @usableFromInline static let `getSupportedConstraints`: JSString = "getSupportedConstraints" + @usableFromInline static let `getTrackById`: JSString = "getTrackById" + @usableFromInline static let `getTracks`: JSString = "getTracks" + @usableFromInline static let `getTransform`: JSString = "getTransform" + @usableFromInline static let `getUserMedia`: JSString = "getUserMedia" + @usableFromInline static let `getVideoTracks`: JSString = "getVideoTracks" + @usableFromInline static let `getWriter`: JSString = "getWriter" + @usableFromInline static let `globalAlpha`: JSString = "globalAlpha" + @usableFromInline static let `globalCompositeOperation`: JSString = "globalCompositeOperation" + @usableFromInline static let `go`: JSString = "go" + @usableFromInline static let `groupId`: JSString = "groupId" + @usableFromInline static let `groups`: JSString = "groups" + @usableFromInline static let `handle`: JSString = "handle" + @usableFromInline static let `handled`: JSString = "handled" + @usableFromInline static let `handler`: JSString = "handler" + @usableFromInline static let `hangingBaseline`: JSString = "hangingBaseline" + @usableFromInline static let `hardwareAcceleration`: JSString = "hardwareAcceleration" + @usableFromInline static let `hardwareConcurrency`: JSString = "hardwareConcurrency" + @usableFromInline static let `has`: JSString = "has" + @usableFromInline static let `hasAttribute`: JSString = "hasAttribute" + @usableFromInline static let `hasAttributeNS`: JSString = "hasAttributeNS" + @usableFromInline static let `hasAttributes`: JSString = "hasAttributes" + @usableFromInline static let `hasBeenActive`: JSString = "hasBeenActive" + @usableFromInline static let `hasChildNodes`: JSString = "hasChildNodes" + @usableFromInline static let `hasFeature`: JSString = "hasFeature" + @usableFromInline static let `hasFocus`: JSString = "hasFocus" + @usableFromInline static let `hasRegExpGroups`: JSString = "hasRegExpGroups" + @usableFromInline static let `hasUAVisualTransition`: JSString = "hasUAVisualTransition" + @usableFromInline static let `hash`: JSString = "hash" + @usableFromInline static let `hashChange`: JSString = "hashChange" + @usableFromInline static let `head`: JSString = "head" + @usableFromInline static let `headerValue`: JSString = "headerValue" + @usableFromInline static let `headers`: JSString = "headers" + @usableFromInline static let `height`: JSString = "height" + @usableFromInline static let `hidden`: JSString = "hidden" + @usableFromInline static let `hidePopover`: JSString = "hidePopover" + @usableFromInline static let `high`: JSString = "high" + @usableFromInline static let `highWaterMark`: JSString = "highWaterMark" + @usableFromInline static let `history`: JSString = "history" + @usableFromInline static let `host`: JSString = "host" + @usableFromInline static let `hostname`: JSString = "hostname" + @usableFromInline static let `href`: JSString = "href" + @usableFromInline static let `hreflang`: JSString = "hreflang" + @usableFromInline static let `hspace`: JSString = "hspace" + @usableFromInline static let `htmlFor`: JSString = "htmlFor" + @usableFromInline static let `httpEquiv`: JSString = "httpEquiv" + @usableFromInline static let `id`: JSString = "id" + @usableFromInline static let `ideal`: JSString = "ideal" + @usableFromInline static let `identifier`: JSString = "identifier" + @usableFromInline static let `ideographicBaseline`: JSString = "ideographicBaseline" + @usableFromInline static let `ignoreCase`: JSString = "ignoreCase" + @usableFromInline static let `ignoreMethod`: JSString = "ignoreMethod" + @usableFromInline static let `ignoreSearch`: JSString = "ignoreSearch" + @usableFromInline static let `ignoreVary`: JSString = "ignoreVary" + @usableFromInline static let `image`: JSString = "image" + @usableFromInline static let `imageOrientation`: JSString = "imageOrientation" + @usableFromInline static let `imageSizes`: JSString = "imageSizes" + @usableFromInline static let `imageSmoothingEnabled`: JSString = "imageSmoothingEnabled" + @usableFromInline static let `imageSmoothingQuality`: JSString = "imageSmoothingQuality" + @usableFromInline static let `imageSrcset`: JSString = "imageSrcset" + @usableFromInline static let `images`: JSString = "images" + @usableFromInline static let `implementation`: JSString = "implementation" + @usableFromInline static let `importNode`: JSString = "importNode" + @usableFromInline static let `importStylesheet`: JSString = "importStylesheet" + @usableFromInline static let `inBandMetadataTrackDispatchType`: JSString = "inBandMetadataTrackDispatchType" + @usableFromInline static let `includeUncontrolled`: JSString = "includeUncontrolled" + @usableFromInline static let `indeterminate`: JSString = "indeterminate" + @usableFromInline static let `index`: JSString = "index" + @usableFromInline static let `inert`: JSString = "inert" + @usableFromInline static let `info`: JSString = "info" + @usableFromInline static let `initCompositionEvent`: JSString = "initCompositionEvent" + @usableFromInline static let `initCustomEvent`: JSString = "initCustomEvent" + @usableFromInline static let `initEvent`: JSString = "initEvent" + @usableFromInline static let `initKeyboardEvent`: JSString = "initKeyboardEvent" + @usableFromInline static let `initMessageEvent`: JSString = "initMessageEvent" + @usableFromInline static let `initMouseEvent`: JSString = "initMouseEvent" + @usableFromInline static let `initStorageEvent`: JSString = "initStorageEvent" + @usableFromInline static let `initTextEvent`: JSString = "initTextEvent" + @usableFromInline static let `initUIEvent`: JSString = "initUIEvent" + @usableFromInline static let `inline`: JSString = "inline" + @usableFromInline static let `innerHTML`: JSString = "innerHTML" + @usableFromInline static let `innerHeight`: JSString = "innerHeight" + @usableFromInline static let `innerText`: JSString = "innerText" + @usableFromInline static let `innerWidth`: JSString = "innerWidth" + @usableFromInline static let `input`: JSString = "input" + @usableFromInline static let `inputEncoding`: JSString = "inputEncoding" + @usableFromInline static let `inputMode`: JSString = "inputMode" + @usableFromInline static let `inputType`: JSString = "inputType" + @usableFromInline static let `inputs`: JSString = "inputs" + @usableFromInline static let `insertAdjacentElement`: JSString = "insertAdjacentElement" + @usableFromInline static let `insertAdjacentHTML`: JSString = "insertAdjacentHTML" + @usableFromInline static let `insertAdjacentText`: JSString = "insertAdjacentText" + @usableFromInline static let `insertBefore`: JSString = "insertBefore" + @usableFromInline static let `insertCell`: JSString = "insertCell" + @usableFromInline static let `insertData`: JSString = "insertData" + @usableFromInline static let `insertNode`: JSString = "insertNode" + @usableFromInline static let `insertRow`: JSString = "insertRow" + @usableFromInline static let `installing`: JSString = "installing" + @usableFromInline static let `integrity`: JSString = "integrity" + @usableFromInline static let `intercept`: JSString = "intercept" + @usableFromInline static let `intersectsNode`: JSString = "intersectsNode" + @usableFromInline static let `invalidIteratorState`: JSString = "invalidIteratorState" + @usableFromInline static let `inverse`: JSString = "inverse" + @usableFromInline static let `invertSelf`: JSString = "invertSelf" @usableFromInline static let `is`: JSString = "is" - @usableFromInline static let is2D: JSString = "is2D" - @usableFromInline static let isActive: JSString = "isActive" - @usableFromInline static let isComposing: JSString = "isComposing" - @usableFromInline static let isConfigSupported: JSString = "isConfigSupported" - @usableFromInline static let isConnected: JSString = "isConnected" - @usableFromInline static let isContentEditable: JSString = "isContentEditable" - @usableFromInline static let isContextLost: JSString = "isContextLost" - @usableFromInline static let isDefaultNamespace: JSString = "isDefaultNamespace" - @usableFromInline static let isEqualNode: JSString = "isEqualNode" - @usableFromInline static let isHistoryNavigation: JSString = "isHistoryNavigation" - @usableFromInline static let isIdentity: JSString = "isIdentity" - @usableFromInline static let isMap: JSString = "isMap" - @usableFromInline static let isPointInPath: JSString = "isPointInPath" - @usableFromInline static let isPointInRange: JSString = "isPointInRange" - @usableFromInline static let isPointInStroke: JSString = "isPointInStroke" - @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation" - @usableFromInline static let isSameNode: JSString = "isSameNode" - @usableFromInline static let isSecureContext: JSString = "isSecureContext" - @usableFromInline static let isTrusted: JSString = "isTrusted" - @usableFromInline static let isTypeSupported: JSString = "isTypeSupported" - @usableFromInline static let item: JSString = "item" - @usableFromInline static let items: JSString = "items" - @usableFromInline static let iterateNext: JSString = "iterateNext" - @usableFromInline static let javaEnabled: JSString = "javaEnabled" - @usableFromInline static let json: JSString = "json" - @usableFromInline static let keepalive: JSString = "keepalive" - @usableFromInline static let key: JSString = "key" - @usableFromInline static let keyCode: JSString = "keyCode" - @usableFromInline static let keyFrame: JSString = "keyFrame" - @usableFromInline static let keys: JSString = "keys" - @usableFromInline static let kind: JSString = "kind" - @usableFromInline static let label: JSString = "label" - @usableFromInline static let labels: JSString = "labels" - @usableFromInline static let lang: JSString = "lang" - @usableFromInline static let language: JSString = "language" - @usableFromInline static let languages: JSString = "languages" - @usableFromInline static let lastChild: JSString = "lastChild" - @usableFromInline static let lastElementChild: JSString = "lastElementChild" - @usableFromInline static let lastEventId: JSString = "lastEventId" - @usableFromInline static let lastModified: JSString = "lastModified" - @usableFromInline static let latency: JSString = "latency" - @usableFromInline static let latencyMode: JSString = "latencyMode" - @usableFromInline static let layout: JSString = "layout" - @usableFromInline static let left: JSString = "left" - @usableFromInline static let length: JSString = "length" - @usableFromInline static let lengthComputable: JSString = "lengthComputable" - @usableFromInline static let letterSpacing: JSString = "letterSpacing" - @usableFromInline static let lineCap: JSString = "lineCap" - @usableFromInline static let lineDashOffset: JSString = "lineDashOffset" - @usableFromInline static let lineJoin: JSString = "lineJoin" - @usableFromInline static let lineTo: JSString = "lineTo" - @usableFromInline static let lineWidth: JSString = "lineWidth" - @usableFromInline static let lineno: JSString = "lineno" - @usableFromInline static let link: JSString = "link" - @usableFromInline static let linkColor: JSString = "linkColor" - @usableFromInline static let links: JSString = "links" - @usableFromInline static let list: JSString = "list" - @usableFromInline static let load: JSString = "load" - @usableFromInline static let loaded: JSString = "loaded" - @usableFromInline static let loading: JSString = "loading" - @usableFromInline static let localName: JSString = "localName" - @usableFromInline static let localStorage: JSString = "localStorage" - @usableFromInline static let location: JSString = "location" - @usableFromInline static let locationbar: JSString = "locationbar" - @usableFromInline static let locked: JSString = "locked" - @usableFromInline static let longDesc: JSString = "longDesc" - @usableFromInline static let lookupNamespaceURI: JSString = "lookupNamespaceURI" - @usableFromInline static let lookupPrefix: JSString = "lookupPrefix" - @usableFromInline static let loop: JSString = "loop" - @usableFromInline static let low: JSString = "low" - @usableFromInline static let lowsrc: JSString = "lowsrc" - @usableFromInline static let m11: JSString = "m11" - @usableFromInline static let m12: JSString = "m12" - @usableFromInline static let m13: JSString = "m13" - @usableFromInline static let m14: JSString = "m14" - @usableFromInline static let m21: JSString = "m21" - @usableFromInline static let m22: JSString = "m22" - @usableFromInline static let m23: JSString = "m23" - @usableFromInline static let m24: JSString = "m24" - @usableFromInline static let m31: JSString = "m31" - @usableFromInline static let m32: JSString = "m32" - @usableFromInline static let m33: JSString = "m33" - @usableFromInline static let m34: JSString = "m34" - @usableFromInline static let m41: JSString = "m41" - @usableFromInline static let m42: JSString = "m42" - @usableFromInline static let m43: JSString = "m43" - @usableFromInline static let m44: JSString = "m44" - @usableFromInline static let marginHeight: JSString = "marginHeight" - @usableFromInline static let marginWidth: JSString = "marginWidth" - @usableFromInline static let match: JSString = "match" - @usableFromInline static let matchAll: JSString = "matchAll" - @usableFromInline static let matchMedia: JSString = "matchMedia" - @usableFromInline static let matches: JSString = "matches" - @usableFromInline static let matrix: JSString = "matrix" - @usableFromInline static let matrixTransform: JSString = "matrixTransform" - @usableFromInline static let max: JSString = "max" - @usableFromInline static let maxLength: JSString = "maxLength" - @usableFromInline static let measureText: JSString = "measureText" - @usableFromInline static let media: JSString = "media" - @usableFromInline static let mediaDevices: JSString = "mediaDevices" - @usableFromInline static let menubar: JSString = "menubar" - @usableFromInline static let message: JSString = "message" - @usableFromInline static let metaKey: JSString = "metaKey" - @usableFromInline static let metadata: JSString = "metadata" - @usableFromInline static let method: JSString = "method" - @usableFromInline static let mimeType: JSString = "mimeType" - @usableFromInline static let mimeTypes: JSString = "mimeTypes" - @usableFromInline static let min: JSString = "min" - @usableFromInline static let minLength: JSString = "minLength" - @usableFromInline static let miterLimit: JSString = "miterLimit" - @usableFromInline static let mode: JSString = "mode" - @usableFromInline static let modifierAltGraph: JSString = "modifierAltGraph" - @usableFromInline static let modifierCapsLock: JSString = "modifierCapsLock" - @usableFromInline static let modifierFn: JSString = "modifierFn" - @usableFromInline static let modifierFnLock: JSString = "modifierFnLock" - @usableFromInline static let modifierHyper: JSString = "modifierHyper" - @usableFromInline static let modifierNumLock: JSString = "modifierNumLock" - @usableFromInline static let modifierScrollLock: JSString = "modifierScrollLock" - @usableFromInline static let modifierSuper: JSString = "modifierSuper" - @usableFromInline static let modifierSymbol: JSString = "modifierSymbol" - @usableFromInline static let modifierSymbolLock: JSString = "modifierSymbolLock" - @usableFromInline static let moveBy: JSString = "moveBy" - @usableFromInline static let moveTo: JSString = "moveTo" - @usableFromInline static let multiple: JSString = "multiple" - @usableFromInline static let multiply: JSString = "multiply" - @usableFromInline static let multiplySelf: JSString = "multiplySelf" - @usableFromInline static let muted: JSString = "muted" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let namedItem: JSString = "namedItem" - @usableFromInline static let namespaceURI: JSString = "namespaceURI" - @usableFromInline static let naturalHeight: JSString = "naturalHeight" - @usableFromInline static let naturalWidth: JSString = "naturalWidth" - @usableFromInline static let navigate: JSString = "navigate" - @usableFromInline static let navigation: JSString = "navigation" - @usableFromInline static let navigationPreload: JSString = "navigationPreload" - @usableFromInline static let navigationType: JSString = "navigationType" - @usableFromInline static let navigator: JSString = "navigator" - @usableFromInline static let networkState: JSString = "networkState" - @usableFromInline static let newState: JSString = "newState" - @usableFromInline static let newURL: JSString = "newURL" - @usableFromInline static let newValue: JSString = "newValue" - @usableFromInline static let nextElementSibling: JSString = "nextElementSibling" - @usableFromInline static let nextNode: JSString = "nextNode" - @usableFromInline static let nextSibling: JSString = "nextSibling" - @usableFromInline static let noHref: JSString = "noHref" - @usableFromInline static let noModule: JSString = "noModule" - @usableFromInline static let noResize: JSString = "noResize" - @usableFromInline static let noShade: JSString = "noShade" - @usableFromInline static let noValidate: JSString = "noValidate" - @usableFromInline static let noWrap: JSString = "noWrap" - @usableFromInline static let nodeName: JSString = "nodeName" - @usableFromInline static let nodeType: JSString = "nodeType" - @usableFromInline static let nodeValue: JSString = "nodeValue" - @usableFromInline static let noiseSuppression: JSString = "noiseSuppression" - @usableFromInline static let nonce: JSString = "nonce" - @usableFromInline static let normalize: JSString = "normalize" - @usableFromInline static let now: JSString = "now" - @usableFromInline static let numberOfChannels: JSString = "numberOfChannels" - @usableFromInline static let numberOfFrames: JSString = "numberOfFrames" - @usableFromInline static let numberValue: JSString = "numberValue" - @usableFromInline static let observe: JSString = "observe" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let offsetHeight: JSString = "offsetHeight" - @usableFromInline static let offsetLeft: JSString = "offsetLeft" - @usableFromInline static let offsetNode: JSString = "offsetNode" - @usableFromInline static let offsetParent: JSString = "offsetParent" - @usableFromInline static let offsetTop: JSString = "offsetTop" - @usableFromInline static let offsetWidth: JSString = "offsetWidth" - @usableFromInline static let offsetX: JSString = "offsetX" - @usableFromInline static let offsetY: JSString = "offsetY" - @usableFromInline static let ok: JSString = "ok" - @usableFromInline static let oldState: JSString = "oldState" - @usableFromInline static let oldURL: JSString = "oldURL" - @usableFromInline static let oldValue: JSString = "oldValue" - @usableFromInline static let onLine: JSString = "onLine" - @usableFromInline static let onabort: JSString = "onabort" - @usableFromInline static let onaddsourcebuffer: JSString = "onaddsourcebuffer" - @usableFromInline static let onaddtrack: JSString = "onaddtrack" - @usableFromInline static let onafterprint: JSString = "onafterprint" - @usableFromInline static let onauxclick: JSString = "onauxclick" - @usableFromInline static let onbeforeinput: JSString = "onbeforeinput" - @usableFromInline static let onbeforematch: JSString = "onbeforematch" - @usableFromInline static let onbeforeprint: JSString = "onbeforeprint" - @usableFromInline static let onbeforetoggle: JSString = "onbeforetoggle" - @usableFromInline static let onbeforeunload: JSString = "onbeforeunload" - @usableFromInline static let onblur: JSString = "onblur" - @usableFromInline static let oncancel: JSString = "oncancel" - @usableFromInline static let oncanplay: JSString = "oncanplay" - @usableFromInline static let oncanplaythrough: JSString = "oncanplaythrough" - @usableFromInline static let once: JSString = "once" - @usableFromInline static let onchange: JSString = "onchange" - @usableFromInline static let onclick: JSString = "onclick" - @usableFromInline static let onclose: JSString = "onclose" - @usableFromInline static let oncontextlost: JSString = "oncontextlost" - @usableFromInline static let oncontextmenu: JSString = "oncontextmenu" - @usableFromInline static let oncontextrestored: JSString = "oncontextrestored" - @usableFromInline static let oncontrollerchange: JSString = "oncontrollerchange" - @usableFromInline static let oncopy: JSString = "oncopy" - @usableFromInline static let oncuechange: JSString = "oncuechange" - @usableFromInline static let oncurrententrychange: JSString = "oncurrententrychange" - @usableFromInline static let oncut: JSString = "oncut" - @usableFromInline static let ondataavailable: JSString = "ondataavailable" - @usableFromInline static let ondblclick: JSString = "ondblclick" - @usableFromInline static let ondequeue: JSString = "ondequeue" - @usableFromInline static let ondevicechange: JSString = "ondevicechange" - @usableFromInline static let ondispose: JSString = "ondispose" - @usableFromInline static let ondrag: JSString = "ondrag" - @usableFromInline static let ondragend: JSString = "ondragend" - @usableFromInline static let ondragenter: JSString = "ondragenter" - @usableFromInline static let ondragleave: JSString = "ondragleave" - @usableFromInline static let ondragover: JSString = "ondragover" - @usableFromInline static let ondragstart: JSString = "ondragstart" - @usableFromInline static let ondrop: JSString = "ondrop" - @usableFromInline static let ondurationchange: JSString = "ondurationchange" - @usableFromInline static let onemptied: JSString = "onemptied" - @usableFromInline static let onended: JSString = "onended" - @usableFromInline static let onenter: JSString = "onenter" - @usableFromInline static let onerror: JSString = "onerror" - @usableFromInline static let onexit: JSString = "onexit" - @usableFromInline static let onfocus: JSString = "onfocus" - @usableFromInline static let onformdata: JSString = "onformdata" - @usableFromInline static let onhashchange: JSString = "onhashchange" - @usableFromInline static let oninput: JSString = "oninput" - @usableFromInline static let oninvalid: JSString = "oninvalid" - @usableFromInline static let onkeydown: JSString = "onkeydown" - @usableFromInline static let onkeypress: JSString = "onkeypress" - @usableFromInline static let onkeyup: JSString = "onkeyup" - @usableFromInline static let onlanguagechange: JSString = "onlanguagechange" - @usableFromInline static let onload: JSString = "onload" - @usableFromInline static let onloadeddata: JSString = "onloadeddata" - @usableFromInline static let onloadedmetadata: JSString = "onloadedmetadata" - @usableFromInline static let onloadend: JSString = "onloadend" - @usableFromInline static let onloadstart: JSString = "onloadstart" - @usableFromInline static let onmessage: JSString = "onmessage" - @usableFromInline static let onmessageerror: JSString = "onmessageerror" - @usableFromInline static let onmousedown: JSString = "onmousedown" - @usableFromInline static let onmouseenter: JSString = "onmouseenter" - @usableFromInline static let onmouseleave: JSString = "onmouseleave" - @usableFromInline static let onmousemove: JSString = "onmousemove" - @usableFromInline static let onmouseout: JSString = "onmouseout" - @usableFromInline static let onmouseover: JSString = "onmouseover" - @usableFromInline static let onmouseup: JSString = "onmouseup" - @usableFromInline static let onmute: JSString = "onmute" - @usableFromInline static let onnavigate: JSString = "onnavigate" - @usableFromInline static let onnavigateerror: JSString = "onnavigateerror" - @usableFromInline static let onnavigatesuccess: JSString = "onnavigatesuccess" - @usableFromInline static let onoffline: JSString = "onoffline" - @usableFromInline static let ononline: JSString = "ononline" - @usableFromInline static let onopen: JSString = "onopen" - @usableFromInline static let onpagehide: JSString = "onpagehide" - @usableFromInline static let onpageshow: JSString = "onpageshow" - @usableFromInline static let onpaste: JSString = "onpaste" - @usableFromInline static let onpause: JSString = "onpause" - @usableFromInline static let onplay: JSString = "onplay" - @usableFromInline static let onplaying: JSString = "onplaying" - @usableFromInline static let onpopstate: JSString = "onpopstate" - @usableFromInline static let onprogress: JSString = "onprogress" - @usableFromInline static let onratechange: JSString = "onratechange" - @usableFromInline static let onreadystatechange: JSString = "onreadystatechange" - @usableFromInline static let onrejectionhandled: JSString = "onrejectionhandled" - @usableFromInline static let onremovesourcebuffer: JSString = "onremovesourcebuffer" - @usableFromInline static let onremovetrack: JSString = "onremovetrack" - @usableFromInline static let onreset: JSString = "onreset" - @usableFromInline static let onresize: JSString = "onresize" - @usableFromInline static let onresume: JSString = "onresume" - @usableFromInline static let onscroll: JSString = "onscroll" - @usableFromInline static let onscrollend: JSString = "onscrollend" - @usableFromInline static let onsecuritypolicyviolation: JSString = "onsecuritypolicyviolation" - @usableFromInline static let onseeked: JSString = "onseeked" - @usableFromInline static let onseeking: JSString = "onseeking" - @usableFromInline static let onselect: JSString = "onselect" - @usableFromInline static let onslotchange: JSString = "onslotchange" - @usableFromInline static let onsourceclose: JSString = "onsourceclose" - @usableFromInline static let onsourceended: JSString = "onsourceended" - @usableFromInline static let onsourceopen: JSString = "onsourceopen" - @usableFromInline static let onstalled: JSString = "onstalled" - @usableFromInline static let onstart: JSString = "onstart" - @usableFromInline static let onstatechange: JSString = "onstatechange" - @usableFromInline static let onstop: JSString = "onstop" - @usableFromInline static let onstorage: JSString = "onstorage" - @usableFromInline static let onsubmit: JSString = "onsubmit" - @usableFromInline static let onsuspend: JSString = "onsuspend" - @usableFromInline static let ontimeout: JSString = "ontimeout" - @usableFromInline static let ontimeupdate: JSString = "ontimeupdate" - @usableFromInline static let ontoggle: JSString = "ontoggle" - @usableFromInline static let ontouchcancel: JSString = "ontouchcancel" - @usableFromInline static let ontouchend: JSString = "ontouchend" - @usableFromInline static let ontouchmove: JSString = "ontouchmove" - @usableFromInline static let ontouchstart: JSString = "ontouchstart" - @usableFromInline static let onunhandledrejection: JSString = "onunhandledrejection" - @usableFromInline static let onunload: JSString = "onunload" - @usableFromInline static let onunmute: JSString = "onunmute" - @usableFromInline static let onupdate: JSString = "onupdate" - @usableFromInline static let onupdateend: JSString = "onupdateend" - @usableFromInline static let onupdatefound: JSString = "onupdatefound" - @usableFromInline static let onupdatestart: JSString = "onupdatestart" - @usableFromInline static let onvisibilitychange: JSString = "onvisibilitychange" - @usableFromInline static let onvolumechange: JSString = "onvolumechange" - @usableFromInline static let onwaiting: JSString = "onwaiting" - @usableFromInline static let onwebkitanimationend: JSString = "onwebkitanimationend" - @usableFromInline static let onwebkitanimationiteration: JSString = "onwebkitanimationiteration" - @usableFromInline static let onwebkitanimationstart: JSString = "onwebkitanimationstart" - @usableFromInline static let onwebkittransitionend: JSString = "onwebkittransitionend" - @usableFromInline static let onwheel: JSString = "onwheel" - @usableFromInline static let open: JSString = "open" - @usableFromInline static let opener: JSString = "opener" - @usableFromInline static let optimizeForLatency: JSString = "optimizeForLatency" - @usableFromInline static let optimum: JSString = "optimum" - @usableFromInline static let options: JSString = "options" - @usableFromInline static let origin: JSString = "origin" - @usableFromInline static let originAgentCluster: JSString = "originAgentCluster" - @usableFromInline static let oscpu: JSString = "oscpu" - @usableFromInline static let outerHeight: JSString = "outerHeight" - @usableFromInline static let outerText: JSString = "outerText" - @usableFromInline static let outerWidth: JSString = "outerWidth" - @usableFromInline static let output: JSString = "output" - @usableFromInline static let overrideMimeType: JSString = "overrideMimeType" - @usableFromInline static let ownerDocument: JSString = "ownerDocument" - @usableFromInline static let ownerElement: JSString = "ownerElement" - @usableFromInline static let p1: JSString = "p1" - @usableFromInline static let p2: JSString = "p2" - @usableFromInline static let p3: JSString = "p3" - @usableFromInline static let p4: JSString = "p4" - @usableFromInline static let pageLeft: JSString = "pageLeft" - @usableFromInline static let pageTop: JSString = "pageTop" - @usableFromInline static let pageX: JSString = "pageX" - @usableFromInline static let pageXOffset: JSString = "pageXOffset" - @usableFromInline static let pageY: JSString = "pageY" - @usableFromInline static let pageYOffset: JSString = "pageYOffset" - @usableFromInline static let panTiltZoom: JSString = "panTiltZoom" - @usableFromInline static let parent: JSString = "parent" - @usableFromInline static let parentElement: JSString = "parentElement" - @usableFromInline static let parentNode: JSString = "parentNode" - @usableFromInline static let parseFromString: JSString = "parseFromString" - @usableFromInline static let passive: JSString = "passive" - @usableFromInline static let password: JSString = "password" - @usableFromInline static let pathname: JSString = "pathname" - @usableFromInline static let pattern: JSString = "pattern" - @usableFromInline static let patternMismatch: JSString = "patternMismatch" - @usableFromInline static let pause: JSString = "pause" - @usableFromInline static let pauseOnExit: JSString = "pauseOnExit" - @usableFromInline static let paused: JSString = "paused" - @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled" - @usableFromInline static let performance: JSString = "performance" - @usableFromInline static let permissions: JSString = "permissions" - @usableFromInline static let persisted: JSString = "persisted" - @usableFromInline static let personalbar: JSString = "personalbar" - @usableFromInline static let ping: JSString = "ping" - @usableFromInline static let pipeThrough: JSString = "pipeThrough" - @usableFromInline static let pipeTo: JSString = "pipeTo" - @usableFromInline static let pixelDepth: JSString = "pixelDepth" - @usableFromInline static let placeholder: JSString = "placeholder" - @usableFromInline static let planeIndex: JSString = "planeIndex" - @usableFromInline static let platform: JSString = "platform" - @usableFromInline static let play: JSString = "play" - @usableFromInline static let playbackRate: JSString = "playbackRate" - @usableFromInline static let played: JSString = "played" - @usableFromInline static let playsInline: JSString = "playsInline" - @usableFromInline static let plugins: JSString = "plugins" - @usableFromInline static let pointerBeforeReferenceNode: JSString = "pointerBeforeReferenceNode" - @usableFromInline static let popover: JSString = "popover" - @usableFromInline static let popoverTargetAction: JSString = "popoverTargetAction" - @usableFromInline static let popoverTargetElement: JSString = "popoverTargetElement" - @usableFromInline static let port: JSString = "port" - @usableFromInline static let port1: JSString = "port1" - @usableFromInline static let port2: JSString = "port2" - @usableFromInline static let ports: JSString = "ports" - @usableFromInline static let position: JSString = "position" - @usableFromInline static let postMessage: JSString = "postMessage" - @usableFromInline static let poster: JSString = "poster" - @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf" - @usableFromInline static let preferAnimation: JSString = "preferAnimation" - @usableFromInline static let prefix: JSString = "prefix" - @usableFromInline static let preload: JSString = "preload" - @usableFromInline static let preloadResponse: JSString = "preloadResponse" - @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha" - @usableFromInline static let prepend: JSString = "prepend" - @usableFromInline static let preservesPitch: JSString = "preservesPitch" - @usableFromInline static let prevValue: JSString = "prevValue" - @usableFromInline static let preventAbort: JSString = "preventAbort" - @usableFromInline static let preventCancel: JSString = "preventCancel" - @usableFromInline static let preventClose: JSString = "preventClose" - @usableFromInline static let preventDefault: JSString = "preventDefault" - @usableFromInline static let preventScroll: JSString = "preventScroll" - @usableFromInline static let previousElementSibling: JSString = "previousElementSibling" - @usableFromInline static let previousNode: JSString = "previousNode" - @usableFromInline static let previousSibling: JSString = "previousSibling" - @usableFromInline static let primaries: JSString = "primaries" - @usableFromInline static let print: JSString = "print" - @usableFromInline static let priority: JSString = "priority" - @usableFromInline static let product: JSString = "product" - @usableFromInline static let productSub: JSString = "productSub" - @usableFromInline static let promise: JSString = "promise" - @usableFromInline static let prompt: JSString = "prompt" + @usableFromInline static let `is2D`: JSString = "is2D" + @usableFromInline static let `isActive`: JSString = "isActive" + @usableFromInline static let `isComposing`: JSString = "isComposing" + @usableFromInline static let `isConfigSupported`: JSString = "isConfigSupported" + @usableFromInline static let `isConnected`: JSString = "isConnected" + @usableFromInline static let `isContentEditable`: JSString = "isContentEditable" + @usableFromInline static let `isContextLost`: JSString = "isContextLost" + @usableFromInline static let `isDefaultNamespace`: JSString = "isDefaultNamespace" + @usableFromInline static let `isEqualNode`: JSString = "isEqualNode" + @usableFromInline static let `isHTML`: JSString = "isHTML" + @usableFromInline static let `isHistoryNavigation`: JSString = "isHistoryNavigation" + @usableFromInline static let `isIdentity`: JSString = "isIdentity" + @usableFromInline static let `isMap`: JSString = "isMap" + @usableFromInline static let `isPointInPath`: JSString = "isPointInPath" + @usableFromInline static let `isPointInRange`: JSString = "isPointInRange" + @usableFromInline static let `isPointInStroke`: JSString = "isPointInStroke" + @usableFromInline static let `isReloadNavigation`: JSString = "isReloadNavigation" + @usableFromInline static let `isSameNode`: JSString = "isSameNode" + @usableFromInline static let `isScript`: JSString = "isScript" + @usableFromInline static let `isScriptURL`: JSString = "isScriptURL" + @usableFromInline static let `isSecureContext`: JSString = "isSecureContext" + @usableFromInline static let `isTrusted`: JSString = "isTrusted" + @usableFromInline static let `isTypeSupported`: JSString = "isTypeSupported" + @usableFromInline static let `item`: JSString = "item" + @usableFromInline static let `items`: JSString = "items" + @usableFromInline static let `iterateNext`: JSString = "iterateNext" + @usableFromInline static let `javaEnabled`: JSString = "javaEnabled" + @usableFromInline static let `json`: JSString = "json" + @usableFromInline static let `keepalive`: JSString = "keepalive" + @usableFromInline static let `key`: JSString = "key" + @usableFromInline static let `keyCode`: JSString = "keyCode" + @usableFromInline static let `keyFrame`: JSString = "keyFrame" + @usableFromInline static let `keys`: JSString = "keys" + @usableFromInline static let `kind`: JSString = "kind" + @usableFromInline static let `label`: JSString = "label" + @usableFromInline static let `labels`: JSString = "labels" + @usableFromInline static let `lang`: JSString = "lang" + @usableFromInline static let `language`: JSString = "language" + @usableFromInline static let `languages`: JSString = "languages" + @usableFromInline static let `lastChild`: JSString = "lastChild" + @usableFromInline static let `lastElementChild`: JSString = "lastElementChild" + @usableFromInline static let `lastEventId`: JSString = "lastEventId" + @usableFromInline static let `lastModified`: JSString = "lastModified" + @usableFromInline static let `latency`: JSString = "latency" + @usableFromInline static let `latencyMode`: JSString = "latencyMode" + @usableFromInline static let `layerX`: JSString = "layerX" + @usableFromInline static let `layerY`: JSString = "layerY" + @usableFromInline static let `layout`: JSString = "layout" + @usableFromInline static let `left`: JSString = "left" + @usableFromInline static let `length`: JSString = "length" + @usableFromInline static let `lengthComputable`: JSString = "lengthComputable" + @usableFromInline static let `letterSpacing`: JSString = "letterSpacing" + @usableFromInline static let `lineCap`: JSString = "lineCap" + @usableFromInline static let `lineDashOffset`: JSString = "lineDashOffset" + @usableFromInline static let `lineJoin`: JSString = "lineJoin" + @usableFromInline static let `lineTo`: JSString = "lineTo" + @usableFromInline static let `lineWidth`: JSString = "lineWidth" + @usableFromInline static let `lineno`: JSString = "lineno" + @usableFromInline static let `link`: JSString = "link" + @usableFromInline static let `linkColor`: JSString = "linkColor" + @usableFromInline static let `links`: JSString = "links" + @usableFromInline static let `list`: JSString = "list" + @usableFromInline static let `load`: JSString = "load" + @usableFromInline static let `loaded`: JSString = "loaded" + @usableFromInline static let `loading`: JSString = "loading" + @usableFromInline static let `localName`: JSString = "localName" + @usableFromInline static let `localStorage`: JSString = "localStorage" + @usableFromInline static let `location`: JSString = "location" + @usableFromInline static let `locationbar`: JSString = "locationbar" + @usableFromInline static let `locked`: JSString = "locked" + @usableFromInline static let `longDesc`: JSString = "longDesc" + @usableFromInline static let `lookupNamespaceURI`: JSString = "lookupNamespaceURI" + @usableFromInline static let `lookupPrefix`: JSString = "lookupPrefix" + @usableFromInline static let `loop`: JSString = "loop" + @usableFromInline static let `low`: JSString = "low" + @usableFromInline static let `lowsrc`: JSString = "lowsrc" + @usableFromInline static let `m11`: JSString = "m11" + @usableFromInline static let `m12`: JSString = "m12" + @usableFromInline static let `m13`: JSString = "m13" + @usableFromInline static let `m14`: JSString = "m14" + @usableFromInline static let `m21`: JSString = "m21" + @usableFromInline static let `m22`: JSString = "m22" + @usableFromInline static let `m23`: JSString = "m23" + @usableFromInline static let `m24`: JSString = "m24" + @usableFromInline static let `m31`: JSString = "m31" + @usableFromInline static let `m32`: JSString = "m32" + @usableFromInline static let `m33`: JSString = "m33" + @usableFromInline static let `m34`: JSString = "m34" + @usableFromInline static let `m41`: JSString = "m41" + @usableFromInline static let `m42`: JSString = "m42" + @usableFromInline static let `m43`: JSString = "m43" + @usableFromInline static let `m44`: JSString = "m44" + @usableFromInline static let `marginHeight`: JSString = "marginHeight" + @usableFromInline static let `marginWidth`: JSString = "marginWidth" + @usableFromInline static let `match`: JSString = "match" + @usableFromInline static let `matchAll`: JSString = "matchAll" + @usableFromInline static let `matchMedia`: JSString = "matchMedia" + @usableFromInline static let `matches`: JSString = "matches" + @usableFromInline static let `matrix`: JSString = "matrix" + @usableFromInline static let `matrixTransform`: JSString = "matrixTransform" + @usableFromInline static let `max`: JSString = "max" + @usableFromInline static let `maxLength`: JSString = "maxLength" + @usableFromInline static let `measureText`: JSString = "measureText" + @usableFromInline static let `media`: JSString = "media" + @usableFromInline static let `mediaDevices`: JSString = "mediaDevices" + @usableFromInline static let `menubar`: JSString = "menubar" + @usableFromInline static let `message`: JSString = "message" + @usableFromInline static let `metaKey`: JSString = "metaKey" + @usableFromInline static let `metadata`: JSString = "metadata" + @usableFromInline static let `method`: JSString = "method" + @usableFromInline static let `mimeType`: JSString = "mimeType" + @usableFromInline static let `mimeTypes`: JSString = "mimeTypes" + @usableFromInline static let `min`: JSString = "min" + @usableFromInline static let `minLength`: JSString = "minLength" + @usableFromInline static let `miterLimit`: JSString = "miterLimit" + @usableFromInline static let `mode`: JSString = "mode" + @usableFromInline static let `modifierAltGraph`: JSString = "modifierAltGraph" + @usableFromInline static let `modifierCapsLock`: JSString = "modifierCapsLock" + @usableFromInline static let `modifierFn`: JSString = "modifierFn" + @usableFromInline static let `modifierFnLock`: JSString = "modifierFnLock" + @usableFromInline static let `modifierHyper`: JSString = "modifierHyper" + @usableFromInline static let `modifierNumLock`: JSString = "modifierNumLock" + @usableFromInline static let `modifierScrollLock`: JSString = "modifierScrollLock" + @usableFromInline static let `modifierSuper`: JSString = "modifierSuper" + @usableFromInline static let `modifierSymbol`: JSString = "modifierSymbol" + @usableFromInline static let `modifierSymbolLock`: JSString = "modifierSymbolLock" + @usableFromInline static let `moveBy`: JSString = "moveBy" + @usableFromInline static let `moveTo`: JSString = "moveTo" + @usableFromInline static let `multiple`: JSString = "multiple" + @usableFromInline static let `multiply`: JSString = "multiply" + @usableFromInline static let `multiplySelf`: JSString = "multiplySelf" + @usableFromInline static let `muted`: JSString = "muted" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `namedItem`: JSString = "namedItem" + @usableFromInline static let `namespaceURI`: JSString = "namespaceURI" + @usableFromInline static let `naturalHeight`: JSString = "naturalHeight" + @usableFromInline static let `naturalWidth`: JSString = "naturalWidth" + @usableFromInline static let `navigate`: JSString = "navigate" + @usableFromInline static let `navigation`: JSString = "navigation" + @usableFromInline static let `navigationId`: JSString = "navigationId" + @usableFromInline static let `navigationPreload`: JSString = "navigationPreload" + @usableFromInline static let `navigationType`: JSString = "navigationType" + @usableFromInline static let `navigator`: JSString = "navigator" + @usableFromInline static let `networkState`: JSString = "networkState" + @usableFromInline static let `newState`: JSString = "newState" + @usableFromInline static let `newURL`: JSString = "newURL" + @usableFromInline static let `newValue`: JSString = "newValue" + @usableFromInline static let `nextElementSibling`: JSString = "nextElementSibling" + @usableFromInline static let `nextNode`: JSString = "nextNode" + @usableFromInline static let `nextSibling`: JSString = "nextSibling" + @usableFromInline static let `noHref`: JSString = "noHref" + @usableFromInline static let `noModule`: JSString = "noModule" + @usableFromInline static let `noResize`: JSString = "noResize" + @usableFromInline static let `noShade`: JSString = "noShade" + @usableFromInline static let `noValidate`: JSString = "noValidate" + @usableFromInline static let `noWrap`: JSString = "noWrap" + @usableFromInline static let `nodeName`: JSString = "nodeName" + @usableFromInline static let `nodeType`: JSString = "nodeType" + @usableFromInline static let `nodeValue`: JSString = "nodeValue" + @usableFromInline static let `noiseSuppression`: JSString = "noiseSuppression" + @usableFromInline static let `nonce`: JSString = "nonce" + @usableFromInline static let `normalize`: JSString = "normalize" + @usableFromInline static let `not`: JSString = "not" + @usableFromInline static let `now`: JSString = "now" + @usableFromInline static let `numberOfChannels`: JSString = "numberOfChannels" + @usableFromInline static let `numberOfFrames`: JSString = "numberOfFrames" + @usableFromInline static let `numberValue`: JSString = "numberValue" + @usableFromInline static let `observe`: JSString = "observe" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `offsetHeight`: JSString = "offsetHeight" + @usableFromInline static let `offsetLeft`: JSString = "offsetLeft" + @usableFromInline static let `offsetNode`: JSString = "offsetNode" + @usableFromInline static let `offsetParent`: JSString = "offsetParent" + @usableFromInline static let `offsetTop`: JSString = "offsetTop" + @usableFromInline static let `offsetWidth`: JSString = "offsetWidth" + @usableFromInline static let `offsetX`: JSString = "offsetX" + @usableFromInline static let `offsetY`: JSString = "offsetY" + @usableFromInline static let `ok`: JSString = "ok" + @usableFromInline static let `oldState`: JSString = "oldState" + @usableFromInline static let `oldURL`: JSString = "oldURL" + @usableFromInline static let `oldValue`: JSString = "oldValue" + @usableFromInline static let `onLine`: JSString = "onLine" + @usableFromInline static let `onabort`: JSString = "onabort" + @usableFromInline static let `onaddsourcebuffer`: JSString = "onaddsourcebuffer" + @usableFromInline static let `onaddtrack`: JSString = "onaddtrack" + @usableFromInline static let `onafterprint`: JSString = "onafterprint" + @usableFromInline static let `onauxclick`: JSString = "onauxclick" + @usableFromInline static let `onbeforeinput`: JSString = "onbeforeinput" + @usableFromInline static let `onbeforematch`: JSString = "onbeforematch" + @usableFromInline static let `onbeforeprint`: JSString = "onbeforeprint" + @usableFromInline static let `onbeforetoggle`: JSString = "onbeforetoggle" + @usableFromInline static let `onbeforeunload`: JSString = "onbeforeunload" + @usableFromInline static let `onblur`: JSString = "onblur" + @usableFromInline static let `onbufferedchange`: JSString = "onbufferedchange" + @usableFromInline static let `oncancel`: JSString = "oncancel" + @usableFromInline static let `oncanplay`: JSString = "oncanplay" + @usableFromInline static let `oncanplaythrough`: JSString = "oncanplaythrough" + @usableFromInline static let `once`: JSString = "once" + @usableFromInline static let `onchange`: JSString = "onchange" + @usableFromInline static let `onclick`: JSString = "onclick" + @usableFromInline static let `onclose`: JSString = "onclose" + @usableFromInline static let `oncommand`: JSString = "oncommand" + @usableFromInline static let `oncontextlost`: JSString = "oncontextlost" + @usableFromInline static let `oncontextmenu`: JSString = "oncontextmenu" + @usableFromInline static let `oncontextrestored`: JSString = "oncontextrestored" + @usableFromInline static let `oncontrollerchange`: JSString = "oncontrollerchange" + @usableFromInline static let `oncopy`: JSString = "oncopy" + @usableFromInline static let `oncuechange`: JSString = "oncuechange" + @usableFromInline static let `oncurrententrychange`: JSString = "oncurrententrychange" + @usableFromInline static let `oncut`: JSString = "oncut" + @usableFromInline static let `ondataavailable`: JSString = "ondataavailable" + @usableFromInline static let `ondblclick`: JSString = "ondblclick" + @usableFromInline static let `ondequeue`: JSString = "ondequeue" + @usableFromInline static let `ondevicechange`: JSString = "ondevicechange" + @usableFromInline static let `ondispose`: JSString = "ondispose" + @usableFromInline static let `ondrag`: JSString = "ondrag" + @usableFromInline static let `ondragend`: JSString = "ondragend" + @usableFromInline static let `ondragenter`: JSString = "ondragenter" + @usableFromInline static let `ondragleave`: JSString = "ondragleave" + @usableFromInline static let `ondragover`: JSString = "ondragover" + @usableFromInline static let `ondragstart`: JSString = "ondragstart" + @usableFromInline static let `ondrop`: JSString = "ondrop" + @usableFromInline static let `ondurationchange`: JSString = "ondurationchange" + @usableFromInline static let `onemptied`: JSString = "onemptied" + @usableFromInline static let `onended`: JSString = "onended" + @usableFromInline static let `onendstreaming`: JSString = "onendstreaming" + @usableFromInline static let `onenter`: JSString = "onenter" + @usableFromInline static let `onerror`: JSString = "onerror" + @usableFromInline static let `onexit`: JSString = "onexit" + @usableFromInline static let `onfocus`: JSString = "onfocus" + @usableFromInline static let `onformdata`: JSString = "onformdata" + @usableFromInline static let `onhashchange`: JSString = "onhashchange" + @usableFromInline static let `oninput`: JSString = "oninput" + @usableFromInline static let `oninvalid`: JSString = "oninvalid" + @usableFromInline static let `onkeydown`: JSString = "onkeydown" + @usableFromInline static let `onkeypress`: JSString = "onkeypress" + @usableFromInline static let `onkeyup`: JSString = "onkeyup" + @usableFromInline static let `onlanguagechange`: JSString = "onlanguagechange" + @usableFromInline static let `onload`: JSString = "onload" + @usableFromInline static let `onloadeddata`: JSString = "onloadeddata" + @usableFromInline static let `onloadedmetadata`: JSString = "onloadedmetadata" + @usableFromInline static let `onloadend`: JSString = "onloadend" + @usableFromInline static let `onloadstart`: JSString = "onloadstart" + @usableFromInline static let `onmessage`: JSString = "onmessage" + @usableFromInline static let `onmessageerror`: JSString = "onmessageerror" + @usableFromInline static let `onmousedown`: JSString = "onmousedown" + @usableFromInline static let `onmouseenter`: JSString = "onmouseenter" + @usableFromInline static let `onmouseleave`: JSString = "onmouseleave" + @usableFromInline static let `onmousemove`: JSString = "onmousemove" + @usableFromInline static let `onmouseout`: JSString = "onmouseout" + @usableFromInline static let `onmouseover`: JSString = "onmouseover" + @usableFromInline static let `onmouseup`: JSString = "onmouseup" + @usableFromInline static let `onmute`: JSString = "onmute" + @usableFromInline static let `onnavigate`: JSString = "onnavigate" + @usableFromInline static let `onnavigateerror`: JSString = "onnavigateerror" + @usableFromInline static let `onnavigatesuccess`: JSString = "onnavigatesuccess" + @usableFromInline static let `onoffline`: JSString = "onoffline" + @usableFromInline static let `ononline`: JSString = "ononline" + @usableFromInline static let `onopen`: JSString = "onopen" + @usableFromInline static let `onpagehide`: JSString = "onpagehide" + @usableFromInline static let `onpagereveal`: JSString = "onpagereveal" + @usableFromInline static let `onpageshow`: JSString = "onpageshow" + @usableFromInline static let `onpageswap`: JSString = "onpageswap" + @usableFromInline static let `onpaste`: JSString = "onpaste" + @usableFromInline static let `onpause`: JSString = "onpause" + @usableFromInline static let `onplay`: JSString = "onplay" + @usableFromInline static let `onplaying`: JSString = "onplaying" + @usableFromInline static let `onpopstate`: JSString = "onpopstate" + @usableFromInline static let `onprogress`: JSString = "onprogress" + @usableFromInline static let `onratechange`: JSString = "onratechange" + @usableFromInline static let `onreadystatechange`: JSString = "onreadystatechange" + @usableFromInline static let `onrejectionhandled`: JSString = "onrejectionhandled" + @usableFromInline static let `onremovesourcebuffer`: JSString = "onremovesourcebuffer" + @usableFromInline static let `onremovetrack`: JSString = "onremovetrack" + @usableFromInline static let `onreset`: JSString = "onreset" + @usableFromInline static let `onresize`: JSString = "onresize" + @usableFromInline static let `onresume`: JSString = "onresume" + @usableFromInline static let `onscroll`: JSString = "onscroll" + @usableFromInline static let `onscrollend`: JSString = "onscrollend" + @usableFromInline static let `onsecuritypolicyviolation`: JSString = "onsecuritypolicyviolation" + @usableFromInline static let `onseeked`: JSString = "onseeked" + @usableFromInline static let `onseeking`: JSString = "onseeking" + @usableFromInline static let `onselect`: JSString = "onselect" + @usableFromInline static let `onslotchange`: JSString = "onslotchange" + @usableFromInline static let `onsourceclose`: JSString = "onsourceclose" + @usableFromInline static let `onsourceended`: JSString = "onsourceended" + @usableFromInline static let `onsourceopen`: JSString = "onsourceopen" + @usableFromInline static let `onstalled`: JSString = "onstalled" + @usableFromInline static let `onstart`: JSString = "onstart" + @usableFromInline static let `onstartstreaming`: JSString = "onstartstreaming" + @usableFromInline static let `onstatechange`: JSString = "onstatechange" + @usableFromInline static let `onstop`: JSString = "onstop" + @usableFromInline static let `onstorage`: JSString = "onstorage" + @usableFromInline static let `onsubmit`: JSString = "onsubmit" + @usableFromInline static let `onsuspend`: JSString = "onsuspend" + @usableFromInline static let `ontimeout`: JSString = "ontimeout" + @usableFromInline static let `ontimeupdate`: JSString = "ontimeupdate" + @usableFromInline static let `ontoggle`: JSString = "ontoggle" + @usableFromInline static let `ontouchcancel`: JSString = "ontouchcancel" + @usableFromInline static let `ontouchend`: JSString = "ontouchend" + @usableFromInline static let `ontouchmove`: JSString = "ontouchmove" + @usableFromInline static let `ontouchstart`: JSString = "ontouchstart" + @usableFromInline static let `onunhandledrejection`: JSString = "onunhandledrejection" + @usableFromInline static let `onunload`: JSString = "onunload" + @usableFromInline static let `onunmute`: JSString = "onunmute" + @usableFromInline static let `onupdate`: JSString = "onupdate" + @usableFromInline static let `onupdateend`: JSString = "onupdateend" + @usableFromInline static let `onupdatefound`: JSString = "onupdatefound" + @usableFromInline static let `onupdatestart`: JSString = "onupdatestart" + @usableFromInline static let `onvisibilitychange`: JSString = "onvisibilitychange" + @usableFromInline static let `onvolumechange`: JSString = "onvolumechange" + @usableFromInline static let `onwaiting`: JSString = "onwaiting" + @usableFromInline static let `onwebkitanimationend`: JSString = "onwebkitanimationend" + @usableFromInline static let `onwebkitanimationiteration`: JSString = "onwebkitanimationiteration" + @usableFromInline static let `onwebkitanimationstart`: JSString = "onwebkitanimationstart" + @usableFromInline static let `onwebkittransitionend`: JSString = "onwebkittransitionend" + @usableFromInline static let `onwheel`: JSString = "onwheel" + @usableFromInline static let `opacityProperty`: JSString = "opacityProperty" + @usableFromInline static let `open`: JSString = "open" + @usableFromInline static let `opener`: JSString = "opener" + @usableFromInline static let `optimizeForLatency`: JSString = "optimizeForLatency" + @usableFromInline static let `optimum`: JSString = "optimum" + @usableFromInline static let `options`: JSString = "options" + @usableFromInline static let `or`: JSString = "or" + @usableFromInline static let `origin`: JSString = "origin" + @usableFromInline static let `originAgentCluster`: JSString = "originAgentCluster" + @usableFromInline static let `oscpu`: JSString = "oscpu" + @usableFromInline static let `outerHTML`: JSString = "outerHTML" + @usableFromInline static let `outerHeight`: JSString = "outerHeight" + @usableFromInline static let `outerText`: JSString = "outerText" + @usableFromInline static let `outerWidth`: JSString = "outerWidth" + @usableFromInline static let `output`: JSString = "output" + @usableFromInline static let `overrideMimeType`: JSString = "overrideMimeType" + @usableFromInline static let `ownerDocument`: JSString = "ownerDocument" + @usableFromInline static let `ownerElement`: JSString = "ownerElement" + @usableFromInline static let `p1`: JSString = "p1" + @usableFromInline static let `p2`: JSString = "p2" + @usableFromInline static let `p3`: JSString = "p3" + @usableFromInline static let `p4`: JSString = "p4" + @usableFromInline static let `pageLeft`: JSString = "pageLeft" + @usableFromInline static let `pageTop`: JSString = "pageTop" + @usableFromInline static let `pageX`: JSString = "pageX" + @usableFromInline static let `pageXOffset`: JSString = "pageXOffset" + @usableFromInline static let `pageY`: JSString = "pageY" + @usableFromInline static let `pageYOffset`: JSString = "pageYOffset" + @usableFromInline static let `panTiltZoom`: JSString = "panTiltZoom" + @usableFromInline static let `parent`: JSString = "parent" + @usableFromInline static let `parentElement`: JSString = "parentElement" + @usableFromInline static let `parentNode`: JSString = "parentNode" + @usableFromInline static let `parseFromString`: JSString = "parseFromString" + @usableFromInline static let `parseHTMLUnsafe`: JSString = "parseHTMLUnsafe" + @usableFromInline static let `passive`: JSString = "passive" + @usableFromInline static let `password`: JSString = "password" + @usableFromInline static let `pathname`: JSString = "pathname" + @usableFromInline static let `pattern`: JSString = "pattern" + @usableFromInline static let `patternMismatch`: JSString = "patternMismatch" + @usableFromInline static let `pause`: JSString = "pause" + @usableFromInline static let `pauseOnExit`: JSString = "pauseOnExit" + @usableFromInline static let `paused`: JSString = "paused" + @usableFromInline static let `pdfViewerEnabled`: JSString = "pdfViewerEnabled" + @usableFromInline static let `performance`: JSString = "performance" + @usableFromInline static let `permissions`: JSString = "permissions" + @usableFromInline static let `persisted`: JSString = "persisted" + @usableFromInline static let `personalbar`: JSString = "personalbar" + @usableFromInline static let `ping`: JSString = "ping" + @usableFromInline static let `pipeThrough`: JSString = "pipeThrough" + @usableFromInline static let `pipeTo`: JSString = "pipeTo" + @usableFromInline static let `pixelDepth`: JSString = "pixelDepth" + @usableFromInline static let `placeholder`: JSString = "placeholder" + @usableFromInline static let `planeIndex`: JSString = "planeIndex" + @usableFromInline static let `platform`: JSString = "platform" + @usableFromInline static let `play`: JSString = "play" + @usableFromInline static let `playbackRate`: JSString = "playbackRate" + @usableFromInline static let `played`: JSString = "played" + @usableFromInline static let `playsInline`: JSString = "playsInline" + @usableFromInline static let `plugins`: JSString = "plugins" + @usableFromInline static let `pointerBeforeReferenceNode`: JSString = "pointerBeforeReferenceNode" + @usableFromInline static let `popover`: JSString = "popover" + @usableFromInline static let `popoverTargetAction`: JSString = "popoverTargetAction" + @usableFromInline static let `popoverTargetElement`: JSString = "popoverTargetElement" + @usableFromInline static let `port`: JSString = "port" + @usableFromInline static let `port1`: JSString = "port1" + @usableFromInline static let `port2`: JSString = "port2" + @usableFromInline static let `ports`: JSString = "ports" + @usableFromInline static let `position`: JSString = "position" + @usableFromInline static let `postMessage`: JSString = "postMessage" + @usableFromInline static let `poster`: JSString = "poster" + @usableFromInline static let `preMultiplySelf`: JSString = "preMultiplySelf" + @usableFromInline static let `preferAnimation`: JSString = "preferAnimation" + @usableFromInline static let `prefix`: JSString = "prefix" + @usableFromInline static let `preload`: JSString = "preload" + @usableFromInline static let `preloadResponse`: JSString = "preloadResponse" + @usableFromInline static let `premultiplyAlpha`: JSString = "premultiplyAlpha" + @usableFromInline static let `prepend`: JSString = "prepend" + @usableFromInline static let `preservesPitch`: JSString = "preservesPitch" + @usableFromInline static let `preventAbort`: JSString = "preventAbort" + @usableFromInline static let `preventCancel`: JSString = "preventCancel" + @usableFromInline static let `preventClose`: JSString = "preventClose" + @usableFromInline static let `preventDefault`: JSString = "preventDefault" + @usableFromInline static let `preventScroll`: JSString = "preventScroll" + @usableFromInline static let `previousElementSibling`: JSString = "previousElementSibling" + @usableFromInline static let `previousNode`: JSString = "previousNode" + @usableFromInline static let `previousSibling`: JSString = "previousSibling" + @usableFromInline static let `primaries`: JSString = "primaries" + @usableFromInline static let `print`: JSString = "print" + @usableFromInline static let `priority`: JSString = "priority" + @usableFromInline static let `product`: JSString = "product" + @usableFromInline static let `productSub`: JSString = "productSub" + @usableFromInline static let `promise`: JSString = "promise" + @usableFromInline static let `prompt`: JSString = "prompt" @usableFromInline static let `protocol`: JSString = "protocol" - @usableFromInline static let pseudo: JSString = "pseudo" - @usableFromInline static let publicId: JSString = "publicId" - @usableFromInline static let pull: JSString = "pull" - @usableFromInline static let pushState: JSString = "pushState" - @usableFromInline static let put: JSString = "put" - @usableFromInline static let putImageData: JSString = "putImageData" - @usableFromInline static let quadraticCurveTo: JSString = "quadraticCurveTo" - @usableFromInline static let quality: JSString = "quality" - @usableFromInline static let query: JSString = "query" - @usableFromInline static let queryCommandEnabled: JSString = "queryCommandEnabled" - @usableFromInline static let queryCommandIndeterm: JSString = "queryCommandIndeterm" - @usableFromInline static let queryCommandState: JSString = "queryCommandState" - @usableFromInline static let queryCommandSupported: JSString = "queryCommandSupported" - @usableFromInline static let queryCommandValue: JSString = "queryCommandValue" - @usableFromInline static let querySelector: JSString = "querySelector" - @usableFromInline static let querySelectorAll: JSString = "querySelectorAll" - @usableFromInline static let queueMicrotask: JSString = "queueMicrotask" - @usableFromInline static let radiusX: JSString = "radiusX" - @usableFromInline static let radiusY: JSString = "radiusY" - @usableFromInline static let rangeOverflow: JSString = "rangeOverflow" - @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow" - @usableFromInline static let read: JSString = "read" - @usableFromInline static let readAsArrayBuffer: JSString = "readAsArrayBuffer" - @usableFromInline static let readAsBinaryString: JSString = "readAsBinaryString" - @usableFromInline static let readAsDataURL: JSString = "readAsDataURL" - @usableFromInline static let readAsText: JSString = "readAsText" - @usableFromInline static let readOnly: JSString = "readOnly" - @usableFromInline static let readable: JSString = "readable" - @usableFromInline static let readableType: JSString = "readableType" - @usableFromInline static let ready: JSString = "ready" - @usableFromInline static let readyState: JSString = "readyState" - @usableFromInline static let reason: JSString = "reason" - @usableFromInline static let rect: JSString = "rect" - @usableFromInline static let redirect: JSString = "redirect" - @usableFromInline static let redirected: JSString = "redirected" - @usableFromInline static let referenceNode: JSString = "referenceNode" - @usableFromInline static let referrer: JSString = "referrer" - @usableFromInline static let referrerPolicy: JSString = "referrerPolicy" - @usableFromInline static let refresh: JSString = "refresh" - @usableFromInline static let register: JSString = "register" - @usableFromInline static let registerProtocolHandler: JSString = "registerProtocolHandler" - @usableFromInline static let rel: JSString = "rel" - @usableFromInline static let relList: JSString = "relList" - @usableFromInline static let relatedNode: JSString = "relatedNode" - @usableFromInline static let relatedTarget: JSString = "relatedTarget" - @usableFromInline static let relativeTo: JSString = "relativeTo" - @usableFromInline static let releaseEvents: JSString = "releaseEvents" - @usableFromInline static let releaseLock: JSString = "releaseLock" - @usableFromInline static let reload: JSString = "reload" - @usableFromInline static let remove: JSString = "remove" - @usableFromInline static let removeAttribute: JSString = "removeAttribute" - @usableFromInline static let removeAttributeNS: JSString = "removeAttributeNS" - @usableFromInline static let removeAttributeNode: JSString = "removeAttributeNode" - @usableFromInline static let removeChild: JSString = "removeChild" - @usableFromInline static let removeCue: JSString = "removeCue" - @usableFromInline static let removeEventListener: JSString = "removeEventListener" - @usableFromInline static let removeListener: JSString = "removeListener" - @usableFromInline static let removeNamedItem: JSString = "removeNamedItem" - @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS" - @usableFromInline static let removeParameter: JSString = "removeParameter" - @usableFromInline static let removeSourceBuffer: JSString = "removeSourceBuffer" - @usableFromInline static let removeTrack: JSString = "removeTrack" - @usableFromInline static let removedNodes: JSString = "removedNodes" + @usableFromInline static let `pseudo`: JSString = "pseudo" + @usableFromInline static let `publicId`: JSString = "publicId" + @usableFromInline static let `pull`: JSString = "pull" + @usableFromInline static let `pushState`: JSString = "pushState" + @usableFromInline static let `put`: JSString = "put" + @usableFromInline static let `putImageData`: JSString = "putImageData" + @usableFromInline static let `quadraticCurveTo`: JSString = "quadraticCurveTo" + @usableFromInline static let `quality`: JSString = "quality" + @usableFromInline static let `query`: JSString = "query" + @usableFromInline static let `queryCommandEnabled`: JSString = "queryCommandEnabled" + @usableFromInline static let `queryCommandIndeterm`: JSString = "queryCommandIndeterm" + @usableFromInline static let `queryCommandState`: JSString = "queryCommandState" + @usableFromInline static let `queryCommandSupported`: JSString = "queryCommandSupported" + @usableFromInline static let `queryCommandValue`: JSString = "queryCommandValue" + @usableFromInline static let `querySelector`: JSString = "querySelector" + @usableFromInline static let `querySelectorAll`: JSString = "querySelectorAll" + @usableFromInline static let `queueMicrotask`: JSString = "queueMicrotask" + @usableFromInline static let `radiusX`: JSString = "radiusX" + @usableFromInline static let `radiusY`: JSString = "radiusY" + @usableFromInline static let `rangeOverflow`: JSString = "rangeOverflow" + @usableFromInline static let `rangeUnderflow`: JSString = "rangeUnderflow" + @usableFromInline static let `read`: JSString = "read" + @usableFromInline static let `readAsArrayBuffer`: JSString = "readAsArrayBuffer" + @usableFromInline static let `readAsBinaryString`: JSString = "readAsBinaryString" + @usableFromInline static let `readAsDataURL`: JSString = "readAsDataURL" + @usableFromInline static let `readAsText`: JSString = "readAsText" + @usableFromInline static let `readOnly`: JSString = "readOnly" + @usableFromInline static let `readable`: JSString = "readable" + @usableFromInline static let `readableType`: JSString = "readableType" + @usableFromInline static let `ready`: JSString = "ready" + @usableFromInline static let `readyState`: JSString = "readyState" + @usableFromInline static let `reason`: JSString = "reason" + @usableFromInline static let `reasons`: JSString = "reasons" + @usableFromInline static let `rect`: JSString = "rect" + @usableFromInline static let `redirect`: JSString = "redirect" + @usableFromInline static let `redirected`: JSString = "redirected" + @usableFromInline static let `referenceNode`: JSString = "referenceNode" + @usableFromInline static let `referrer`: JSString = "referrer" + @usableFromInline static let `referrerPolicy`: JSString = "referrerPolicy" + @usableFromInline static let `refresh`: JSString = "refresh" + @usableFromInline static let `register`: JSString = "register" + @usableFromInline static let `registerProtocolHandler`: JSString = "registerProtocolHandler" + @usableFromInline static let `rel`: JSString = "rel" + @usableFromInline static let `relList`: JSString = "relList" + @usableFromInline static let `relatedTarget`: JSString = "relatedTarget" + @usableFromInline static let `relativeTo`: JSString = "relativeTo" + @usableFromInline static let `releaseEvents`: JSString = "releaseEvents" + @usableFromInline static let `releaseLock`: JSString = "releaseLock" + @usableFromInline static let `reload`: JSString = "reload" + @usableFromInline static let `remove`: JSString = "remove" + @usableFromInline static let `removeAttribute`: JSString = "removeAttribute" + @usableFromInline static let `removeAttributeNS`: JSString = "removeAttributeNS" + @usableFromInline static let `removeAttributeNode`: JSString = "removeAttributeNode" + @usableFromInline static let `removeChild`: JSString = "removeChild" + @usableFromInline static let `removeCue`: JSString = "removeCue" + @usableFromInline static let `removeEventListener`: JSString = "removeEventListener" + @usableFromInline static let `removeListener`: JSString = "removeListener" + @usableFromInline static let `removeNamedItem`: JSString = "removeNamedItem" + @usableFromInline static let `removeNamedItemNS`: JSString = "removeNamedItemNS" + @usableFromInline static let `removeParameter`: JSString = "removeParameter" + @usableFromInline static let `removeSourceBuffer`: JSString = "removeSourceBuffer" + @usableFromInline static let `removeTrack`: JSString = "removeTrack" + @usableFromInline static let `removedNodes`: JSString = "removedNodes" + @usableFromInline static let `removedRanges`: JSString = "removedRanges" @usableFromInline static let `repeat`: JSString = "repeat" - @usableFromInline static let repetitionCount: JSString = "repetitionCount" - @usableFromInline static let replace: JSString = "replace" - @usableFromInline static let replaceChild: JSString = "replaceChild" - @usableFromInline static let replaceChildren: JSString = "replaceChildren" - @usableFromInline static let replaceData: JSString = "replaceData" - @usableFromInline static let replaceState: JSString = "replaceState" - @usableFromInline static let replaceWith: JSString = "replaceWith" - @usableFromInline static let replacesClientId: JSString = "replacesClientId" - @usableFromInline static let reportError: JSString = "reportError" - @usableFromInline static let reportValidity: JSString = "reportValidity" - @usableFromInline static let request: JSString = "request" - @usableFromInline static let requestAnimationFrame: JSString = "requestAnimationFrame" - @usableFromInline static let requestData: JSString = "requestData" - @usableFromInline static let requestSubmit: JSString = "requestSubmit" - @usableFromInline static let required: JSString = "required" - @usableFromInline static let reset: JSString = "reset" - @usableFromInline static let resetTransform: JSString = "resetTransform" - @usableFromInline static let resizeBy: JSString = "resizeBy" - @usableFromInline static let resizeHeight: JSString = "resizeHeight" - @usableFromInline static let resizeMode: JSString = "resizeMode" - @usableFromInline static let resizeQuality: JSString = "resizeQuality" - @usableFromInline static let resizeTo: JSString = "resizeTo" - @usableFromInline static let resizeWidth: JSString = "resizeWidth" - @usableFromInline static let respond: JSString = "respond" - @usableFromInline static let respondWithNewView: JSString = "respondWithNewView" - @usableFromInline static let response: JSString = "response" - @usableFromInline static let responseText: JSString = "responseText" - @usableFromInline static let responseType: JSString = "responseType" - @usableFromInline static let responseURL: JSString = "responseURL" - @usableFromInline static let responseXML: JSString = "responseXML" - @usableFromInline static let restore: JSString = "restore" - @usableFromInline static let result: JSString = "result" - @usableFromInline static let resultType: JSString = "resultType" - @usableFromInline static let resultingClientId: JSString = "resultingClientId" - @usableFromInline static let resume: JSString = "resume" - @usableFromInline static let returnValue: JSString = "returnValue" - @usableFromInline static let rev: JSString = "rev" - @usableFromInline static let reversed: JSString = "reversed" - @usableFromInline static let revokeObjectURL: JSString = "revokeObjectURL" - @usableFromInline static let right: JSString = "right" - @usableFromInline static let role: JSString = "role" - @usableFromInline static let root: JSString = "root" - @usableFromInline static let rotate: JSString = "rotate" - @usableFromInline static let rotateAxisAngle: JSString = "rotateAxisAngle" - @usableFromInline static let rotateAxisAngleSelf: JSString = "rotateAxisAngleSelf" - @usableFromInline static let rotateFromVector: JSString = "rotateFromVector" - @usableFromInline static let rotateFromVectorSelf: JSString = "rotateFromVectorSelf" - @usableFromInline static let rotateSelf: JSString = "rotateSelf" - @usableFromInline static let rotationAngle: JSString = "rotationAngle" - @usableFromInline static let roundRect: JSString = "roundRect" - @usableFromInline static let rowIndex: JSString = "rowIndex" - @usableFromInline static let rowSpan: JSString = "rowSpan" - @usableFromInline static let rows: JSString = "rows" - @usableFromInline static let rules: JSString = "rules" - @usableFromInline static let sameDocument: JSString = "sameDocument" - @usableFromInline static let sampleRate: JSString = "sampleRate" - @usableFromInline static let sampleSize: JSString = "sampleSize" - @usableFromInline static let sandbox: JSString = "sandbox" - @usableFromInline static let save: JSString = "save" - @usableFromInline static let scalabilityMode: JSString = "scalabilityMode" - @usableFromInline static let scale: JSString = "scale" - @usableFromInline static let scale3d: JSString = "scale3d" - @usableFromInline static let scale3dSelf: JSString = "scale3dSelf" - @usableFromInline static let scaleNonUniform: JSString = "scaleNonUniform" - @usableFromInline static let scaleSelf: JSString = "scaleSelf" - @usableFromInline static let scheme: JSString = "scheme" - @usableFromInline static let scope: JSString = "scope" - @usableFromInline static let screen: JSString = "screen" - @usableFromInline static let screenLeft: JSString = "screenLeft" - @usableFromInline static let screenTop: JSString = "screenTop" - @usableFromInline static let screenX: JSString = "screenX" - @usableFromInline static let screenY: JSString = "screenY" - @usableFromInline static let scriptURL: JSString = "scriptURL" - @usableFromInline static let scripts: JSString = "scripts" - @usableFromInline static let scroll: JSString = "scroll" - @usableFromInline static let scrollAmount: JSString = "scrollAmount" - @usableFromInline static let scrollBy: JSString = "scrollBy" - @usableFromInline static let scrollDelay: JSString = "scrollDelay" - @usableFromInline static let scrollHeight: JSString = "scrollHeight" - @usableFromInline static let scrollIntoView: JSString = "scrollIntoView" - @usableFromInline static let scrollLeft: JSString = "scrollLeft" - @usableFromInline static let scrollPathIntoView: JSString = "scrollPathIntoView" - @usableFromInline static let scrollRestoration: JSString = "scrollRestoration" - @usableFromInline static let scrollTo: JSString = "scrollTo" - @usableFromInline static let scrollTop: JSString = "scrollTop" - @usableFromInline static let scrollWidth: JSString = "scrollWidth" - @usableFromInline static let scrollX: JSString = "scrollX" - @usableFromInline static let scrollY: JSString = "scrollY" - @usableFromInline static let scrollbars: JSString = "scrollbars" - @usableFromInline static let scrolling: JSString = "scrolling" - @usableFromInline static let scrollingElement: JSString = "scrollingElement" - @usableFromInline static let search: JSString = "search" - @usableFromInline static let sectionRowIndex: JSString = "sectionRowIndex" - @usableFromInline static let seekable: JSString = "seekable" - @usableFromInline static let seeking: JSString = "seeking" - @usableFromInline static let select: JSString = "select" - @usableFromInline static let selectNode: JSString = "selectNode" - @usableFromInline static let selectNodeContents: JSString = "selectNodeContents" - @usableFromInline static let selected: JSString = "selected" - @usableFromInline static let selectedIndex: JSString = "selectedIndex" - @usableFromInline static let selectedOptions: JSString = "selectedOptions" - @usableFromInline static let selectedTrack: JSString = "selectedTrack" - @usableFromInline static let selectionDirection: JSString = "selectionDirection" - @usableFromInline static let selectionEnd: JSString = "selectionEnd" - @usableFromInline static let selectionStart: JSString = "selectionStart" - @usableFromInline static let send: JSString = "send" - @usableFromInline static let serviceWorker: JSString = "serviceWorker" - @usableFromInline static let sessionStorage: JSString = "sessionStorage" - @usableFromInline static let set: JSString = "set" - @usableFromInline static let setAttribute: JSString = "setAttribute" - @usableFromInline static let setAttributeNS: JSString = "setAttributeNS" - @usableFromInline static let setAttributeNode: JSString = "setAttributeNode" - @usableFromInline static let setAttributeNodeNS: JSString = "setAttributeNodeNS" - @usableFromInline static let setCustomValidity: JSString = "setCustomValidity" - @usableFromInline static let setData: JSString = "setData" - @usableFromInline static let setDragImage: JSString = "setDragImage" - @usableFromInline static let setEnd: JSString = "setEnd" - @usableFromInline static let setEndAfter: JSString = "setEndAfter" - @usableFromInline static let setEndBefore: JSString = "setEndBefore" - @usableFromInline static let setFormValue: JSString = "setFormValue" - @usableFromInline static let setHeaderValue: JSString = "setHeaderValue" - @usableFromInline static let setInterval: JSString = "setInterval" - @usableFromInline static let setLineDash: JSString = "setLineDash" - @usableFromInline static let setLiveSeekableRange: JSString = "setLiveSeekableRange" - @usableFromInline static let setMatrixValue: JSString = "setMatrixValue" - @usableFromInline static let setNamedItem: JSString = "setNamedItem" - @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS" - @usableFromInline static let setParameter: JSString = "setParameter" - @usableFromInline static let setRangeText: JSString = "setRangeText" - @usableFromInline static let setRequestHeader: JSString = "setRequestHeader" - @usableFromInline static let setSelectionRange: JSString = "setSelectionRange" - @usableFromInline static let setStart: JSString = "setStart" - @usableFromInline static let setStartAfter: JSString = "setStartAfter" - @usableFromInline static let setStartBefore: JSString = "setStartBefore" - @usableFromInline static let setTimeout: JSString = "setTimeout" - @usableFromInline static let setTransform: JSString = "setTransform" - @usableFromInline static let setValidity: JSString = "setValidity" - @usableFromInline static let shadowBlur: JSString = "shadowBlur" - @usableFromInline static let shadowColor: JSString = "shadowColor" - @usableFromInline static let shadowOffsetX: JSString = "shadowOffsetX" - @usableFromInline static let shadowOffsetY: JSString = "shadowOffsetY" - @usableFromInline static let shadowRoot: JSString = "shadowRoot" - @usableFromInline static let shape: JSString = "shape" - @usableFromInline static let shiftKey: JSString = "shiftKey" - @usableFromInline static let show: JSString = "show" - @usableFromInline static let showModal: JSString = "showModal" - @usableFromInline static let showPicker: JSString = "showPicker" - @usableFromInline static let showPopover: JSString = "showPopover" - @usableFromInline static let signal: JSString = "signal" - @usableFromInline static let singleNodeValue: JSString = "singleNodeValue" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let sizes: JSString = "sizes" - @usableFromInline static let skewX: JSString = "skewX" - @usableFromInline static let skewXSelf: JSString = "skewXSelf" - @usableFromInline static let skewY: JSString = "skewY" - @usableFromInline static let skewYSelf: JSString = "skewYSelf" - @usableFromInline static let slice: JSString = "slice" - @usableFromInline static let slot: JSString = "slot" - @usableFromInline static let slotAssignment: JSString = "slotAssignment" - @usableFromInline static let snapshotItem: JSString = "snapshotItem" - @usableFromInline static let snapshotLength: JSString = "snapshotLength" - @usableFromInline static let source: JSString = "source" - @usableFromInline static let sourceBuffer: JSString = "sourceBuffer" - @usableFromInline static let sourceBuffers: JSString = "sourceBuffers" - @usableFromInline static let span: JSString = "span" - @usableFromInline static let specified: JSString = "specified" - @usableFromInline static let spellcheck: JSString = "spellcheck" - @usableFromInline static let splitText: JSString = "splitText" - @usableFromInline static let src: JSString = "src" - @usableFromInline static let srcElement: JSString = "srcElement" - @usableFromInline static let srcObject: JSString = "srcObject" - @usableFromInline static let srcdoc: JSString = "srcdoc" - @usableFromInline static let srclang: JSString = "srclang" - @usableFromInline static let srcset: JSString = "srcset" - @usableFromInline static let standby: JSString = "standby" - @usableFromInline static let start: JSString = "start" - @usableFromInline static let startContainer: JSString = "startContainer" - @usableFromInline static let startMessages: JSString = "startMessages" - @usableFromInline static let startOffset: JSString = "startOffset" - @usableFromInline static let startTime: JSString = "startTime" - @usableFromInline static let state: JSString = "state" - @usableFromInline static let status: JSString = "status" - @usableFromInline static let statusText: JSString = "statusText" - @usableFromInline static let statusbar: JSString = "statusbar" - @usableFromInline static let step: JSString = "step" - @usableFromInline static let stepDown: JSString = "stepDown" - @usableFromInline static let stepMismatch: JSString = "stepMismatch" - @usableFromInline static let stepUp: JSString = "stepUp" - @usableFromInline static let stop: JSString = "stop" - @usableFromInline static let stopImmediatePropagation: JSString = "stopImmediatePropagation" - @usableFromInline static let stopPropagation: JSString = "stopPropagation" - @usableFromInline static let storageArea: JSString = "storageArea" - @usableFromInline static let stream: JSString = "stream" - @usableFromInline static let stride: JSString = "stride" - @usableFromInline static let stringValue: JSString = "stringValue" - @usableFromInline static let stroke: JSString = "stroke" - @usableFromInline static let strokeRect: JSString = "strokeRect" - @usableFromInline static let strokeStyle: JSString = "strokeStyle" - @usableFromInline static let strokeText: JSString = "strokeText" - @usableFromInline static let structuredClone: JSString = "structuredClone" - @usableFromInline static let submit: JSString = "submit" - @usableFromInline static let submitter: JSString = "submitter" - @usableFromInline static let substringData: JSString = "substringData" - @usableFromInline static let subtree: JSString = "subtree" - @usableFromInline static let suffixes: JSString = "suffixes" - @usableFromInline static let summary: JSString = "summary" - @usableFromInline static let supported: JSString = "supported" - @usableFromInline static let supportedEntryTypes: JSString = "supportedEntryTypes" - @usableFromInline static let supports: JSString = "supports" - @usableFromInline static let surroundContents: JSString = "surroundContents" - @usableFromInline static let svc: JSString = "svc" - @usableFromInline static let systemId: JSString = "systemId" - @usableFromInline static let tBodies: JSString = "tBodies" - @usableFromInline static let tFoot: JSString = "tFoot" - @usableFromInline static let tHead: JSString = "tHead" - @usableFromInline static let tabIndex: JSString = "tabIndex" - @usableFromInline static let tagName: JSString = "tagName" - @usableFromInline static let taintEnabled: JSString = "taintEnabled" - @usableFromInline static let takeRecords: JSString = "takeRecords" - @usableFromInline static let target: JSString = "target" - @usableFromInline static let targetOrigin: JSString = "targetOrigin" - @usableFromInline static let targetTouches: JSString = "targetTouches" - @usableFromInline static let tee: JSString = "tee" - @usableFromInline static let temporalLayerId: JSString = "temporalLayerId" - @usableFromInline static let terminate: JSString = "terminate" - @usableFromInline static let text: JSString = "text" - @usableFromInline static let textAlign: JSString = "textAlign" - @usableFromInline static let textBaseline: JSString = "textBaseline" - @usableFromInline static let textContent: JSString = "textContent" - @usableFromInline static let textLength: JSString = "textLength" - @usableFromInline static let textRendering: JSString = "textRendering" - @usableFromInline static let textTracks: JSString = "textTracks" - @usableFromInline static let throwIfAborted: JSString = "throwIfAborted" - @usableFromInline static let timeOrigin: JSString = "timeOrigin" - @usableFromInline static let timeStamp: JSString = "timeStamp" - @usableFromInline static let timecode: JSString = "timecode" - @usableFromInline static let timeout: JSString = "timeout" - @usableFromInline static let timestamp: JSString = "timestamp" - @usableFromInline static let timestampOffset: JSString = "timestampOffset" - @usableFromInline static let title: JSString = "title" - @usableFromInline static let toBlob: JSString = "toBlob" - @usableFromInline static let toBox: JSString = "toBox" - @usableFromInline static let toDataURL: JSString = "toDataURL" - @usableFromInline static let toFloat32Array: JSString = "toFloat32Array" - @usableFromInline static let toFloat64Array: JSString = "toFloat64Array" - @usableFromInline static let toJSON: JSString = "toJSON" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let toggle: JSString = "toggle" - @usableFromInline static let toggleAttribute: JSString = "toggleAttribute" - @usableFromInline static let togglePopover: JSString = "togglePopover" - @usableFromInline static let tooLong: JSString = "tooLong" - @usableFromInline static let tooShort: JSString = "tooShort" - @usableFromInline static let toolbar: JSString = "toolbar" - @usableFromInline static let top: JSString = "top" - @usableFromInline static let total: JSString = "total" - @usableFromInline static let touchType: JSString = "touchType" - @usableFromInline static let touches: JSString = "touches" - @usableFromInline static let track: JSString = "track" - @usableFromInline static let tracks: JSString = "tracks" - @usableFromInline static let transfer: JSString = "transfer" - @usableFromInline static let transferControlToOffscreen: JSString = "transferControlToOffscreen" - @usableFromInline static let transferFromImageBitmap: JSString = "transferFromImageBitmap" - @usableFromInline static let transferToImageBitmap: JSString = "transferToImageBitmap" - @usableFromInline static let transform: JSString = "transform" - @usableFromInline static let transformPoint: JSString = "transformPoint" - @usableFromInline static let transformToDocument: JSString = "transformToDocument" - @usableFromInline static let transformToFragment: JSString = "transformToFragment" - @usableFromInline static let transition: JSString = "transition" - @usableFromInline static let translate: JSString = "translate" - @usableFromInline static let translateSelf: JSString = "translateSelf" - @usableFromInline static let traverseTo: JSString = "traverseTo" - @usableFromInline static let trueSpeed: JSString = "trueSpeed" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let typeMismatch: JSString = "typeMismatch" - @usableFromInline static let types: JSString = "types" - @usableFromInline static let unregister: JSString = "unregister" - @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler" - @usableFromInline static let update: JSString = "update" - @usableFromInline static let updateCurrentEntry: JSString = "updateCurrentEntry" - @usableFromInline static let updateViaCache: JSString = "updateViaCache" - @usableFromInline static let updating: JSString = "updating" - @usableFromInline static let upgrade: JSString = "upgrade" - @usableFromInline static let upload: JSString = "upload" - @usableFromInline static let url: JSString = "url" - @usableFromInline static let useMap: JSString = "useMap" - @usableFromInline static let userActivation: JSString = "userActivation" - @usableFromInline static let userAgent: JSString = "userAgent" - @usableFromInline static let userInitiated: JSString = "userInitiated" - @usableFromInline static let username: JSString = "username" - @usableFromInline static let vAlign: JSString = "vAlign" - @usableFromInline static let vLink: JSString = "vLink" - @usableFromInline static let valid: JSString = "valid" - @usableFromInline static let validationMessage: JSString = "validationMessage" - @usableFromInline static let validity: JSString = "validity" - @usableFromInline static let value: JSString = "value" - @usableFromInline static let valueAsDate: JSString = "valueAsDate" - @usableFromInline static let valueAsNumber: JSString = "valueAsNumber" - @usableFromInline static let valueMissing: JSString = "valueMissing" - @usableFromInline static let valueType: JSString = "valueType" - @usableFromInline static let vendor: JSString = "vendor" - @usableFromInline static let vendorSub: JSString = "vendorSub" - @usableFromInline static let version: JSString = "version" - @usableFromInline static let video: JSString = "video" - @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond" - @usableFromInline static let videoHeight: JSString = "videoHeight" - @usableFromInline static let videoKeyFrameIntervalCount: JSString = "videoKeyFrameIntervalCount" - @usableFromInline static let videoKeyFrameIntervalDuration: JSString = "videoKeyFrameIntervalDuration" - @usableFromInline static let videoTracks: JSString = "videoTracks" - @usableFromInline static let videoWidth: JSString = "videoWidth" - @usableFromInline static let view: JSString = "view" - @usableFromInline static let visibilityState: JSString = "visibilityState" - @usableFromInline static let visible: JSString = "visible" - @usableFromInline static let visibleRect: JSString = "visibleRect" - @usableFromInline static let visualViewport: JSString = "visualViewport" - @usableFromInline static let vlinkColor: JSString = "vlinkColor" - @usableFromInline static let volume: JSString = "volume" - @usableFromInline static let vspace: JSString = "vspace" - @usableFromInline static let w: JSString = "w" - @usableFromInline static let waiting: JSString = "waiting" - @usableFromInline static let webkitMatchesSelector: JSString = "webkitMatchesSelector" - @usableFromInline static let whatToShow: JSString = "whatToShow" - @usableFromInline static let whenDefined: JSString = "whenDefined" - @usableFromInline static let which: JSString = "which" - @usableFromInline static let wholeText: JSString = "wholeText" - @usableFromInline static let width: JSString = "width" - @usableFromInline static let willReadFrequently: JSString = "willReadFrequently" - @usableFromInline static let willValidate: JSString = "willValidate" - @usableFromInline static let window: JSString = "window" - @usableFromInline static let withCredentials: JSString = "withCredentials" - @usableFromInline static let wordSpacing: JSString = "wordSpacing" - @usableFromInline static let wrap: JSString = "wrap" - @usableFromInline static let writable: JSString = "writable" - @usableFromInline static let writableType: JSString = "writableType" - @usableFromInline static let write: JSString = "write" - @usableFromInline static let writeln: JSString = "writeln" - @usableFromInline static let x: JSString = "x" - @usableFromInline static let y: JSString = "y" - @usableFromInline static let z: JSString = "z" + @usableFromInline static let `repetitionCount`: JSString = "repetitionCount" + @usableFromInline static let `replace`: JSString = "replace" + @usableFromInline static let `replaceChild`: JSString = "replaceChild" + @usableFromInline static let `replaceChildren`: JSString = "replaceChildren" + @usableFromInline static let `replaceData`: JSString = "replaceData" + @usableFromInline static let `replaceState`: JSString = "replaceState" + @usableFromInline static let `replaceWith`: JSString = "replaceWith" + @usableFromInline static let `replacesClientId`: JSString = "replacesClientId" + @usableFromInline static let `reportError`: JSString = "reportError" + @usableFromInline static let `reportValidity`: JSString = "reportValidity" + @usableFromInline static let `request`: JSString = "request" + @usableFromInline static let `requestAnimationFrame`: JSString = "requestAnimationFrame" + @usableFromInline static let `requestClose`: JSString = "requestClose" + @usableFromInline static let `requestData`: JSString = "requestData" + @usableFromInline static let `requestDestination`: JSString = "requestDestination" + @usableFromInline static let `requestMethod`: JSString = "requestMethod" + @usableFromInline static let `requestMode`: JSString = "requestMode" + @usableFromInline static let `requestSubmit`: JSString = "requestSubmit" + @usableFromInline static let `required`: JSString = "required" + @usableFromInline static let `reset`: JSString = "reset" + @usableFromInline static let `resetTransform`: JSString = "resetTransform" + @usableFromInline static let `resizeBy`: JSString = "resizeBy" + @usableFromInline static let `resizeHeight`: JSString = "resizeHeight" + @usableFromInline static let `resizeMode`: JSString = "resizeMode" + @usableFromInline static let `resizeQuality`: JSString = "resizeQuality" + @usableFromInline static let `resizeTo`: JSString = "resizeTo" + @usableFromInline static let `resizeWidth`: JSString = "resizeWidth" + @usableFromInline static let `respond`: JSString = "respond" + @usableFromInline static let `respondWithNewView`: JSString = "respondWithNewView" + @usableFromInline static let `response`: JSString = "response" + @usableFromInline static let `responseText`: JSString = "responseText" + @usableFromInline static let `responseType`: JSString = "responseType" + @usableFromInline static let `responseURL`: JSString = "responseURL" + @usableFromInline static let `responseXML`: JSString = "responseXML" + @usableFromInline static let `restore`: JSString = "restore" + @usableFromInline static let `result`: JSString = "result" + @usableFromInline static let `resultType`: JSString = "resultType" + @usableFromInline static let `resultingClientId`: JSString = "resultingClientId" + @usableFromInline static let `resume`: JSString = "resume" + @usableFromInline static let `returnValue`: JSString = "returnValue" + @usableFromInline static let `rev`: JSString = "rev" + @usableFromInline static let `reversed`: JSString = "reversed" + @usableFromInline static let `revokeObjectURL`: JSString = "revokeObjectURL" + @usableFromInline static let `right`: JSString = "right" + @usableFromInline static let `role`: JSString = "role" + @usableFromInline static let `root`: JSString = "root" + @usableFromInline static let `rotate`: JSString = "rotate" + @usableFromInline static let `rotateAxisAngle`: JSString = "rotateAxisAngle" + @usableFromInline static let `rotateAxisAngleSelf`: JSString = "rotateAxisAngleSelf" + @usableFromInline static let `rotateFromVector`: JSString = "rotateFromVector" + @usableFromInline static let `rotateFromVectorSelf`: JSString = "rotateFromVectorSelf" + @usableFromInline static let `rotateSelf`: JSString = "rotateSelf" + @usableFromInline static let `rotation`: JSString = "rotation" + @usableFromInline static let `rotationAngle`: JSString = "rotationAngle" + @usableFromInline static let `roundRect`: JSString = "roundRect" + @usableFromInline static let `rowIndex`: JSString = "rowIndex" + @usableFromInline static let `rowSpan`: JSString = "rowSpan" + @usableFromInline static let `rows`: JSString = "rows" + @usableFromInline static let `rules`: JSString = "rules" + @usableFromInline static let `runningStatus`: JSString = "runningStatus" + @usableFromInline static let `sameDocument`: JSString = "sameDocument" + @usableFromInline static let `sampleRate`: JSString = "sampleRate" + @usableFromInline static let `sampleSize`: JSString = "sampleSize" + @usableFromInline static let `sandbox`: JSString = "sandbox" + @usableFromInline static let `save`: JSString = "save" + @usableFromInline static let `scalabilityMode`: JSString = "scalabilityMode" + @usableFromInline static let `scale`: JSString = "scale" + @usableFromInline static let `scale3d`: JSString = "scale3d" + @usableFromInline static let `scale3dSelf`: JSString = "scale3dSelf" + @usableFromInline static let `scaleNonUniform`: JSString = "scaleNonUniform" + @usableFromInline static let `scaleSelf`: JSString = "scaleSelf" + @usableFromInline static let `scheme`: JSString = "scheme" + @usableFromInline static let `scope`: JSString = "scope" + @usableFromInline static let `screen`: JSString = "screen" + @usableFromInline static let `screenLeft`: JSString = "screenLeft" + @usableFromInline static let `screenTop`: JSString = "screenTop" + @usableFromInline static let `screenX`: JSString = "screenX" + @usableFromInline static let `screenY`: JSString = "screenY" + @usableFromInline static let `scriptURL`: JSString = "scriptURL" + @usableFromInline static let `scripts`: JSString = "scripts" + @usableFromInline static let `scroll`: JSString = "scroll" + @usableFromInline static let `scrollAmount`: JSString = "scrollAmount" + @usableFromInline static let `scrollBy`: JSString = "scrollBy" + @usableFromInline static let `scrollDelay`: JSString = "scrollDelay" + @usableFromInline static let `scrollHeight`: JSString = "scrollHeight" + @usableFromInline static let `scrollIntoView`: JSString = "scrollIntoView" + @usableFromInline static let `scrollLeft`: JSString = "scrollLeft" + @usableFromInline static let `scrollRestoration`: JSString = "scrollRestoration" + @usableFromInline static let `scrollTo`: JSString = "scrollTo" + @usableFromInline static let `scrollTop`: JSString = "scrollTop" + @usableFromInline static let `scrollWidth`: JSString = "scrollWidth" + @usableFromInline static let `scrollX`: JSString = "scrollX" + @usableFromInline static let `scrollY`: JSString = "scrollY" + @usableFromInline static let `scrollbars`: JSString = "scrollbars" + @usableFromInline static let `scrolling`: JSString = "scrolling" + @usableFromInline static let `scrollingElement`: JSString = "scrollingElement" + @usableFromInline static let `search`: JSString = "search" + @usableFromInline static let `sectionRowIndex`: JSString = "sectionRowIndex" + @usableFromInline static let `seekable`: JSString = "seekable" + @usableFromInline static let `seeking`: JSString = "seeking" + @usableFromInline static let `select`: JSString = "select" + @usableFromInline static let `selectNode`: JSString = "selectNode" + @usableFromInline static let `selectNodeContents`: JSString = "selectNodeContents" + @usableFromInline static let `selected`: JSString = "selected" + @usableFromInline static let `selectedIndex`: JSString = "selectedIndex" + @usableFromInline static let `selectedOptions`: JSString = "selectedOptions" + @usableFromInline static let `selectedTrack`: JSString = "selectedTrack" + @usableFromInline static let `selectionDirection`: JSString = "selectionDirection" + @usableFromInline static let `selectionEnd`: JSString = "selectionEnd" + @usableFromInline static let `selectionStart`: JSString = "selectionStart" + @usableFromInline static let `send`: JSString = "send" + @usableFromInline static let `serializable`: JSString = "serializable" + @usableFromInline static let `serializableShadowRoots`: JSString = "serializableShadowRoots" + @usableFromInline static let `serializeToString`: JSString = "serializeToString" + @usableFromInline static let `serviceWorker`: JSString = "serviceWorker" + @usableFromInline static let `sessionStorage`: JSString = "sessionStorage" + @usableFromInline static let `set`: JSString = "set" + @usableFromInline static let `setAttribute`: JSString = "setAttribute" + @usableFromInline static let `setAttributeNS`: JSString = "setAttributeNS" + @usableFromInline static let `setAttributeNode`: JSString = "setAttributeNode" + @usableFromInline static let `setAttributeNodeNS`: JSString = "setAttributeNodeNS" + @usableFromInline static let `setCustomValidity`: JSString = "setCustomValidity" + @usableFromInline static let `setData`: JSString = "setData" + @usableFromInline static let `setDragImage`: JSString = "setDragImage" + @usableFromInline static let `setEnd`: JSString = "setEnd" + @usableFromInline static let `setEndAfter`: JSString = "setEndAfter" + @usableFromInline static let `setEndBefore`: JSString = "setEndBefore" + @usableFromInline static let `setFormValue`: JSString = "setFormValue" + @usableFromInline static let `setHTMLUnsafe`: JSString = "setHTMLUnsafe" + @usableFromInline static let `setHeaderValue`: JSString = "setHeaderValue" + @usableFromInline static let `setInterval`: JSString = "setInterval" + @usableFromInline static let `setLineDash`: JSString = "setLineDash" + @usableFromInline static let `setLiveSeekableRange`: JSString = "setLiveSeekableRange" + @usableFromInline static let `setMatrixValue`: JSString = "setMatrixValue" + @usableFromInline static let `setNamedItem`: JSString = "setNamedItem" + @usableFromInline static let `setNamedItemNS`: JSString = "setNamedItemNS" + @usableFromInline static let `setParameter`: JSString = "setParameter" + @usableFromInline static let `setRangeText`: JSString = "setRangeText" + @usableFromInline static let `setRequestHeader`: JSString = "setRequestHeader" + @usableFromInline static let `setSelectionRange`: JSString = "setSelectionRange" + @usableFromInline static let `setStart`: JSString = "setStart" + @usableFromInline static let `setStartAfter`: JSString = "setStartAfter" + @usableFromInline static let `setStartBefore`: JSString = "setStartBefore" + @usableFromInline static let `setTimeout`: JSString = "setTimeout" + @usableFromInline static let `setTransform`: JSString = "setTransform" + @usableFromInline static let `setValidity`: JSString = "setValidity" + @usableFromInline static let `shadowBlur`: JSString = "shadowBlur" + @usableFromInline static let `shadowColor`: JSString = "shadowColor" + @usableFromInline static let `shadowOffsetX`: JSString = "shadowOffsetX" + @usableFromInline static let `shadowOffsetY`: JSString = "shadowOffsetY" + @usableFromInline static let `shadowRoot`: JSString = "shadowRoot" + @usableFromInline static let `shadowRootClonable`: JSString = "shadowRootClonable" + @usableFromInline static let `shadowRootDelegatesFocus`: JSString = "shadowRootDelegatesFocus" + @usableFromInline static let `shadowRootMode`: JSString = "shadowRootMode" + @usableFromInline static let `shadowRootSerializable`: JSString = "shadowRootSerializable" + @usableFromInline static let `shadowRoots`: JSString = "shadowRoots" + @usableFromInline static let `shape`: JSString = "shape" + @usableFromInline static let `shiftKey`: JSString = "shiftKey" + @usableFromInline static let `show`: JSString = "show" + @usableFromInline static let `showModal`: JSString = "showModal" + @usableFromInline static let `showPicker`: JSString = "showPicker" + @usableFromInline static let `showPopover`: JSString = "showPopover" + @usableFromInline static let `signal`: JSString = "signal" + @usableFromInline static let `singleNodeValue`: JSString = "singleNodeValue" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `sizes`: JSString = "sizes" + @usableFromInline static let `skewX`: JSString = "skewX" + @usableFromInline static let `skewXSelf`: JSString = "skewXSelf" + @usableFromInline static let `skewY`: JSString = "skewY" + @usableFromInline static let `skewYSelf`: JSString = "skewYSelf" + @usableFromInline static let `skipTransition`: JSString = "skipTransition" + @usableFromInline static let `slice`: JSString = "slice" + @usableFromInline static let `slot`: JSString = "slot" + @usableFromInline static let `slotAssignment`: JSString = "slotAssignment" + @usableFromInline static let `snapshotItem`: JSString = "snapshotItem" + @usableFromInline static let `snapshotLength`: JSString = "snapshotLength" + @usableFromInline static let `source`: JSString = "source" + @usableFromInline static let `sourceBuffer`: JSString = "sourceBuffer" + @usableFromInline static let `sourceBuffers`: JSString = "sourceBuffers" + @usableFromInline static let `sourceElement`: JSString = "sourceElement" + @usableFromInline static let `span`: JSString = "span" + @usableFromInline static let `specified`: JSString = "specified" + @usableFromInline static let `spellcheck`: JSString = "spellcheck" + @usableFromInline static let `splitText`: JSString = "splitText" + @usableFromInline static let `src`: JSString = "src" + @usableFromInline static let `srcElement`: JSString = "srcElement" + @usableFromInline static let `srcObject`: JSString = "srcObject" + @usableFromInline static let `srcdoc`: JSString = "srcdoc" + @usableFromInline static let `srclang`: JSString = "srclang" + @usableFromInline static let `srcset`: JSString = "srcset" + @usableFromInline static let `standby`: JSString = "standby" + @usableFromInline static let `start`: JSString = "start" + @usableFromInline static let `startContainer`: JSString = "startContainer" + @usableFromInline static let `startMessages`: JSString = "startMessages" + @usableFromInline static let `startOffset`: JSString = "startOffset" + @usableFromInline static let `startTime`: JSString = "startTime" + @usableFromInline static let `state`: JSString = "state" + @usableFromInline static let `states`: JSString = "states" + @usableFromInline static let `status`: JSString = "status" + @usableFromInline static let `statusText`: JSString = "statusText" + @usableFromInline static let `statusbar`: JSString = "statusbar" + @usableFromInline static let `step`: JSString = "step" + @usableFromInline static let `stepDown`: JSString = "stepDown" + @usableFromInline static let `stepMismatch`: JSString = "stepMismatch" + @usableFromInline static let `stepUp`: JSString = "stepUp" + @usableFromInline static let `stop`: JSString = "stop" + @usableFromInline static let `stopImmediatePropagation`: JSString = "stopImmediatePropagation" + @usableFromInline static let `stopPropagation`: JSString = "stopPropagation" + @usableFromInline static let `storageArea`: JSString = "storageArea" + @usableFromInline static let `stream`: JSString = "stream" + @usableFromInline static let `streaming`: JSString = "streaming" + @usableFromInline static let `stride`: JSString = "stride" + @usableFromInline static let `stringValue`: JSString = "stringValue" + @usableFromInline static let `stroke`: JSString = "stroke" + @usableFromInline static let `strokeRect`: JSString = "strokeRect" + @usableFromInline static let `strokeStyle`: JSString = "strokeStyle" + @usableFromInline static let `strokeText`: JSString = "strokeText" + @usableFromInline static let `structuredClone`: JSString = "structuredClone" + @usableFromInline static let `submit`: JSString = "submit" + @usableFromInline static let `submitter`: JSString = "submitter" + @usableFromInline static let `substringData`: JSString = "substringData" + @usableFromInline static let `subtree`: JSString = "subtree" + @usableFromInline static let `suffixes`: JSString = "suffixes" + @usableFromInline static let `summary`: JSString = "summary" + @usableFromInline static let `supported`: JSString = "supported" + @usableFromInline static let `supportedEntryTypes`: JSString = "supportedEntryTypes" + @usableFromInline static let `supports`: JSString = "supports" + @usableFromInline static let `surroundContents`: JSString = "surroundContents" + @usableFromInline static let `svc`: JSString = "svc" + @usableFromInline static let `systemId`: JSString = "systemId" + @usableFromInline static let `tBodies`: JSString = "tBodies" + @usableFromInline static let `tFoot`: JSString = "tFoot" + @usableFromInline static let `tHead`: JSString = "tHead" + @usableFromInline static let `tabIndex`: JSString = "tabIndex" + @usableFromInline static let `tagName`: JSString = "tagName" + @usableFromInline static let `taintEnabled`: JSString = "taintEnabled" + @usableFromInline static let `takeRecords`: JSString = "takeRecords" + @usableFromInline static let `target`: JSString = "target" + @usableFromInline static let `targetOrigin`: JSString = "targetOrigin" + @usableFromInline static let `targetTouches`: JSString = "targetTouches" + @usableFromInline static let `tee`: JSString = "tee" + @usableFromInline static let `temporalLayerId`: JSString = "temporalLayerId" + @usableFromInline static let `terminate`: JSString = "terminate" + @usableFromInline static let `test`: JSString = "test" + @usableFromInline static let `text`: JSString = "text" + @usableFromInline static let `textAlign`: JSString = "textAlign" + @usableFromInline static let `textBaseline`: JSString = "textBaseline" + @usableFromInline static let `textContent`: JSString = "textContent" + @usableFromInline static let `textLength`: JSString = "textLength" + @usableFromInline static let `textRendering`: JSString = "textRendering" + @usableFromInline static let `textTracks`: JSString = "textTracks" + @usableFromInline static let `throwIfAborted`: JSString = "throwIfAborted" + @usableFromInline static let `timeOrigin`: JSString = "timeOrigin" + @usableFromInline static let `timeStamp`: JSString = "timeStamp" + @usableFromInline static let `timecode`: JSString = "timecode" + @usableFromInline static let `timeout`: JSString = "timeout" + @usableFromInline static let `timestamp`: JSString = "timestamp" + @usableFromInline static let `timestampOffset`: JSString = "timestampOffset" + @usableFromInline static let `title`: JSString = "title" + @usableFromInline static let `toBlob`: JSString = "toBlob" + @usableFromInline static let `toBox`: JSString = "toBox" + @usableFromInline static let `toDataURL`: JSString = "toDataURL" + @usableFromInline static let `toFloat32Array`: JSString = "toFloat32Array" + @usableFromInline static let `toFloat64Array`: JSString = "toFloat64Array" + @usableFromInline static let `toJSON`: JSString = "toJSON" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `toggle`: JSString = "toggle" + @usableFromInline static let `toggleAttribute`: JSString = "toggleAttribute" + @usableFromInline static let `togglePopover`: JSString = "togglePopover" + @usableFromInline static let `tooLong`: JSString = "tooLong" + @usableFromInline static let `tooShort`: JSString = "tooShort" + @usableFromInline static let `toolbar`: JSString = "toolbar" + @usableFromInline static let `top`: JSString = "top" + @usableFromInline static let `total`: JSString = "total" + @usableFromInline static let `touchType`: JSString = "touchType" + @usableFromInline static let `touches`: JSString = "touches" + @usableFromInline static let `track`: JSString = "track" + @usableFromInline static let `tracks`: JSString = "tracks" + @usableFromInline static let `transfer`: JSString = "transfer" + @usableFromInline static let `transferControlToOffscreen`: JSString = "transferControlToOffscreen" + @usableFromInline static let `transferFromImageBitmap`: JSString = "transferFromImageBitmap" + @usableFromInline static let `transferToImageBitmap`: JSString = "transferToImageBitmap" + @usableFromInline static let `transform`: JSString = "transform" + @usableFromInline static let `transformPoint`: JSString = "transformPoint" + @usableFromInline static let `transformToDocument`: JSString = "transformToDocument" + @usableFromInline static let `transformToFragment`: JSString = "transformToFragment" + @usableFromInline static let `transition`: JSString = "transition" + @usableFromInline static let `translate`: JSString = "translate" + @usableFromInline static let `translateSelf`: JSString = "translateSelf" + @usableFromInline static let `traverseTo`: JSString = "traverseTo" + @usableFromInline static let `trueSpeed`: JSString = "trueSpeed" + @usableFromInline static let `trustedTypes`: JSString = "trustedTypes" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `typeMismatch`: JSString = "typeMismatch" + @usableFromInline static let `types`: JSString = "types" + @usableFromInline static let `unregister`: JSString = "unregister" + @usableFromInline static let `unregisterProtocolHandler`: JSString = "unregisterProtocolHandler" + @usableFromInline static let `update`: JSString = "update" + @usableFromInline static let `updateCallbackDone`: JSString = "updateCallbackDone" + @usableFromInline static let `updateCurrentEntry`: JSString = "updateCurrentEntry" + @usableFromInline static let `updateViaCache`: JSString = "updateViaCache" + @usableFromInline static let `updating`: JSString = "updating" + @usableFromInline static let `upgrade`: JSString = "upgrade" + @usableFromInline static let `upload`: JSString = "upload" + @usableFromInline static let `url`: JSString = "url" + @usableFromInline static let `urlPattern`: JSString = "urlPattern" + @usableFromInline static let `useMap`: JSString = "useMap" + @usableFromInline static let `userActivation`: JSString = "userActivation" + @usableFromInline static let `userAgent`: JSString = "userAgent" + @usableFromInline static let `userInitiated`: JSString = "userInitiated" + @usableFromInline static let `userInsertedDevices`: JSString = "userInsertedDevices" + @usableFromInline static let `username`: JSString = "username" + @usableFromInline static let `vAlign`: JSString = "vAlign" + @usableFromInline static let `vLink`: JSString = "vLink" + @usableFromInline static let `valid`: JSString = "valid" + @usableFromInline static let `validationMessage`: JSString = "validationMessage" + @usableFromInline static let `validity`: JSString = "validity" + @usableFromInline static let `value`: JSString = "value" + @usableFromInline static let `valueAsDate`: JSString = "valueAsDate" + @usableFromInline static let `valueAsNumber`: JSString = "valueAsNumber" + @usableFromInline static let `valueMissing`: JSString = "valueMissing" + @usableFromInline static let `valueType`: JSString = "valueType" + @usableFromInline static let `vendor`: JSString = "vendor" + @usableFromInline static let `vendorSub`: JSString = "vendorSub" + @usableFromInline static let `version`: JSString = "version" + @usableFromInline static let `video`: JSString = "video" + @usableFromInline static let `videoBitsPerSecond`: JSString = "videoBitsPerSecond" + @usableFromInline static let `videoHeight`: JSString = "videoHeight" + @usableFromInline static let `videoKeyFrameIntervalCount`: JSString = "videoKeyFrameIntervalCount" + @usableFromInline static let `videoKeyFrameIntervalDuration`: JSString = "videoKeyFrameIntervalDuration" + @usableFromInline static let `videoTracks`: JSString = "videoTracks" + @usableFromInline static let `videoWidth`: JSString = "videoWidth" + @usableFromInline static let `view`: JSString = "view" + @usableFromInline static let `viewTransition`: JSString = "viewTransition" + @usableFromInline static let `visibilityProperty`: JSString = "visibilityProperty" + @usableFromInline static let `visibilityState`: JSString = "visibilityState" + @usableFromInline static let `visible`: JSString = "visible" + @usableFromInline static let `visibleRect`: JSString = "visibleRect" + @usableFromInline static let `visualViewport`: JSString = "visualViewport" + @usableFromInline static let `vlinkColor`: JSString = "vlinkColor" + @usableFromInline static let `volume`: JSString = "volume" + @usableFromInline static let `vspace`: JSString = "vspace" + @usableFromInline static let `w`: JSString = "w" + @usableFromInline static let `waiting`: JSString = "waiting" + @usableFromInline static let `webkitMatchesSelector`: JSString = "webkitMatchesSelector" + @usableFromInline static let `whatToShow`: JSString = "whatToShow" + @usableFromInline static let `whenDefined`: JSString = "whenDefined" + @usableFromInline static let `which`: JSString = "which" + @usableFromInline static let `wholeText`: JSString = "wholeText" + @usableFromInline static let `width`: JSString = "width" + @usableFromInline static let `willReadFrequently`: JSString = "willReadFrequently" + @usableFromInline static let `willValidate`: JSString = "willValidate" + @usableFromInline static let `window`: JSString = "window" + @usableFromInline static let `withCredentials`: JSString = "withCredentials" + @usableFromInline static let `wordSpacing`: JSString = "wordSpacing" + @usableFromInline static let `wrap`: JSString = "wrap" + @usableFromInline static let `writable`: JSString = "writable" + @usableFromInline static let `writableType`: JSString = "writableType" + @usableFromInline static let `write`: JSString = "write" + @usableFromInline static let `writeln`: JSString = "writeln" + @usableFromInline static let `writingSuggestions`: JSString = "writingSuggestions" + @usableFromInline static let `x`: JSString = "x" + @usableFromInline static let `y`: JSString = "y" + @usableFromInline static let `z`: JSString = "z" } - public protocol Any_AddEventListenerOptions_or_Bool: ConvertibleToJSValue {} extension AddEventListenerOptions: Any_AddEventListenerOptions_or_Bool {} extension Bool: Any_AddEventListenerOptions_or_Bool {} @@ -20776,12 +23678,11 @@ public enum AddEventListenerOptions_or_Bool: JSValueCompatible, Any_AddEventList case addEventListenerOptions(AddEventListenerOptions) case bool(Bool) - init(_ addEventListenerOptions: AddEventListenerOptions) { + public init(_ addEventListenerOptions: AddEventListenerOptions) { let val: AddEventListenerOptions_or_Bool = .addEventListenerOptions(addEventListenerOptions) self = val } - - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: AddEventListenerOptions_or_Bool = .bool(bool) self = val } @@ -20792,7 +23693,6 @@ public enum AddEventListenerOptions_or_Bool: JSValueCompatible, Any_AddEventList default: return nil } } - public var bool: Bool? { switch self { case let .bool(bool): return bool @@ -20804,22 +23704,17 @@ public enum AddEventListenerOptions_or_Bool: JSValueCompatible, Any_AddEventList if let addEventListenerOptions: AddEventListenerOptions = value.fromJSValue() { return .addEventListenerOptions(addEventListenerOptions) } - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } return nil } public var jsValue: JSValue { switch self { - case let .addEventListenerOptions(addEventListenerOptions): - return addEventListenerOptions.jsValue - case let .bool(bool): - return bool.jsValue + case let .addEventListenerOptions(addEventListenerOptions): return addEventListenerOptions.jsValue + case let .bool(bool): return bool.jsValue } } } - public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {} extension ArrayBuffer: Any_ArrayBuffer_or_String {} extension String: Any_ArrayBuffer_or_String {} @@ -20828,12 +23723,11 @@ public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String case arrayBuffer(ArrayBuffer) case string(String) - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: ArrayBuffer_or_String = .arrayBuffer(arrayBuffer) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: ArrayBuffer_or_String = .string(string) self = val } @@ -20844,7 +23738,6 @@ public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -20853,25 +23746,18 @@ public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String } public static func construct(from value: JSValue) -> Self? { - if let arrayBuffer: ArrayBuffer = value.fromJSValue() { - return .arrayBuffer(arrayBuffer) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let arrayBuffer: ArrayBuffer = value.fromJSValue() { return .arrayBuffer(arrayBuffer) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .arrayBuffer(arrayBuffer): - return arrayBuffer.jsValue - case let .string(string): - return string.jsValue + case let .arrayBuffer(arrayBuffer): return arrayBuffer.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_AudioTrack_or_TextTrack_or_VideoTrack: ConvertibleToJSValue {} extension AudioTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {} extension TextTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {} @@ -20882,17 +23768,15 @@ public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioT case textTrack(TextTrack) case videoTrack(VideoTrack) - init(_ audioTrack: AudioTrack) { + public init(_ audioTrack: AudioTrack) { let val: AudioTrack_or_TextTrack_or_VideoTrack = .audioTrack(audioTrack) self = val } - - init(_ textTrack: TextTrack) { + public init(_ textTrack: TextTrack) { let val: AudioTrack_or_TextTrack_or_VideoTrack = .textTrack(textTrack) self = val } - - init(_ videoTrack: VideoTrack) { + public init(_ videoTrack: VideoTrack) { let val: AudioTrack_or_TextTrack_or_VideoTrack = .videoTrack(videoTrack) self = val } @@ -20903,14 +23787,12 @@ public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioT default: return nil } } - public var textTrack: TextTrack? { switch self { case let .textTrack(textTrack): return textTrack default: return nil } } - public var videoTrack: VideoTrack? { switch self { case let .videoTrack(videoTrack): return videoTrack @@ -20919,30 +23801,20 @@ public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioT } public static func construct(from value: JSValue) -> Self? { - if let audioTrack: AudioTrack = value.fromJSValue() { - return .audioTrack(audioTrack) - } - if let textTrack: TextTrack = value.fromJSValue() { - return .textTrack(textTrack) - } - if let videoTrack: VideoTrack = value.fromJSValue() { - return .videoTrack(videoTrack) - } + if let audioTrack: AudioTrack = value.fromJSValue() { return .audioTrack(audioTrack) } + if let textTrack: TextTrack = value.fromJSValue() { return .textTrack(textTrack) } + if let videoTrack: VideoTrack = value.fromJSValue() { return .videoTrack(videoTrack) } return nil } public var jsValue: JSValue { switch self { - case let .audioTrack(audioTrack): - return audioTrack.jsValue - case let .textTrack(textTrack): - return textTrack.jsValue - case let .videoTrack(videoTrack): - return videoTrack.jsValue + case let .audioTrack(audioTrack): return audioTrack.jsValue + case let .textTrack(textTrack): return textTrack.jsValue + case let .videoTrack(videoTrack): return videoTrack.jsValue } } } - public protocol Any_BlobPart: ConvertibleToJSValue {} extension Blob: Any_BlobPart {} extension BufferSource: Any_BlobPart {} @@ -20953,27 +23825,23 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart { case bufferSource(BufferSource) case string(String) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: BlobPart = .blob(blob) self = val } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: BlobPart = .bufferSource(bufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: BlobPart = .string(string) self = val } @@ -20984,14 +23852,12 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart { default: return nil } } - public var bufferSource: BufferSource? { switch self { case let .bufferSource(bufferSource): return bufferSource default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -21000,30 +23866,20 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart { } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let bufferSource: BufferSource = value.fromJSValue() { return .bufferSource(bufferSource) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .string(string): - return string.jsValue + case let .blob(blob): return blob.jsValue + case let .bufferSource(bufferSource): return bufferSource.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_Bool_or_Double_or_String: ConvertibleToJSValue {} extension Bool: Any_Bool_or_Double_or_String {} extension Double: Any_Bool_or_Double_or_String {} @@ -21034,17 +23890,15 @@ public enum Bool_or_Double_or_String: JSValueCompatible, Any_Bool_or_Double_or_S case double(Double) case string(String) - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: Bool_or_Double_or_String = .bool(bool) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: Bool_or_Double_or_String = .double(double) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: Bool_or_Double_or_String = .string(string) self = val } @@ -21055,14 +23909,12 @@ public enum Bool_or_Double_or_String: JSValueCompatible, Any_Bool_or_Double_or_S default: return nil } } - public var double: Double? { switch self { case let .double(double): return double default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -21071,30 +23923,20 @@ public enum Bool_or_Double_or_String: JSValueCompatible, Any_Bool_or_Double_or_S } public static func construct(from value: JSValue) -> Self? { - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } - if let double: Double = value.fromJSValue() { - return .double(double) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } + if let double: Double = value.fromJSValue() { return .double(double) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .bool(bool): - return bool.jsValue - case let .double(double): - return double.jsValue - case let .string(string): - return string.jsValue + case let .bool(bool): return bool.jsValue + case let .double(double): return double.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_Bool_or_EventListenerOptions: ConvertibleToJSValue {} extension Bool: Any_Bool_or_EventListenerOptions {} extension EventListenerOptions: Any_Bool_or_EventListenerOptions {} @@ -21103,12 +23945,11 @@ public enum Bool_or_EventListenerOptions: JSValueCompatible, Any_Bool_or_EventLi case bool(Bool) case eventListenerOptions(EventListenerOptions) - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: Bool_or_EventListenerOptions = .bool(bool) self = val } - - init(_ eventListenerOptions: EventListenerOptions) { + public init(_ eventListenerOptions: EventListenerOptions) { let val: Bool_or_EventListenerOptions = .eventListenerOptions(eventListenerOptions) self = val } @@ -21119,7 +23960,6 @@ public enum Bool_or_EventListenerOptions: JSValueCompatible, Any_Bool_or_EventLi default: return nil } } - public var eventListenerOptions: EventListenerOptions? { switch self { case let .eventListenerOptions(eventListenerOptions): return eventListenerOptions @@ -21128,9 +23968,7 @@ public enum Bool_or_EventListenerOptions: JSValueCompatible, Any_Bool_or_EventLi } public static func construct(from value: JSValue) -> Self? { - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } if let eventListenerOptions: EventListenerOptions = value.fromJSValue() { return .eventListenerOptions(eventListenerOptions) } @@ -21139,14 +23977,11 @@ public enum Bool_or_EventListenerOptions: JSValueCompatible, Any_Bool_or_EventLi public var jsValue: JSValue { switch self { - case let .bool(bool): - return bool.jsValue - case let .eventListenerOptions(eventListenerOptions): - return eventListenerOptions.jsValue + case let .bool(bool): return bool.jsValue + case let .eventListenerOptions(eventListenerOptions): return eventListenerOptions.jsValue } } } - public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {} extension Bool: Any_Bool_or_MediaTrackConstraints {} extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {} @@ -21155,12 +23990,11 @@ public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaT case bool(Bool) case mediaTrackConstraints(MediaTrackConstraints) - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: Bool_or_MediaTrackConstraints = .bool(bool) self = val } - - init(_ mediaTrackConstraints: MediaTrackConstraints) { + public init(_ mediaTrackConstraints: MediaTrackConstraints) { let val: Bool_or_MediaTrackConstraints = .mediaTrackConstraints(mediaTrackConstraints) self = val } @@ -21171,7 +24005,6 @@ public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaT default: return nil } } - public var mediaTrackConstraints: MediaTrackConstraints? { switch self { case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints @@ -21180,9 +24013,7 @@ public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaT } public static func construct(from value: JSValue) -> Self? { - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() { return .mediaTrackConstraints(mediaTrackConstraints) } @@ -21191,14 +24022,11 @@ public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaT public var jsValue: JSValue { switch self { - case let .bool(bool): - return bool.jsValue - case let .mediaTrackConstraints(mediaTrackConstraints): - return mediaTrackConstraints.jsValue + case let .bool(bool): return bool.jsValue + case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints.jsValue } } } - public protocol Any_Bool_or_ScrollIntoViewOptions: ConvertibleToJSValue {} extension Bool: Any_Bool_or_ScrollIntoViewOptions {} extension ScrollIntoViewOptions: Any_Bool_or_ScrollIntoViewOptions {} @@ -21207,12 +24035,11 @@ public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_Scroll case bool(Bool) case scrollIntoViewOptions(ScrollIntoViewOptions) - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: Bool_or_ScrollIntoViewOptions = .bool(bool) self = val } - - init(_ scrollIntoViewOptions: ScrollIntoViewOptions) { + public init(_ scrollIntoViewOptions: ScrollIntoViewOptions) { let val: Bool_or_ScrollIntoViewOptions = .scrollIntoViewOptions(scrollIntoViewOptions) self = val } @@ -21223,7 +24050,6 @@ public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_Scroll default: return nil } } - public var scrollIntoViewOptions: ScrollIntoViewOptions? { switch self { case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions @@ -21232,9 +24058,7 @@ public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_Scroll } public static func construct(from value: JSValue) -> Self? { - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() { return .scrollIntoViewOptions(scrollIntoViewOptions) } @@ -21243,14 +24067,56 @@ public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_Scroll public var jsValue: JSValue { switch self { - case let .bool(bool): - return bool.jsValue - case let .scrollIntoViewOptions(scrollIntoViewOptions): - return scrollIntoViewOptions.jsValue + case let .bool(bool): return bool.jsValue + case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions.jsValue } } } +public protocol Any_Bool_or_TogglePopoverOptions: ConvertibleToJSValue {} +extension Bool: Any_Bool_or_TogglePopoverOptions {} +extension TogglePopoverOptions: Any_Bool_or_TogglePopoverOptions {} + +public enum Bool_or_TogglePopoverOptions: JSValueCompatible, Any_Bool_or_TogglePopoverOptions { + case bool(Bool) + case togglePopoverOptions(TogglePopoverOptions) + + public init(_ bool: Bool) { + let val: Bool_or_TogglePopoverOptions = .bool(bool) + self = val + } + public init(_ togglePopoverOptions: TogglePopoverOptions) { + let val: Bool_or_TogglePopoverOptions = .togglePopoverOptions(togglePopoverOptions) + self = val + } + + public var bool: Bool? { + switch self { + case let .bool(bool): return bool + default: return nil + } + } + public var togglePopoverOptions: TogglePopoverOptions? { + switch self { + case let .togglePopoverOptions(togglePopoverOptions): return togglePopoverOptions + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let bool: Bool = value.fromJSValue() { return .bool(bool) } + if let togglePopoverOptions: TogglePopoverOptions = value.fromJSValue() { + return .togglePopoverOptions(togglePopoverOptions) + } + return nil + } + public var jsValue: JSValue { + switch self { + case let .bool(bool): return bool.jsValue + case let .togglePopoverOptions(togglePopoverOptions): return togglePopoverOptions.jsValue + } + } +} public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {} extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {} extension Element: Any_CSSPseudoElement_or_Element {} @@ -21259,12 +24125,11 @@ public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement case cssPseudoElement(CSSPseudoElement) case element(Element) - init(_ cssPseudoElement: CSSPseudoElement) { + public init(_ cssPseudoElement: CSSPseudoElement) { let val: CSSPseudoElement_or_Element = .cssPseudoElement(cssPseudoElement) self = val } - - init(_ element: Element) { + public init(_ element: Element) { let val: CSSPseudoElement_or_Element = .element(element) self = val } @@ -21275,7 +24140,6 @@ public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement default: return nil } } - public var element: Element? { switch self { case let .element(element): return element @@ -21284,46 +24148,38 @@ public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement } public static func construct(from value: JSValue) -> Self? { - if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { - return .cssPseudoElement(cssPseudoElement) - } - if let element: Element = value.fromJSValue() { - return .element(element) - } + if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { return .cssPseudoElement(cssPseudoElement) } + if let element: Element = value.fromJSValue() { return .element(element) } return nil } public var jsValue: JSValue { switch self { - case let .cssPseudoElement(cssPseudoElement): - return cssPseudoElement.jsValue - case let .element(element): - return element.jsValue + case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement.jsValue + case let .element(element): return element.jsValue } } } - public protocol Any_CanvasGradient_or_CanvasPattern_or_String: ConvertibleToJSValue {} extension CanvasGradient: Any_CanvasGradient_or_CanvasPattern_or_String {} extension CanvasPattern: Any_CanvasGradient_or_CanvasPattern_or_String {} extension String: Any_CanvasGradient_or_CanvasPattern_or_String {} -public enum CanvasGradient_or_CanvasPattern_or_String: JSValueCompatible, Any_CanvasGradient_or_CanvasPattern_or_String { +public enum CanvasGradient_or_CanvasPattern_or_String: JSValueCompatible, Any_CanvasGradient_or_CanvasPattern_or_String +{ case canvasGradient(CanvasGradient) case canvasPattern(CanvasPattern) case string(String) - init(_ canvasGradient: CanvasGradient) { + public init(_ canvasGradient: CanvasGradient) { let val: CanvasGradient_or_CanvasPattern_or_String = .canvasGradient(canvasGradient) self = val } - - init(_ canvasPattern: CanvasPattern) { + public init(_ canvasPattern: CanvasPattern) { let val: CanvasGradient_or_CanvasPattern_or_String = .canvasPattern(canvasPattern) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: CanvasGradient_or_CanvasPattern_or_String = .string(string) self = val } @@ -21334,14 +24190,12 @@ public enum CanvasGradient_or_CanvasPattern_or_String: JSValueCompatible, Any_Ca default: return nil } } - public var canvasPattern: CanvasPattern? { switch self { case let .canvasPattern(canvasPattern): return canvasPattern default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -21350,30 +24204,20 @@ public enum CanvasGradient_or_CanvasPattern_or_String: JSValueCompatible, Any_Ca } public static func construct(from value: JSValue) -> Self? { - if let canvasGradient: CanvasGradient = value.fromJSValue() { - return .canvasGradient(canvasGradient) - } - if let canvasPattern: CanvasPattern = value.fromJSValue() { - return .canvasPattern(canvasPattern) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let canvasGradient: CanvasGradient = value.fromJSValue() { return .canvasGradient(canvasGradient) } + if let canvasPattern: CanvasPattern = value.fromJSValue() { return .canvasPattern(canvasPattern) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .canvasGradient(canvasGradient): - return canvasGradient.jsValue - case let .canvasPattern(canvasPattern): - return canvasPattern.jsValue - case let .string(string): - return string.jsValue + case let .canvasGradient(canvasGradient): return canvasGradient.jsValue + case let .canvasPattern(canvasPattern): return canvasPattern.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_CanvasImageSource: ConvertibleToJSValue {} extension HTMLCanvasElement: Any_CanvasImageSource {} extension HTMLOrSVGImageElement: Any_CanvasImageSource {} @@ -21390,32 +24234,27 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { case offscreenCanvas(OffscreenCanvas) case videoFrame(VideoFrame) - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: CanvasImageSource = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ htmlImageElement: HTMLImageElement) { - let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement) + public init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) { + let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) self = val } - - init(_ htmlVideoElement: HTMLVideoElement) { + public init(_ htmlVideoElement: HTMLVideoElement) { let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement) self = val } - - init(_ imageBitmap: ImageBitmap) { + public init(_ imageBitmap: ImageBitmap) { let val: CanvasImageSource = .imageBitmap(imageBitmap) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: CanvasImageSource = .offscreenCanvas(offscreenCanvas) self = val } - - init(_ videoFrame: VideoFrame) { + public init(_ videoFrame: VideoFrame) { let val: CanvasImageSource = .videoFrame(videoFrame) self = val } @@ -21426,35 +24265,30 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { default: return nil } } - public var htmlOrSVGImageElement: HTMLOrSVGImageElement? { switch self { case let .htmlOrSVGImageElement(htmlOrSVGImageElement): return htmlOrSVGImageElement default: return nil } } - public var htmlVideoElement: HTMLVideoElement? { switch self { case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement default: return nil } } - public var imageBitmap: ImageBitmap? { switch self { case let .imageBitmap(imageBitmap): return imageBitmap default: return nil } } - public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas default: return nil } } - public var videoFrame: VideoFrame? { switch self { case let .videoFrame(videoFrame): return videoFrame @@ -21469,39 +24303,24 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource { if let htmlOrSVGImageElement: HTMLOrSVGImageElement = value.fromJSValue() { return .htmlOrSVGImageElement(htmlOrSVGImageElement) } - if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { - return .htmlVideoElement(htmlVideoElement) - } - if let imageBitmap: ImageBitmap = value.fromJSValue() { - return .imageBitmap(imageBitmap) - } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } - if let videoFrame: VideoFrame = value.fromJSValue() { - return .videoFrame(videoFrame) - } + if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { return .htmlVideoElement(htmlVideoElement) } + if let imageBitmap: ImageBitmap = value.fromJSValue() { return .imageBitmap(imageBitmap) } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } + if let videoFrame: VideoFrame = value.fromJSValue() { return .videoFrame(videoFrame) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .htmlOrSVGImageElement(htmlOrSVGImageElement): - return htmlOrSVGImageElement.jsValue - case let .htmlVideoElement(htmlVideoElement): - return htmlVideoElement.jsValue - case let .imageBitmap(imageBitmap): - return imageBitmap.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue - case let .videoFrame(videoFrame): - return videoFrame.jsValue + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .htmlOrSVGImageElement(htmlOrSVGImageElement): return htmlOrSVGImageElement.jsValue + case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement.jsValue + case let .imageBitmap(imageBitmap): return imageBitmap.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue + case let .videoFrame(videoFrame): return videoFrame.jsValue } } } - public protocol Any_ConstrainBoolean: ConvertibleToJSValue {} extension Bool: Any_ConstrainBoolean {} extension ConstrainBooleanParameters: Any_ConstrainBoolean {} @@ -21510,12 +24329,11 @@ public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean { case bool(Bool) case constrainBooleanParameters(ConstrainBooleanParameters) - init(_ bool: Bool) { + public init(_ bool: Bool) { let val: ConstrainBoolean = .bool(bool) self = val } - - init(_ constrainBooleanParameters: ConstrainBooleanParameters) { + public init(_ constrainBooleanParameters: ConstrainBooleanParameters) { let val: ConstrainBoolean = .constrainBooleanParameters(constrainBooleanParameters) self = val } @@ -21526,7 +24344,6 @@ public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean { default: return nil } } - public var constrainBooleanParameters: ConstrainBooleanParameters? { switch self { case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters @@ -21535,9 +24352,7 @@ public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean { } public static func construct(from value: JSValue) -> Self? { - if let bool: Bool = value.fromJSValue() { - return .bool(bool) - } + if let bool: Bool = value.fromJSValue() { return .bool(bool) } if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() { return .constrainBooleanParameters(constrainBooleanParameters) } @@ -21546,14 +24361,11 @@ public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean { public var jsValue: JSValue { switch self { - case let .bool(bool): - return bool.jsValue - case let .constrainBooleanParameters(constrainBooleanParameters): - return constrainBooleanParameters.jsValue + case let .bool(bool): return bool.jsValue + case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters.jsValue } } } - public protocol Any_ConstrainDOMString: ConvertibleToJSValue {} extension ConstrainDOMStringParameters: Any_ConstrainDOMString {} extension String: Any_ConstrainDOMString {} @@ -21564,17 +24376,15 @@ public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString { case string(String) case seq_of_String([String]) - init(_ constrainDOMStringParameters: ConstrainDOMStringParameters) { + public init(_ constrainDOMStringParameters: ConstrainDOMStringParameters) { let val: ConstrainDOMString = .constrainDOMStringParameters(constrainDOMStringParameters) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: ConstrainDOMString = .string(string) self = val } - - init(_ seq_of_String: [String]) { + public init(_ seq_of_String: [String]) { let val: ConstrainDOMString = .seq_of_String(seq_of_String) self = val } @@ -21585,14 +24395,12 @@ public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString { default: return nil } } - public var string: String? { switch self { case let .string(string): return string default: return nil } } - public var seq_of_String: [String]? { switch self { case let .seq_of_String(seq_of_String): return seq_of_String @@ -21604,12 +24412,8 @@ public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString { if let constrainDOMStringParameters: ConstrainDOMStringParameters = value.fromJSValue() { return .constrainDOMStringParameters(constrainDOMStringParameters) } - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_String: [String] = value.fromJSValue() { - return .seq_of_String(seq_of_String) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let seq_of_String: [String] = value.fromJSValue() { return .seq_of_String(seq_of_String) } return nil } @@ -21617,14 +24421,11 @@ public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString { switch self { case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters.jsValue - case let .string(string): - return string.jsValue - case let .seq_of_String(seq_of_String): - return seq_of_String.jsValue + case let .string(string): return string.jsValue + case let .seq_of_String(seq_of_String): return seq_of_String.jsValue } } } - public protocol Any_ConstrainDouble: ConvertibleToJSValue {} extension ConstrainDoubleRange: Any_ConstrainDouble {} extension Double: Any_ConstrainDouble {} @@ -21633,12 +24434,11 @@ public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble { case constrainDoubleRange(ConstrainDoubleRange) case double(Double) - init(_ constrainDoubleRange: ConstrainDoubleRange) { + public init(_ constrainDoubleRange: ConstrainDoubleRange) { let val: ConstrainDouble = .constrainDoubleRange(constrainDoubleRange) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: ConstrainDouble = .double(double) self = val } @@ -21649,7 +24449,6 @@ public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble { default: return nil } } - public var double: Double? { switch self { case let .double(double): return double @@ -21661,22 +24460,17 @@ public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble { if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() { return .constrainDoubleRange(constrainDoubleRange) } - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let double: Double = value.fromJSValue() { return .double(double) } return nil } public var jsValue: JSValue { switch self { - case let .constrainDoubleRange(constrainDoubleRange): - return constrainDoubleRange.jsValue - case let .double(double): - return double.jsValue + case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange.jsValue + case let .double(double): return double.jsValue } } } - public protocol Any_ConstrainULong: ConvertibleToJSValue {} extension ConstrainULongRange: Any_ConstrainULong {} extension UInt32: Any_ConstrainULong {} @@ -21685,12 +24479,11 @@ public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong { case constrainULongRange(ConstrainULongRange) case uInt32(UInt32) - init(_ constrainULongRange: ConstrainULongRange) { + public init(_ constrainULongRange: ConstrainULongRange) { let val: ConstrainULong = .constrainULongRange(constrainULongRange) self = val } - - init(_ uInt32: UInt32) { + public init(_ uInt32: UInt32) { let val: ConstrainULong = .uInt32(uInt32) self = val } @@ -21701,7 +24494,6 @@ public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong { default: return nil } } - public var uInt32: UInt32? { switch self { case let .uInt32(uInt32): return uInt32 @@ -21713,22 +24505,17 @@ public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong { if let constrainULongRange: ConstrainULongRange = value.fromJSValue() { return .constrainULongRange(constrainULongRange) } - if let uInt32: UInt32 = value.fromJSValue() { - return .uInt32(uInt32) - } + if let uInt32: UInt32 = value.fromJSValue() { return .uInt32(uInt32) } return nil } public var jsValue: JSValue { switch self { - case let .constrainULongRange(constrainULongRange): - return constrainULongRange.jsValue - case let .uInt32(uInt32): - return uInt32.jsValue + case let .constrainULongRange(constrainULongRange): return constrainULongRange.jsValue + case let .uInt32(uInt32): return uInt32.jsValue } } } - public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {} extension DOMPointInit: Any_DOMPointInit_or_Double {} extension Double: Any_DOMPointInit_or_Double {} @@ -21737,12 +24524,11 @@ public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Doubl case domPointInit(DOMPointInit) case double(Double) - init(_ domPointInit: DOMPointInit) { + public init(_ domPointInit: DOMPointInit) { let val: DOMPointInit_or_Double = .domPointInit(domPointInit) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: DOMPointInit_or_Double = .double(double) self = val } @@ -21753,7 +24539,6 @@ public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Doubl default: return nil } } - public var double: Double? { switch self { case let .double(double): return double @@ -21762,47 +24547,42 @@ public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Doubl } public static func construct(from value: JSValue) -> Self? { - if let domPointInit: DOMPointInit = value.fromJSValue() { - return .domPointInit(domPointInit) - } - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let domPointInit: DOMPointInit = value.fromJSValue() { return .domPointInit(domPointInit) } + if let double: Double = value.fromJSValue() { return .double(double) } return nil } public var jsValue: JSValue { switch self { - case let .domPointInit(domPointInit): - return domPointInit.jsValue - case let .double(double): - return double.jsValue + case let .domPointInit(domPointInit): return domPointInit.jsValue + case let .double(double): return double.jsValue } } } - public protocol Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: ConvertibleToJSValue {} extension DOMPointInit: Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double {} extension Double: Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double {} extension Array: Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double where Element == DOMPointInit_or_Double {} -public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double { +public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueCompatible, + Any_DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double +{ case domPointInit(DOMPointInit) case double(Double) case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double]) - init(_ domPointInit: DOMPointInit) { + public init(_ domPointInit: DOMPointInit) { let val: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double = .domPointInit(domPointInit) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double = .double(double) self = val } - - init(_ seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double]) { - let val: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double = .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_Double) + public init(_ seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double]) { + let val: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double = .seq_of_DOMPointInit_or_Double( + seq_of_DOMPointInit_or_Double + ) self = val } @@ -21812,14 +24592,12 @@ public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueComp default: return nil } } - public var double: Double? { switch self { case let .double(double): return double default: return nil } } - public var seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double]? { switch self { case let .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_Double): return seq_of_DOMPointInit_or_Double @@ -21828,12 +24606,8 @@ public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueComp } public static func construct(from value: JSValue) -> Self? { - if let domPointInit: DOMPointInit = value.fromJSValue() { - return .domPointInit(domPointInit) - } - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let domPointInit: DOMPointInit = value.fromJSValue() { return .domPointInit(domPointInit) } + if let double: Double = value.fromJSValue() { return .double(double) } if let seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() { return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_Double) } @@ -21842,16 +24616,13 @@ public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueComp public var jsValue: JSValue { switch self { - case let .domPointInit(domPointInit): - return domPointInit.jsValue - case let .double(double): - return double.jsValue + case let .domPointInit(domPointInit): return domPointInit.jsValue + case let .double(double): return double.jsValue case let .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_Double): return seq_of_DOMPointInit_or_Double.jsValue } } } - public protocol Any_Document_or_XMLHttpRequestBodyInit: ConvertibleToJSValue {} extension Document: Any_Document_or_XMLHttpRequestBodyInit {} extension XMLHttpRequestBodyInit: Any_Document_or_XMLHttpRequestBodyInit {} @@ -21860,47 +24631,39 @@ public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_ case document(Document) case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit) - init(_ document: Document) { + public init(_ document: Document) { let val: Document_or_XMLHttpRequestBodyInit = .document(document) self = val } - - init(_ xmlHttpRequestBodyInit: XMLHttpRequestBodyInit) { + public init(_ xmlHttpRequestBodyInit: XMLHttpRequestBodyInit) { let val: Document_or_XMLHttpRequestBodyInit = .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit) self = val } - - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: XMLHttpRequestBodyInit = .blob(blob) self = .init(val) } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: XMLHttpRequestBodyInit = .bufferSource(bufferSource) self = .init(val) } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ formData: FormData) { + public init(_ formData: FormData) { let val: XMLHttpRequestBodyInit = .formData(formData) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: XMLHttpRequestBodyInit = .string(string) self = .init(val) } - - init(_ urlSearchParams: URLSearchParams) { + public init(_ urlSearchParams: URLSearchParams) { let val: XMLHttpRequestBodyInit = .urlSearchParams(urlSearchParams) self = .init(val) } @@ -21911,7 +24674,6 @@ public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_ default: return nil } } - public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? { switch self { case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit @@ -21920,9 +24682,7 @@ public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_ } public static func construct(from value: JSValue) -> Self? { - if let document: Document = value.fromJSValue() { - return .document(document) - } + if let document: Document = value.fromJSValue() { return .document(document) } if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() { return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit) } @@ -21931,14 +24691,11 @@ public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_ public var jsValue: JSValue { switch self { - case let .document(document): - return document.jsValue - case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): - return xmlHttpRequestBodyInit.jsValue + case let .document(document): return document.jsValue + case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit.jsValue } } } - public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {} extension ElementCreationOptions: Any_ElementCreationOptions_or_String {} extension String: Any_ElementCreationOptions_or_String {} @@ -21947,12 +24704,11 @@ public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCrea case elementCreationOptions(ElementCreationOptions) case string(String) - init(_ elementCreationOptions: ElementCreationOptions) { + public init(_ elementCreationOptions: ElementCreationOptions) { let val: ElementCreationOptions_or_String = .elementCreationOptions(elementCreationOptions) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: ElementCreationOptions_or_String = .string(string) self = val } @@ -21963,7 +24719,6 @@ public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCrea default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -21975,22 +24730,17 @@ public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCrea if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() { return .elementCreationOptions(elementCreationOptions) } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .elementCreationOptions(elementCreationOptions): - return elementCreationOptions.jsValue - case let .string(string): - return string.jsValue + case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {} extension Element: Any_Element_or_HTMLCollection {} extension HTMLCollection: Any_Element_or_HTMLCollection {} @@ -21999,12 +24749,11 @@ public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCol case element(Element) case htmlCollection(HTMLCollection) - init(_ element: Element) { + public init(_ element: Element) { let val: Element_or_HTMLCollection = .element(element) self = val } - - init(_ htmlCollection: HTMLCollection) { + public init(_ htmlCollection: HTMLCollection) { let val: Element_or_HTMLCollection = .htmlCollection(htmlCollection) self = val } @@ -22015,7 +24764,6 @@ public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCol default: return nil } } - public var htmlCollection: HTMLCollection? { switch self { case let .htmlCollection(htmlCollection): return htmlCollection @@ -22024,25 +24772,18 @@ public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCol } public static func construct(from value: JSValue) -> Self? { - if let element: Element = value.fromJSValue() { - return .element(element) - } - if let htmlCollection: HTMLCollection = value.fromJSValue() { - return .htmlCollection(htmlCollection) - } + if let element: Element = value.fromJSValue() { return .element(element) } + if let htmlCollection: HTMLCollection = value.fromJSValue() { return .htmlCollection(htmlCollection) } return nil } public var jsValue: JSValue { switch self { - case let .element(element): - return element.jsValue - case let .htmlCollection(htmlCollection): - return htmlCollection.jsValue + case let .element(element): return element.jsValue + case let .htmlCollection(htmlCollection): return htmlCollection.jsValue } } } - public protocol Any_Element_or_RadioNodeList: ConvertibleToJSValue {} extension Element: Any_Element_or_RadioNodeList {} extension RadioNodeList: Any_Element_or_RadioNodeList {} @@ -22051,12 +24792,11 @@ public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNod case element(Element) case radioNodeList(RadioNodeList) - init(_ element: Element) { + public init(_ element: Element) { let val: Element_or_RadioNodeList = .element(element) self = val } - - init(_ radioNodeList: RadioNodeList) { + public init(_ radioNodeList: RadioNodeList) { let val: Element_or_RadioNodeList = .radioNodeList(radioNodeList) self = val } @@ -22067,7 +24807,6 @@ public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNod default: return nil } } - public var radioNodeList: RadioNodeList? { switch self { case let .radioNodeList(radioNodeList): return radioNodeList @@ -22076,25 +24815,18 @@ public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNod } public static func construct(from value: JSValue) -> Self? { - if let element: Element = value.fromJSValue() { - return .element(element) - } - if let radioNodeList: RadioNodeList = value.fromJSValue() { - return .radioNodeList(radioNodeList) - } + if let element: Element = value.fromJSValue() { return .element(element) } + if let radioNodeList: RadioNodeList = value.fromJSValue() { return .radioNodeList(radioNodeList) } return nil } public var jsValue: JSValue { switch self { - case let .element(element): - return element.jsValue - case let .radioNodeList(radioNodeList): - return radioNodeList.jsValue + case let .element(element): return element.jsValue + case let .radioNodeList(radioNodeList): return radioNodeList.jsValue } } } - public protocol Any_Element_or_Text: ConvertibleToJSValue {} extension Element: Any_Element_or_Text {} extension Text: Any_Element_or_Text {} @@ -22103,12 +24835,11 @@ public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text { case element(Element) case text(Text) - init(_ element: Element) { + public init(_ element: Element) { let val: Element_or_Text = .element(element) self = val } - - init(_ text: Text) { + public init(_ text: Text) { let val: Element_or_Text = .text(text) self = val } @@ -22119,7 +24850,6 @@ public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text { default: return nil } } - public var text: Text? { switch self { case let .text(text): return text @@ -22128,25 +24858,18 @@ public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text { } public static func construct(from value: JSValue) -> Self? { - if let element: Element = value.fromJSValue() { - return .element(element) - } - if let text: Text = value.fromJSValue() { - return .text(text) - } + if let element: Element = value.fromJSValue() { return .element(element) } + if let text: Text = value.fromJSValue() { return .text(text) } return nil } public var jsValue: JSValue { switch self { - case let .element(element): - return element.jsValue - case let .text(text): - return text.jsValue + case let .element(element): return element.jsValue + case let .text(text): return text.jsValue } } } - public protocol Any_Event_or_String: ConvertibleToJSValue {} extension Event: Any_Event_or_String {} extension String: Any_Event_or_String {} @@ -22155,12 +24878,11 @@ public enum Event_or_String: JSValueCompatible, Any_Event_or_String { case event(Event) case string(String) - init(_ event: Event) { + public init(_ event: Event) { let val: Event_or_String = .event(event) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: Event_or_String = .string(string) self = val } @@ -22171,7 +24893,6 @@ public enum Event_or_String: JSValueCompatible, Any_Event_or_String { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -22180,25 +24901,18 @@ public enum Event_or_String: JSValueCompatible, Any_Event_or_String { } public static func construct(from value: JSValue) -> Self? { - if let event: Event = value.fromJSValue() { - return .event(event) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let event: Event = value.fromJSValue() { return .event(event) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .event(event): - return event.jsValue - case let .string(string): - return string.jsValue + case let .event(event): return event.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_File_or_FormData_or_String: ConvertibleToJSValue {} extension File: Any_File_or_FormData_or_String {} extension FormData: Any_File_or_FormData_or_String {} @@ -22209,17 +24923,15 @@ public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_ case formData(FormData) case string(String) - init(_ file: File) { + public init(_ file: File) { let val: File_or_FormData_or_String = .file(file) self = val } - - init(_ formData: FormData) { + public init(_ formData: FormData) { let val: File_or_FormData_or_String = .formData(formData) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: File_or_FormData_or_String = .string(string) self = val } @@ -22230,14 +24942,12 @@ public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_ default: return nil } } - public var formData: FormData? { switch self { case let .formData(formData): return formData default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -22246,30 +24956,20 @@ public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_ } public static func construct(from value: JSValue) -> Self? { - if let file: File = value.fromJSValue() { - return .file(file) - } - if let formData: FormData = value.fromJSValue() { - return .formData(formData) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let file: File = value.fromJSValue() { return .file(file) } + if let formData: FormData = value.fromJSValue() { return .formData(formData) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .file(file): - return file.jsValue - case let .formData(formData): - return formData.jsValue - case let .string(string): - return string.jsValue + case let .file(file): return file.jsValue + case let .formData(formData): return formData.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_FormDataEntryValue: ConvertibleToJSValue {} extension File: Any_FormDataEntryValue {} extension String: Any_FormDataEntryValue {} @@ -22278,12 +24978,11 @@ public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue { case file(File) case string(String) - init(_ file: File) { + public init(_ file: File) { let val: FormDataEntryValue = .file(file) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: FormDataEntryValue = .string(string) self = val } @@ -22294,7 +24993,6 @@ public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -22303,25 +25001,18 @@ public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue { } public static func construct(from value: JSValue) -> Self? { - if let file: File = value.fromJSValue() { - return .file(file) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let file: File = value.fromJSValue() { return .file(file) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .file(file): - return file.jsValue - case let .string(string): - return string.jsValue + case let .file(file): return file.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_GeometryNode: ConvertibleToJSValue {} extension CSSPseudoElement: Any_GeometryNode {} extension Document: Any_GeometryNode {} @@ -22334,22 +25025,19 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { case element(Element) case text(Text) - init(_ cssPseudoElement: CSSPseudoElement) { + public init(_ cssPseudoElement: CSSPseudoElement) { let val: GeometryNode = .cssPseudoElement(cssPseudoElement) self = val } - - init(_ document: Document) { + public init(_ document: Document) { let val: GeometryNode = .document(document) self = val } - - init(_ element: Element) { + public init(_ element: Element) { let val: GeometryNode = .element(element) self = val } - - init(_ text: Text) { + public init(_ text: Text) { let val: GeometryNode = .text(text) self = val } @@ -22360,21 +25048,18 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { default: return nil } } - public var document: Document? { switch self { case let .document(document): return document default: return nil } } - public var element: Element? { switch self { case let .element(element): return element default: return nil } } - public var text: Text? { switch self { case let .text(text): return text @@ -22383,35 +25068,22 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode { } public static func construct(from value: JSValue) -> Self? { - if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { - return .cssPseudoElement(cssPseudoElement) - } - if let document: Document = value.fromJSValue() { - return .document(document) - } - if let element: Element = value.fromJSValue() { - return .element(element) - } - if let text: Text = value.fromJSValue() { - return .text(text) - } + if let cssPseudoElement: CSSPseudoElement = value.fromJSValue() { return .cssPseudoElement(cssPseudoElement) } + if let document: Document = value.fromJSValue() { return .document(document) } + if let element: Element = value.fromJSValue() { return .element(element) } + if let text: Text = value.fromJSValue() { return .text(text) } return nil } public var jsValue: JSValue { switch self { - case let .cssPseudoElement(cssPseudoElement): - return cssPseudoElement.jsValue - case let .document(document): - return document.jsValue - case let .element(element): - return element.jsValue - case let .text(text): - return text.jsValue + case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement.jsValue + case let .document(document): return document.jsValue + case let .element(element): return element.jsValue + case let .text(text): return text.jsValue } } } - public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {} extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {} extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {} @@ -22420,12 +25092,11 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan case htmlCanvasElement(HTMLCanvasElement) case offscreenCanvas(OffscreenCanvas) - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: HTMLCanvasElement_or_OffscreenCanvas = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: HTMLCanvasElement_or_OffscreenCanvas = .offscreenCanvas(offscreenCanvas) self = val } @@ -22436,7 +25107,6 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan default: return nil } } - public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas @@ -22448,22 +25118,17 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { return .htmlCanvasElement(htmlCanvasElement) } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue } } } - public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {} extension HTMLElement: Any_HTMLElement_or_Int32 {} extension Int32: Any_HTMLElement_or_Int32 {} @@ -22472,12 +25137,11 @@ public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 { case htmlElement(HTMLElement) case int32(Int32) - init(_ htmlElement: HTMLElement) { + public init(_ htmlElement: HTMLElement) { let val: HTMLElement_or_Int32 = .htmlElement(htmlElement) self = val } - - init(_ int32: Int32) { + public init(_ int32: Int32) { let val: HTMLElement_or_Int32 = .int32(int32) self = val } @@ -22488,7 +25152,6 @@ public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 { default: return nil } } - public var int32: Int32? { switch self { case let .int32(int32): return int32 @@ -22497,25 +25160,18 @@ public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 { } public static func construct(from value: JSValue) -> Self? { - if let htmlElement: HTMLElement = value.fromJSValue() { - return .htmlElement(htmlElement) - } - if let int32: Int32 = value.fromJSValue() { - return .int32(int32) - } + if let htmlElement: HTMLElement = value.fromJSValue() { return .htmlElement(htmlElement) } + if let int32: Int32 = value.fromJSValue() { return .int32(int32) } return nil } public var jsValue: JSValue { switch self { - case let .htmlElement(htmlElement): - return htmlElement.jsValue - case let .int32(int32): - return int32.jsValue + case let .htmlElement(htmlElement): return htmlElement.jsValue + case let .int32(int32): return int32.jsValue } } } - public protocol Any_HTMLOptGroupElement_or_HTMLOptionElement: ConvertibleToJSValue {} extension HTMLOptGroupElement: Any_HTMLOptGroupElement_or_HTMLOptionElement {} extension HTMLOptionElement: Any_HTMLOptGroupElement_or_HTMLOptionElement {} @@ -22524,12 +25180,11 @@ public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTM case htmlOptGroupElement(HTMLOptGroupElement) case htmlOptionElement(HTMLOptionElement) - init(_ htmlOptGroupElement: HTMLOptGroupElement) { + public init(_ htmlOptGroupElement: HTMLOptGroupElement) { let val: HTMLOptGroupElement_or_HTMLOptionElement = .htmlOptGroupElement(htmlOptGroupElement) self = val } - - init(_ htmlOptionElement: HTMLOptionElement) { + public init(_ htmlOptionElement: HTMLOptionElement) { let val: HTMLOptGroupElement_or_HTMLOptionElement = .htmlOptionElement(htmlOptionElement) self = val } @@ -22540,7 +25195,6 @@ public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTM default: return nil } } - public var htmlOptionElement: HTMLOptionElement? { switch self { case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement @@ -22560,39 +25214,34 @@ public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTM public var jsValue: JSValue { switch self { - case let .htmlOptGroupElement(htmlOptGroupElement): - return htmlOptGroupElement.jsValue - case let .htmlOptionElement(htmlOptionElement): - return htmlOptionElement.jsValue + case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement.jsValue + case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement.jsValue } } } - public protocol Any_HeadersInit: ConvertibleToJSValue {} -extension Dictionary: Any_HeadersInit where Key == String, Value == String {} +extension JSObject: Any_HeadersInit {} extension Array: Any_HeadersInit where Element == [String] {} public enum HeadersInit: JSValueCompatible, Any_HeadersInit { - case record_String_to_String([String: String]) + case record_String_to_String(JSObject) case seq_of_seq_of_String([[String]]) - init(_ record_String_to_String: [String: String]) { + public init(_ record_String_to_String: JSObject) { let val: HeadersInit = .record_String_to_String(record_String_to_String) self = val } - - init(_ seq_of_seq_of_String: [[String]]) { + public init(_ seq_of_seq_of_String: [[String]]) { let val: HeadersInit = .seq_of_seq_of_String(seq_of_seq_of_String) self = val } - public var record_String_to_String: [String: String]? { + public var record_String_to_String: JSObject? { switch self { case let .record_String_to_String(record_String_to_String): return record_String_to_String default: return nil } } - public var seq_of_seq_of_String: [[String]]? { switch self { case let .seq_of_seq_of_String(seq_of_seq_of_String): return seq_of_seq_of_String @@ -22601,7 +25250,7 @@ public enum HeadersInit: JSValueCompatible, Any_HeadersInit { } public static func construct(from value: JSValue) -> Self? { - if let record_String_to_String: [String: String] = value.fromJSValue() { + if let record_String_to_String: JSObject = value.fromJSValue() { return .record_String_to_String(record_String_to_String) } if let seq_of_seq_of_String: [[String]] = value.fromJSValue() { @@ -22612,14 +25261,11 @@ public enum HeadersInit: JSValueCompatible, Any_HeadersInit { public var jsValue: JSValue { switch self { - case let .record_String_to_String(record_String_to_String): - return record_String_to_String.jsValue - case let .seq_of_seq_of_String(seq_of_seq_of_String): - return seq_of_seq_of_String.jsValue + case let .record_String_to_String(record_String_to_String): return record_String_to_String.jsValue + case let .seq_of_seq_of_String(seq_of_seq_of_String): return seq_of_seq_of_String.jsValue } } } - public protocol Any_ImageBitmapSource: ConvertibleToJSValue {} extension Blob: Any_ImageBitmapSource {} extension CanvasImageSource: Any_ImageBitmapSource {} @@ -22630,47 +25276,39 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { case canvasImageSource(CanvasImageSource) case imageData(ImageData) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: ImageBitmapSource = .blob(blob) self = val } - - init(_ canvasImageSource: CanvasImageSource) { + public init(_ canvasImageSource: CanvasImageSource) { let val: ImageBitmapSource = .canvasImageSource(canvasImageSource) self = val } - - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: CanvasImageSource = .htmlCanvasElement(htmlCanvasElement) self = .init(val) } - - init(_ htmlImageElement: HTMLImageElement) { - let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement) + public init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) { + let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement) self = .init(val) } - - init(_ htmlVideoElement: HTMLVideoElement) { + public init(_ htmlVideoElement: HTMLVideoElement) { let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement) self = .init(val) } - - init(_ imageBitmap: ImageBitmap) { + public init(_ imageBitmap: ImageBitmap) { let val: CanvasImageSource = .imageBitmap(imageBitmap) self = .init(val) } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: CanvasImageSource = .offscreenCanvas(offscreenCanvas) self = .init(val) } - - init(_ videoFrame: VideoFrame) { + public init(_ videoFrame: VideoFrame) { let val: CanvasImageSource = .videoFrame(videoFrame) self = .init(val) } - - init(_ imageData: ImageData) { + public init(_ imageData: ImageData) { let val: ImageBitmapSource = .imageData(imageData) self = val } @@ -22681,14 +25319,12 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { default: return nil } } - public var canvasImageSource: CanvasImageSource? { switch self { case let .canvasImageSource(canvasImageSource): return canvasImageSource default: return nil } } - public var imageData: ImageData? { switch self { case let .imageData(imageData): return imageData @@ -22697,65 +25333,57 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource { } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } if let canvasImageSource: CanvasImageSource = value.fromJSValue() { return .canvasImageSource(canvasImageSource) } - if let imageData: ImageData = value.fromJSValue() { - return .imageData(imageData) - } + if let imageData: ImageData = value.fromJSValue() { return .imageData(imageData) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .canvasImageSource(canvasImageSource): - return canvasImageSource.jsValue - case let .imageData(imageData): - return imageData.jsValue + case let .blob(blob): return blob.jsValue + case let .canvasImageSource(canvasImageSource): return canvasImageSource.jsValue + case let .imageData(imageData): return imageData.jsValue } } } - public protocol Any_ImageBufferSource: ConvertibleToJSValue {} -extension BufferSource: Any_ImageBufferSource {} +extension AllowSharedBufferSource: Any_ImageBufferSource {} extension ReadableStream: Any_ImageBufferSource {} public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource { - case bufferSource(BufferSource) + case allowSharedBufferSource(AllowSharedBufferSource) case readableStream(ReadableStream) - init(_ bufferSource: BufferSource) { - let val: ImageBufferSource = .bufferSource(bufferSource) + public init(_ allowSharedBufferSource: AllowSharedBufferSource) { + let val: ImageBufferSource = .allowSharedBufferSource(allowSharedBufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { - let val: BufferSource = .arrayBuffer(arrayBuffer) + public init(_ arrayBuffer: ArrayBuffer) { + let val: AllowSharedBufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { - let val: BufferSource = .arrayBufferView(arrayBufferView) + public init(_ arrayBufferView: ArrayBufferView) { + let val: AllowSharedBufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ readableStream: ReadableStream) { + public init(_ sharedArrayBuffer: SharedArrayBuffer) { + let val: AllowSharedBufferSource = .sharedArrayBuffer(sharedArrayBuffer) + self = .init(val) + } + public init(_ readableStream: ReadableStream) { let val: ImageBufferSource = .readableStream(readableStream) self = val } - public var bufferSource: BufferSource? { + public var allowSharedBufferSource: AllowSharedBufferSource? { switch self { - case let .bufferSource(bufferSource): return bufferSource + case let .allowSharedBufferSource(allowSharedBufferSource): return allowSharedBufferSource default: return nil } } - public var readableStream: ReadableStream? { switch self { case let .readableStream(readableStream): return readableStream @@ -22764,25 +25392,20 @@ public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource { } public static func construct(from value: JSValue) -> Self? { - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let readableStream: ReadableStream = value.fromJSValue() { - return .readableStream(readableStream) + if let allowSharedBufferSource: AllowSharedBufferSource = value.fromJSValue() { + return .allowSharedBufferSource(allowSharedBufferSource) } + if let readableStream: ReadableStream = value.fromJSValue() { return .readableStream(readableStream) } return nil } public var jsValue: JSValue { switch self { - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .readableStream(readableStream): - return readableStream.jsValue + case let .allowSharedBufferSource(allowSharedBufferSource): return allowSharedBufferSource.jsValue + case let .readableStream(readableStream): return readableStream.jsValue } } } - public protocol Any_MediaProvider: ConvertibleToJSValue {} extension Blob: Any_MediaProvider {} extension MediaSource: Any_MediaProvider {} @@ -22793,17 +25416,15 @@ public enum MediaProvider: JSValueCompatible, Any_MediaProvider { case mediaSource(MediaSource) case mediaStream(MediaStream) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: MediaProvider = .blob(blob) self = val } - - init(_ mediaSource: MediaSource) { + public init(_ mediaSource: MediaSource) { let val: MediaProvider = .mediaSource(mediaSource) self = val } - - init(_ mediaStream: MediaStream) { + public init(_ mediaStream: MediaStream) { let val: MediaProvider = .mediaStream(mediaStream) self = val } @@ -22814,14 +25435,12 @@ public enum MediaProvider: JSValueCompatible, Any_MediaProvider { default: return nil } } - public var mediaSource: MediaSource? { switch self { case let .mediaSource(mediaSource): return mediaSource default: return nil } } - public var mediaStream: MediaStream? { switch self { case let .mediaStream(mediaStream): return mediaStream @@ -22830,30 +25449,20 @@ public enum MediaProvider: JSValueCompatible, Any_MediaProvider { } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let mediaSource: MediaSource = value.fromJSValue() { - return .mediaSource(mediaSource) - } - if let mediaStream: MediaStream = value.fromJSValue() { - return .mediaStream(mediaStream) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let mediaSource: MediaSource = value.fromJSValue() { return .mediaSource(mediaSource) } + if let mediaStream: MediaStream = value.fromJSValue() { return .mediaStream(mediaStream) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .mediaSource(mediaSource): - return mediaSource.jsValue - case let .mediaStream(mediaStream): - return mediaStream.jsValue + case let .blob(blob): return blob.jsValue + case let .mediaSource(mediaSource): return mediaSource.jsValue + case let .mediaStream(mediaStream): return mediaStream.jsValue } } } - public protocol Any_MessageEventSource: ConvertibleToJSValue {} extension MessagePort: Any_MessageEventSource {} extension ServiceWorker: Any_MessageEventSource {} @@ -22864,17 +25473,15 @@ public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource { case serviceWorker(ServiceWorker) case windowProxy(WindowProxy) - init(_ messagePort: MessagePort) { + public init(_ messagePort: MessagePort) { let val: MessageEventSource = .messagePort(messagePort) self = val } - - init(_ serviceWorker: ServiceWorker) { + public init(_ serviceWorker: ServiceWorker) { let val: MessageEventSource = .serviceWorker(serviceWorker) self = val } - - init(_ windowProxy: WindowProxy) { + public init(_ windowProxy: WindowProxy) { let val: MessageEventSource = .windowProxy(windowProxy) self = val } @@ -22885,14 +25492,12 @@ public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource { default: return nil } } - public var serviceWorker: ServiceWorker? { switch self { case let .serviceWorker(serviceWorker): return serviceWorker default: return nil } } - public var windowProxy: WindowProxy? { switch self { case let .windowProxy(windowProxy): return windowProxy @@ -22901,30 +25506,20 @@ public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource { } public static func construct(from value: JSValue) -> Self? { - if let messagePort: MessagePort = value.fromJSValue() { - return .messagePort(messagePort) - } - if let serviceWorker: ServiceWorker = value.fromJSValue() { - return .serviceWorker(serviceWorker) - } - if let windowProxy: WindowProxy = value.fromJSValue() { - return .windowProxy(windowProxy) - } + if let messagePort: MessagePort = value.fromJSValue() { return .messagePort(messagePort) } + if let serviceWorker: ServiceWorker = value.fromJSValue() { return .serviceWorker(serviceWorker) } + if let windowProxy: WindowProxy = value.fromJSValue() { return .windowProxy(windowProxy) } return nil } public var jsValue: JSValue { switch self { - case let .messagePort(messagePort): - return messagePort.jsValue - case let .serviceWorker(serviceWorker): - return serviceWorker.jsValue - case let .windowProxy(windowProxy): - return windowProxy.jsValue + case let .messagePort(messagePort): return messagePort.jsValue + case let .serviceWorker(serviceWorker): return serviceWorker.jsValue + case let .windowProxy(windowProxy): return windowProxy.jsValue } } } - public protocol Any_Node_or_String: ConvertibleToJSValue {} extension Node: Any_Node_or_String {} extension String: Any_Node_or_String {} @@ -22933,12 +25528,11 @@ public enum Node_or_String: JSValueCompatible, Any_Node_or_String { case node(Node) case string(String) - init(_ node: Node) { + public init(_ node: Node) { let val: Node_or_String = .node(node) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: Node_or_String = .string(string) self = val } @@ -22949,7 +25543,6 @@ public enum Node_or_String: JSValueCompatible, Any_Node_or_String { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -22958,25 +25551,18 @@ public enum Node_or_String: JSValueCompatible, Any_Node_or_String { } public static func construct(from value: JSValue) -> Self? { - if let node: Node = value.fromJSValue() { - return .node(node) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let node: Node = value.fromJSValue() { return .node(node) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .node(node): - return node.jsValue - case let .string(string): - return string.jsValue + case let .node(node): return node.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_Path2D_or_String: ConvertibleToJSValue {} extension Path2D: Any_Path2D_or_String {} extension String: Any_Path2D_or_String {} @@ -22985,12 +25571,11 @@ public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String { case path2D(Path2D) case string(String) - init(_ path2D: Path2D) { + public init(_ path2D: Path2D) { let val: Path2D_or_String = .path2D(path2D) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: Path2D_or_String = .string(string) self = val } @@ -23001,7 +25586,6 @@ public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -23010,25 +25594,18 @@ public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String { } public static func construct(from value: JSValue) -> Self? { - if let path2D: Path2D = value.fromJSValue() { - return .path2D(path2D) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let path2D: Path2D = value.fromJSValue() { return .path2D(path2D) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .path2D(path2D): - return path2D.jsValue - case let .string(string): - return string.jsValue + case let .path2D(path2D): return path2D.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_ReadableStreamController: ConvertibleToJSValue {} extension ReadableByteStreamController: Any_ReadableStreamController {} extension ReadableStreamDefaultController: Any_ReadableStreamController {} @@ -23037,12 +25614,11 @@ public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamContr case readableByteStreamController(ReadableByteStreamController) case readableStreamDefaultController(ReadableStreamDefaultController) - init(_ readableByteStreamController: ReadableByteStreamController) { + public init(_ readableByteStreamController: ReadableByteStreamController) { let val: ReadableStreamController = .readableByteStreamController(readableByteStreamController) self = val } - - init(_ readableStreamDefaultController: ReadableStreamDefaultController) { + public init(_ readableStreamDefaultController: ReadableStreamDefaultController) { let val: ReadableStreamController = .readableStreamDefaultController(readableStreamDefaultController) self = val } @@ -23053,10 +25629,10 @@ public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamContr default: return nil } } - public var readableStreamDefaultController: ReadableStreamDefaultController? { switch self { - case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController + case let .readableStreamDefaultController(readableStreamDefaultController): + return readableStreamDefaultController default: return nil } } @@ -23080,7 +25656,6 @@ public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamContr } } } - public protocol Any_ReadableStreamReader: ConvertibleToJSValue {} extension ReadableStreamBYOBReader: Any_ReadableStreamReader {} extension ReadableStreamDefaultReader: Any_ReadableStreamReader {} @@ -23089,12 +25664,11 @@ public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader { case readableStreamBYOBReader(ReadableStreamBYOBReader) case readableStreamDefaultReader(ReadableStreamDefaultReader) - init(_ readableStreamBYOBReader: ReadableStreamBYOBReader) { + public init(_ readableStreamBYOBReader: ReadableStreamBYOBReader) { let val: ReadableStreamReader = .readableStreamBYOBReader(readableStreamBYOBReader) self = val } - - init(_ readableStreamDefaultReader: ReadableStreamDefaultReader) { + public init(_ readableStreamDefaultReader: ReadableStreamDefaultReader) { let val: ReadableStreamReader = .readableStreamDefaultReader(readableStreamDefaultReader) self = val } @@ -23105,7 +25679,6 @@ public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader { default: return nil } } - public var readableStreamDefaultReader: ReadableStreamDefaultReader? { switch self { case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader @@ -23125,14 +25698,11 @@ public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader { public var jsValue: JSValue { switch self { - case let .readableStreamBYOBReader(readableStreamBYOBReader): - return readableStreamBYOBReader.jsValue - case let .readableStreamDefaultReader(readableStreamDefaultReader): - return readableStreamDefaultReader.jsValue + case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader.jsValue + case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader.jsValue } } } - public protocol Any_RequestInfo: ConvertibleToJSValue {} extension Request: Any_RequestInfo {} extension String: Any_RequestInfo {} @@ -23141,12 +25711,11 @@ public enum RequestInfo: JSValueCompatible, Any_RequestInfo { case request(Request) case string(String) - init(_ request: Request) { + public init(_ request: Request) { let val: RequestInfo = .request(request) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: RequestInfo = .string(string) self = val } @@ -23157,7 +25726,6 @@ public enum RequestInfo: JSValueCompatible, Any_RequestInfo { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -23166,25 +25734,147 @@ public enum RequestInfo: JSValueCompatible, Any_RequestInfo { } public static func construct(from value: JSValue) -> Self? { - if let request: Request = value.fromJSValue() { - return .request(request) + if let request: Request = value.fromJSValue() { return .request(request) } + if let string: String = value.fromJSValue() { return .string(string) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .request(request): return request.jsValue + case let .string(string): return string.jsValue + } + } +} +public protocol Any_RouterSource: ConvertibleToJSValue {} +extension RouterSourceDict: Any_RouterSource {} +extension RouterSourceEnum: Any_RouterSource {} + +public enum RouterSource: JSValueCompatible, Any_RouterSource { + case routerSourceDict(RouterSourceDict) + case routerSourceEnum(RouterSourceEnum) + + public init(_ routerSourceDict: RouterSourceDict) { + let val: RouterSource = .routerSourceDict(routerSourceDict) + self = val + } + public init(_ routerSourceEnum: RouterSourceEnum) { + let val: RouterSource = .routerSourceEnum(routerSourceEnum) + self = val + } + + public var routerSourceDict: RouterSourceDict? { + switch self { + case let .routerSourceDict(routerSourceDict): return routerSourceDict + default: return nil + } + } + public var routerSourceEnum: RouterSourceEnum? { + switch self { + case let .routerSourceEnum(routerSourceEnum): return routerSourceEnum + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let routerSourceDict: RouterSourceDict = value.fromJSValue() { return .routerSourceDict(routerSourceDict) } + if let routerSourceEnum: RouterSourceEnum = value.fromJSValue() { return .routerSourceEnum(routerSourceEnum) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .routerSourceDict(routerSourceDict): return routerSourceDict.jsValue + case let .routerSourceEnum(routerSourceEnum): return routerSourceEnum.jsValue } - if let string: String = value.fromJSValue() { - return .string(string) + } +} +public protocol Any_String_or_TrustedHTML: ConvertibleToJSValue {} +extension String: Any_String_or_TrustedHTML {} +extension TrustedHTML: Any_String_or_TrustedHTML {} + +public enum String_or_TrustedHTML: JSValueCompatible, Any_String_or_TrustedHTML { + case string(String) + case trustedHTML(TrustedHTML) + + public init(_ string: String) { + let val: String_or_TrustedHTML = .string(string) + self = val + } + public init(_ trustedHTML: TrustedHTML) { + let val: String_or_TrustedHTML = .trustedHTML(trustedHTML) + self = val + } + + public var string: String? { + switch self { + case let .string(string): return string + default: return nil + } + } + public var trustedHTML: TrustedHTML? { + switch self { + case let .trustedHTML(trustedHTML): return trustedHTML + default: return nil } + } + + public static func construct(from value: JSValue) -> Self? { + if let string: String = value.fromJSValue() { return .string(string) } + if let trustedHTML: TrustedHTML = value.fromJSValue() { return .trustedHTML(trustedHTML) } return nil } public var jsValue: JSValue { switch self { - case let .request(request): - return request.jsValue - case let .string(string): - return string.jsValue + case let .string(string): return string.jsValue + case let .trustedHTML(trustedHTML): return trustedHTML.jsValue } } } +public protocol Any_String_or_TrustedScriptURL: ConvertibleToJSValue {} +extension String: Any_String_or_TrustedScriptURL {} +extension TrustedScriptURL: Any_String_or_TrustedScriptURL {} + +public enum String_or_TrustedScriptURL: JSValueCompatible, Any_String_or_TrustedScriptURL { + case string(String) + case trustedScriptURL(TrustedScriptURL) + + public init(_ string: String) { + let val: String_or_TrustedScriptURL = .string(string) + self = val + } + public init(_ trustedScriptURL: TrustedScriptURL) { + let val: String_or_TrustedScriptURL = .trustedScriptURL(trustedScriptURL) + self = val + } + + public var string: String? { + switch self { + case let .string(string): return string + default: return nil + } + } + public var trustedScriptURL: TrustedScriptURL? { + switch self { + case let .trustedScriptURL(trustedScriptURL): return trustedScriptURL + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let string: String = value.fromJSValue() { return .string(string) } + if let trustedScriptURL: TrustedScriptURL = value.fromJSValue() { return .trustedScriptURL(trustedScriptURL) } + return nil + } + public var jsValue: JSValue { + switch self { + case let .string(string): return string.jsValue + case let .trustedScriptURL(trustedScriptURL): return trustedScriptURL.jsValue + } + } +} public protocol Any_String_or_WorkerOptions: ConvertibleToJSValue {} extension String: Any_String_or_WorkerOptions {} extension WorkerOptions: Any_String_or_WorkerOptions {} @@ -23193,12 +25883,11 @@ public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOpti case string(String) case workerOptions(WorkerOptions) - init(_ string: String) { + public init(_ string: String) { let val: String_or_WorkerOptions = .string(string) self = val } - - init(_ workerOptions: WorkerOptions) { + public init(_ workerOptions: WorkerOptions) { let val: String_or_WorkerOptions = .workerOptions(workerOptions) self = val } @@ -23209,7 +25898,6 @@ public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOpti default: return nil } } - public var workerOptions: WorkerOptions? { switch self { case let .workerOptions(workerOptions): return workerOptions @@ -23218,25 +25906,18 @@ public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOpti } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let workerOptions: WorkerOptions = value.fromJSValue() { - return .workerOptions(workerOptions) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let workerOptions: WorkerOptions = value.fromJSValue() { return .workerOptions(workerOptions) } return nil } public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .workerOptions(workerOptions): - return workerOptions.jsValue + case let .string(string): return string.jsValue + case let .workerOptions(workerOptions): return workerOptions.jsValue } } } - public protocol Any_String_or_seq_of_Double: ConvertibleToJSValue {} extension String: Any_String_or_seq_of_Double {} extension Array: Any_String_or_seq_of_Double where Element == Double {} @@ -23245,12 +25926,11 @@ public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Dou case string(String) case seq_of_Double([Double]) - init(_ string: String) { + public init(_ string: String) { let val: String_or_seq_of_Double = .string(string) self = val } - - init(_ seq_of_Double: [Double]) { + public init(_ seq_of_Double: [Double]) { let val: String_or_seq_of_Double = .seq_of_Double(seq_of_Double) self = val } @@ -23261,7 +25941,6 @@ public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Dou default: return nil } } - public var seq_of_Double: [Double]? { switch self { case let .seq_of_Double(seq_of_Double): return seq_of_Double @@ -23270,25 +25949,18 @@ public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Dou } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_Double: [Double] = value.fromJSValue() { - return .seq_of_Double(seq_of_Double) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let seq_of_Double: [Double] = value.fromJSValue() { return .seq_of_Double(seq_of_Double) } return nil } public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .seq_of_Double(seq_of_Double): - return seq_of_Double.jsValue + case let .string(string): return string.jsValue + case let .seq_of_Double(seq_of_Double): return seq_of_Double.jsValue } } } - public protocol Any_String_or_seq_of_String: ConvertibleToJSValue {} extension String: Any_String_or_seq_of_String {} extension Array: Any_String_or_seq_of_String where Element == String {} @@ -23297,12 +25969,11 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str case string(String) case seq_of_String([String]) - init(_ string: String) { + public init(_ string: String) { let val: String_or_seq_of_String = .string(string) self = val } - - init(_ seq_of_String: [String]) { + public init(_ seq_of_String: [String]) { let val: String_or_seq_of_String = .seq_of_String(seq_of_String) self = val } @@ -23313,7 +25984,6 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str default: return nil } } - public var seq_of_String: [String]? { switch self { case let .seq_of_String(seq_of_String): return seq_of_String @@ -23322,42 +25992,40 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_String: [String] = value.fromJSValue() { - return .seq_of_String(seq_of_String) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let seq_of_String: [String] = value.fromJSValue() { return .seq_of_String(seq_of_String) } return nil } public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .seq_of_String(seq_of_String): - return seq_of_String.jsValue + case let .string(string): return string.jsValue + case let .seq_of_String(seq_of_String): return seq_of_String.jsValue } } } - public protocol Any_TimerHandler: ConvertibleToJSValue {} extension JSFunction: Any_TimerHandler {} extension String: Any_TimerHandler {} +extension TrustedScript: Any_TimerHandler {} public enum TimerHandler: JSValueCompatible, Any_TimerHandler { case jsFunction(JSFunction) case string(String) + case trustedScript(TrustedScript) - init(_ jsFunction: JSFunction) { + public init(_ jsFunction: JSFunction) { let val: TimerHandler = .jsFunction(jsFunction) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: TimerHandler = .string(string) self = val } + public init(_ trustedScript: TrustedScript) { + let val: TimerHandler = .trustedScript(trustedScript) + self = val + } public var jsFunction: JSFunction? { switch self { @@ -23365,34 +26033,191 @@ public enum TimerHandler: JSValueCompatible, Any_TimerHandler { default: return nil } } - public var string: String? { switch self { case let .string(string): return string default: return nil } } + public var trustedScript: TrustedScript? { + switch self { + case let .trustedScript(trustedScript): return trustedScript + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let jsFunction: JSFunction = value.fromJSValue() { return .jsFunction(jsFunction) } + if let string: String = value.fromJSValue() { return .string(string) } + if let trustedScript: TrustedScript = value.fromJSValue() { return .trustedScript(trustedScript) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .jsFunction(jsFunction): return jsFunction.jsValue + case let .string(string): return string.jsValue + case let .trustedScript(trustedScript): return trustedScript.jsValue + } + } +} +public protocol Any_TrustedType: ConvertibleToJSValue {} +extension TrustedHTML: Any_TrustedType {} +extension TrustedScript: Any_TrustedType {} +extension TrustedScriptURL: Any_TrustedType {} + +public enum TrustedType: JSValueCompatible, Any_TrustedType { + case trustedHTML(TrustedHTML) + case trustedScript(TrustedScript) + case trustedScriptURL(TrustedScriptURL) + + public init(_ trustedHTML: TrustedHTML) { + let val: TrustedType = .trustedHTML(trustedHTML) + self = val + } + public init(_ trustedScript: TrustedScript) { + let val: TrustedType = .trustedScript(trustedScript) + self = val + } + public init(_ trustedScriptURL: TrustedScriptURL) { + let val: TrustedType = .trustedScriptURL(trustedScriptURL) + self = val + } + + public var trustedHTML: TrustedHTML? { + switch self { + case let .trustedHTML(trustedHTML): return trustedHTML + default: return nil + } + } + public var trustedScript: TrustedScript? { + switch self { + case let .trustedScript(trustedScript): return trustedScript + default: return nil + } + } + public var trustedScriptURL: TrustedScriptURL? { + switch self { + case let .trustedScriptURL(trustedScriptURL): return trustedScriptURL + default: return nil + } + } public static func construct(from value: JSValue) -> Self? { - if let jsFunction: JSFunction = value.fromJSValue() { - return .jsFunction(jsFunction) + if let trustedHTML: TrustedHTML = value.fromJSValue() { return .trustedHTML(trustedHTML) } + if let trustedScript: TrustedScript = value.fromJSValue() { return .trustedScript(trustedScript) } + if let trustedScriptURL: TrustedScriptURL = value.fromJSValue() { return .trustedScriptURL(trustedScriptURL) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .trustedHTML(trustedHTML): return trustedHTML.jsValue + case let .trustedScript(trustedScript): return trustedScript.jsValue + case let .trustedScriptURL(trustedScriptURL): return trustedScriptURL.jsValue + } + } +} +public protocol Any_URLPatternCompatible: ConvertibleToJSValue {} +extension String: Any_URLPatternCompatible {} +extension URLPattern: Any_URLPatternCompatible {} +extension URLPatternInit: Any_URLPatternCompatible {} + +public enum URLPatternCompatible: JSValueCompatible, Any_URLPatternCompatible { + case string(String) + case urlPattern(URLPattern) + case urlPatternInit(URLPatternInit) + + public init(_ string: String) { + let val: URLPatternCompatible = .string(string) + self = val + } + public init(_ urlPattern: URLPattern) { + let val: URLPatternCompatible = .urlPattern(urlPattern) + self = val + } + public init(_ urlPatternInit: URLPatternInit) { + let val: URLPatternCompatible = .urlPatternInit(urlPatternInit) + self = val + } + + public var string: String? { + switch self { + case let .string(string): return string + default: return nil + } + } + public var urlPattern: URLPattern? { + switch self { + case let .urlPattern(urlPattern): return urlPattern + default: return nil } - if let string: String = value.fromJSValue() { - return .string(string) + } + public var urlPatternInit: URLPatternInit? { + switch self { + case let .urlPatternInit(urlPatternInit): return urlPatternInit + default: return nil } + } + + public static func construct(from value: JSValue) -> Self? { + if let string: String = value.fromJSValue() { return .string(string) } + if let urlPattern: URLPattern = value.fromJSValue() { return .urlPattern(urlPattern) } + if let urlPatternInit: URLPatternInit = value.fromJSValue() { return .urlPatternInit(urlPatternInit) } return nil } public var jsValue: JSValue { switch self { - case let .jsFunction(jsFunction): - return jsFunction.jsValue - case let .string(string): - return string.jsValue + case let .string(string): return string.jsValue + case let .urlPattern(urlPattern): return urlPattern.jsValue + case let .urlPatternInit(urlPatternInit): return urlPatternInit.jsValue } } } +public protocol Any_URLPatternInput: ConvertibleToJSValue {} +extension String: Any_URLPatternInput {} +extension URLPatternInit: Any_URLPatternInput {} + +public enum URLPatternInput: JSValueCompatible, Any_URLPatternInput { + case string(String) + case urlPatternInit(URLPatternInit) + + public init(_ string: String) { + let val: URLPatternInput = .string(string) + self = val + } + public init(_ urlPatternInit: URLPatternInit) { + let val: URLPatternInput = .urlPatternInit(urlPatternInit) + self = val + } + + public var string: String? { + switch self { + case let .string(string): return string + default: return nil + } + } + public var urlPatternInit: URLPatternInit? { + switch self { + case let .urlPatternInit(urlPatternInit): return urlPatternInit + default: return nil + } + } + public static func construct(from value: JSValue) -> Self? { + if let string: String = value.fromJSValue() { return .string(string) } + if let urlPatternInit: URLPatternInit = value.fromJSValue() { return .urlPatternInit(urlPatternInit) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .string(string): return string.jsValue + case let .urlPatternInit(urlPatternInit): return urlPatternInit.jsValue + } + } +} public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {} extension Blob: Any_XMLHttpRequestBodyInit {} extension BufferSource: Any_XMLHttpRequestBodyInit {} @@ -23407,37 +26232,31 @@ public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyIni case string(String) case urlSearchParams(URLSearchParams) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: XMLHttpRequestBodyInit = .blob(blob) self = val } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: XMLHttpRequestBodyInit = .bufferSource(bufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ formData: FormData) { + public init(_ formData: FormData) { let val: XMLHttpRequestBodyInit = .formData(formData) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: XMLHttpRequestBodyInit = .string(string) self = val } - - init(_ urlSearchParams: URLSearchParams) { + public init(_ urlSearchParams: URLSearchParams) { let val: XMLHttpRequestBodyInit = .urlSearchParams(urlSearchParams) self = val } @@ -23448,28 +26267,24 @@ public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyIni default: return nil } } - public var bufferSource: BufferSource? { switch self { case let .bufferSource(bufferSource): return bufferSource default: return nil } } - public var formData: FormData? { switch self { case let .formData(formData): return formData default: return nil } } - public var string: String? { switch self { case let .string(string): return string default: return nil } } - public var urlSearchParams: URLSearchParams? { switch self { case let .urlSearchParams(urlSearchParams): return urlSearchParams @@ -23478,36 +26293,21 @@ public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyIni } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let formData: FormData = value.fromJSValue() { - return .formData(formData) - } - if let string: String = value.fromJSValue() { - return .string(string) - } - if let urlSearchParams: URLSearchParams = value.fromJSValue() { - return .urlSearchParams(urlSearchParams) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let bufferSource: BufferSource = value.fromJSValue() { return .bufferSource(bufferSource) } + if let formData: FormData = value.fromJSValue() { return .formData(formData) } + if let string: String = value.fromJSValue() { return .string(string) } + if let urlSearchParams: URLSearchParams = value.fromJSValue() { return .urlSearchParams(urlSearchParams) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .formData(formData): - return formData.jsValue - case let .string(string): - return string.jsValue - case let .urlSearchParams(urlSearchParams): - return urlSearchParams.jsValue + case let .blob(blob): return blob.jsValue + case let .bufferSource(bufferSource): return bufferSource.jsValue + case let .formData(formData): return formData.jsValue + case let .string(string): return string.jsValue + case let .urlSearchParams(urlSearchParams): return urlSearchParams.jsValue } } } diff --git a/Sources/DOM/Support.swift b/Sources/DOM/Support.swift index f0f2cc80..eb1290af 100644 --- a/Sources/DOM/Support.swift +++ b/Sources/DOM/Support.swift @@ -6,12 +6,6 @@ public typealias __UNSUPPORTED_BIGINT__ = JSValue public typealias WindowProxy = Window -public extension HTMLElement { - convenience init?(from element: Element) { - self.init(from: .object(element.jsObject)) - } -} - public let globalThis = Window(from: JSObject.global.jsValue)! public typealias Uint8ClampedArray = JSUInt8ClampedArray diff --git a/Sources/ECMAScript/ArrayBuffer.swift b/Sources/ECMAScript/ArrayBuffer.swift index 6696f30f..e1cd0a0e 100644 --- a/Sources/ECMAScript/ArrayBuffer.swift +++ b/Sources/ECMAScript/ArrayBuffer.swift @@ -2,8 +2,8 @@ // Created by Manuel Burghard. Licensed unter MIT. // -import _CJavaScriptKit import JavaScriptKit +import _CJavaScriptKit public typealias Int8Array = JSTypedArray public typealias Int16Array = JSTypedArray @@ -30,7 +30,7 @@ public class ArrayBuffer: JSBridgedClass { } @inlinable - public static func isView(_ object: JSValueCompatible) -> Bool { + public static func isView(_ object: some JSValueCompatible) -> Bool { JSObject.global.ArrayBuffer.object!.isView!(object).fromJSValue()! } } @@ -52,7 +52,9 @@ public class SharedArrayBuffer: JSBridgedClass { @inlinable public convenience init(length: Int, maxByteLength: Int) { - self.init(unsafelyWrapping: Self.constructor!.new(length, ["maxByteLength": maxByteLength])) + self.init( + unsafelyWrapping: Self.constructor!.new( + length, ["maxByteLength": maxByteLength.jsValue] as JSObject)) } @inlinable @@ -79,29 +81,30 @@ public class SharedArrayBuffer: JSBridgedClass { public func slice(begin: Int) -> SharedArrayBuffer { jsObject.slice!(begin).fromJSValue()! } + @inlinable public func slice(begin: Int, end: Int) -> SharedArrayBuffer { jsObject.slice!(begin, end).fromJSValue()! } } -public extension JSTypedArray { - convenience init(_ arrayBuffer: ArrayBuffer) { +extension JSTypedArray { + public convenience init(_ arrayBuffer: ArrayBuffer) { self.init(unsafelyWrapping: Self.constructor!.new(arrayBuffer)) } - convenience init(_ sharedArrayBuffer: SharedArrayBuffer) { + public convenience init(_ sharedArrayBuffer: SharedArrayBuffer) { self.init(unsafelyWrapping: Self.constructor!.new(sharedArrayBuffer)) } // Exactly one of these two properties will be non-nil. @inlinable - var arrayBuffer: ArrayBuffer! { + public var arrayBuffer: ArrayBuffer! { ArrayBuffer(from: jsObject.buffer) } @inlinable - var sharedArrayBuffer: SharedArrayBuffer! { + public var sharedArrayBuffer: SharedArrayBuffer! { SharedArrayBuffer(from: jsObject.buffer) } } @@ -109,14 +112,14 @@ public extension JSTypedArray { #if canImport(Foundation) import Foundation - public extension Data { - init(_ arrayBuffer: ArrayBuffer) { + extension Data { + public init(_ arrayBuffer: ArrayBuffer) { self = JSTypedArray(arrayBuffer).withUnsafeBytes { Data(buffer: $0) } } - init(_ sharedArrayBuffer: SharedArrayBuffer) { + public init(_ sharedArrayBuffer: SharedArrayBuffer) { self = JSTypedArray(sharedArrayBuffer).withUnsafeBytes { Data(buffer: $0) } diff --git a/Sources/ECMAScript/BridgedDictionary.swift b/Sources/ECMAScript/BridgedDictionary.swift index 02040929..36ebf033 100644 --- a/Sources/ECMAScript/BridgedDictionary.swift +++ b/Sources/ECMAScript/BridgedDictionary.swift @@ -1,24 +1,21 @@ import JavaScriptKit -open class BridgedDictionary: JSValueCompatible { - public let jsObject: JSObject - - @inlinable public var jsValue: JSValue { - jsObject.jsValue - } - - @inlinable public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } +public protocol JSDictionaryCompatible: JSValueCompatible { + var jsObject: JSObject { get } + init(unsafelyWrapping: JSObject) +} - @inlinable public static func construct(from value: JSValue) -> Self? { +public extension JSDictionaryCompatible { + static func construct(from value: JSValue) -> Self? { if let object = value.object { - return Self.construct(from: object) + return self.init(unsafelyWrapping: object) + } else { + return nil } - return nil } - @inlinable public static func construct(from object: JSObject) -> Self? { - Self(unsafelyWrapping: object) + var jsValue: JSValue { + .object(jsObject) } } + diff --git a/Sources/ECMAScript/Iterators.swift b/Sources/ECMAScript/Iterators.swift index 9fe63e15..1c1c2b7d 100644 --- a/Sources/ECMAScript/Iterators.swift +++ b/Sources/ECMAScript/Iterators.swift @@ -1,7 +1,7 @@ -import JavaScriptEventLoop import JavaScriptKit +import _Concurrency -public class ValueIterableIterator: IteratorProtocol +public struct ValueIterableIterator: IteratorProtocol where SequenceType.Element: ConstructibleFromJSValue { private let iterator: JSObject @@ -19,8 +19,11 @@ public class ValueIterableIterator: Ite } } +#if canImport(JavaScriptEventLoop) +import JavaScriptEventLoop + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) -public class ValueIterableAsyncIterator: AsyncIteratorProtocol +public struct ValueIterableAsyncIterator: AsyncIteratorProtocol where SequenceType.Element: ConstructibleFromJSValue { private var index: Int = 0 @@ -30,7 +33,7 @@ public class ValueIterableAsyncIterator SequenceType.Element? { + public func next() async throws(JSException) -> SequenceType.Element? { let promise = JSPromise(from: iterator.next!())! let result = try await promise.value let done = result.done.boolean! @@ -39,3 +42,5 @@ public class ValueIterableAsyncIterator ValueIterableAsyncIterator { - ValueIterableAsyncIterator(sequence: self) +} +public class FileSystemDirectoryHandle: FileSystemHandle { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.FileSystemDirectoryHandle].function } - @inlinable public func getFileHandle(name: String, options: FileSystemGetFileOptions? = nil) -> JSPromise { - let this = jsObject - return this[Strings.getFileHandle].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getFileHandle(name: String, options: FileSystemGetFileOptions? = nil) async throws -> FileSystemFileHandle { - let this = jsObject - let _promise: JSPromise = this[Strings.getFileHandle].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + public typealias Element = String + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) public func makeAsyncIterator() + -> ValueIterableAsyncIterator + { ValueIterableAsyncIterator(sequence: self) } + #endif - @inlinable public func getDirectoryHandle(name: String, options: FileSystemGetDirectoryOptions? = nil) -> JSPromise { + @inlinable final public func getFileHandle(name: String, options: FileSystemGetFileOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.getDirectoryHandle].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! + return this[Strings.getFileHandle].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getDirectoryHandle(name: String, options: FileSystemGetDirectoryOptions? = nil) async throws -> FileSystemDirectoryHandle { - let this = jsObject - let _promise: JSPromise = this[Strings.getDirectoryHandle].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getFileHandle( + name: String, + options: FileSystemGetFileOptions? = nil + ) async throws(JSException) -> FileSystemFileHandle { + let this = jsObject + let _promise: JSPromise = this[Strings.getFileHandle].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif + + @inlinable final public func getDirectoryHandle( + name: String, + options: FileSystemGetDirectoryOptions? = nil + ) -> JSPromise { + let this = jsObject + return this[Strings.getDirectoryHandle].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(options)] + ).fromJSValue()! + } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getDirectoryHandle( + name: String, + options: FileSystemGetDirectoryOptions? = nil + ) async throws(JSException) -> FileSystemDirectoryHandle { + let this = jsObject + let _promise: JSPromise = this[Strings.getDirectoryHandle].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func removeEntry(name: String, options: FileSystemRemoveOptions? = nil) -> JSPromise { + @inlinable final public func removeEntry(name: String, options: FileSystemRemoveOptions? = nil) -> JSPromise { let this = jsObject - return this[Strings.removeEntry].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! + return this[Strings.removeEntry].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]) + .fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func removeEntry(name: String, options: FileSystemRemoveOptions? = nil) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.removeEntry].function!(this: this, arguments: [_toJSValue(name), _toJSValue(options)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func removeEntry( + name: String, + options: FileSystemRemoveOptions? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.removeEntry].function!( + this: this, + arguments: [_toJSValue(name), _toJSValue(options)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func resolve(possibleDescendant: FileSystemHandle) -> JSPromise { + @inlinable final public func resolve(possibleDescendant: FileSystemHandle) -> JSPromise { let this = jsObject return this[Strings.resolve].function!(this: this, arguments: [_toJSValue(possibleDescendant)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func resolve(possibleDescendant: FileSystemHandle) async throws -> [String]? { - let this = jsObject - let _promise: JSPromise = this[Strings.resolve].function!(this: this, arguments: [_toJSValue(possibleDescendant)]).fromJSValue()! - return try await _promise.value.fromJSValue() - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func resolve( + possibleDescendant: FileSystemHandle + ) async throws(JSException) -> [String]? { + let this = jsObject + let _promise: JSPromise = this[Strings.resolve].function!( + this: this, + arguments: [_toJSValue(possibleDescendant)] + ).fromJSValue()! + return try await _promise.value.fromJSValue() + } + #endif } -public class FileSystemFileHandle: FileSystemHandle { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FileSystemFileHandle].function } +#if canImport(JavaScriptEventLoop) + extension FileSystemDirectoryHandle: AsyncSequence {} +#endif - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) +public class FileSystemFileHandle: FileSystemHandle { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.FileSystemFileHandle].function } - @inlinable public func getFile() -> JSPromise { + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable final public func getFile() -> JSPromise { let this = jsObject return this[Strings.getFile].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getFile() async throws -> File { - let this = jsObject - let _promise: JSPromise = this[Strings.getFile].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getFile() + async throws(JSException) -> File + { + let this = jsObject + let _promise: JSPromise = this[Strings.getFile].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func createWritable(options: FileSystemCreateWritableOptions? = nil) -> JSPromise { + @inlinable final public func createWritable(options: FileSystemCreateWritableOptions? = nil) -> JSPromise { let this = jsObject return this[Strings.createWritable].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func createWritable(options: FileSystemCreateWritableOptions? = nil) async throws -> FileSystemWritableFileStream { - let this = jsObject - let _promise: JSPromise = this[Strings.createWritable].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func createWritable( + options: FileSystemCreateWritableOptions? = nil + ) async throws(JSException) -> FileSystemWritableFileStream { + let this = jsObject + let _promise: JSPromise = this[Strings.createWritable].function!( + this: this, + arguments: [_toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif // XXX: member 'createSyncAccessHandle' is ignored // XXX: member 'createSyncAccessHandle' is ignored } -public class FileSystemGetDirectoryOptions: BridgedDictionary { - public convenience init(create: Bool) { +open class FileSystemGetDirectoryOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(create: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.create] = _toJSValue(create) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _create = ReadWriteAttribute(jsObject: object, name: Strings.create) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var create: Bool + @inlinable public var create: Bool { + get { jsObject[Strings.create].fromJSValue()! } + set { jsObject[Strings.create] = _toJSValue(newValue) } + } } +open class FileSystemGetFileOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class FileSystemGetFileOptions: BridgedDictionary { - public convenience init(create: Bool) { + public convenience init(create: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.create] = _toJSValue(create) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _create = ReadWriteAttribute(jsObject: object, name: Strings.create) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var create: Bool + @inlinable public var create: Bool { + get { jsObject[Strings.create].fromJSValue()! } + set { jsObject[Strings.create] = _toJSValue(newValue) } + } } - public class FileSystemHandle: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.FileSystemHandle].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind) - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var kind: FileSystemHandleKind + @inlinable public var kind: FileSystemHandleKind { jsObject[Strings.kind].fromJSValue()! } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @inlinable public func isSameEntry(other: FileSystemHandle) -> JSPromise { + @inlinable final public func isSameEntry(other: FileSystemHandle) -> JSPromise { let this = jsObject return this[Strings.isSameEntry].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func isSameEntry(other: FileSystemHandle) async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.isSameEntry].function!(this: this, arguments: [_toJSValue(other)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func isSameEntry( + other: FileSystemHandle + ) async throws(JSException) -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.isSameEntry].function!(this: this, arguments: [_toJSValue(other)]) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func queryPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) -> JSPromise { + @inlinable final public func queryPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) -> JSPromise { let this = jsObject return this[Strings.queryPermission].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func queryPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) async throws -> PermissionState { - let this = jsObject - let _promise: JSPromise = this[Strings.queryPermission].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func queryPermission( + descriptor: FileSystemHandlePermissionDescriptor? = nil + ) async throws(JSException) -> PermissionState { + let this = jsObject + let _promise: JSPromise = this[Strings.queryPermission].function!( + this: this, + arguments: [_toJSValue(descriptor)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func requestPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) -> JSPromise { + @inlinable final public func requestPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) -> JSPromise + { let this = jsObject return this[Strings.requestPermission].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func requestPermission(descriptor: FileSystemHandlePermissionDescriptor? = nil) async throws -> PermissionState { - let this = jsObject - let _promise: JSPromise = this[Strings.requestPermission].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func requestPermission( + descriptor: FileSystemHandlePermissionDescriptor? = nil + ) async throws(JSException) -> PermissionState { + let this = jsObject + let _promise: JSPromise = this[Strings.requestPermission].function!( + this: this, + arguments: [_toJSValue(descriptor)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public enum FileSystemHandleKind: JSString, JSValueCompatible { @@ -290,266 +368,301 @@ public enum FileSystemHandleKind: JSString, JSValueCompatible { case directory = "directory" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class FileSystemHandlePermissionDescriptor: JSDictionaryCompatible { + public let jsObject: JSObject -public class FileSystemHandlePermissionDescriptor: BridgedDictionary { - public convenience init(mode: FileSystemPermissionMode) { + public convenience init(mode: FileSystemPermissionMode? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mode] = _toJSValue(mode) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mode: FileSystemPermissionMode + @inlinable public var mode: FileSystemPermissionMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } } +open class FileSystemPermissionDescriptor: PermissionDescriptor { -public class FileSystemPermissionDescriptor: BridgedDictionary { - public convenience init(handle: FileSystemHandle, mode: FileSystemPermissionMode) { + public convenience init(handle: FileSystemHandle, mode: FileSystemPermissionMode? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.handle] = _toJSValue(handle) object[Strings.mode] = _toJSValue(mode) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _handle = ReadWriteAttribute(jsObject: object, name: Strings.handle) - _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var handle: FileSystemHandle + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var mode: FileSystemPermissionMode + @inlinable public var handle: FileSystemHandle { + get { jsObject[Strings.handle].fromJSValue()! } + set { jsObject[Strings.handle] = _toJSValue(newValue) } + } + @inlinable public var mode: FileSystemPermissionMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } } - public enum FileSystemPermissionMode: JSString, JSValueCompatible { case read = "read" case readwrite = "readwrite" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class FileSystemReadWriteOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class FileSystemReadWriteOptions: BridgedDictionary { - public convenience init(at: UInt64) { + public convenience init(at: UInt64? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.at] = _toJSValue(at) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _at = ReadWriteAttribute(jsObject: object, name: Strings.at) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var at: UInt64 + @inlinable public var at: UInt64 { + get { jsObject[Strings.at].fromJSValue()! } + set { jsObject[Strings.at] = _toJSValue(newValue) } + } } +open class FileSystemRemoveOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class FileSystemRemoveOptions: BridgedDictionary { - public convenience init(recursive: Bool) { + public convenience init(recursive: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.recursive] = _toJSValue(recursive) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _recursive = ReadWriteAttribute(jsObject: object, name: Strings.recursive) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var recursive: Bool + @inlinable public var recursive: Bool { + get { jsObject[Strings.recursive].fromJSValue()! } + set { jsObject[Strings.recursive] = _toJSValue(newValue) } + } } - public class FileSystemWritableFileStream: WritableStream { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FileSystemWritableFileStream].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.FileSystemWritableFileStream].function } - @inlinable public func write(data: FileSystemWriteChunkType) -> JSPromise { + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable final public func write(data: FileSystemWriteChunkType) -> JSPromise { let this = jsObject return this[Strings.write].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func write(data: FileSystemWriteChunkType) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.write].function!(this: this, arguments: [_toJSValue(data)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func write( + data: FileSystemWriteChunkType + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.write].function!(this: this, arguments: [_toJSValue(data)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func seek(position: UInt64) -> JSPromise { + @inlinable final public func seek(position: UInt64) -> JSPromise { let this = jsObject return this[Strings.seek].function!(this: this, arguments: [_toJSValue(position)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func seek(position: UInt64) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.seek].function!(this: this, arguments: [_toJSValue(position)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func seek( + position: UInt64 + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.seek].function!(this: this, arguments: [_toJSValue(position)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func truncate(size: UInt64) -> JSPromise { + @inlinable final public func truncate(size: UInt64) -> JSPromise { let this = jsObject return this[Strings.truncate].function!(this: this, arguments: [_toJSValue(size)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func truncate(size: UInt64) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.truncate].function!(this: this, arguments: [_toJSValue(size)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func truncate( + size: UInt64 + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.truncate].function!(this: this, arguments: [_toJSValue(size)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif } public protocol NavigatorStorage: JSBridgedClass {} -public extension NavigatorStorage { - @inlinable var storage: StorageManager { jsObject[Strings.storage].fromJSValue()! } +extension NavigatorStorage { + @inlinable public var storage: StorageManager { jsObject[Strings.storage].fromJSValue()! } } - extension Navigator: NavigatorStorage {} -public class OpenFilePickerOptions: BridgedDictionary { - public convenience init(multiple: Bool) { +open class OpenFilePickerOptions: FilePickerOptions { + + public convenience init( + types: [FilePickerAcceptType]? = nil, + excludeAcceptAllOption: Bool? = nil, + id: String? = nil, + startIn: StartInDirectory? = nil, + multiple: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.types] = _toJSValue(types) + object[Strings.excludeAcceptAllOption] = _toJSValue(excludeAcceptAllOption) + object[Strings.id] = _toJSValue(id) + object[Strings.startIn] = _toJSValue(startIn) object[Strings.multiple] = _toJSValue(multiple) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _multiple = ReadWriteAttribute(jsObject: object, name: Strings.multiple) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var multiple: Bool + @inlinable public var multiple: Bool { + get { jsObject[Strings.multiple].fromJSValue()! } + set { jsObject[Strings.multiple] = _toJSValue(newValue) } + } } - -public class SaveFilePickerOptions: BridgedDictionary { - public convenience init(suggestedName: String?) { +open class SaveFilePickerOptions: FilePickerOptions { + + public convenience init( + types: [FilePickerAcceptType]? = nil, + excludeAcceptAllOption: Bool? = nil, + id: String? = nil, + startIn: StartInDirectory? = nil, + suggestedName: String? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.types] = _toJSValue(types) + object[Strings.excludeAcceptAllOption] = _toJSValue(excludeAcceptAllOption) + object[Strings.id] = _toJSValue(id) + object[Strings.startIn] = _toJSValue(startIn) object[Strings.suggestedName] = _toJSValue(suggestedName) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _suggestedName = ReadWriteAttribute(jsObject: object, name: Strings.suggestedName) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var suggestedName: String? + @inlinable public var suggestedName: String? { + get { jsObject[Strings.suggestedName].fromJSValue() } + set { jsObject[Strings.suggestedName] = _toJSValue(newValue) } + } } +open class StorageEstimate: JSDictionaryCompatible { + public let jsObject: JSObject -public class StorageEstimate: BridgedDictionary { - public convenience init(usage: UInt64, quota: UInt64) { + public convenience init(usage: UInt64? = nil, quota: UInt64? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.usage] = _toJSValue(usage) object[Strings.quota] = _toJSValue(quota) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _usage = ReadWriteAttribute(jsObject: object, name: Strings.usage) - _quota = ReadWriteAttribute(jsObject: object, name: Strings.quota) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var usage: UInt64 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var quota: UInt64 + @inlinable public var usage: UInt64 { + get { jsObject[Strings.usage].fromJSValue()! } + set { jsObject[Strings.usage] = _toJSValue(newValue) } + } + @inlinable public var quota: UInt64 { + get { jsObject[Strings.quota].fromJSValue()! } + set { jsObject[Strings.quota] = _toJSValue(newValue) } + } } - public class StorageManager: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.StorageManager].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func getDirectory() -> JSPromise { + @inlinable final public func getDirectory() -> JSPromise { let this = jsObject return this[Strings.getDirectory].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getDirectory() async throws -> FileSystemDirectoryHandle { - let this = jsObject - let _promise: JSPromise = this[Strings.getDirectory].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getDirectory() + async throws(JSException) -> FileSystemDirectoryHandle + { + let this = jsObject + let _promise: JSPromise = this[Strings.getDirectory].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func persisted() -> JSPromise { + @inlinable final public func persisted() -> JSPromise { let this = jsObject return this[Strings.persisted].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func persisted() async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.persisted].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func persisted() + async throws(JSException) -> Bool + { + let this = jsObject + let _promise: JSPromise = this[Strings.persisted].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func persist() -> JSPromise { + @inlinable final public func persist() -> JSPromise { let this = jsObject return this[Strings.persist].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func persist() async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.persist].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func persist() + async throws(JSException) -> Bool + { + let this = jsObject + let _promise: JSPromise = this[Strings.persist].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func estimate() -> JSPromise { + @inlinable final public func estimate() -> JSPromise { let this = jsObject return this[Strings.estimate].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func estimate() async throws -> StorageEstimate { - let this = jsObject - let _promise: JSPromise = this[Strings.estimate].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func estimate() + async throws(JSException) -> StorageEstimate + { + let this = jsObject + let _promise: JSPromise = this[Strings.estimate].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public enum WellKnownDirectory: JSString, JSValueCompatible { @@ -561,119 +674,114 @@ public enum WellKnownDirectory: JSString, JSValueCompatible { case videos = "videos" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum WriteCommandType: JSString, JSValueCompatible { case write = "write" case seek = "seek" case truncate = "truncate" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class WriteParams: JSDictionaryCompatible { + public let jsObject: JSObject -public class WriteParams: BridgedDictionary { - public convenience init(type: WriteCommandType, size: UInt64?, position: UInt64?, data: Blob_or_BufferSource_or_String?) { + public convenience init( + type: WriteCommandType, + size: UInt64?, + position: UInt64?, + data: Blob_or_BufferSource_or_String? + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.size] = _toJSValue(size) object[Strings.position] = _toJSValue(position) object[Strings.data] = _toJSValue(data) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _size = ReadWriteAttribute(jsObject: object, name: Strings.size) - _position = ReadWriteAttribute(jsObject: object, name: Strings.position) - _data = ReadWriteAttribute(jsObject: object, name: Strings.data) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: WriteCommandType - - @ReadWriteAttribute - public var size: UInt64? + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var position: UInt64? - - @ReadWriteAttribute - public var data: Blob_or_BufferSource_or_String? + @inlinable public var type: WriteCommandType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var size: UInt64? { + get { jsObject[Strings.size].fromJSValue() } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } + @inlinable public var position: UInt64? { + get { jsObject[Strings.position].fromJSValue() } + set { jsObject[Strings.position] = _toJSValue(newValue) } + } + @inlinable public var data: Blob_or_BufferSource_or_String? { + get { jsObject[Strings.data].fromJSValue() } + set { jsObject[Strings.data] = _toJSValue(newValue) } + } } - @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let FileSystemDirectoryHandle: JSString = "FileSystemDirectoryHandle" - @usableFromInline static let FileSystemFileHandle: JSString = "FileSystemFileHandle" - @usableFromInline static let FileSystemHandle: JSString = "FileSystemHandle" - @usableFromInline static let FileSystemWritableFileStream: JSString = "FileSystemWritableFileStream" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let StorageManager: JSString = "StorageManager" - @usableFromInline static let accept: JSString = "accept" - @usableFromInline static let at: JSString = "at" - @usableFromInline static let create: JSString = "create" - @usableFromInline static let createWritable: JSString = "createWritable" - @usableFromInline static let data: JSString = "data" - @usableFromInline static let description: JSString = "description" - @usableFromInline static let estimate: JSString = "estimate" - @usableFromInline static let excludeAcceptAllOption: JSString = "excludeAcceptAllOption" - @usableFromInline static let getDirectory: JSString = "getDirectory" - @usableFromInline static let getDirectoryHandle: JSString = "getDirectoryHandle" - @usableFromInline static let getFile: JSString = "getFile" - @usableFromInline static let getFileHandle: JSString = "getFileHandle" - @usableFromInline static let handle: JSString = "handle" - @usableFromInline static let id: JSString = "id" - @usableFromInline static let isSameEntry: JSString = "isSameEntry" - @usableFromInline static let keepExistingData: JSString = "keepExistingData" - @usableFromInline static let kind: JSString = "kind" - @usableFromInline static let mode: JSString = "mode" - @usableFromInline static let multiple: JSString = "multiple" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let persist: JSString = "persist" - @usableFromInline static let persisted: JSString = "persisted" - @usableFromInline static let position: JSString = "position" - @usableFromInline static let queryPermission: JSString = "queryPermission" - @usableFromInline static let quota: JSString = "quota" - @usableFromInline static let recursive: JSString = "recursive" - @usableFromInline static let removeEntry: JSString = "removeEntry" - @usableFromInline static let requestPermission: JSString = "requestPermission" - @usableFromInline static let resolve: JSString = "resolve" - @usableFromInline static let seek: JSString = "seek" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let startIn: JSString = "startIn" - @usableFromInline static let storage: JSString = "storage" - @usableFromInline static let suggestedName: JSString = "suggestedName" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let truncate: JSString = "truncate" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let types: JSString = "types" - @usableFromInline static let usage: JSString = "usage" - @usableFromInline static let write: JSString = "write" + @usableFromInline static let `FileSystemDirectoryHandle`: JSString = "FileSystemDirectoryHandle" + @usableFromInline static let `FileSystemFileHandle`: JSString = "FileSystemFileHandle" + @usableFromInline static let `FileSystemHandle`: JSString = "FileSystemHandle" + @usableFromInline static let `FileSystemWritableFileStream`: JSString = "FileSystemWritableFileStream" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `StorageManager`: JSString = "StorageManager" + @usableFromInline static let `accept`: JSString = "accept" + @usableFromInline static let `at`: JSString = "at" + @usableFromInline static let `create`: JSString = "create" + @usableFromInline static let `createWritable`: JSString = "createWritable" + @usableFromInline static let `data`: JSString = "data" + @usableFromInline static let `description`: JSString = "description" + @usableFromInline static let `estimate`: JSString = "estimate" + @usableFromInline static let `excludeAcceptAllOption`: JSString = "excludeAcceptAllOption" + @usableFromInline static let `getDirectory`: JSString = "getDirectory" + @usableFromInline static let `getDirectoryHandle`: JSString = "getDirectoryHandle" + @usableFromInline static let `getFile`: JSString = "getFile" + @usableFromInline static let `getFileHandle`: JSString = "getFileHandle" + @usableFromInline static let `handle`: JSString = "handle" + @usableFromInline static let `id`: JSString = "id" + @usableFromInline static let `isSameEntry`: JSString = "isSameEntry" + @usableFromInline static let `keepExistingData`: JSString = "keepExistingData" + @usableFromInline static let `kind`: JSString = "kind" + @usableFromInline static let `mode`: JSString = "mode" + @usableFromInline static let `multiple`: JSString = "multiple" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `persist`: JSString = "persist" + @usableFromInline static let `persisted`: JSString = "persisted" + @usableFromInline static let `position`: JSString = "position" + @usableFromInline static let `queryPermission`: JSString = "queryPermission" + @usableFromInline static let `quota`: JSString = "quota" + @usableFromInline static let `recursive`: JSString = "recursive" + @usableFromInline static let `removeEntry`: JSString = "removeEntry" + @usableFromInline static let `requestPermission`: JSString = "requestPermission" + @usableFromInline static let `resolve`: JSString = "resolve" + @usableFromInline static let `seek`: JSString = "seek" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `startIn`: JSString = "startIn" + @usableFromInline static let `storage`: JSString = "storage" + @usableFromInline static let `suggestedName`: JSString = "suggestedName" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `truncate`: JSString = "truncate" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `types`: JSString = "types" + @usableFromInline static let `usage`: JSString = "usage" + @usableFromInline static let `write`: JSString = "write" } - public protocol Any_Blob_or_BufferSource_or_String: ConvertibleToJSValue {} extension Blob: Any_Blob_or_BufferSource_or_String {} extension BufferSource: Any_Blob_or_BufferSource_or_String {} @@ -684,27 +792,23 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe case bufferSource(BufferSource) case string(String) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: Blob_or_BufferSource_or_String = .blob(blob) self = val } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: Blob_or_BufferSource_or_String = .bufferSource(bufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: Blob_or_BufferSource_or_String = .string(string) self = val } @@ -715,14 +819,12 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe default: return nil } } - public var bufferSource: BufferSource? { switch self { case let .bufferSource(bufferSource): return bufferSource default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -731,30 +833,20 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let bufferSource: BufferSource = value.fromJSValue() { return .bufferSource(bufferSource) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .string(string): - return string.jsValue + case let .blob(blob): return blob.jsValue + case let .bufferSource(bufferSource): return bufferSource.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_FileSystemWriteChunkType: ConvertibleToJSValue {} extension Blob: Any_FileSystemWriteChunkType {} extension BufferSource: Any_FileSystemWriteChunkType {} @@ -767,32 +859,27 @@ public enum FileSystemWriteChunkType: JSValueCompatible, Any_FileSystemWriteChun case string(String) case writeParams(WriteParams) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: FileSystemWriteChunkType = .blob(blob) self = val } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: FileSystemWriteChunkType = .bufferSource(bufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: FileSystemWriteChunkType = .string(string) self = val } - - init(_ writeParams: WriteParams) { + public init(_ writeParams: WriteParams) { let val: FileSystemWriteChunkType = .writeParams(writeParams) self = val } @@ -803,21 +890,18 @@ public enum FileSystemWriteChunkType: JSValueCompatible, Any_FileSystemWriteChun default: return nil } } - public var bufferSource: BufferSource? { switch self { case let .bufferSource(bufferSource): return bufferSource default: return nil } } - public var string: String? { switch self { case let .string(string): return string default: return nil } } - public var writeParams: WriteParams? { switch self { case let .writeParams(writeParams): return writeParams @@ -826,35 +910,22 @@ public enum FileSystemWriteChunkType: JSValueCompatible, Any_FileSystemWriteChun } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let string: String = value.fromJSValue() { - return .string(string) - } - if let writeParams: WriteParams = value.fromJSValue() { - return .writeParams(writeParams) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let bufferSource: BufferSource = value.fromJSValue() { return .bufferSource(bufferSource) } + if let string: String = value.fromJSValue() { return .string(string) } + if let writeParams: WriteParams = value.fromJSValue() { return .writeParams(writeParams) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .string(string): - return string.jsValue - case let .writeParams(writeParams): - return writeParams.jsValue + case let .blob(blob): return blob.jsValue + case let .bufferSource(bufferSource): return bufferSource.jsValue + case let .string(string): return string.jsValue + case let .writeParams(writeParams): return writeParams.jsValue } } } - public protocol Any_StartInDirectory: ConvertibleToJSValue {} extension FileSystemHandle: Any_StartInDirectory {} extension WellKnownDirectory: Any_StartInDirectory {} @@ -863,12 +934,11 @@ public enum StartInDirectory: JSValueCompatible, Any_StartInDirectory { case fileSystemHandle(FileSystemHandle) case wellKnownDirectory(WellKnownDirectory) - init(_ fileSystemHandle: FileSystemHandle) { + public init(_ fileSystemHandle: FileSystemHandle) { let val: StartInDirectory = .fileSystemHandle(fileSystemHandle) self = val } - - init(_ wellKnownDirectory: WellKnownDirectory) { + public init(_ wellKnownDirectory: WellKnownDirectory) { let val: StartInDirectory = .wellKnownDirectory(wellKnownDirectory) self = val } @@ -879,7 +949,6 @@ public enum StartInDirectory: JSValueCompatible, Any_StartInDirectory { default: return nil } } - public var wellKnownDirectory: WellKnownDirectory? { switch self { case let .wellKnownDirectory(wellKnownDirectory): return wellKnownDirectory @@ -888,9 +957,7 @@ public enum StartInDirectory: JSValueCompatible, Any_StartInDirectory { } public static func construct(from value: JSValue) -> Self? { - if let fileSystemHandle: FileSystemHandle = value.fromJSValue() { - return .fileSystemHandle(fileSystemHandle) - } + if let fileSystemHandle: FileSystemHandle = value.fromJSValue() { return .fileSystemHandle(fileSystemHandle) } if let wellKnownDirectory: WellKnownDirectory = value.fromJSValue() { return .wellKnownDirectory(wellKnownDirectory) } @@ -899,62 +966,8 @@ public enum StartInDirectory: JSValueCompatible, Any_StartInDirectory { public var jsValue: JSValue { switch self { - case let .fileSystemHandle(fileSystemHandle): - return fileSystemHandle.jsValue - case let .wellKnownDirectory(wellKnownDirectory): - return wellKnownDirectory.jsValue - } - } -} - -public protocol Any_String_or_seq_of_String: ConvertibleToJSValue {} -extension String: Any_String_or_seq_of_String {} -extension Array: Any_String_or_seq_of_String where Element == String {} - -public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_String { - case string(String) - case seq_of_String([String]) - - init(_ string: String) { - let val: String_or_seq_of_String = .string(string) - self = val - } - - init(_ seq_of_String: [String]) { - let val: String_or_seq_of_String = .seq_of_String(seq_of_String) - self = val - } - - public var string: String? { - switch self { - case let .string(string): return string - default: return nil - } - } - - public var seq_of_String: [String]? { - switch self { - case let .seq_of_String(seq_of_String): return seq_of_String - default: return nil - } - } - - public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_String: [String] = value.fromJSValue() { - return .seq_of_String(seq_of_String) - } - return nil - } - - public var jsValue: JSValue { - switch self { - case let .string(string): - return string.jsValue - case let .seq_of_String(seq_of_String): - return seq_of_String.jsValue + case let .fileSystemHandle(fileSystemHandle): return fileSystemHandle.jsValue + case let .wellKnownDirectory(wellKnownDirectory): return wellKnownDirectory.jsValue } } } diff --git a/Sources/Gamepad/Generated.swift b/Sources/Gamepad/Generated.swift index 3dfb8190..20b97a7d 100644 --- a/Sources/Gamepad/Generated.swift +++ b/Sources/Gamepad/Generated.swift @@ -2,66 +2,49 @@ import DOM import ECMAScript -import JavaScriptEventLoop +import JavaScriptBigIntSupport import JavaScriptKit import WebAPIBase +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public class Gamepad: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Gamepad].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadonlyAttribute(jsObject: jsObject, name: Strings.id) - _index = ReadonlyAttribute(jsObject: jsObject, name: Strings.index) - _connected = ReadonlyAttribute(jsObject: jsObject, name: Strings.connected) - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - _mapping = ReadonlyAttribute(jsObject: jsObject, name: Strings.mapping) - _axes = ReadonlyAttribute(jsObject: jsObject, name: Strings.axes) - _buttons = ReadonlyAttribute(jsObject: jsObject, name: Strings.buttons) - _hand = ReadonlyAttribute(jsObject: jsObject, name: Strings.hand) - _hapticActuators = ReadonlyAttribute(jsObject: jsObject, name: Strings.hapticActuators) - _pose = ReadonlyAttribute(jsObject: jsObject, name: Strings.pose) - _touchEvents = ReadonlyAttribute(jsObject: jsObject, name: Strings.touchEvents) - _vibrationActuator = ReadonlyAttribute(jsObject: jsObject, name: Strings.vibrationActuator) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var id: String + @inlinable public var id: String { jsObject[Strings.id].fromJSValue()! } - @ReadonlyAttribute - public var index: Int32 + @inlinable public var index: Int32 { jsObject[Strings.index].fromJSValue()! } - @ReadonlyAttribute - public var connected: Bool + @inlinable public var connected: Bool { jsObject[Strings.connected].fromJSValue()! } - @ReadonlyAttribute - public var timestamp: DOMHighResTimeStamp + @inlinable public var timestamp: DOMHighResTimeStamp { jsObject[Strings.timestamp].fromJSValue()! } - @ReadonlyAttribute - public var mapping: GamepadMappingType + @inlinable public var mapping: GamepadMappingType { jsObject[Strings.mapping].fromJSValue()! } - @ReadonlyAttribute - public var axes: [Double] + @inlinable public var axes: [Double] { jsObject[Strings.axes].fromJSValue()! } - @ReadonlyAttribute - public var buttons: [GamepadButton] + @inlinable public var buttons: [GamepadButton] { jsObject[Strings.buttons].fromJSValue()! } - @ReadonlyAttribute - public var hand: GamepadHand + @inlinable public var touches: [GamepadTouch] { jsObject[Strings.touches].fromJSValue()! } - @ReadonlyAttribute - public var hapticActuators: [GamepadHapticActuator] + @inlinable public var vibrationActuator: GamepadHapticActuator { + jsObject[Strings.vibrationActuator].fromJSValue()! + } - @ReadonlyAttribute - public var pose: GamepadPose? + @inlinable public var hand: GamepadHand { jsObject[Strings.hand].fromJSValue()! } - @ReadonlyAttribute - public var touchEvents: [GamepadTouch]? + @inlinable public var hapticActuators: [GamepadHapticActuator] { jsObject[Strings.hapticActuators].fromJSValue()! } - @ReadonlyAttribute - public var vibrationActuator: GamepadHapticActuator? + @inlinable public var pose: GamepadPose? { jsObject[Strings.pose].fromJSValue() } } public class GamepadButton: JSBridgedClass { @@ -69,367 +52,361 @@ public class GamepadButton: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _pressed = ReadonlyAttribute(jsObject: jsObject, name: Strings.pressed) - _touched = ReadonlyAttribute(jsObject: jsObject, name: Strings.touched) - _value = ReadonlyAttribute(jsObject: jsObject, name: Strings.value) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var pressed: Bool + @inlinable public var pressed: Bool { jsObject[Strings.pressed].fromJSValue()! } - @ReadonlyAttribute - public var touched: Bool + @inlinable public var touched: Bool { jsObject[Strings.touched].fromJSValue()! } - @ReadonlyAttribute - public var value: Double + @inlinable public var value: Double { jsObject[Strings.value].fromJSValue()! } } -public class GamepadEffectParameters: BridgedDictionary { - public convenience init(duration: Double, startDelay: Double, strongMagnitude: Double, weakMagnitude: Double) { +open class GamepadEffectParameters: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + duration: UInt64? = nil, + startDelay: UInt64? = nil, + strongMagnitude: Double? = nil, + weakMagnitude: Double? = nil, + leftTrigger: Double? = nil, + rightTrigger: Double? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.duration] = _toJSValue(duration) object[Strings.startDelay] = _toJSValue(startDelay) object[Strings.strongMagnitude] = _toJSValue(strongMagnitude) object[Strings.weakMagnitude] = _toJSValue(weakMagnitude) - self.init(unsafelyWrapping: object) - } + object[Strings.leftTrigger] = _toJSValue(leftTrigger) + object[Strings.rightTrigger] = _toJSValue(rightTrigger) - public required init(unsafelyWrapping object: JSObject) { - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _startDelay = ReadWriteAttribute(jsObject: object, name: Strings.startDelay) - _strongMagnitude = ReadWriteAttribute(jsObject: object, name: Strings.strongMagnitude) - _weakMagnitude = ReadWriteAttribute(jsObject: object, name: Strings.weakMagnitude) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var duration: Double - - @ReadWriteAttribute - public var startDelay: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var strongMagnitude: Double - - @ReadWriteAttribute - public var weakMagnitude: Double + @inlinable public var duration: UInt64 { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var startDelay: UInt64 { + get { jsObject[Strings.startDelay].fromJSValue()! } + set { jsObject[Strings.startDelay] = _toJSValue(newValue) } + } + @inlinable public var strongMagnitude: Double { + get { jsObject[Strings.strongMagnitude].fromJSValue()! } + set { jsObject[Strings.strongMagnitude] = _toJSValue(newValue) } + } + @inlinable public var weakMagnitude: Double { + get { jsObject[Strings.weakMagnitude].fromJSValue()! } + set { jsObject[Strings.weakMagnitude] = _toJSValue(newValue) } + } + @inlinable public var leftTrigger: Double { + get { jsObject[Strings.leftTrigger].fromJSValue()! } + set { jsObject[Strings.leftTrigger] = _toJSValue(newValue) } + } + @inlinable public var rightTrigger: Double { + get { jsObject[Strings.rightTrigger].fromJSValue()! } + set { jsObject[Strings.rightTrigger] = _toJSValue(newValue) } + } } - public class GamepadEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GamepadEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.GamepadEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _gamepad = ReadonlyAttribute(jsObject: jsObject, name: Strings.gamepad) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: GamepadEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var gamepad: Gamepad + @inlinable public var gamepad: Gamepad { jsObject[Strings.gamepad].fromJSValue()! } } -public class GamepadEventInit: BridgedDictionary { +open class GamepadEventInit: EventInit { + public convenience init(gamepad: Gamepad) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.gamepad] = _toJSValue(gamepad) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _gamepad = ReadWriteAttribute(jsObject: object, name: Strings.gamepad) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var gamepad: Gamepad + @inlinable public var gamepad: Gamepad { + get { jsObject[Strings.gamepad].fromJSValue()! } + set { jsObject[Strings.gamepad] = _toJSValue(newValue) } + } } - public enum GamepadHand: JSString, JSValueCompatible { case _empty = "" case left = "left" case right = "right" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GamepadHapticActuator: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GamepadHapticActuator].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var type: GamepadHapticActuatorType + @inlinable public var effects: [GamepadHapticEffectType] { jsObject[Strings.effects].fromJSValue()! } - @inlinable public func canPlayEffectType(type: GamepadHapticEffectType) -> Bool { + @inlinable final public func playEffect( + type: GamepadHapticEffectType, + params: GamepadEffectParameters? = nil + ) -> JSPromise { let this = jsObject - return this[Strings.canPlayEffectType].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue()! + return this[Strings.playEffect].function!(this: this, arguments: [_toJSValue(type), _toJSValue(params)]) + .fromJSValue()! } - @inlinable public func playEffect(type: GamepadHapticEffectType, params: GamepadEffectParameters? = nil) -> JSPromise { - let this = jsObject - return this[Strings.playEffect].function!(this: this, arguments: [_toJSValue(type), _toJSValue(params)]).fromJSValue()! - } - - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func playEffect(type: GamepadHapticEffectType, params: GamepadEffectParameters? = nil) async throws -> GamepadHapticsResult { - let this = jsObject - let _promise: JSPromise = this[Strings.playEffect].function!(this: this, arguments: [_toJSValue(type), _toJSValue(params)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } - - @inlinable public func pulse(value: Double, duration: Double) -> JSPromise { - let this = jsObject - return this[Strings.pulse].function!(this: this, arguments: [_toJSValue(value), _toJSValue(duration)]).fromJSValue()! - } - - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func pulse(value: Double, duration: Double) async throws -> Bool { - let this = jsObject - let _promise: JSPromise = this[Strings.pulse].function!(this: this, arguments: [_toJSValue(value), _toJSValue(duration)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func playEffect( + type: GamepadHapticEffectType, + params: GamepadEffectParameters? = nil + ) async throws(JSException) -> GamepadHapticsResult { + let this = jsObject + let _promise: JSPromise = this[Strings.playEffect].function!( + this: this, + arguments: [_toJSValue(type), _toJSValue(params)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func reset() -> JSPromise { + @inlinable final public func reset() -> JSPromise { let this = jsObject return this[Strings.reset].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func reset() async throws -> GamepadHapticsResult { - let this = jsObject - let _promise: JSPromise = this[Strings.reset].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } -} - -public enum GamepadHapticActuatorType: JSString, JSValueCompatible { - case vibration = "vibration" - case dualRumble = "dual-rumble" - - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func reset() + async throws(JSException) -> GamepadHapticsResult + { + let this = jsObject + let _promise: JSPromise = this[Strings.reset].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! } - return nil - } + #endif - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + @inlinable final public func pulse(value: Double, duration: Double) -> JSPromise { + let this = jsObject + return this[Strings.pulse].function!(this: this, arguments: [_toJSValue(value), _toJSValue(duration)]) + .fromJSValue()! } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func pulse( + value: Double, + duration: Double + ) async throws(JSException) -> Bool { + let this = jsObject + let _promise: JSPromise = this[Strings.pulse].function!( + this: this, + arguments: [_toJSValue(value), _toJSValue(duration)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public enum GamepadHapticEffectType: JSString, JSValueCompatible { case dualRumble = "dual-rumble" + case triggerRumble = "trigger-rumble" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GamepadHapticsResult: JSString, JSValueCompatible { case complete = "complete" case preempted = "preempted" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GamepadMappingType: JSString, JSValueCompatible { case _empty = "" case standard = "standard" case xrStandard = "xr-standard" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GamepadPose: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GamepadPose].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _hasOrientation = ReadonlyAttribute(jsObject: jsObject, name: Strings.hasOrientation) - _hasPosition = ReadonlyAttribute(jsObject: jsObject, name: Strings.hasPosition) - _position = ReadonlyAttribute(jsObject: jsObject, name: Strings.position) - _linearVelocity = ReadonlyAttribute(jsObject: jsObject, name: Strings.linearVelocity) - _linearAcceleration = ReadonlyAttribute(jsObject: jsObject, name: Strings.linearAcceleration) - _orientation = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientation) - _angularVelocity = ReadonlyAttribute(jsObject: jsObject, name: Strings.angularVelocity) - _angularAcceleration = ReadonlyAttribute(jsObject: jsObject, name: Strings.angularAcceleration) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var hasOrientation: Bool + @inlinable public var hasOrientation: Bool { jsObject[Strings.hasOrientation].fromJSValue()! } - @ReadonlyAttribute - public var hasPosition: Bool + @inlinable public var hasPosition: Bool { jsObject[Strings.hasPosition].fromJSValue()! } - @ReadonlyAttribute - public var position: Float32Array? + @inlinable public var position: Float32Array? { jsObject[Strings.position].fromJSValue() } - @ReadonlyAttribute - public var linearVelocity: Float32Array? + @inlinable public var linearVelocity: Float32Array? { jsObject[Strings.linearVelocity].fromJSValue() } - @ReadonlyAttribute - public var linearAcceleration: Float32Array? + @inlinable public var linearAcceleration: Float32Array? { jsObject[Strings.linearAcceleration].fromJSValue() } - @ReadonlyAttribute - public var orientation: Float32Array? + @inlinable public var orientation: Float32Array? { jsObject[Strings.orientation].fromJSValue() } - @ReadonlyAttribute - public var angularVelocity: Float32Array? + @inlinable public var angularVelocity: Float32Array? { jsObject[Strings.angularVelocity].fromJSValue() } - @ReadonlyAttribute - public var angularAcceleration: Float32Array? + @inlinable public var angularAcceleration: Float32Array? { jsObject[Strings.angularAcceleration].fromJSValue() } } -public class GamepadTouch: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GamepadTouch].function } - +open class GamepadTouch: JSDictionaryCompatible { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _touchId = ReadonlyAttribute(jsObject: jsObject, name: Strings.touchId) - _surfaceId = ReadonlyAttribute(jsObject: jsObject, name: Strings.surfaceId) - _position = ReadonlyAttribute(jsObject: jsObject, name: Strings.position) - _surfaceDimensions = ReadonlyAttribute(jsObject: jsObject, name: Strings.surfaceDimensions) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var touchId: UInt32 + public convenience init( + touchId: UInt32? = nil, + surfaceId: UInt8? = nil, + position: DOMPointReadOnly? = nil, + surfaceDimensions: DOMRectReadOnly? + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.touchId] = _toJSValue(touchId) + object[Strings.surfaceId] = _toJSValue(surfaceId) + object[Strings.position] = _toJSValue(position) + object[Strings.surfaceDimensions] = _toJSValue(surfaceDimensions) - @ReadonlyAttribute - public var surfaceId: UInt8 + self.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var position: Float32Array + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadonlyAttribute - public var surfaceDimensions: Uint32Array? + @inlinable public var touchId: UInt32 { + get { jsObject[Strings.touchId].fromJSValue()! } + set { jsObject[Strings.touchId] = _toJSValue(newValue) } + } + @inlinable public var surfaceId: UInt8 { + get { jsObject[Strings.surfaceId].fromJSValue()! } + set { jsObject[Strings.surfaceId] = _toJSValue(newValue) } + } + @inlinable public var position: DOMPointReadOnly { + get { jsObject[Strings.position].fromJSValue()! } + set { jsObject[Strings.position] = _toJSValue(newValue) } + } + @inlinable public var surfaceDimensions: DOMRectReadOnly? { + get { jsObject[Strings.surfaceDimensions].fromJSValue() } + set { jsObject[Strings.surfaceDimensions] = _toJSValue(newValue) } + } } +extension Navigator { -public extension Navigator { - @inlinable func getGamepads() -> [Gamepad?] { + @inlinable final public func getGamepads() -> [Gamepad?] { let this = jsObject return this[Strings.getGamepads].function!(this: this, arguments: []).fromJSValue()! } } -public extension WindowEventHandlers { - @inlinable var ongamepadconnected: EventHandler { - get { ClosureAttribute1Optional[Strings.ongamepadconnected, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ongamepadconnected, in: jsObject] = newValue } +extension WindowEventHandlers { + @inlinable public var ongamepadconnected: EventHandler { + get { + guard let function = jsObject[Strings.ongamepadconnected].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ongamepadconnected] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ongamepadconnected] = .null + } + } } - @inlinable var ongamepaddisconnected: EventHandler { - get { ClosureAttribute1Optional[Strings.ongamepaddisconnected, in: jsObject] } - nonmutating set { ClosureAttribute1Optional[Strings.ongamepaddisconnected, in: jsObject] = newValue } + @inlinable public var ongamepaddisconnected: EventHandler { + get { + guard let function = jsObject[Strings.ongamepaddisconnected].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.ongamepaddisconnected] = + JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.ongamepaddisconnected] = .null + } + } } } - @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let Gamepad: JSString = "Gamepad" - @usableFromInline static let GamepadButton: JSString = "GamepadButton" - @usableFromInline static let GamepadEvent: JSString = "GamepadEvent" - @usableFromInline static let GamepadHapticActuator: JSString = "GamepadHapticActuator" - @usableFromInline static let GamepadPose: JSString = "GamepadPose" - @usableFromInline static let GamepadTouch: JSString = "GamepadTouch" - @usableFromInline static let Navigator: JSString = "Navigator" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let angularAcceleration: JSString = "angularAcceleration" - @usableFromInline static let angularVelocity: JSString = "angularVelocity" - @usableFromInline static let axes: JSString = "axes" - @usableFromInline static let buttons: JSString = "buttons" - @usableFromInline static let canPlayEffectType: JSString = "canPlayEffectType" - @usableFromInline static let connected: JSString = "connected" - @usableFromInline static let duration: JSString = "duration" - @usableFromInline static let gamepad: JSString = "gamepad" - @usableFromInline static let getGamepads: JSString = "getGamepads" - @usableFromInline static let hand: JSString = "hand" - @usableFromInline static let hapticActuators: JSString = "hapticActuators" - @usableFromInline static let hasOrientation: JSString = "hasOrientation" - @usableFromInline static let hasPosition: JSString = "hasPosition" - @usableFromInline static let id: JSString = "id" - @usableFromInline static let index: JSString = "index" - @usableFromInline static let linearAcceleration: JSString = "linearAcceleration" - @usableFromInline static let linearVelocity: JSString = "linearVelocity" - @usableFromInline static let mapping: JSString = "mapping" - @usableFromInline static let ongamepadconnected: JSString = "ongamepadconnected" - @usableFromInline static let ongamepaddisconnected: JSString = "ongamepaddisconnected" - @usableFromInline static let orientation: JSString = "orientation" - @usableFromInline static let playEffect: JSString = "playEffect" - @usableFromInline static let pose: JSString = "pose" - @usableFromInline static let position: JSString = "position" - @usableFromInline static let pressed: JSString = "pressed" - @usableFromInline static let pulse: JSString = "pulse" - @usableFromInline static let reset: JSString = "reset" - @usableFromInline static let startDelay: JSString = "startDelay" - @usableFromInline static let strongMagnitude: JSString = "strongMagnitude" - @usableFromInline static let surfaceDimensions: JSString = "surfaceDimensions" - @usableFromInline static let surfaceId: JSString = "surfaceId" - @usableFromInline static let timestamp: JSString = "timestamp" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let touchEvents: JSString = "touchEvents" - @usableFromInline static let touchId: JSString = "touchId" - @usableFromInline static let touched: JSString = "touched" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let value: JSString = "value" - @usableFromInline static let vibrationActuator: JSString = "vibrationActuator" - @usableFromInline static let weakMagnitude: JSString = "weakMagnitude" + @usableFromInline static let `Gamepad`: JSString = "Gamepad" + @usableFromInline static let `GamepadButton`: JSString = "GamepadButton" + @usableFromInline static let `GamepadEvent`: JSString = "GamepadEvent" + @usableFromInline static let `GamepadHapticActuator`: JSString = "GamepadHapticActuator" + @usableFromInline static let `GamepadPose`: JSString = "GamepadPose" + @usableFromInline static let `Navigator`: JSString = "Navigator" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `angularAcceleration`: JSString = "angularAcceleration" + @usableFromInline static let `angularVelocity`: JSString = "angularVelocity" + @usableFromInline static let `axes`: JSString = "axes" + @usableFromInline static let `buttons`: JSString = "buttons" + @usableFromInline static let `connected`: JSString = "connected" + @usableFromInline static let `duration`: JSString = "duration" + @usableFromInline static let `effects`: JSString = "effects" + @usableFromInline static let `gamepad`: JSString = "gamepad" + @usableFromInline static let `getGamepads`: JSString = "getGamepads" + @usableFromInline static let `hand`: JSString = "hand" + @usableFromInline static let `hapticActuators`: JSString = "hapticActuators" + @usableFromInline static let `hasOrientation`: JSString = "hasOrientation" + @usableFromInline static let `hasPosition`: JSString = "hasPosition" + @usableFromInline static let `id`: JSString = "id" + @usableFromInline static let `index`: JSString = "index" + @usableFromInline static let `leftTrigger`: JSString = "leftTrigger" + @usableFromInline static let `linearAcceleration`: JSString = "linearAcceleration" + @usableFromInline static let `linearVelocity`: JSString = "linearVelocity" + @usableFromInline static let `mapping`: JSString = "mapping" + @usableFromInline static let `ongamepadconnected`: JSString = "ongamepadconnected" + @usableFromInline static let `ongamepaddisconnected`: JSString = "ongamepaddisconnected" + @usableFromInline static let `orientation`: JSString = "orientation" + @usableFromInline static let `playEffect`: JSString = "playEffect" + @usableFromInline static let `pose`: JSString = "pose" + @usableFromInline static let `position`: JSString = "position" + @usableFromInline static let `pressed`: JSString = "pressed" + @usableFromInline static let `pulse`: JSString = "pulse" + @usableFromInline static let `reset`: JSString = "reset" + @usableFromInline static let `rightTrigger`: JSString = "rightTrigger" + @usableFromInline static let `startDelay`: JSString = "startDelay" + @usableFromInline static let `strongMagnitude`: JSString = "strongMagnitude" + @usableFromInline static let `surfaceDimensions`: JSString = "surfaceDimensions" + @usableFromInline static let `surfaceId`: JSString = "surfaceId" + @usableFromInline static let `timestamp`: JSString = "timestamp" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `touchId`: JSString = "touchId" + @usableFromInline static let `touched`: JSString = "touched" + @usableFromInline static let `touches`: JSString = "touches" + @usableFromInline static let `value`: JSString = "value" + @usableFromInline static let `vibrationActuator`: JSString = "vibrationActuator" + @usableFromInline static let `weakMagnitude`: JSString = "weakMagnitude" } diff --git a/Sources/SVG/Generated.swift b/Sources/SVG/Generated.swift index a9601b0b..bf8f1dd1 100644 --- a/Sources/SVG/Generated.swift +++ b/Sources/SVG/Generated.swift @@ -2,100 +2,113 @@ import DOM import ECMAScript -import JavaScriptEventLoop import JavaScriptKit import WebAPIBase +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public protocol GetSVGDocument: JSBridgedClass {} -public extension GetSVGDocument { - @inlinable func getSVGDocument() -> Document { +extension GetSVGDocument { + @inlinable public func getSVGDocument() -> Document { let this = jsObject return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()! } } - public class SVGAElement: SVGGraphicsElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGAElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGAElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target) - _download = ReadWriteAttribute(jsObject: jsObject, name: Strings.download) - _ping = ReadWriteAttribute(jsObject: jsObject, name: Strings.ping) - _rel = ReadWriteAttribute(jsObject: jsObject, name: Strings.rel) - _relList = ReadonlyAttribute(jsObject: jsObject, name: Strings.relList) - _hreflang = ReadWriteAttribute(jsObject: jsObject, name: Strings.hreflang) - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text) - _referrerPolicy = ReadWriteAttribute(jsObject: jsObject, name: Strings.referrerPolicy) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _protocol = ReadWriteAttribute(jsObject: jsObject, name: Strings.protocol) - _username = ReadWriteAttribute(jsObject: jsObject, name: Strings.username) - _password = ReadWriteAttribute(jsObject: jsObject, name: Strings.password) - _host = ReadWriteAttribute(jsObject: jsObject, name: Strings.host) - _hostname = ReadWriteAttribute(jsObject: jsObject, name: Strings.hostname) - _port = ReadWriteAttribute(jsObject: jsObject, name: Strings.port) - _pathname = ReadWriteAttribute(jsObject: jsObject, name: Strings.pathname) - _search = ReadWriteAttribute(jsObject: jsObject, name: Strings.search) - _hash = ReadWriteAttribute(jsObject: jsObject, name: Strings.hash) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var target: SVGAnimatedString + @inlinable public var target: SVGAnimatedString { jsObject[Strings.target].fromJSValue()! } - @ReadWriteAttribute - public var download: String + @inlinable public var download: String { + get { jsObject[Strings.download].fromJSValue()! } + set { jsObject[Strings.download] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var ping: String + @inlinable public var ping: String { + get { jsObject[Strings.ping].fromJSValue()! } + set { jsObject[Strings.ping] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rel: String + @inlinable public var rel: String { + get { jsObject[Strings.rel].fromJSValue()! } + set { jsObject[Strings.rel] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var relList: DOMTokenList + @inlinable public var relList: DOMTokenList { jsObject[Strings.relList].fromJSValue()! } - @ReadWriteAttribute - public var hreflang: String + @inlinable public var hreflang: String { + get { jsObject[Strings.hreflang].fromJSValue()! } + set { jsObject[Strings.hreflang] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var text: String + @inlinable public var text: String { + get { jsObject[Strings.text].fromJSValue()! } + set { jsObject[Strings.text] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var referrerPolicy: String + @inlinable public var referrerPolicy: String { + get { jsObject[Strings.referrerPolicy].fromJSValue()! } + set { jsObject[Strings.referrerPolicy] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var origin: String + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @ReadWriteAttribute - public var `protocol`: String + @inlinable public var `protocol`: String { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var username: String + @inlinable public var username: String { + get { jsObject[Strings.username].fromJSValue()! } + set { jsObject[Strings.username] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var password: String + @inlinable public var password: String { + get { jsObject[Strings.password].fromJSValue()! } + set { jsObject[Strings.password] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var host: String + @inlinable public var host: String { + get { jsObject[Strings.host].fromJSValue()! } + set { jsObject[Strings.host] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hostname: String + @inlinable public var hostname: String { + get { jsObject[Strings.hostname].fromJSValue()! } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var port: String + @inlinable public var port: String { + get { jsObject[Strings.port].fromJSValue()! } + set { jsObject[Strings.port] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pathname: String + @inlinable public var pathname: String { + get { jsObject[Strings.pathname].fromJSValue()! } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var search: String + @inlinable public var search: String { + get { jsObject[Strings.search].fromJSValue()! } + set { jsObject[Strings.search] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hash: String + @inlinable public var hash: String { + get { jsObject[Strings.hash].fromJSValue()! } + set { jsObject[Strings.hash] = _toJSValue(newValue) } + } } public class SVGAngle: JSBridgedClass { @@ -103,13 +116,7 @@ public class SVGAngle: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _unitType = ReadonlyAttribute(jsObject: jsObject, name: Strings.unitType) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _valueInSpecifiedUnits = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueInSpecifiedUnits) - _valueAsString = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueAsString) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let SVG_ANGLETYPE_UNKNOWN: UInt16 = 0 @@ -121,51 +128,62 @@ public class SVGAngle: JSBridgedClass { public static let SVG_ANGLETYPE_GRAD: UInt16 = 4 - @ReadonlyAttribute - public var unitType: UInt16 + @inlinable public var unitType: UInt16 { jsObject[Strings.unitType].fromJSValue()! } - @ReadWriteAttribute - public var value: Float + @inlinable public var value: Float { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueInSpecifiedUnits: Float + @inlinable public var valueInSpecifiedUnits: Float { + get { jsObject[Strings.valueInSpecifiedUnits].fromJSValue()! } + set { jsObject[Strings.valueInSpecifiedUnits] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueAsString: String + @inlinable public var valueAsString: String { + get { jsObject[Strings.valueAsString].fromJSValue()! } + set { jsObject[Strings.valueAsString] = _toJSValue(newValue) } + } - @inlinable public func newValueSpecifiedUnits(unitType: UInt16, valueInSpecifiedUnits: Float) { + @inlinable final public func newValueSpecifiedUnits(unitType: UInt16, valueInSpecifiedUnits: Float) { let this = jsObject - _ = this[Strings.newValueSpecifiedUnits].function!(this: this, arguments: [_toJSValue(unitType), _toJSValue(valueInSpecifiedUnits)]) + _ = this[Strings.newValueSpecifiedUnits].function!( + this: this, + arguments: [_toJSValue(unitType), _toJSValue(valueInSpecifiedUnits)] + ) } - @inlinable public func convertToSpecifiedUnits(unitType: UInt16) { + @inlinable final public func convertToSpecifiedUnits(unitType: UInt16) { let this = jsObject _ = this[Strings.convertToSpecifiedUnits].function!(this: this, arguments: [_toJSValue(unitType)]) } } public class SVGAnimateElement: SVGAnimationElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGAnimateElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGAnimateElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGAnimateMotionElement: SVGAnimationElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGAnimateMotionElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGAnimateMotionElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGAnimateTransformElement: SVGAnimationElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGAnimateTransformElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGAnimateTransformElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGAnimatedAngle: JSBridgedClass { @@ -173,17 +191,11 @@ public class SVGAnimatedAngle: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGAngle + @inlinable public var baseVal: SVGAngle { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGAngle + @inlinable public var animVal: SVGAngle { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedBoolean: JSBridgedClass { @@ -191,17 +203,14 @@ public class SVGAnimatedBoolean: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadWriteAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var baseVal: Bool + @inlinable public var baseVal: Bool { + get { jsObject[Strings.baseVal].fromJSValue()! } + set { jsObject[Strings.baseVal] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var animVal: Bool + @inlinable public var animVal: Bool { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedEnumeration: JSBridgedClass { @@ -209,17 +218,14 @@ public class SVGAnimatedEnumeration: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadWriteAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var baseVal: UInt16 + @inlinable public var baseVal: UInt16 { + get { jsObject[Strings.baseVal].fromJSValue()! } + set { jsObject[Strings.baseVal] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var animVal: UInt16 + @inlinable public var animVal: UInt16 { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedInteger: JSBridgedClass { @@ -227,17 +233,14 @@ public class SVGAnimatedInteger: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadWriteAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var baseVal: Int32 + @inlinable public var baseVal: Int32 { + get { jsObject[Strings.baseVal].fromJSValue()! } + set { jsObject[Strings.baseVal] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var animVal: Int32 + @inlinable public var animVal: Int32 { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedLength: JSBridgedClass { @@ -245,17 +248,11 @@ public class SVGAnimatedLength: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGLength + @inlinable public var baseVal: SVGLength { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGLength + @inlinable public var animVal: SVGLength { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedLengthList: JSBridgedClass { @@ -263,17 +260,11 @@ public class SVGAnimatedLengthList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGLengthList + @inlinable public var baseVal: SVGLengthList { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGLengthList + @inlinable public var animVal: SVGLengthList { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedNumber: JSBridgedClass { @@ -281,17 +272,14 @@ public class SVGAnimatedNumber: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadWriteAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var baseVal: Float + @inlinable public var baseVal: Float { + get { jsObject[Strings.baseVal].fromJSValue()! } + set { jsObject[Strings.baseVal] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var animVal: Float + @inlinable public var animVal: Float { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedNumberList: JSBridgedClass { @@ -299,42 +287,31 @@ public class SVGAnimatedNumberList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGNumberList + @inlinable public var baseVal: SVGNumberList { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGNumberList + @inlinable public var animVal: SVGNumberList { jsObject[Strings.animVal].fromJSValue()! } } public protocol SVGAnimatedPoints: JSBridgedClass {} -public extension SVGAnimatedPoints { - @inlinable var points: SVGPointList { jsObject[Strings.points].fromJSValue()! } +extension SVGAnimatedPoints { + @inlinable public var points: SVGPointList { jsObject[Strings.points].fromJSValue()! } - @inlinable var animatedPoints: SVGPointList { jsObject[Strings.animatedPoints].fromJSValue()! } + @inlinable public var animatedPoints: SVGPointList { jsObject[Strings.animatedPoints].fromJSValue()! } } - public class SVGAnimatedPreserveAspectRatio: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.SVGAnimatedPreserveAspectRatio].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.SVGAnimatedPreserveAspectRatio].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGPreserveAspectRatio + @inlinable public var baseVal: SVGPreserveAspectRatio { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGPreserveAspectRatio + @inlinable public var animVal: SVGPreserveAspectRatio { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedRect: JSBridgedClass { @@ -342,17 +319,11 @@ public class SVGAnimatedRect: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: DOMRect + @inlinable public var baseVal: DOMRect { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: DOMRectReadOnly + @inlinable public var animVal: DOMRectReadOnly { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedString: JSBridgedClass { @@ -360,17 +331,14 @@ public class SVGAnimatedString: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadWriteAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var baseVal: String + @inlinable public var baseVal: String { + get { jsObject[Strings.baseVal].fromJSValue()! } + set { jsObject[Strings.baseVal] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var animVal: String + @inlinable public var animVal: String { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimatedTransformList: JSBridgedClass { @@ -378,303 +346,285 @@ public class SVGAnimatedTransformList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _baseVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseVal) - _animVal = ReadonlyAttribute(jsObject: jsObject, name: Strings.animVal) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var baseVal: SVGTransformList + @inlinable public var baseVal: SVGTransformList { jsObject[Strings.baseVal].fromJSValue()! } - @ReadonlyAttribute - public var animVal: SVGTransformList + @inlinable public var animVal: SVGTransformList { jsObject[Strings.animVal].fromJSValue()! } } public class SVGAnimationElement: SVGElement, SVGTests { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGAnimationElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _targetElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.targetElement) - _onbegin = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onbegin) - _onend = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onend) - _onrepeat = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onrepeat) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGAnimationElement].function } - @ReadonlyAttribute - public var targetElement: SVGElement? + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var targetElement: SVGElement? { jsObject[Strings.targetElement].fromJSValue() } - @ClosureAttribute1Optional - public var onbegin: EventHandler + @inlinable public var onbegin: EventHandler { + get { + guard let function = jsObject[Strings.onbegin].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onbegin] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onbegin] = .null + } + } + } - @ClosureAttribute1Optional - public var onend: EventHandler + @inlinable public var onend: EventHandler { + get { + guard let function = jsObject[Strings.onend].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onend] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onend] = .null + } + } + } - @ClosureAttribute1Optional - public var onrepeat: EventHandler + @inlinable public var onrepeat: EventHandler { + get { + guard let function = jsObject[Strings.onrepeat].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onrepeat] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onrepeat] = .null + } + } + } - @inlinable public func getStartTime() -> Float { + @inlinable final public func getStartTime() -> Float { let this = jsObject return this[Strings.getStartTime].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getCurrentTime() -> Float { + @inlinable final public func getCurrentTime() -> Float { let this = jsObject return this[Strings.getCurrentTime].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getSimpleDuration() -> Float { + @inlinable final public func getSimpleDuration() -> Float { let this = jsObject return this[Strings.getSimpleDuration].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func beginElement() { + @inlinable final public func beginElement() { let this = jsObject _ = this[Strings.beginElement].function!(this: this, arguments: []) } - @inlinable public func beginElementAt(offset: Float) { + @inlinable final public func beginElementAt(offset: Float) { let this = jsObject _ = this[Strings.beginElementAt].function!(this: this, arguments: [_toJSValue(offset)]) } - @inlinable public func endElement() { + @inlinable final public func endElement() { let this = jsObject _ = this[Strings.endElement].function!(this: this, arguments: []) } - @inlinable public func endElementAt(offset: Float) { + @inlinable final public func endElementAt(offset: Float) { let this = jsObject _ = this[Strings.endElementAt].function!(this: this, arguments: [_toJSValue(offset)]) } } -public class SVGBoundingBoxOptions: BridgedDictionary { - public convenience init(fill: Bool, stroke: Bool, markers: Bool, clipped: Bool) { +open class SVGBoundingBoxOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(fill: Bool? = nil, stroke: Bool? = nil, markers: Bool? = nil, clipped: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.fill] = _toJSValue(fill) object[Strings.stroke] = _toJSValue(stroke) object[Strings.markers] = _toJSValue(markers) object[Strings.clipped] = _toJSValue(clipped) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _fill = ReadWriteAttribute(jsObject: object, name: Strings.fill) - _stroke = ReadWriteAttribute(jsObject: object, name: Strings.stroke) - _markers = ReadWriteAttribute(jsObject: object, name: Strings.markers) - _clipped = ReadWriteAttribute(jsObject: object, name: Strings.clipped) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var fill: Bool - - @ReadWriteAttribute - public var stroke: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var markers: Bool - - @ReadWriteAttribute - public var clipped: Bool + @inlinable public var fill: Bool { + get { jsObject[Strings.fill].fromJSValue()! } + set { jsObject[Strings.fill] = _toJSValue(newValue) } + } + @inlinable public var stroke: Bool { + get { jsObject[Strings.stroke].fromJSValue()! } + set { jsObject[Strings.stroke] = _toJSValue(newValue) } + } + @inlinable public var markers: Bool { + get { jsObject[Strings.markers].fromJSValue()! } + set { jsObject[Strings.markers] = _toJSValue(newValue) } + } + @inlinable public var clipped: Bool { + get { jsObject[Strings.clipped].fromJSValue()! } + set { jsObject[Strings.clipped] = _toJSValue(newValue) } + } } - public class SVGCircleElement: SVGGeometryElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGCircleElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGCircleElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _cx = ReadonlyAttribute(jsObject: jsObject, name: Strings.cx) - _cy = ReadonlyAttribute(jsObject: jsObject, name: Strings.cy) - _r = ReadonlyAttribute(jsObject: jsObject, name: Strings.r) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var cx: SVGAnimatedLength + @inlinable public var cx: SVGAnimatedLength { jsObject[Strings.cx].fromJSValue()! } - @ReadonlyAttribute - public var cy: SVGAnimatedLength + @inlinable public var cy: SVGAnimatedLength { jsObject[Strings.cy].fromJSValue()! } - @ReadonlyAttribute - public var r: SVGAnimatedLength + @inlinable public var r: SVGAnimatedLength { jsObject[Strings.r].fromJSValue()! } } public class SVGClipPathElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGClipPathElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _clipPathUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.clipPathUnits) - _transform = ReadonlyAttribute(jsObject: jsObject, name: Strings.transform) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGClipPathElement].function } - @ReadonlyAttribute - public var clipPathUnits: SVGAnimatedEnumeration + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var transform: SVGAnimatedTransformList + @inlinable public var clipPathUnits: SVGAnimatedEnumeration { jsObject[Strings.clipPathUnits].fromJSValue()! } + + @inlinable public var transform: SVGAnimatedTransformList { jsObject[Strings.transform].fromJSValue()! } } public class SVGDefsElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGDefsElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGDefsElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGDescElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGDescElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGDescElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGDiscardElement: SVGAnimationElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGDiscardElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGDiscardElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGElement: Element, GlobalEventHandlers, SVGElementInstance, HTMLOrSVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _svgClassName = ReadonlyAttribute(jsObject: jsObject, name: Strings.className) - _ownerSVGElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.ownerSVGElement) - _viewportElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.viewportElement) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } // Renamed because superclass has a `className` property of type `String` // NOTE! Accessing `className` on an SVGElement will crash your app - @ReadonlyAttribute - public var svgClassName: SVGAnimatedString + @inlinable public var svgClassName: SVGAnimatedString { jsObject[Strings.className].fromJSValue()! } - @ReadonlyAttribute - public var ownerSVGElement: SVGSVGElement? + @inlinable public var ownerSVGElement: SVGSVGElement? { jsObject[Strings.ownerSVGElement].fromJSValue() } - @ReadonlyAttribute - public var viewportElement: SVGElement? + @inlinable public var viewportElement: SVGElement? { jsObject[Strings.viewportElement].fromJSValue() } } public protocol SVGElementInstance: JSBridgedClass {} -public extension SVGElementInstance { - @inlinable var correspondingElement: SVGElement? { jsObject[Strings.correspondingElement].fromJSValue() } +extension SVGElementInstance { + @inlinable public var correspondingElement: SVGElement? { jsObject[Strings.correspondingElement].fromJSValue() } - @inlinable var correspondingUseElement: SVGUseElement? { jsObject[Strings.correspondingUseElement].fromJSValue() } + @inlinable public var correspondingUseElement: SVGUseElement? { + jsObject[Strings.correspondingUseElement].fromJSValue() + } } - public class SVGEllipseElement: SVGGeometryElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGEllipseElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _cx = ReadonlyAttribute(jsObject: jsObject, name: Strings.cx) - _cy = ReadonlyAttribute(jsObject: jsObject, name: Strings.cy) - _rx = ReadonlyAttribute(jsObject: jsObject, name: Strings.rx) - _ry = ReadonlyAttribute(jsObject: jsObject, name: Strings.ry) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGEllipseElement].function } - @ReadonlyAttribute - public var cx: SVGAnimatedLength + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var cx: SVGAnimatedLength { jsObject[Strings.cx].fromJSValue()! } - @ReadonlyAttribute - public var cy: SVGAnimatedLength + @inlinable public var cy: SVGAnimatedLength { jsObject[Strings.cy].fromJSValue()! } - @ReadonlyAttribute - public var rx: SVGAnimatedLength + @inlinable public var rx: SVGAnimatedLength { jsObject[Strings.rx].fromJSValue()! } - @ReadonlyAttribute - public var ry: SVGAnimatedLength + @inlinable public var ry: SVGAnimatedLength { jsObject[Strings.ry].fromJSValue()! } } public protocol SVGFitToViewBox: JSBridgedClass {} -public extension SVGFitToViewBox { - @inlinable var viewBox: SVGAnimatedRect { jsObject[Strings.viewBox].fromJSValue()! } +extension SVGFitToViewBox { + @inlinable public var viewBox: SVGAnimatedRect { jsObject[Strings.viewBox].fromJSValue()! } - @inlinable var preserveAspectRatio: SVGAnimatedPreserveAspectRatio { jsObject[Strings.preserveAspectRatio].fromJSValue()! } + @inlinable public var preserveAspectRatio: SVGAnimatedPreserveAspectRatio { + jsObject[Strings.preserveAspectRatio].fromJSValue()! + } } - public class SVGForeignObjectElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGForeignObjectElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGForeignObjectElement].function } - @ReadonlyAttribute - public var x: SVGAnimatedLength + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } } public class SVGGElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGGElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGGElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGGeometryElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGGeometryElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _pathLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.pathLength) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGGeometryElement].function } - @ReadonlyAttribute - public var pathLength: SVGAnimatedNumber + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var pathLength: SVGAnimatedNumber { jsObject[Strings.pathLength].fromJSValue()! } - @inlinable public func isPointInFill(point: DOMPointInit? = nil) -> Bool { + @inlinable final public func isPointInFill(point: DOMPointInit? = nil) -> Bool { let this = jsObject return this[Strings.isPointInFill].function!(this: this, arguments: [_toJSValue(point)]).fromJSValue()! } - @inlinable public func isPointInStroke(point: DOMPointInit? = nil) -> Bool { + @inlinable final public func isPointInStroke(point: DOMPointInit? = nil) -> Bool { let this = jsObject return this[Strings.isPointInStroke].function!(this: this, arguments: [_toJSValue(point)]).fromJSValue()! } - @inlinable public func getTotalLength() -> Float { + @inlinable final public func getTotalLength() -> Float { let this = jsObject return this[Strings.getTotalLength].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getPointAtLength(distance: Float) -> DOMPoint { + @inlinable final public func getPointAtLength(distance: Float) -> DOMPoint { let this = jsObject return this[Strings.getPointAtLength].function!(this: this, arguments: [_toJSValue(distance)]).fromJSValue()! } } public class SVGGradientElement: SVGElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGGradientElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _gradientUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.gradientUnits) - _gradientTransform = ReadonlyAttribute(jsObject: jsObject, name: Strings.gradientTransform) - _spreadMethod = ReadonlyAttribute(jsObject: jsObject, name: Strings.spreadMethod) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGGradientElement].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + public static let SVG_SPREADMETHOD_UNKNOWN: UInt16 = 0 public static let SVG_SPREADMETHOD_PAD: UInt16 = 1 @@ -683,73 +633,61 @@ public class SVGGradientElement: SVGElement, SVGURIReference { public static let SVG_SPREADMETHOD_REPEAT: UInt16 = 3 - @ReadonlyAttribute - public var gradientUnits: SVGAnimatedEnumeration + @inlinable public var gradientUnits: SVGAnimatedEnumeration { jsObject[Strings.gradientUnits].fromJSValue()! } - @ReadonlyAttribute - public var gradientTransform: SVGAnimatedTransformList + @inlinable public var gradientTransform: SVGAnimatedTransformList { + jsObject[Strings.gradientTransform].fromJSValue()! + } - @ReadonlyAttribute - public var spreadMethod: SVGAnimatedEnumeration + @inlinable public var spreadMethod: SVGAnimatedEnumeration { jsObject[Strings.spreadMethod].fromJSValue()! } } public class SVGGraphicsElement: SVGElement, SVGTests { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGGraphicsElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _transform = ReadonlyAttribute(jsObject: jsObject, name: Strings.transform) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGGraphicsElement].function } - @ReadonlyAttribute - public var transform: SVGAnimatedTransformList + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var transform: SVGAnimatedTransformList { jsObject[Strings.transform].fromJSValue()! } - @inlinable public func getBBox(options: SVGBoundingBoxOptions? = nil) -> DOMRect { + @inlinable final public func getBBox(options: SVGBoundingBoxOptions? = nil) -> DOMRect { let this = jsObject return this[Strings.getBBox].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @inlinable public func getCTM() -> DOMMatrix? { + @inlinable final public func getCTM() -> DOMMatrix? { let this = jsObject return this[Strings.getCTM].function!(this: this, arguments: []).fromJSValue() } - @inlinable public func getScreenCTM() -> DOMMatrix? { + @inlinable final public func getScreenCTM() -> DOMMatrix? { let this = jsObject return this[Strings.getScreenCTM].function!(this: this, arguments: []).fromJSValue() } } public class SVGImageElement: SVGGraphicsElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGImageElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGImageElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _preserveAspectRatio = ReadonlyAttribute(jsObject: jsObject, name: Strings.preserveAspectRatio) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var preserveAspectRatio: SVGAnimatedPreserveAspectRatio + @inlinable public var preserveAspectRatio: SVGAnimatedPreserveAspectRatio { + jsObject[Strings.preserveAspectRatio].fromJSValue()! + } - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } } public class SVGLength: JSBridgedClass { @@ -757,13 +695,7 @@ public class SVGLength: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _unitType = ReadonlyAttribute(jsObject: jsObject, name: Strings.unitType) - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _valueInSpecifiedUnits = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueInSpecifiedUnits) - _valueAsString = ReadWriteAttribute(jsObject: jsObject, name: Strings.valueAsString) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let SVG_LENGTHTYPE_UNKNOWN: UInt16 = 0 @@ -787,24 +719,32 @@ public class SVGLength: JSBridgedClass { public static let SVG_LENGTHTYPE_PC: UInt16 = 10 - @ReadonlyAttribute - public var unitType: UInt16 + @inlinable public var unitType: UInt16 { jsObject[Strings.unitType].fromJSValue()! } - @ReadWriteAttribute - public var value: Float + @inlinable public var value: Float { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueInSpecifiedUnits: Float + @inlinable public var valueInSpecifiedUnits: Float { + get { jsObject[Strings.valueInSpecifiedUnits].fromJSValue()! } + set { jsObject[Strings.valueInSpecifiedUnits] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var valueAsString: String + @inlinable public var valueAsString: String { + get { jsObject[Strings.valueAsString].fromJSValue()! } + set { jsObject[Strings.valueAsString] = _toJSValue(newValue) } + } - @inlinable public func newValueSpecifiedUnits(unitType: UInt16, valueInSpecifiedUnits: Float) { + @inlinable final public func newValueSpecifiedUnits(unitType: UInt16, valueInSpecifiedUnits: Float) { let this = jsObject - _ = this[Strings.newValueSpecifiedUnits].function!(this: this, arguments: [_toJSValue(unitType), _toJSValue(valueInSpecifiedUnits)]) + _ = this[Strings.newValueSpecifiedUnits].function!( + this: this, + arguments: [_toJSValue(unitType), _toJSValue(valueInSpecifiedUnits)] + ) } - @inlinable public func convertToSpecifiedUnits(unitType: UInt16) { + @inlinable final public func convertToSpecifiedUnits(unitType: UInt16) { let this = jsObject _ = this[Strings.convertToSpecifiedUnits].function!(this: this, arguments: [_toJSValue(unitType)]) } @@ -815,133 +755,98 @@ public class SVGLengthList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _numberOfItems = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfItems) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var numberOfItems: UInt32 + @inlinable public var numberOfItems: UInt32 { jsObject[Strings.numberOfItems].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func initialize(newItem: SVGLength) -> SVGLength { + @inlinable final public func initialize(newItem: SVGLength) -> SVGLength { let this = jsObject return this[Strings.initialize].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } - @inlinable public func getItem(index: UInt32) -> SVGLength { + @inlinable final public func getItem(index: UInt32) -> SVGLength { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func insertItemBefore(newItem: SVGLength, index: UInt32) -> SVGLength { + @inlinable final public func insertItemBefore(newItem: SVGLength, index: UInt32) -> SVGLength { let this = jsObject - return this[Strings.insertItemBefore].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertItemBefore].function!( + this: this, + arguments: [_toJSValue(newItem), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func replaceItem(newItem: SVGLength, index: UInt32) -> SVGLength { + @inlinable final public func replaceItem(newItem: SVGLength, index: UInt32) -> SVGLength { let this = jsObject - return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func removeItem(index: UInt32) -> SVGLength { + @inlinable final public func removeItem(index: UInt32) -> SVGLength { let this = jsObject return this[Strings.removeItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func appendItem(newItem: SVGLength) -> SVGLength { + @inlinable final public func appendItem(newItem: SVGLength) -> SVGLength { let this = jsObject return this[Strings.appendItem].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } @inlinable public subscript(key: Int) -> SVGLength { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } } public class SVGLineElement: SVGGeometryElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGLineElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGLineElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.x1) - _y1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.y1) - _x2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.x2) - _y2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.y2) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var x1: SVGAnimatedLength + @inlinable public var x1: SVGAnimatedLength { jsObject[Strings.x1].fromJSValue()! } - @ReadonlyAttribute - public var y1: SVGAnimatedLength + @inlinable public var y1: SVGAnimatedLength { jsObject[Strings.y1].fromJSValue()! } - @ReadonlyAttribute - public var x2: SVGAnimatedLength + @inlinable public var x2: SVGAnimatedLength { jsObject[Strings.x2].fromJSValue()! } - @ReadonlyAttribute - public var y2: SVGAnimatedLength + @inlinable public var y2: SVGAnimatedLength { jsObject[Strings.y2].fromJSValue()! } } public class SVGLinearGradientElement: SVGGradientElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGLinearGradientElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _x1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.x1) - _y1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.y1) - _x2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.x2) - _y2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.y2) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGLinearGradientElement].function } - @ReadonlyAttribute - public var x1: SVGAnimatedLength + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var y1: SVGAnimatedLength + @inlinable public var x1: SVGAnimatedLength { jsObject[Strings.x1].fromJSValue()! } - @ReadonlyAttribute - public var x2: SVGAnimatedLength + @inlinable public var y1: SVGAnimatedLength { jsObject[Strings.y1].fromJSValue()! } - @ReadonlyAttribute - public var y2: SVGAnimatedLength + @inlinable public var x2: SVGAnimatedLength { jsObject[Strings.x2].fromJSValue()! } + + @inlinable public var y2: SVGAnimatedLength { jsObject[Strings.y2].fromJSValue()! } } public class SVGMPathElement: SVGElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGMPathElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGMPathElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGMarkerElement: SVGElement, SVGFitToViewBox { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGMarkerElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGMarkerElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _refX = ReadonlyAttribute(jsObject: jsObject, name: Strings.refX) - _refY = ReadonlyAttribute(jsObject: jsObject, name: Strings.refY) - _markerUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.markerUnits) - _markerWidth = ReadonlyAttribute(jsObject: jsObject, name: Strings.markerWidth) - _markerHeight = ReadonlyAttribute(jsObject: jsObject, name: Strings.markerHeight) - _orientType = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientType) - _orientAngle = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientAngle) - _orient = ReadWriteAttribute(jsObject: jsObject, name: Strings.orient) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } public static let SVG_MARKERUNITS_UNKNOWN: UInt16 = 0 @@ -955,79 +860,61 @@ public class SVGMarkerElement: SVGElement, SVGFitToViewBox { public static let SVG_MARKER_ORIENT_ANGLE: UInt16 = 2 - @ReadonlyAttribute - public var refX: SVGAnimatedLength + @inlinable public var refX: SVGAnimatedLength { jsObject[Strings.refX].fromJSValue()! } - @ReadonlyAttribute - public var refY: SVGAnimatedLength + @inlinable public var refY: SVGAnimatedLength { jsObject[Strings.refY].fromJSValue()! } - @ReadonlyAttribute - public var markerUnits: SVGAnimatedEnumeration + @inlinable public var markerUnits: SVGAnimatedEnumeration { jsObject[Strings.markerUnits].fromJSValue()! } - @ReadonlyAttribute - public var markerWidth: SVGAnimatedLength + @inlinable public var markerWidth: SVGAnimatedLength { jsObject[Strings.markerWidth].fromJSValue()! } - @ReadonlyAttribute - public var markerHeight: SVGAnimatedLength + @inlinable public var markerHeight: SVGAnimatedLength { jsObject[Strings.markerHeight].fromJSValue()! } - @ReadonlyAttribute - public var orientType: SVGAnimatedEnumeration + @inlinable public var orientType: SVGAnimatedEnumeration { jsObject[Strings.orientType].fromJSValue()! } - @ReadonlyAttribute - public var orientAngle: SVGAnimatedAngle + @inlinable public var orientAngle: SVGAnimatedAngle { jsObject[Strings.orientAngle].fromJSValue()! } - @ReadWriteAttribute - public var orient: String + @inlinable public var orient: String { + get { jsObject[Strings.orient].fromJSValue()! } + set { jsObject[Strings.orient] = _toJSValue(newValue) } + } - @inlinable public func setOrientToAuto() { + @inlinable final public func setOrientToAuto() { let this = jsObject _ = this[Strings.setOrientToAuto].function!(this: this, arguments: []) } - @inlinable public func setOrientToAngle(angle: SVGAngle) { + @inlinable final public func setOrientToAngle(angle: SVGAngle) { let this = jsObject _ = this[Strings.setOrientToAngle].function!(this: this, arguments: [_toJSValue(angle)]) } } public class SVGMaskElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGMaskElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGMaskElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _maskUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.maskUnits) - _maskContentUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.maskContentUnits) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var maskUnits: SVGAnimatedEnumeration + @inlinable public var maskUnits: SVGAnimatedEnumeration { jsObject[Strings.maskUnits].fromJSValue()! } - @ReadonlyAttribute - public var maskContentUnits: SVGAnimatedEnumeration + @inlinable public var maskContentUnits: SVGAnimatedEnumeration { jsObject[Strings.maskContentUnits].fromJSValue()! } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } } public class SVGMetadataElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGMetadataElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGMetadataElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGNumber: JSBridgedClass { @@ -1035,13 +922,12 @@ public class SVGNumber: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var value: Float + @inlinable public var value: Float { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } } public class SVGNumberList: JSBridgedClass { @@ -1049,105 +935,88 @@ public class SVGNumberList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _numberOfItems = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfItems) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var numberOfItems: UInt32 + @inlinable public var numberOfItems: UInt32 { jsObject[Strings.numberOfItems].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func initialize(newItem: SVGNumber) -> SVGNumber { + @inlinable final public func initialize(newItem: SVGNumber) -> SVGNumber { let this = jsObject return this[Strings.initialize].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } - @inlinable public func getItem(index: UInt32) -> SVGNumber { + @inlinable final public func getItem(index: UInt32) -> SVGNumber { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func insertItemBefore(newItem: SVGNumber, index: UInt32) -> SVGNumber { + @inlinable final public func insertItemBefore(newItem: SVGNumber, index: UInt32) -> SVGNumber { let this = jsObject - return this[Strings.insertItemBefore].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertItemBefore].function!( + this: this, + arguments: [_toJSValue(newItem), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func replaceItem(newItem: SVGNumber, index: UInt32) -> SVGNumber { + @inlinable final public func replaceItem(newItem: SVGNumber, index: UInt32) -> SVGNumber { let this = jsObject - return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func removeItem(index: UInt32) -> SVGNumber { + @inlinable final public func removeItem(index: UInt32) -> SVGNumber { let this = jsObject return this[Strings.removeItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func appendItem(newItem: SVGNumber) -> SVGNumber { + @inlinable final public func appendItem(newItem: SVGNumber) -> SVGNumber { let this = jsObject return this[Strings.appendItem].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } @inlinable public subscript(key: Int) -> SVGNumber { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } } public class SVGPathElement: SVGGeometryElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGPathElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGPathElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGPatternElement: SVGElement, SVGFitToViewBox, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGPatternElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _patternUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternUnits) - _patternContentUnits = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternContentUnits) - _patternTransform = ReadonlyAttribute(jsObject: jsObject, name: Strings.patternTransform) - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGPatternElement].function } - @ReadonlyAttribute - public var patternUnits: SVGAnimatedEnumeration + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var patternUnits: SVGAnimatedEnumeration { jsObject[Strings.patternUnits].fromJSValue()! } - @ReadonlyAttribute - public var patternContentUnits: SVGAnimatedEnumeration + @inlinable public var patternContentUnits: SVGAnimatedEnumeration { + jsObject[Strings.patternContentUnits].fromJSValue()! + } - @ReadonlyAttribute - public var patternTransform: SVGAnimatedTransformList + @inlinable public var patternTransform: SVGAnimatedTransformList { + jsObject[Strings.patternTransform].fromJSValue()! + } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } } public class SVGPointList: JSBridgedClass { @@ -1155,77 +1024,73 @@ public class SVGPointList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _numberOfItems = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfItems) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var numberOfItems: UInt32 + @inlinable public var numberOfItems: UInt32 { jsObject[Strings.numberOfItems].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func initialize(newItem: DOMPoint) -> DOMPoint { + @inlinable final public func initialize(newItem: DOMPoint) -> DOMPoint { let this = jsObject return this[Strings.initialize].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } - @inlinable public func getItem(index: UInt32) -> DOMPoint { + @inlinable final public func getItem(index: UInt32) -> DOMPoint { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func insertItemBefore(newItem: DOMPoint, index: UInt32) -> DOMPoint { + @inlinable final public func insertItemBefore(newItem: DOMPoint, index: UInt32) -> DOMPoint { let this = jsObject - return this[Strings.insertItemBefore].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertItemBefore].function!( + this: this, + arguments: [_toJSValue(newItem), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func replaceItem(newItem: DOMPoint, index: UInt32) -> DOMPoint { + @inlinable final public func replaceItem(newItem: DOMPoint, index: UInt32) -> DOMPoint { let this = jsObject - return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func removeItem(index: UInt32) -> DOMPoint { + @inlinable final public func removeItem(index: UInt32) -> DOMPoint { let this = jsObject return this[Strings.removeItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func appendItem(newItem: DOMPoint) -> DOMPoint { + @inlinable final public func appendItem(newItem: DOMPoint) -> DOMPoint { let this = jsObject return this[Strings.appendItem].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } @inlinable public subscript(key: Int) -> DOMPoint { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } } public class SVGPolygonElement: SVGGeometryElement, SVGAnimatedPoints { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGPolygonElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGPolygonElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGPolylineElement: SVGGeometryElement, SVGAnimatedPoints { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGPolylineElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGPolylineElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGPreserveAspectRatio: JSBridgedClass { @@ -1233,11 +1098,7 @@ public class SVGPreserveAspectRatio: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align) - _meetOrSlice = ReadWriteAttribute(jsObject: jsObject, name: Strings.meetOrSlice) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let SVG_PRESERVEASPECTRATIO_UNKNOWN: UInt16 = 0 @@ -1267,258 +1128,232 @@ public class SVGPreserveAspectRatio: JSBridgedClass { public static let SVG_MEETORSLICE_SLICE: UInt16 = 2 - @ReadWriteAttribute - public var align: UInt16 + @inlinable public var align: UInt16 { + get { jsObject[Strings.align].fromJSValue()! } + set { jsObject[Strings.align] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var meetOrSlice: UInt16 + @inlinable public var meetOrSlice: UInt16 { + get { jsObject[Strings.meetOrSlice].fromJSValue()! } + set { jsObject[Strings.meetOrSlice] = _toJSValue(newValue) } + } } public class SVGRadialGradientElement: SVGGradientElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGRadialGradientElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _cx = ReadonlyAttribute(jsObject: jsObject, name: Strings.cx) - _cy = ReadonlyAttribute(jsObject: jsObject, name: Strings.cy) - _r = ReadonlyAttribute(jsObject: jsObject, name: Strings.r) - _fx = ReadonlyAttribute(jsObject: jsObject, name: Strings.fx) - _fy = ReadonlyAttribute(jsObject: jsObject, name: Strings.fy) - _fr = ReadonlyAttribute(jsObject: jsObject, name: Strings.fr) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGRadialGradientElement].function } - @ReadonlyAttribute - public var cx: SVGAnimatedLength + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var cy: SVGAnimatedLength + @inlinable public var cx: SVGAnimatedLength { jsObject[Strings.cx].fromJSValue()! } - @ReadonlyAttribute - public var r: SVGAnimatedLength + @inlinable public var cy: SVGAnimatedLength { jsObject[Strings.cy].fromJSValue()! } - @ReadonlyAttribute - public var fx: SVGAnimatedLength + @inlinable public var r: SVGAnimatedLength { jsObject[Strings.r].fromJSValue()! } - @ReadonlyAttribute - public var fy: SVGAnimatedLength + @inlinable public var fx: SVGAnimatedLength { jsObject[Strings.fx].fromJSValue()! } - @ReadonlyAttribute - public var fr: SVGAnimatedLength + @inlinable public var fy: SVGAnimatedLength { jsObject[Strings.fy].fromJSValue()! } + + @inlinable public var fr: SVGAnimatedLength { jsObject[Strings.fr].fromJSValue()! } } public class SVGRectElement: SVGGeometryElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGRectElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGRectElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _rx = ReadonlyAttribute(jsObject: jsObject, name: Strings.rx) - _ry = ReadonlyAttribute(jsObject: jsObject, name: Strings.ry) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var rx: SVGAnimatedLength + @inlinable public var rx: SVGAnimatedLength { jsObject[Strings.rx].fromJSValue()! } - @ReadonlyAttribute - public var ry: SVGAnimatedLength + @inlinable public var ry: SVGAnimatedLength { jsObject[Strings.ry].fromJSValue()! } } public class SVGSVGElement: SVGGraphicsElement, SVGFitToViewBox, WindowEventHandlers { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGSVGElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGSVGElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _currentScale = ReadWriteAttribute(jsObject: jsObject, name: Strings.currentScale) - _currentTranslate = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTranslate) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } - @ReadWriteAttribute - public var currentScale: Float + @inlinable public var currentScale: Float { + get { jsObject[Strings.currentScale].fromJSValue()! } + set { jsObject[Strings.currentScale] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var currentTranslate: DOMPointReadOnly + @inlinable public var currentTranslate: DOMPointReadOnly { jsObject[Strings.currentTranslate].fromJSValue()! } - @inlinable public func getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement?) -> NodeList { + @inlinable final public func getIntersectionList(rect: DOMRectReadOnly, referenceElement: SVGElement?) -> NodeList { let this = jsObject - return this[Strings.getIntersectionList].function!(this: this, arguments: [_toJSValue(rect), _toJSValue(referenceElement)]).fromJSValue()! + return this[Strings.getIntersectionList].function!( + this: this, + arguments: [_toJSValue(rect), _toJSValue(referenceElement)] + ).fromJSValue()! } - @inlinable public func getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement?) -> NodeList { + @inlinable final public func getEnclosureList(rect: DOMRectReadOnly, referenceElement: SVGElement?) -> NodeList { let this = jsObject - return this[Strings.getEnclosureList].function!(this: this, arguments: [_toJSValue(rect), _toJSValue(referenceElement)]).fromJSValue()! + return this[Strings.getEnclosureList].function!( + this: this, + arguments: [_toJSValue(rect), _toJSValue(referenceElement)] + ).fromJSValue()! } - @inlinable public func checkIntersection(element: SVGElement, rect: DOMRectReadOnly) -> Bool { + @inlinable final public func checkIntersection(element: SVGElement, rect: DOMRectReadOnly) -> Bool { let this = jsObject - return this[Strings.checkIntersection].function!(this: this, arguments: [_toJSValue(element), _toJSValue(rect)]).fromJSValue()! + return this[Strings.checkIntersection].function!( + this: this, + arguments: [_toJSValue(element), _toJSValue(rect)] + ).fromJSValue()! } - @inlinable public func checkEnclosure(element: SVGElement, rect: DOMRectReadOnly) -> Bool { + @inlinable final public func checkEnclosure(element: SVGElement, rect: DOMRectReadOnly) -> Bool { let this = jsObject - return this[Strings.checkEnclosure].function!(this: this, arguments: [_toJSValue(element), _toJSValue(rect)]).fromJSValue()! + return this[Strings.checkEnclosure].function!(this: this, arguments: [_toJSValue(element), _toJSValue(rect)]) + .fromJSValue()! } - @inlinable public func deselectAll() { + @inlinable final public func deselectAll() { let this = jsObject _ = this[Strings.deselectAll].function!(this: this, arguments: []) } - @inlinable public func createSVGNumber() -> SVGNumber { + @inlinable final public func createSVGNumber() -> SVGNumber { let this = jsObject return this[Strings.createSVGNumber].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGLength() -> SVGLength { + @inlinable final public func createSVGLength() -> SVGLength { let this = jsObject return this[Strings.createSVGLength].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGAngle() -> SVGAngle { + @inlinable final public func createSVGAngle() -> SVGAngle { let this = jsObject return this[Strings.createSVGAngle].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGPoint() -> DOMPoint { + @inlinable final public func createSVGPoint() -> DOMPoint { let this = jsObject return this[Strings.createSVGPoint].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGMatrix() -> DOMMatrix { + @inlinable final public func createSVGMatrix() -> DOMMatrix { let this = jsObject return this[Strings.createSVGMatrix].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGRect() -> DOMRect { + @inlinable final public func createSVGRect() -> DOMRect { let this = jsObject return this[Strings.createSVGRect].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGTransform() -> SVGTransform { + @inlinable final public func createSVGTransform() -> SVGTransform { let this = jsObject return this[Strings.createSVGTransform].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createSVGTransformFromMatrix(matrix: DOMMatrix2DInit? = nil) -> SVGTransform { + @inlinable final public func createSVGTransformFromMatrix(matrix: DOMMatrix2DInit? = nil) -> SVGTransform { let this = jsObject - return this[Strings.createSVGTransformFromMatrix].function!(this: this, arguments: [_toJSValue(matrix)]).fromJSValue()! + return this[Strings.createSVGTransformFromMatrix].function!(this: this, arguments: [_toJSValue(matrix)]) + .fromJSValue()! } - @inlinable public func getElementById(elementId: String) -> Element { + @inlinable final public func getElementById(elementId: String) -> Element { let this = jsObject return this[Strings.getElementById].function!(this: this, arguments: [_toJSValue(elementId)]).fromJSValue()! } - @inlinable public func suspendRedraw(maxWaitMilliseconds: UInt32) -> UInt32 { + @inlinable final public func suspendRedraw(maxWaitMilliseconds: UInt32) -> UInt32 { let this = jsObject - return this[Strings.suspendRedraw].function!(this: this, arguments: [_toJSValue(maxWaitMilliseconds)]).fromJSValue()! + return this[Strings.suspendRedraw].function!(this: this, arguments: [_toJSValue(maxWaitMilliseconds)]) + .fromJSValue()! } - @inlinable public func unsuspendRedraw(suspendHandleID: UInt32) { + @inlinable final public func unsuspendRedraw(suspendHandleID: UInt32) { let this = jsObject _ = this[Strings.unsuspendRedraw].function!(this: this, arguments: [_toJSValue(suspendHandleID)]) } - @inlinable public func unsuspendRedrawAll() { + @inlinable final public func unsuspendRedrawAll() { let this = jsObject _ = this[Strings.unsuspendRedrawAll].function!(this: this, arguments: []) } - @inlinable public func forceRedraw() { + @inlinable final public func forceRedraw() { let this = jsObject _ = this[Strings.forceRedraw].function!(this: this, arguments: []) } - @inlinable public func pauseAnimations() { + @inlinable final public func pauseAnimations() { let this = jsObject _ = this[Strings.pauseAnimations].function!(this: this, arguments: []) } - @inlinable public func unpauseAnimations() { + @inlinable final public func unpauseAnimations() { let this = jsObject _ = this[Strings.unpauseAnimations].function!(this: this, arguments: []) } - @inlinable public func animationsPaused() -> Bool { + @inlinable final public func animationsPaused() -> Bool { let this = jsObject return this[Strings.animationsPaused].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getCurrentTime() -> Float { + @inlinable final public func getCurrentTime() -> Float { let this = jsObject return this[Strings.getCurrentTime].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setCurrentTime(seconds: Float) { + @inlinable final public func setCurrentTime(seconds: Float) { let this = jsObject _ = this[Strings.setCurrentTime].function!(this: this, arguments: [_toJSValue(seconds)]) } } public class SVGScriptElement: SVGElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGScriptElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGScriptElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _crossOrigin = ReadWriteAttribute(jsObject: jsObject, name: Strings.crossOrigin) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var crossOrigin: String? + @inlinable public var crossOrigin: String? { + get { jsObject[Strings.crossOrigin].fromJSValue() } + set { jsObject[Strings.crossOrigin] = _toJSValue(newValue) } + } } public class SVGSetElement: SVGAnimationElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGSetElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGSetElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGStopElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGStopElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGStopElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var offset: SVGAnimatedNumber + @inlinable public var offset: SVGAnimatedNumber { jsObject[Strings.offset].fromJSValue()! } } public class SVGStringList: JSBridgedClass { @@ -1526,199 +1361,186 @@ public class SVGStringList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _numberOfItems = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfItems) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var numberOfItems: UInt32 + @inlinable public var numberOfItems: UInt32 { jsObject[Strings.numberOfItems].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func initialize(newItem: String) -> String { + @inlinable final public func initialize(newItem: String) -> String { let this = jsObject return this[Strings.initialize].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } - @inlinable public func getItem(index: UInt32) -> String { + @inlinable final public func getItem(index: UInt32) -> String { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func insertItemBefore(newItem: String, index: UInt32) -> String { + @inlinable final public func insertItemBefore(newItem: String, index: UInt32) -> String { let this = jsObject - return this[Strings.insertItemBefore].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertItemBefore].function!( + this: this, + arguments: [_toJSValue(newItem), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func replaceItem(newItem: String, index: UInt32) -> String { + @inlinable final public func replaceItem(newItem: String, index: UInt32) -> String { let this = jsObject - return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func removeItem(index: UInt32) -> String { + @inlinable final public func removeItem(index: UInt32) -> String { let this = jsObject return this[Strings.removeItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func appendItem(newItem: String) -> String { + @inlinable final public func appendItem(newItem: String) -> String { let this = jsObject return this[Strings.appendItem].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } @inlinable public subscript(key: Int) -> String { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } } public class SVGStyleElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGStyleElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGStyleElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _media = ReadWriteAttribute(jsObject: jsObject, name: Strings.media) - _title = ReadWriteAttribute(jsObject: jsObject, name: Strings.title) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadWriteAttribute - public var type: String + @inlinable public var type: String { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var media: String + @inlinable public var media: String { + get { jsObject[Strings.media].fromJSValue()! } + set { jsObject[Strings.media] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var title: String + @inlinable public var title: String { + get { jsObject[Strings.title].fromJSValue()! } + set { jsObject[Strings.title] = _toJSValue(newValue) } + } } public class SVGSwitchElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGSwitchElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGSwitchElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGSymbolElement: SVGGraphicsElement, SVGFitToViewBox { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGSymbolElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGSymbolElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGTSpanElement: SVGTextPositioningElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTSpanElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGTSpanElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public protocol SVGTests: JSBridgedClass {} -public extension SVGTests { - @inlinable var requiredExtensions: SVGStringList { jsObject[Strings.requiredExtensions].fromJSValue()! } +extension SVGTests { + @inlinable public var requiredExtensions: SVGStringList { jsObject[Strings.requiredExtensions].fromJSValue()! } - @inlinable var systemLanguage: SVGStringList { jsObject[Strings.systemLanguage].fromJSValue()! } + @inlinable public var systemLanguage: SVGStringList { jsObject[Strings.systemLanguage].fromJSValue()! } } - public class SVGTextContentElement: SVGGraphicsElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTextContentElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _textLength = ReadonlyAttribute(jsObject: jsObject, name: Strings.textLength) - _lengthAdjust = ReadonlyAttribute(jsObject: jsObject, name: Strings.lengthAdjust) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGTextContentElement].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + public static let LENGTHADJUST_UNKNOWN: UInt16 = 0 public static let LENGTHADJUST_SPACING: UInt16 = 1 public static let LENGTHADJUST_SPACINGANDGLYPHS: UInt16 = 2 - @ReadonlyAttribute - public var textLength: SVGAnimatedLength + @inlinable public var textLength: SVGAnimatedLength { jsObject[Strings.textLength].fromJSValue()! } - @ReadonlyAttribute - public var lengthAdjust: SVGAnimatedEnumeration + @inlinable public var lengthAdjust: SVGAnimatedEnumeration { jsObject[Strings.lengthAdjust].fromJSValue()! } - @inlinable public func getNumberOfChars() -> Int32 { + @inlinable final public func getNumberOfChars() -> Int32 { let this = jsObject return this[Strings.getNumberOfChars].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getComputedTextLength() -> Float { + @inlinable final public func getComputedTextLength() -> Float { let this = jsObject return this[Strings.getComputedTextLength].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getSubStringLength(charnum: UInt32, nchars: UInt32) -> Float { + @inlinable final public func getSubStringLength(charnum: UInt32, nchars: UInt32) -> Float { let this = jsObject - return this[Strings.getSubStringLength].function!(this: this, arguments: [_toJSValue(charnum), _toJSValue(nchars)]).fromJSValue()! + return this[Strings.getSubStringLength].function!( + this: this, + arguments: [_toJSValue(charnum), _toJSValue(nchars)] + ).fromJSValue()! } - @inlinable public func getStartPositionOfChar(charnum: UInt32) -> DOMPoint { + @inlinable final public func getStartPositionOfChar(charnum: UInt32) -> DOMPoint { let this = jsObject - return this[Strings.getStartPositionOfChar].function!(this: this, arguments: [_toJSValue(charnum)]).fromJSValue()! + return this[Strings.getStartPositionOfChar].function!(this: this, arguments: [_toJSValue(charnum)]) + .fromJSValue()! } - @inlinable public func getEndPositionOfChar(charnum: UInt32) -> DOMPoint { + @inlinable final public func getEndPositionOfChar(charnum: UInt32) -> DOMPoint { let this = jsObject return this[Strings.getEndPositionOfChar].function!(this: this, arguments: [_toJSValue(charnum)]).fromJSValue()! } - @inlinable public func getExtentOfChar(charnum: UInt32) -> DOMRect { + @inlinable final public func getExtentOfChar(charnum: UInt32) -> DOMRect { let this = jsObject return this[Strings.getExtentOfChar].function!(this: this, arguments: [_toJSValue(charnum)]).fromJSValue()! } - @inlinable public func getRotationOfChar(charnum: UInt32) -> Float { + @inlinable final public func getRotationOfChar(charnum: UInt32) -> Float { let this = jsObject return this[Strings.getRotationOfChar].function!(this: this, arguments: [_toJSValue(charnum)]).fromJSValue()! } - @inlinable public func getCharNumAtPosition(point: DOMPointInit? = nil) -> Int32 { + @inlinable final public func getCharNumAtPosition(point: DOMPointInit? = nil) -> Int32 { let this = jsObject return this[Strings.getCharNumAtPosition].function!(this: this, arguments: [_toJSValue(point)]).fromJSValue()! } - @inlinable public func selectSubString(charnum: UInt32, nchars: UInt32) { + @inlinable final public func selectSubString(charnum: UInt32, nchars: UInt32) { let this = jsObject _ = this[Strings.selectSubString].function!(this: this, arguments: [_toJSValue(charnum), _toJSValue(nchars)]) } } public class SVGTextElement: SVGTextPositioningElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTextElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGTextElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGTextPathElement: SVGTextContentElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTextPathElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _startOffset = ReadonlyAttribute(jsObject: jsObject, name: Strings.startOffset) - _method = ReadonlyAttribute(jsObject: jsObject, name: Strings.method) - _spacing = ReadonlyAttribute(jsObject: jsObject, name: Strings.spacing) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGTextPathElement].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + public static let TEXTPATH_METHODTYPE_UNKNOWN: UInt16 = 0 public static let TEXTPATH_METHODTYPE_ALIGN: UInt16 = 1 @@ -1731,50 +1553,36 @@ public class SVGTextPathElement: SVGTextContentElement, SVGURIReference { public static let TEXTPATH_SPACINGTYPE_EXACT: UInt16 = 2 - @ReadonlyAttribute - public var startOffset: SVGAnimatedLength + @inlinable public var startOffset: SVGAnimatedLength { jsObject[Strings.startOffset].fromJSValue()! } - @ReadonlyAttribute - public var method: SVGAnimatedEnumeration + @inlinable public var method: SVGAnimatedEnumeration { jsObject[Strings.method].fromJSValue()! } - @ReadonlyAttribute - public var spacing: SVGAnimatedEnumeration + @inlinable public var spacing: SVGAnimatedEnumeration { jsObject[Strings.spacing].fromJSValue()! } } public class SVGTextPositioningElement: SVGTextContentElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTextPositioningElement].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _dx = ReadonlyAttribute(jsObject: jsObject, name: Strings.dx) - _dy = ReadonlyAttribute(jsObject: jsObject, name: Strings.dy) - _rotate = ReadonlyAttribute(jsObject: jsObject, name: Strings.rotate) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGTextPositioningElement].function } - @ReadonlyAttribute - public var x: SVGAnimatedLengthList + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var y: SVGAnimatedLengthList + @inlinable public var x: SVGAnimatedLengthList { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var dx: SVGAnimatedLengthList + @inlinable public var y: SVGAnimatedLengthList { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var dy: SVGAnimatedLengthList + @inlinable public var dx: SVGAnimatedLengthList { jsObject[Strings.dx].fromJSValue()! } - @ReadonlyAttribute - public var rotate: SVGAnimatedNumberList + @inlinable public var dy: SVGAnimatedLengthList { jsObject[Strings.dy].fromJSValue()! } + + @inlinable public var rotate: SVGAnimatedNumberList { jsObject[Strings.rotate].fromJSValue()! } } public class SVGTitleElement: SVGElement { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGTitleElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGTitleElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class SVGTransform: JSBridgedClass { @@ -1782,12 +1590,7 @@ public class SVGTransform: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _matrix = ReadonlyAttribute(jsObject: jsObject, name: Strings.matrix) - _angle = ReadonlyAttribute(jsObject: jsObject, name: Strings.angle) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let SVG_TRANSFORM_UNKNOWN: UInt16 = 0 @@ -1803,41 +1606,41 @@ public class SVGTransform: JSBridgedClass { public static let SVG_TRANSFORM_SKEWY: UInt16 = 6 - @ReadonlyAttribute - public var type: UInt16 + @inlinable public var type: UInt16 { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var matrix: DOMMatrix + @inlinable public var matrix: DOMMatrix { jsObject[Strings.matrix].fromJSValue()! } - @ReadonlyAttribute - public var angle: Float + @inlinable public var angle: Float { jsObject[Strings.angle].fromJSValue()! } - @inlinable public func setMatrix(matrix: DOMMatrix2DInit? = nil) { + @inlinable final public func setMatrix(matrix: DOMMatrix2DInit? = nil) { let this = jsObject _ = this[Strings.setMatrix].function!(this: this, arguments: [_toJSValue(matrix)]) } - @inlinable public func setTranslate(tx: Float, ty: Float) { + @inlinable final public func setTranslate(tx: Float, ty: Float) { let this = jsObject _ = this[Strings.setTranslate].function!(this: this, arguments: [_toJSValue(tx), _toJSValue(ty)]) } - @inlinable public func setScale(sx: Float, sy: Float) { + @inlinable final public func setScale(sx: Float, sy: Float) { let this = jsObject _ = this[Strings.setScale].function!(this: this, arguments: [_toJSValue(sx), _toJSValue(sy)]) } - @inlinable public func setRotate(angle: Float, cx: Float, cy: Float) { + @inlinable final public func setRotate(angle: Float, cx: Float, cy: Float) { let this = jsObject - _ = this[Strings.setRotate].function!(this: this, arguments: [_toJSValue(angle), _toJSValue(cx), _toJSValue(cy)]) + _ = this[Strings.setRotate].function!( + this: this, + arguments: [_toJSValue(angle), _toJSValue(cx), _toJSValue(cy)] + ) } - @inlinable public func setSkewX(angle: Float) { + @inlinable final public func setSkewX(angle: Float) { let this = jsObject _ = this[Strings.setSkewX].function!(this: this, arguments: [_toJSValue(angle)]) } - @inlinable public func setSkewY(angle: Float) { + @inlinable final public func setSkewY(angle: Float) { let this = jsObject _ = this[Strings.setSkewY].function!(this: this, arguments: [_toJSValue(angle)]) } @@ -1848,86 +1651,76 @@ public class SVGTransformList: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _numberOfItems = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfItems) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var numberOfItems: UInt32 + @inlinable public var numberOfItems: UInt32 { jsObject[Strings.numberOfItems].fromJSValue()! } - @inlinable public func clear() { + @inlinable final public func clear() { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: []) } - @inlinable public func initialize(newItem: SVGTransform) -> SVGTransform { + @inlinable final public func initialize(newItem: SVGTransform) -> SVGTransform { let this = jsObject return this[Strings.initialize].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } - @inlinable public func getItem(index: UInt32) -> SVGTransform { + @inlinable final public func getItem(index: UInt32) -> SVGTransform { let this = jsObject return this[Strings.getItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func insertItemBefore(newItem: SVGTransform, index: UInt32) -> SVGTransform { + @inlinable final public func insertItemBefore(newItem: SVGTransform, index: UInt32) -> SVGTransform { let this = jsObject - return this[Strings.insertItemBefore].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.insertItemBefore].function!( + this: this, + arguments: [_toJSValue(newItem), _toJSValue(index)] + ).fromJSValue()! } - @inlinable public func replaceItem(newItem: SVGTransform, index: UInt32) -> SVGTransform { + @inlinable final public func replaceItem(newItem: SVGTransform, index: UInt32) -> SVGTransform { let this = jsObject - return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]).fromJSValue()! + return this[Strings.replaceItem].function!(this: this, arguments: [_toJSValue(newItem), _toJSValue(index)]) + .fromJSValue()! } - @inlinable public func removeItem(index: UInt32) -> SVGTransform { + @inlinable final public func removeItem(index: UInt32) -> SVGTransform { let this = jsObject return this[Strings.removeItem].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } - @inlinable public func appendItem(newItem: SVGTransform) -> SVGTransform { + @inlinable final public func appendItem(newItem: SVGTransform) -> SVGTransform { let this = jsObject return this[Strings.appendItem].function!(this: this, arguments: [_toJSValue(newItem)]).fromJSValue()! } @inlinable public subscript(key: Int) -> SVGTransform { - get { - jsObject[key].fromJSValue()! - } - set { - jsObject[key] = _toJSValue(newValue) - } + get { jsObject[key].fromJSValue()! } + set { jsObject[key] = _toJSValue(newValue) } } - @inlinable public func createSVGTransformFromMatrix(matrix: DOMMatrix2DInit? = nil) -> SVGTransform { + @inlinable final public func createSVGTransformFromMatrix(matrix: DOMMatrix2DInit? = nil) -> SVGTransform { let this = jsObject - return this[Strings.createSVGTransformFromMatrix].function!(this: this, arguments: [_toJSValue(matrix)]).fromJSValue()! + return this[Strings.createSVGTransformFromMatrix].function!(this: this, arguments: [_toJSValue(matrix)]) + .fromJSValue()! } - @inlinable public func consolidate() -> SVGTransform? { + @inlinable final public func consolidate() -> SVGTransform? { let this = jsObject return this[Strings.consolidate].function!(this: this, arguments: []).fromJSValue() } } public protocol SVGURIReference: JSBridgedClass {} -public extension SVGURIReference { - @inlinable var href: SVGAnimatedString { jsObject[Strings.href].fromJSValue()! } -} - +extension SVGURIReference { @inlinable public var href: SVGAnimatedString { jsObject[Strings.href].fromJSValue()! } } public class SVGUnitTypes: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.SVGUnitTypes].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } public static let SVG_UNIT_TYPE_UNKNOWN: UInt16 = 0 @@ -1937,315 +1730,298 @@ public class SVGUnitTypes: JSBridgedClass { } public class SVGUseElement: SVGGraphicsElement, SVGURIReference { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGUseElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGUseElement].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _x = ReadonlyAttribute(jsObject: jsObject, name: Strings.x) - _y = ReadonlyAttribute(jsObject: jsObject, name: Strings.y) - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _instanceRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.instanceRoot) - _animatedInstanceRoot = ReadonlyAttribute(jsObject: jsObject, name: Strings.animatedInstanceRoot) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var x: SVGAnimatedLength + @inlinable public var x: SVGAnimatedLength { jsObject[Strings.x].fromJSValue()! } - @ReadonlyAttribute - public var y: SVGAnimatedLength + @inlinable public var y: SVGAnimatedLength { jsObject[Strings.y].fromJSValue()! } - @ReadonlyAttribute - public var width: SVGAnimatedLength + @inlinable public var width: SVGAnimatedLength { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: SVGAnimatedLength + @inlinable public var height: SVGAnimatedLength { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var instanceRoot: SVGElement? + @inlinable public var instanceRoot: SVGElement? { jsObject[Strings.instanceRoot].fromJSValue() } - @ReadonlyAttribute - public var animatedInstanceRoot: SVGElement? + @inlinable public var animatedInstanceRoot: SVGElement? { jsObject[Strings.animatedInstanceRoot].fromJSValue() } } public class SVGUseElementShadowRoot: ShadowRoot { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGUseElementShadowRoot].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.SVGUseElementShadowRoot].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class SVGViewElement: SVGElement, SVGFitToViewBox { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SVGViewElement].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.SVGViewElement].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class TimeEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TimeEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.TimeEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view) - _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var view: WindowProxy? + @inlinable public var view: WindowProxy? { jsObject[Strings.view].fromJSValue() } - @ReadonlyAttribute - public var detail: Int32 + @inlinable public var detail: Int32 { jsObject[Strings.detail].fromJSValue()! } - @inlinable public func initTimeEvent(typeArg: String, viewArg: Window?, detailArg: Int32) { + @inlinable final public func initTimeEvent(typeArg: String, viewArg: Window?, detailArg: Int32) { let this = jsObject - _ = this[Strings.initTimeEvent].function!(this: this, arguments: [_toJSValue(typeArg), _toJSValue(viewArg), _toJSValue(detailArg)]) + _ = this[Strings.initTimeEvent].function!( + this: this, + arguments: [_toJSValue(typeArg), _toJSValue(viewArg), _toJSValue(detailArg)] + ) } } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let SVGAElement: JSString = "SVGAElement" - @usableFromInline static let SVGAngle: JSString = "SVGAngle" - @usableFromInline static let SVGAnimateElement: JSString = "SVGAnimateElement" - @usableFromInline static let SVGAnimateMotionElement: JSString = "SVGAnimateMotionElement" - @usableFromInline static let SVGAnimateTransformElement: JSString = "SVGAnimateTransformElement" - @usableFromInline static let SVGAnimatedAngle: JSString = "SVGAnimatedAngle" - @usableFromInline static let SVGAnimatedBoolean: JSString = "SVGAnimatedBoolean" - @usableFromInline static let SVGAnimatedEnumeration: JSString = "SVGAnimatedEnumeration" - @usableFromInline static let SVGAnimatedInteger: JSString = "SVGAnimatedInteger" - @usableFromInline static let SVGAnimatedLength: JSString = "SVGAnimatedLength" - @usableFromInline static let SVGAnimatedLengthList: JSString = "SVGAnimatedLengthList" - @usableFromInline static let SVGAnimatedNumber: JSString = "SVGAnimatedNumber" - @usableFromInline static let SVGAnimatedNumberList: JSString = "SVGAnimatedNumberList" - @usableFromInline static let SVGAnimatedPreserveAspectRatio: JSString = "SVGAnimatedPreserveAspectRatio" - @usableFromInline static let SVGAnimatedRect: JSString = "SVGAnimatedRect" - @usableFromInline static let SVGAnimatedString: JSString = "SVGAnimatedString" - @usableFromInline static let SVGAnimatedTransformList: JSString = "SVGAnimatedTransformList" - @usableFromInline static let SVGAnimationElement: JSString = "SVGAnimationElement" - @usableFromInline static let SVGCircleElement: JSString = "SVGCircleElement" - @usableFromInline static let SVGClipPathElement: JSString = "SVGClipPathElement" - @usableFromInline static let SVGDefsElement: JSString = "SVGDefsElement" - @usableFromInline static let SVGDescElement: JSString = "SVGDescElement" - @usableFromInline static let SVGDiscardElement: JSString = "SVGDiscardElement" - @usableFromInline static let SVGElement: JSString = "SVGElement" - @usableFromInline static let SVGEllipseElement: JSString = "SVGEllipseElement" - @usableFromInline static let SVGForeignObjectElement: JSString = "SVGForeignObjectElement" - @usableFromInline static let SVGGElement: JSString = "SVGGElement" - @usableFromInline static let SVGGeometryElement: JSString = "SVGGeometryElement" - @usableFromInline static let SVGGradientElement: JSString = "SVGGradientElement" - @usableFromInline static let SVGGraphicsElement: JSString = "SVGGraphicsElement" - @usableFromInline static let SVGImageElement: JSString = "SVGImageElement" - @usableFromInline static let SVGLength: JSString = "SVGLength" - @usableFromInline static let SVGLengthList: JSString = "SVGLengthList" - @usableFromInline static let SVGLineElement: JSString = "SVGLineElement" - @usableFromInline static let SVGLinearGradientElement: JSString = "SVGLinearGradientElement" - @usableFromInline static let SVGMPathElement: JSString = "SVGMPathElement" - @usableFromInline static let SVGMarkerElement: JSString = "SVGMarkerElement" - @usableFromInline static let SVGMaskElement: JSString = "SVGMaskElement" - @usableFromInline static let SVGMetadataElement: JSString = "SVGMetadataElement" - @usableFromInline static let SVGNumber: JSString = "SVGNumber" - @usableFromInline static let SVGNumberList: JSString = "SVGNumberList" - @usableFromInline static let SVGPathElement: JSString = "SVGPathElement" - @usableFromInline static let SVGPatternElement: JSString = "SVGPatternElement" - @usableFromInline static let SVGPointList: JSString = "SVGPointList" - @usableFromInline static let SVGPolygonElement: JSString = "SVGPolygonElement" - @usableFromInline static let SVGPolylineElement: JSString = "SVGPolylineElement" - @usableFromInline static let SVGPreserveAspectRatio: JSString = "SVGPreserveAspectRatio" - @usableFromInline static let SVGRadialGradientElement: JSString = "SVGRadialGradientElement" - @usableFromInline static let SVGRectElement: JSString = "SVGRectElement" - @usableFromInline static let SVGSVGElement: JSString = "SVGSVGElement" - @usableFromInline static let SVGScriptElement: JSString = "SVGScriptElement" - @usableFromInline static let SVGSetElement: JSString = "SVGSetElement" - @usableFromInline static let SVGStopElement: JSString = "SVGStopElement" - @usableFromInline static let SVGStringList: JSString = "SVGStringList" - @usableFromInline static let SVGStyleElement: JSString = "SVGStyleElement" - @usableFromInline static let SVGSwitchElement: JSString = "SVGSwitchElement" - @usableFromInline static let SVGSymbolElement: JSString = "SVGSymbolElement" - @usableFromInline static let SVGTSpanElement: JSString = "SVGTSpanElement" - @usableFromInline static let SVGTextContentElement: JSString = "SVGTextContentElement" - @usableFromInline static let SVGTextElement: JSString = "SVGTextElement" - @usableFromInline static let SVGTextPathElement: JSString = "SVGTextPathElement" - @usableFromInline static let SVGTextPositioningElement: JSString = "SVGTextPositioningElement" - @usableFromInline static let SVGTitleElement: JSString = "SVGTitleElement" - @usableFromInline static let SVGTransform: JSString = "SVGTransform" - @usableFromInline static let SVGTransformList: JSString = "SVGTransformList" - @usableFromInline static let SVGUnitTypes: JSString = "SVGUnitTypes" - @usableFromInline static let SVGUseElement: JSString = "SVGUseElement" - @usableFromInline static let SVGUseElementShadowRoot: JSString = "SVGUseElementShadowRoot" - @usableFromInline static let SVGViewElement: JSString = "SVGViewElement" - @usableFromInline static let TimeEvent: JSString = "TimeEvent" - @usableFromInline static let align: JSString = "align" - @usableFromInline static let angle: JSString = "angle" - @usableFromInline static let animVal: JSString = "animVal" - @usableFromInline static let animatedInstanceRoot: JSString = "animatedInstanceRoot" - @usableFromInline static let animatedPoints: JSString = "animatedPoints" - @usableFromInline static let animationsPaused: JSString = "animationsPaused" - @usableFromInline static let appendItem: JSString = "appendItem" - @usableFromInline static let baseVal: JSString = "baseVal" - @usableFromInline static let beginElement: JSString = "beginElement" - @usableFromInline static let beginElementAt: JSString = "beginElementAt" - @usableFromInline static let checkEnclosure: JSString = "checkEnclosure" - @usableFromInline static let checkIntersection: JSString = "checkIntersection" - @usableFromInline static let className: JSString = "className" - @usableFromInline static let clear: JSString = "clear" - @usableFromInline static let clipPathUnits: JSString = "clipPathUnits" - @usableFromInline static let clipped: JSString = "clipped" - @usableFromInline static let consolidate: JSString = "consolidate" - @usableFromInline static let convertToSpecifiedUnits: JSString = "convertToSpecifiedUnits" - @usableFromInline static let correspondingElement: JSString = "correspondingElement" - @usableFromInline static let correspondingUseElement: JSString = "correspondingUseElement" - @usableFromInline static let createSVGAngle: JSString = "createSVGAngle" - @usableFromInline static let createSVGLength: JSString = "createSVGLength" - @usableFromInline static let createSVGMatrix: JSString = "createSVGMatrix" - @usableFromInline static let createSVGNumber: JSString = "createSVGNumber" - @usableFromInline static let createSVGPoint: JSString = "createSVGPoint" - @usableFromInline static let createSVGRect: JSString = "createSVGRect" - @usableFromInline static let createSVGTransform: JSString = "createSVGTransform" - @usableFromInline static let createSVGTransformFromMatrix: JSString = "createSVGTransformFromMatrix" - @usableFromInline static let crossOrigin: JSString = "crossOrigin" - @usableFromInline static let currentScale: JSString = "currentScale" - @usableFromInline static let currentTranslate: JSString = "currentTranslate" - @usableFromInline static let cx: JSString = "cx" - @usableFromInline static let cy: JSString = "cy" - @usableFromInline static let deselectAll: JSString = "deselectAll" - @usableFromInline static let detail: JSString = "detail" - @usableFromInline static let download: JSString = "download" - @usableFromInline static let dx: JSString = "dx" - @usableFromInline static let dy: JSString = "dy" - @usableFromInline static let endElement: JSString = "endElement" - @usableFromInline static let endElementAt: JSString = "endElementAt" - @usableFromInline static let fill: JSString = "fill" - @usableFromInline static let forceRedraw: JSString = "forceRedraw" - @usableFromInline static let fr: JSString = "fr" - @usableFromInline static let fx: JSString = "fx" - @usableFromInline static let fy: JSString = "fy" - @usableFromInline static let getBBox: JSString = "getBBox" - @usableFromInline static let getCTM: JSString = "getCTM" - @usableFromInline static let getCharNumAtPosition: JSString = "getCharNumAtPosition" - @usableFromInline static let getComputedTextLength: JSString = "getComputedTextLength" - @usableFromInline static let getCurrentTime: JSString = "getCurrentTime" - @usableFromInline static let getElementById: JSString = "getElementById" - @usableFromInline static let getEnclosureList: JSString = "getEnclosureList" - @usableFromInline static let getEndPositionOfChar: JSString = "getEndPositionOfChar" - @usableFromInline static let getExtentOfChar: JSString = "getExtentOfChar" - @usableFromInline static let getIntersectionList: JSString = "getIntersectionList" - @usableFromInline static let getItem: JSString = "getItem" - @usableFromInline static let getNumberOfChars: JSString = "getNumberOfChars" - @usableFromInline static let getPointAtLength: JSString = "getPointAtLength" - @usableFromInline static let getRotationOfChar: JSString = "getRotationOfChar" - @usableFromInline static let getSVGDocument: JSString = "getSVGDocument" - @usableFromInline static let getScreenCTM: JSString = "getScreenCTM" - @usableFromInline static let getSimpleDuration: JSString = "getSimpleDuration" - @usableFromInline static let getStartPositionOfChar: JSString = "getStartPositionOfChar" - @usableFromInline static let getStartTime: JSString = "getStartTime" - @usableFromInline static let getSubStringLength: JSString = "getSubStringLength" - @usableFromInline static let getTotalLength: JSString = "getTotalLength" - @usableFromInline static let gradientTransform: JSString = "gradientTransform" - @usableFromInline static let gradientUnits: JSString = "gradientUnits" - @usableFromInline static let hash: JSString = "hash" - @usableFromInline static let height: JSString = "height" - @usableFromInline static let host: JSString = "host" - @usableFromInline static let hostname: JSString = "hostname" - @usableFromInline static let href: JSString = "href" - @usableFromInline static let hreflang: JSString = "hreflang" - @usableFromInline static let initTimeEvent: JSString = "initTimeEvent" - @usableFromInline static let initialize: JSString = "initialize" - @usableFromInline static let insertItemBefore: JSString = "insertItemBefore" - @usableFromInline static let instanceRoot: JSString = "instanceRoot" - @usableFromInline static let isPointInFill: JSString = "isPointInFill" - @usableFromInline static let isPointInStroke: JSString = "isPointInStroke" - @usableFromInline static let length: JSString = "length" - @usableFromInline static let lengthAdjust: JSString = "lengthAdjust" - @usableFromInline static let markerHeight: JSString = "markerHeight" - @usableFromInline static let markerUnits: JSString = "markerUnits" - @usableFromInline static let markerWidth: JSString = "markerWidth" - @usableFromInline static let markers: JSString = "markers" - @usableFromInline static let maskContentUnits: JSString = "maskContentUnits" - @usableFromInline static let maskUnits: JSString = "maskUnits" - @usableFromInline static let matrix: JSString = "matrix" - @usableFromInline static let media: JSString = "media" - @usableFromInline static let meetOrSlice: JSString = "meetOrSlice" - @usableFromInline static let method: JSString = "method" - @usableFromInline static let newValueSpecifiedUnits: JSString = "newValueSpecifiedUnits" - @usableFromInline static let numberOfItems: JSString = "numberOfItems" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let onbegin: JSString = "onbegin" - @usableFromInline static let onend: JSString = "onend" - @usableFromInline static let onrepeat: JSString = "onrepeat" - @usableFromInline static let orient: JSString = "orient" - @usableFromInline static let orientAngle: JSString = "orientAngle" - @usableFromInline static let orientType: JSString = "orientType" - @usableFromInline static let origin: JSString = "origin" - @usableFromInline static let ownerSVGElement: JSString = "ownerSVGElement" - @usableFromInline static let password: JSString = "password" - @usableFromInline static let pathLength: JSString = "pathLength" - @usableFromInline static let pathname: JSString = "pathname" - @usableFromInline static let patternContentUnits: JSString = "patternContentUnits" - @usableFromInline static let patternTransform: JSString = "patternTransform" - @usableFromInline static let patternUnits: JSString = "patternUnits" - @usableFromInline static let pauseAnimations: JSString = "pauseAnimations" - @usableFromInline static let ping: JSString = "ping" - @usableFromInline static let points: JSString = "points" - @usableFromInline static let port: JSString = "port" - @usableFromInline static let preserveAspectRatio: JSString = "preserveAspectRatio" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `SVGAElement`: JSString = "SVGAElement" + @usableFromInline static let `SVGAngle`: JSString = "SVGAngle" + @usableFromInline static let `SVGAnimateElement`: JSString = "SVGAnimateElement" + @usableFromInline static let `SVGAnimateMotionElement`: JSString = "SVGAnimateMotionElement" + @usableFromInline static let `SVGAnimateTransformElement`: JSString = "SVGAnimateTransformElement" + @usableFromInline static let `SVGAnimatedAngle`: JSString = "SVGAnimatedAngle" + @usableFromInline static let `SVGAnimatedBoolean`: JSString = "SVGAnimatedBoolean" + @usableFromInline static let `SVGAnimatedEnumeration`: JSString = "SVGAnimatedEnumeration" + @usableFromInline static let `SVGAnimatedInteger`: JSString = "SVGAnimatedInteger" + @usableFromInline static let `SVGAnimatedLength`: JSString = "SVGAnimatedLength" + @usableFromInline static let `SVGAnimatedLengthList`: JSString = "SVGAnimatedLengthList" + @usableFromInline static let `SVGAnimatedNumber`: JSString = "SVGAnimatedNumber" + @usableFromInline static let `SVGAnimatedNumberList`: JSString = "SVGAnimatedNumberList" + @usableFromInline static let `SVGAnimatedPreserveAspectRatio`: JSString = "SVGAnimatedPreserveAspectRatio" + @usableFromInline static let `SVGAnimatedRect`: JSString = "SVGAnimatedRect" + @usableFromInline static let `SVGAnimatedString`: JSString = "SVGAnimatedString" + @usableFromInline static let `SVGAnimatedTransformList`: JSString = "SVGAnimatedTransformList" + @usableFromInline static let `SVGAnimationElement`: JSString = "SVGAnimationElement" + @usableFromInline static let `SVGCircleElement`: JSString = "SVGCircleElement" + @usableFromInline static let `SVGClipPathElement`: JSString = "SVGClipPathElement" + @usableFromInline static let `SVGDefsElement`: JSString = "SVGDefsElement" + @usableFromInline static let `SVGDescElement`: JSString = "SVGDescElement" + @usableFromInline static let `SVGDiscardElement`: JSString = "SVGDiscardElement" + @usableFromInline static let `SVGElement`: JSString = "SVGElement" + @usableFromInline static let `SVGEllipseElement`: JSString = "SVGEllipseElement" + @usableFromInline static let `SVGForeignObjectElement`: JSString = "SVGForeignObjectElement" + @usableFromInline static let `SVGGElement`: JSString = "SVGGElement" + @usableFromInline static let `SVGGeometryElement`: JSString = "SVGGeometryElement" + @usableFromInline static let `SVGGradientElement`: JSString = "SVGGradientElement" + @usableFromInline static let `SVGGraphicsElement`: JSString = "SVGGraphicsElement" + @usableFromInline static let `SVGImageElement`: JSString = "SVGImageElement" + @usableFromInline static let `SVGLength`: JSString = "SVGLength" + @usableFromInline static let `SVGLengthList`: JSString = "SVGLengthList" + @usableFromInline static let `SVGLineElement`: JSString = "SVGLineElement" + @usableFromInline static let `SVGLinearGradientElement`: JSString = "SVGLinearGradientElement" + @usableFromInline static let `SVGMPathElement`: JSString = "SVGMPathElement" + @usableFromInline static let `SVGMarkerElement`: JSString = "SVGMarkerElement" + @usableFromInline static let `SVGMaskElement`: JSString = "SVGMaskElement" + @usableFromInline static let `SVGMetadataElement`: JSString = "SVGMetadataElement" + @usableFromInline static let `SVGNumber`: JSString = "SVGNumber" + @usableFromInline static let `SVGNumberList`: JSString = "SVGNumberList" + @usableFromInline static let `SVGPathElement`: JSString = "SVGPathElement" + @usableFromInline static let `SVGPatternElement`: JSString = "SVGPatternElement" + @usableFromInline static let `SVGPointList`: JSString = "SVGPointList" + @usableFromInline static let `SVGPolygonElement`: JSString = "SVGPolygonElement" + @usableFromInline static let `SVGPolylineElement`: JSString = "SVGPolylineElement" + @usableFromInline static let `SVGPreserveAspectRatio`: JSString = "SVGPreserveAspectRatio" + @usableFromInline static let `SVGRadialGradientElement`: JSString = "SVGRadialGradientElement" + @usableFromInline static let `SVGRectElement`: JSString = "SVGRectElement" + @usableFromInline static let `SVGSVGElement`: JSString = "SVGSVGElement" + @usableFromInline static let `SVGScriptElement`: JSString = "SVGScriptElement" + @usableFromInline static let `SVGSetElement`: JSString = "SVGSetElement" + @usableFromInline static let `SVGStopElement`: JSString = "SVGStopElement" + @usableFromInline static let `SVGStringList`: JSString = "SVGStringList" + @usableFromInline static let `SVGStyleElement`: JSString = "SVGStyleElement" + @usableFromInline static let `SVGSwitchElement`: JSString = "SVGSwitchElement" + @usableFromInline static let `SVGSymbolElement`: JSString = "SVGSymbolElement" + @usableFromInline static let `SVGTSpanElement`: JSString = "SVGTSpanElement" + @usableFromInline static let `SVGTextContentElement`: JSString = "SVGTextContentElement" + @usableFromInline static let `SVGTextElement`: JSString = "SVGTextElement" + @usableFromInline static let `SVGTextPathElement`: JSString = "SVGTextPathElement" + @usableFromInline static let `SVGTextPositioningElement`: JSString = "SVGTextPositioningElement" + @usableFromInline static let `SVGTitleElement`: JSString = "SVGTitleElement" + @usableFromInline static let `SVGTransform`: JSString = "SVGTransform" + @usableFromInline static let `SVGTransformList`: JSString = "SVGTransformList" + @usableFromInline static let `SVGUnitTypes`: JSString = "SVGUnitTypes" + @usableFromInline static let `SVGUseElement`: JSString = "SVGUseElement" + @usableFromInline static let `SVGUseElementShadowRoot`: JSString = "SVGUseElementShadowRoot" + @usableFromInline static let `SVGViewElement`: JSString = "SVGViewElement" + @usableFromInline static let `TimeEvent`: JSString = "TimeEvent" + @usableFromInline static let `align`: JSString = "align" + @usableFromInline static let `angle`: JSString = "angle" + @usableFromInline static let `animVal`: JSString = "animVal" + @usableFromInline static let `animatedInstanceRoot`: JSString = "animatedInstanceRoot" + @usableFromInline static let `animatedPoints`: JSString = "animatedPoints" + @usableFromInline static let `animationsPaused`: JSString = "animationsPaused" + @usableFromInline static let `appendItem`: JSString = "appendItem" + @usableFromInline static let `baseVal`: JSString = "baseVal" + @usableFromInline static let `beginElement`: JSString = "beginElement" + @usableFromInline static let `beginElementAt`: JSString = "beginElementAt" + @usableFromInline static let `checkEnclosure`: JSString = "checkEnclosure" + @usableFromInline static let `checkIntersection`: JSString = "checkIntersection" + @usableFromInline static let `className`: JSString = "className" + @usableFromInline static let `clear`: JSString = "clear" + @usableFromInline static let `clipPathUnits`: JSString = "clipPathUnits" + @usableFromInline static let `clipped`: JSString = "clipped" + @usableFromInline static let `consolidate`: JSString = "consolidate" + @usableFromInline static let `convertToSpecifiedUnits`: JSString = "convertToSpecifiedUnits" + @usableFromInline static let `correspondingElement`: JSString = "correspondingElement" + @usableFromInline static let `correspondingUseElement`: JSString = "correspondingUseElement" + @usableFromInline static let `createSVGAngle`: JSString = "createSVGAngle" + @usableFromInline static let `createSVGLength`: JSString = "createSVGLength" + @usableFromInline static let `createSVGMatrix`: JSString = "createSVGMatrix" + @usableFromInline static let `createSVGNumber`: JSString = "createSVGNumber" + @usableFromInline static let `createSVGPoint`: JSString = "createSVGPoint" + @usableFromInline static let `createSVGRect`: JSString = "createSVGRect" + @usableFromInline static let `createSVGTransform`: JSString = "createSVGTransform" + @usableFromInline static let `createSVGTransformFromMatrix`: JSString = "createSVGTransformFromMatrix" + @usableFromInline static let `crossOrigin`: JSString = "crossOrigin" + @usableFromInline static let `currentScale`: JSString = "currentScale" + @usableFromInline static let `currentTranslate`: JSString = "currentTranslate" + @usableFromInline static let `cx`: JSString = "cx" + @usableFromInline static let `cy`: JSString = "cy" + @usableFromInline static let `deselectAll`: JSString = "deselectAll" + @usableFromInline static let `detail`: JSString = "detail" + @usableFromInline static let `download`: JSString = "download" + @usableFromInline static let `dx`: JSString = "dx" + @usableFromInline static let `dy`: JSString = "dy" + @usableFromInline static let `endElement`: JSString = "endElement" + @usableFromInline static let `endElementAt`: JSString = "endElementAt" + @usableFromInline static let `fill`: JSString = "fill" + @usableFromInline static let `forceRedraw`: JSString = "forceRedraw" + @usableFromInline static let `fr`: JSString = "fr" + @usableFromInline static let `fx`: JSString = "fx" + @usableFromInline static let `fy`: JSString = "fy" + @usableFromInline static let `getBBox`: JSString = "getBBox" + @usableFromInline static let `getCTM`: JSString = "getCTM" + @usableFromInline static let `getCharNumAtPosition`: JSString = "getCharNumAtPosition" + @usableFromInline static let `getComputedTextLength`: JSString = "getComputedTextLength" + @usableFromInline static let `getCurrentTime`: JSString = "getCurrentTime" + @usableFromInline static let `getElementById`: JSString = "getElementById" + @usableFromInline static let `getEnclosureList`: JSString = "getEnclosureList" + @usableFromInline static let `getEndPositionOfChar`: JSString = "getEndPositionOfChar" + @usableFromInline static let `getExtentOfChar`: JSString = "getExtentOfChar" + @usableFromInline static let `getIntersectionList`: JSString = "getIntersectionList" + @usableFromInline static let `getItem`: JSString = "getItem" + @usableFromInline static let `getNumberOfChars`: JSString = "getNumberOfChars" + @usableFromInline static let `getPointAtLength`: JSString = "getPointAtLength" + @usableFromInline static let `getRotationOfChar`: JSString = "getRotationOfChar" + @usableFromInline static let `getSVGDocument`: JSString = "getSVGDocument" + @usableFromInline static let `getScreenCTM`: JSString = "getScreenCTM" + @usableFromInline static let `getSimpleDuration`: JSString = "getSimpleDuration" + @usableFromInline static let `getStartPositionOfChar`: JSString = "getStartPositionOfChar" + @usableFromInline static let `getStartTime`: JSString = "getStartTime" + @usableFromInline static let `getSubStringLength`: JSString = "getSubStringLength" + @usableFromInline static let `getTotalLength`: JSString = "getTotalLength" + @usableFromInline static let `gradientTransform`: JSString = "gradientTransform" + @usableFromInline static let `gradientUnits`: JSString = "gradientUnits" + @usableFromInline static let `hash`: JSString = "hash" + @usableFromInline static let `height`: JSString = "height" + @usableFromInline static let `host`: JSString = "host" + @usableFromInline static let `hostname`: JSString = "hostname" + @usableFromInline static let `href`: JSString = "href" + @usableFromInline static let `hreflang`: JSString = "hreflang" + @usableFromInline static let `initTimeEvent`: JSString = "initTimeEvent" + @usableFromInline static let `initialize`: JSString = "initialize" + @usableFromInline static let `insertItemBefore`: JSString = "insertItemBefore" + @usableFromInline static let `instanceRoot`: JSString = "instanceRoot" + @usableFromInline static let `isPointInFill`: JSString = "isPointInFill" + @usableFromInline static let `isPointInStroke`: JSString = "isPointInStroke" + @usableFromInline static let `length`: JSString = "length" + @usableFromInline static let `lengthAdjust`: JSString = "lengthAdjust" + @usableFromInline static let `markerHeight`: JSString = "markerHeight" + @usableFromInline static let `markerUnits`: JSString = "markerUnits" + @usableFromInline static let `markerWidth`: JSString = "markerWidth" + @usableFromInline static let `markers`: JSString = "markers" + @usableFromInline static let `maskContentUnits`: JSString = "maskContentUnits" + @usableFromInline static let `maskUnits`: JSString = "maskUnits" + @usableFromInline static let `matrix`: JSString = "matrix" + @usableFromInline static let `media`: JSString = "media" + @usableFromInline static let `meetOrSlice`: JSString = "meetOrSlice" + @usableFromInline static let `method`: JSString = "method" + @usableFromInline static let `newValueSpecifiedUnits`: JSString = "newValueSpecifiedUnits" + @usableFromInline static let `numberOfItems`: JSString = "numberOfItems" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `onbegin`: JSString = "onbegin" + @usableFromInline static let `onend`: JSString = "onend" + @usableFromInline static let `onrepeat`: JSString = "onrepeat" + @usableFromInline static let `orient`: JSString = "orient" + @usableFromInline static let `orientAngle`: JSString = "orientAngle" + @usableFromInline static let `orientType`: JSString = "orientType" + @usableFromInline static let `origin`: JSString = "origin" + @usableFromInline static let `ownerSVGElement`: JSString = "ownerSVGElement" + @usableFromInline static let `password`: JSString = "password" + @usableFromInline static let `pathLength`: JSString = "pathLength" + @usableFromInline static let `pathname`: JSString = "pathname" + @usableFromInline static let `patternContentUnits`: JSString = "patternContentUnits" + @usableFromInline static let `patternTransform`: JSString = "patternTransform" + @usableFromInline static let `patternUnits`: JSString = "patternUnits" + @usableFromInline static let `pauseAnimations`: JSString = "pauseAnimations" + @usableFromInline static let `ping`: JSString = "ping" + @usableFromInline static let `points`: JSString = "points" + @usableFromInline static let `port`: JSString = "port" + @usableFromInline static let `preserveAspectRatio`: JSString = "preserveAspectRatio" @usableFromInline static let `protocol`: JSString = "protocol" - @usableFromInline static let r: JSString = "r" - @usableFromInline static let refX: JSString = "refX" - @usableFromInline static let refY: JSString = "refY" - @usableFromInline static let referrerPolicy: JSString = "referrerPolicy" - @usableFromInline static let rel: JSString = "rel" - @usableFromInline static let relList: JSString = "relList" - @usableFromInline static let removeItem: JSString = "removeItem" - @usableFromInline static let replaceItem: JSString = "replaceItem" - @usableFromInline static let requiredExtensions: JSString = "requiredExtensions" - @usableFromInline static let rotate: JSString = "rotate" - @usableFromInline static let rx: JSString = "rx" - @usableFromInline static let ry: JSString = "ry" - @usableFromInline static let search: JSString = "search" - @usableFromInline static let selectSubString: JSString = "selectSubString" - @usableFromInline static let setCurrentTime: JSString = "setCurrentTime" - @usableFromInline static let setMatrix: JSString = "setMatrix" - @usableFromInline static let setOrientToAngle: JSString = "setOrientToAngle" - @usableFromInline static let setOrientToAuto: JSString = "setOrientToAuto" - @usableFromInline static let setRotate: JSString = "setRotate" - @usableFromInline static let setScale: JSString = "setScale" - @usableFromInline static let setSkewX: JSString = "setSkewX" - @usableFromInline static let setSkewY: JSString = "setSkewY" - @usableFromInline static let setTranslate: JSString = "setTranslate" - @usableFromInline static let spacing: JSString = "spacing" - @usableFromInline static let spreadMethod: JSString = "spreadMethod" - @usableFromInline static let startOffset: JSString = "startOffset" - @usableFromInline static let stroke: JSString = "stroke" - @usableFromInline static let suspendRedraw: JSString = "suspendRedraw" - @usableFromInline static let systemLanguage: JSString = "systemLanguage" - @usableFromInline static let target: JSString = "target" - @usableFromInline static let targetElement: JSString = "targetElement" - @usableFromInline static let text: JSString = "text" - @usableFromInline static let textLength: JSString = "textLength" - @usableFromInline static let title: JSString = "title" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let transform: JSString = "transform" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let unitType: JSString = "unitType" - @usableFromInline static let unpauseAnimations: JSString = "unpauseAnimations" - @usableFromInline static let unsuspendRedraw: JSString = "unsuspendRedraw" - @usableFromInline static let unsuspendRedrawAll: JSString = "unsuspendRedrawAll" - @usableFromInline static let username: JSString = "username" - @usableFromInline static let value: JSString = "value" - @usableFromInline static let valueAsString: JSString = "valueAsString" - @usableFromInline static let valueInSpecifiedUnits: JSString = "valueInSpecifiedUnits" - @usableFromInline static let view: JSString = "view" - @usableFromInline static let viewBox: JSString = "viewBox" - @usableFromInline static let viewportElement: JSString = "viewportElement" - @usableFromInline static let width: JSString = "width" - @usableFromInline static let x: JSString = "x" - @usableFromInline static let x1: JSString = "x1" - @usableFromInline static let x2: JSString = "x2" - @usableFromInline static let y: JSString = "y" - @usableFromInline static let y1: JSString = "y1" - @usableFromInline static let y2: JSString = "y2" + @usableFromInline static let `r`: JSString = "r" + @usableFromInline static let `refX`: JSString = "refX" + @usableFromInline static let `refY`: JSString = "refY" + @usableFromInline static let `referrerPolicy`: JSString = "referrerPolicy" + @usableFromInline static let `rel`: JSString = "rel" + @usableFromInline static let `relList`: JSString = "relList" + @usableFromInline static let `removeItem`: JSString = "removeItem" + @usableFromInline static let `replaceItem`: JSString = "replaceItem" + @usableFromInline static let `requiredExtensions`: JSString = "requiredExtensions" + @usableFromInline static let `rotate`: JSString = "rotate" + @usableFromInline static let `rx`: JSString = "rx" + @usableFromInline static let `ry`: JSString = "ry" + @usableFromInline static let `search`: JSString = "search" + @usableFromInline static let `selectSubString`: JSString = "selectSubString" + @usableFromInline static let `setCurrentTime`: JSString = "setCurrentTime" + @usableFromInline static let `setMatrix`: JSString = "setMatrix" + @usableFromInline static let `setOrientToAngle`: JSString = "setOrientToAngle" + @usableFromInline static let `setOrientToAuto`: JSString = "setOrientToAuto" + @usableFromInline static let `setRotate`: JSString = "setRotate" + @usableFromInline static let `setScale`: JSString = "setScale" + @usableFromInline static let `setSkewX`: JSString = "setSkewX" + @usableFromInline static let `setSkewY`: JSString = "setSkewY" + @usableFromInline static let `setTranslate`: JSString = "setTranslate" + @usableFromInline static let `spacing`: JSString = "spacing" + @usableFromInline static let `spreadMethod`: JSString = "spreadMethod" + @usableFromInline static let `startOffset`: JSString = "startOffset" + @usableFromInline static let `stroke`: JSString = "stroke" + @usableFromInline static let `suspendRedraw`: JSString = "suspendRedraw" + @usableFromInline static let `systemLanguage`: JSString = "systemLanguage" + @usableFromInline static let `target`: JSString = "target" + @usableFromInline static let `targetElement`: JSString = "targetElement" + @usableFromInline static let `text`: JSString = "text" + @usableFromInline static let `textLength`: JSString = "textLength" + @usableFromInline static let `title`: JSString = "title" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `transform`: JSString = "transform" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `unitType`: JSString = "unitType" + @usableFromInline static let `unpauseAnimations`: JSString = "unpauseAnimations" + @usableFromInline static let `unsuspendRedraw`: JSString = "unsuspendRedraw" + @usableFromInline static let `unsuspendRedrawAll`: JSString = "unsuspendRedrawAll" + @usableFromInline static let `username`: JSString = "username" + @usableFromInline static let `value`: JSString = "value" + @usableFromInline static let `valueAsString`: JSString = "valueAsString" + @usableFromInline static let `valueInSpecifiedUnits`: JSString = "valueInSpecifiedUnits" + @usableFromInline static let `view`: JSString = "view" + @usableFromInline static let `viewBox`: JSString = "viewBox" + @usableFromInline static let `viewportElement`: JSString = "viewportElement" + @usableFromInline static let `width`: JSString = "width" + @usableFromInline static let `x`: JSString = "x" + @usableFromInline static let `x1`: JSString = "x1" + @usableFromInline static let `x2`: JSString = "x2" + @usableFromInline static let `y`: JSString = "y" + @usableFromInline static let `y1`: JSString = "y1" + @usableFromInline static let `y2`: JSString = "y2" } diff --git a/Sources/WebAPIBase/Generated.swift b/Sources/WebAPIBase/Generated.swift index 4bb282a0..6722ee1e 100644 --- a/Sources/WebAPIBase/Generated.swift +++ b/Sources/WebAPIBase/Generated.swift @@ -1,33 +1,31 @@ // This file was auto-generated by WebIDLToSwift. DO NOT EDIT! import ECMAScript -import JavaScriptEventLoop import JavaScriptKit +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + open class DOMException: JSBridgedClass { @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.DOMException].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(message: String? = nil, name: String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(message), _toJSValue(name)])) } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } - @ReadonlyAttribute - public var code: UInt16 + @inlinable public var code: UInt16 { jsObject[Strings.code].fromJSValue()! } public static let INDEX_SIZE_ERR: UInt16 = 1 @@ -86,68 +84,78 @@ public class URL: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href) - _origin = ReadonlyAttribute(jsObject: jsObject, name: Strings.origin) - _protocol = ReadWriteAttribute(jsObject: jsObject, name: Strings.protocol) - _username = ReadWriteAttribute(jsObject: jsObject, name: Strings.username) - _password = ReadWriteAttribute(jsObject: jsObject, name: Strings.password) - _host = ReadWriteAttribute(jsObject: jsObject, name: Strings.host) - _hostname = ReadWriteAttribute(jsObject: jsObject, name: Strings.hostname) - _port = ReadWriteAttribute(jsObject: jsObject, name: Strings.port) - _pathname = ReadWriteAttribute(jsObject: jsObject, name: Strings.pathname) - _search = ReadWriteAttribute(jsObject: jsObject, name: Strings.search) - _searchParams = ReadonlyAttribute(jsObject: jsObject, name: Strings.searchParams) - _hash = ReadWriteAttribute(jsObject: jsObject, name: Strings.hash) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(url: String, base: String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(url), _toJSValue(base)])) } + @inlinable public class func parse(url: String, base: String? = nil) -> URL? { + let this = constructor! + return this[Strings.parse].function!(this: this, arguments: [_toJSValue(url), _toJSValue(base)]).fromJSValue() + } + @inlinable public class func canParse(url: String, base: String? = nil) -> Bool { let this = constructor! - return this[Strings.canParse].function!(this: this, arguments: [_toJSValue(url), _toJSValue(base)]).fromJSValue()! + return this[Strings.canParse].function!(this: this, arguments: [_toJSValue(url), _toJSValue(base)]) + .fromJSValue()! } - @ReadWriteAttribute - public var href: String + @inlinable public var href: String { + get { jsObject[Strings.href].fromJSValue()! } + set { jsObject[Strings.href] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var origin: String + @inlinable public var origin: String { jsObject[Strings.origin].fromJSValue()! } - @ReadWriteAttribute - public var `protocol`: String + @inlinable public var `protocol`: String { + get { jsObject[Strings.`protocol`].fromJSValue()! } + set { jsObject[Strings.`protocol`] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var username: String + @inlinable public var username: String { + get { jsObject[Strings.username].fromJSValue()! } + set { jsObject[Strings.username] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var password: String + @inlinable public var password: String { + get { jsObject[Strings.password].fromJSValue()! } + set { jsObject[Strings.password] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var host: String + @inlinable public var host: String { + get { jsObject[Strings.host].fromJSValue()! } + set { jsObject[Strings.host] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var hostname: String + @inlinable public var hostname: String { + get { jsObject[Strings.hostname].fromJSValue()! } + set { jsObject[Strings.hostname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var port: String + @inlinable public var port: String { + get { jsObject[Strings.port].fromJSValue()! } + set { jsObject[Strings.port] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pathname: String + @inlinable public var pathname: String { + get { jsObject[Strings.pathname].fromJSValue()! } + set { jsObject[Strings.pathname] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var search: String + @inlinable public var search: String { + get { jsObject[Strings.search].fromJSValue()! } + set { jsObject[Strings.search] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var searchParams: URLSearchParams + @inlinable public var searchParams: URLSearchParams { jsObject[Strings.searchParams].fromJSValue()! } - @ReadWriteAttribute - public var hash: String + @inlinable public var hash: String { + get { jsObject[Strings.hash].fromJSValue()! } + set { jsObject[Strings.hash] = _toJSValue(newValue) } + } - @inlinable public func toJSON() -> String { + @inlinable final public func toJSON() -> String { let this = jsObject return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()! } @@ -158,67 +166,57 @@ public class URLSearchParams: JSBridgedClass, Sequence { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public convenience init(init: String_or_record_String_to_String_or_seq_of_seq_of_String? = nil) { + @inlinable public convenience init(`init`: String_or_record_String_to_String_or_seq_of_seq_of_String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(`init`)])) } - @ReadonlyAttribute - public var size: UInt32 + @inlinable public var size: UInt32 { jsObject[Strings.size].fromJSValue()! } - @inlinable public func append(name: String, value: String) { + @inlinable final public func append(name: String, value: String) { let this = jsObject _ = this[Strings.append].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func delete(name: String, value: String? = nil) { + @inlinable final public func delete(name: String, value: String? = nil) { let this = jsObject _ = this[Strings.delete].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func get(name: String) -> String? { + @inlinable final public func get(name: String) -> String? { let this = jsObject return this[Strings.get].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable public func getAll(name: String) -> [String] { + @inlinable final public func getAll(name: String) -> [String] { let this = jsObject return this[Strings.getAll].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()! } - @inlinable public func has(name: String, value: String? = nil) -> Bool { + @inlinable final public func has(name: String, value: String? = nil) -> Bool { let this = jsObject return this[Strings.has].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]).fromJSValue()! } - @inlinable public func set(name: String, value: String) { + @inlinable final public func set(name: String, value: String) { let this = jsObject _ = this[Strings.set].function!(this: this, arguments: [_toJSValue(name), _toJSValue(value)]) } - @inlinable public func sort() { + @inlinable final public func sort() { let this = jsObject _ = this[Strings.sort].function!(this: this, arguments: []) } public typealias Element = String - public func makeIterator() -> ValueIterableIterator { - ValueIterableIterator(sequence: self) - } + public func makeIterator() -> ValueIterableIterator { ValueIterableIterator(sequence: self) } - @inlinable public var description: String { - jsObject[Strings.toString]!().fromJSValue()! - } + @inlinable public var description: String { jsObject[Strings.toString].function!().fromJSValue()! } } public enum console { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.console].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.console].object! } @inlinable public static func assert(condition: Bool? = nil, data: JSValue...) { let this = JSObject.global[Strings.console].object! @@ -315,60 +313,59 @@ public enum console { _ = this[Strings.timeEnd].function!(this: this, arguments: [_toJSValue(label)]) } } - @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let DOMException: JSString = "DOMException" - @usableFromInline static let URL: JSString = "URL" - @usableFromInline static let URLSearchParams: JSString = "URLSearchParams" - @usableFromInline static let append: JSString = "append" - @usableFromInline static let assert: JSString = "assert" - @usableFromInline static let canParse: JSString = "canParse" - @usableFromInline static let clear: JSString = "clear" - @usableFromInline static let code: JSString = "code" - @usableFromInline static let console: JSString = "console" - @usableFromInline static let count: JSString = "count" - @usableFromInline static let countReset: JSString = "countReset" - @usableFromInline static let debug: JSString = "debug" - @usableFromInline static let delete: JSString = "delete" - @usableFromInline static let dir: JSString = "dir" - @usableFromInline static let dirxml: JSString = "dirxml" - @usableFromInline static let error: JSString = "error" - @usableFromInline static let get: JSString = "get" - @usableFromInline static let getAll: JSString = "getAll" - @usableFromInline static let group: JSString = "group" - @usableFromInline static let groupCollapsed: JSString = "groupCollapsed" - @usableFromInline static let groupEnd: JSString = "groupEnd" - @usableFromInline static let has: JSString = "has" - @usableFromInline static let hash: JSString = "hash" - @usableFromInline static let host: JSString = "host" - @usableFromInline static let hostname: JSString = "hostname" - @usableFromInline static let href: JSString = "href" - @usableFromInline static let info: JSString = "info" - @usableFromInline static let log: JSString = "log" - @usableFromInline static let message: JSString = "message" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let origin: JSString = "origin" - @usableFromInline static let password: JSString = "password" - @usableFromInline static let pathname: JSString = "pathname" - @usableFromInline static let port: JSString = "port" + @usableFromInline static let `DOMException`: JSString = "DOMException" + @usableFromInline static let `URL`: JSString = "URL" + @usableFromInline static let `URLSearchParams`: JSString = "URLSearchParams" + @usableFromInline static let `append`: JSString = "append" + @usableFromInline static let `assert`: JSString = "assert" + @usableFromInline static let `canParse`: JSString = "canParse" + @usableFromInline static let `clear`: JSString = "clear" + @usableFromInline static let `code`: JSString = "code" + @usableFromInline static let `console`: JSString = "console" + @usableFromInline static let `count`: JSString = "count" + @usableFromInline static let `countReset`: JSString = "countReset" + @usableFromInline static let `debug`: JSString = "debug" + @usableFromInline static let `delete`: JSString = "delete" + @usableFromInline static let `dir`: JSString = "dir" + @usableFromInline static let `dirxml`: JSString = "dirxml" + @usableFromInline static let `error`: JSString = "error" + @usableFromInline static let `get`: JSString = "get" + @usableFromInline static let `getAll`: JSString = "getAll" + @usableFromInline static let `group`: JSString = "group" + @usableFromInline static let `groupCollapsed`: JSString = "groupCollapsed" + @usableFromInline static let `groupEnd`: JSString = "groupEnd" + @usableFromInline static let `has`: JSString = "has" + @usableFromInline static let `hash`: JSString = "hash" + @usableFromInline static let `host`: JSString = "host" + @usableFromInline static let `hostname`: JSString = "hostname" + @usableFromInline static let `href`: JSString = "href" + @usableFromInline static let `info`: JSString = "info" + @usableFromInline static let `log`: JSString = "log" + @usableFromInline static let `message`: JSString = "message" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `origin`: JSString = "origin" + @usableFromInline static let `parse`: JSString = "parse" + @usableFromInline static let `password`: JSString = "password" + @usableFromInline static let `pathname`: JSString = "pathname" + @usableFromInline static let `port`: JSString = "port" @usableFromInline static let `protocol`: JSString = "protocol" - @usableFromInline static let search: JSString = "search" - @usableFromInline static let searchParams: JSString = "searchParams" - @usableFromInline static let set: JSString = "set" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let sort: JSString = "sort" - @usableFromInline static let table: JSString = "table" - @usableFromInline static let time: JSString = "time" - @usableFromInline static let timeEnd: JSString = "timeEnd" - @usableFromInline static let timeLog: JSString = "timeLog" - @usableFromInline static let toJSON: JSString = "toJSON" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let trace: JSString = "trace" - @usableFromInline static let username: JSString = "username" - @usableFromInline static let warn: JSString = "warn" + @usableFromInline static let `search`: JSString = "search" + @usableFromInline static let `searchParams`: JSString = "searchParams" + @usableFromInline static let `set`: JSString = "set" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `sort`: JSString = "sort" + @usableFromInline static let `table`: JSString = "table" + @usableFromInline static let `time`: JSString = "time" + @usableFromInline static let `timeEnd`: JSString = "timeEnd" + @usableFromInline static let `timeLog`: JSString = "timeLog" + @usableFromInline static let `toJSON`: JSString = "toJSON" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `trace`: JSString = "trace" + @usableFromInline static let `username`: JSString = "username" + @usableFromInline static let `warn`: JSString = "warn" } - public protocol Any_AllowSharedBufferSource: ConvertibleToJSValue {} extension ArrayBuffer: Any_AllowSharedBufferSource {} extension ArrayBufferView: Any_AllowSharedBufferSource {} @@ -379,17 +376,15 @@ public enum AllowSharedBufferSource: JSValueCompatible, Any_AllowSharedBufferSou case arrayBufferView(ArrayBufferView) case sharedArrayBuffer(SharedArrayBuffer) - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: AllowSharedBufferSource = .arrayBuffer(arrayBuffer) self = val } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: AllowSharedBufferSource = .arrayBufferView(arrayBufferView) self = val } - - init(_ sharedArrayBuffer: SharedArrayBuffer) { + public init(_ sharedArrayBuffer: SharedArrayBuffer) { let val: AllowSharedBufferSource = .sharedArrayBuffer(sharedArrayBuffer) self = val } @@ -400,14 +395,12 @@ public enum AllowSharedBufferSource: JSValueCompatible, Any_AllowSharedBufferSou default: return nil } } - public var arrayBufferView: ArrayBufferView? { switch self { case let .arrayBufferView(arrayBufferView): return arrayBufferView default: return nil } } - public var sharedArrayBuffer: SharedArrayBuffer? { switch self { case let .sharedArrayBuffer(sharedArrayBuffer): return sharedArrayBuffer @@ -416,12 +409,8 @@ public enum AllowSharedBufferSource: JSValueCompatible, Any_AllowSharedBufferSou } public static func construct(from value: JSValue) -> Self? { - if let arrayBuffer: ArrayBuffer = value.fromJSValue() { - return .arrayBuffer(arrayBuffer) - } - if let arrayBufferView: ArrayBufferView = value.fromJSValue() { - return .arrayBufferView(arrayBufferView) - } + if let arrayBuffer: ArrayBuffer = value.fromJSValue() { return .arrayBuffer(arrayBuffer) } + if let arrayBufferView: ArrayBufferView = value.fromJSValue() { return .arrayBufferView(arrayBufferView) } if let sharedArrayBuffer: SharedArrayBuffer = value.fromJSValue() { return .sharedArrayBuffer(sharedArrayBuffer) } @@ -430,16 +419,12 @@ public enum AllowSharedBufferSource: JSValueCompatible, Any_AllowSharedBufferSou public var jsValue: JSValue { switch self { - case let .arrayBuffer(arrayBuffer): - return arrayBuffer.jsValue - case let .arrayBufferView(arrayBufferView): - return arrayBufferView.jsValue - case let .sharedArrayBuffer(sharedArrayBuffer): - return sharedArrayBuffer.jsValue + case let .arrayBuffer(arrayBuffer): return arrayBuffer.jsValue + case let .arrayBufferView(arrayBufferView): return arrayBufferView.jsValue + case let .sharedArrayBuffer(sharedArrayBuffer): return sharedArrayBuffer.jsValue } } } - public protocol Any_BufferSource: ConvertibleToJSValue {} extension ArrayBuffer: Any_BufferSource {} extension ArrayBufferView: Any_BufferSource {} @@ -448,12 +433,11 @@ public enum BufferSource: JSValueCompatible, Any_BufferSource { case arrayBuffer(ArrayBuffer) case arrayBufferView(ArrayBufferView) - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = val } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = val } @@ -464,7 +448,6 @@ public enum BufferSource: JSValueCompatible, Any_BufferSource { default: return nil } } - public var arrayBufferView: ArrayBufferView? { switch self { case let .arrayBufferView(arrayBufferView): return arrayBufferView @@ -473,46 +456,41 @@ public enum BufferSource: JSValueCompatible, Any_BufferSource { } public static func construct(from value: JSValue) -> Self? { - if let arrayBuffer: ArrayBuffer = value.fromJSValue() { - return .arrayBuffer(arrayBuffer) - } - if let arrayBufferView: ArrayBufferView = value.fromJSValue() { - return .arrayBufferView(arrayBufferView) - } + if let arrayBuffer: ArrayBuffer = value.fromJSValue() { return .arrayBuffer(arrayBuffer) } + if let arrayBufferView: ArrayBufferView = value.fromJSValue() { return .arrayBufferView(arrayBufferView) } return nil } public var jsValue: JSValue { switch self { - case let .arrayBuffer(arrayBuffer): - return arrayBuffer.jsValue - case let .arrayBufferView(arrayBufferView): - return arrayBufferView.jsValue + case let .arrayBuffer(arrayBuffer): return arrayBuffer.jsValue + case let .arrayBufferView(arrayBufferView): return arrayBufferView.jsValue } } } - public protocol Any_String_or_record_String_to_String_or_seq_of_seq_of_String: ConvertibleToJSValue {} extension String: Any_String_or_record_String_to_String_or_seq_of_seq_of_String {} -extension Dictionary: Any_String_or_record_String_to_String_or_seq_of_seq_of_String where Key == String, Value == String {} +extension JSObject: Any_String_or_record_String_to_String_or_seq_of_seq_of_String {} extension Array: Any_String_or_record_String_to_String_or_seq_of_seq_of_String where Element == [String] {} -public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCompatible, Any_String_or_record_String_to_String_or_seq_of_seq_of_String { +public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCompatible, + Any_String_or_record_String_to_String_or_seq_of_seq_of_String +{ case string(String) - case record_String_to_String([String: String]) + case record_String_to_String(JSObject) case seq_of_seq_of_String([[String]]) - init(_ string: String) { + public init(_ string: String) { let val: String_or_record_String_to_String_or_seq_of_seq_of_String = .string(string) self = val } - - init(_ record_String_to_String: [String: String]) { - let val: String_or_record_String_to_String_or_seq_of_seq_of_String = .record_String_to_String(record_String_to_String) + public init(_ record_String_to_String: JSObject) { + let val: String_or_record_String_to_String_or_seq_of_seq_of_String = .record_String_to_String( + record_String_to_String + ) self = val } - - init(_ seq_of_seq_of_String: [[String]]) { + public init(_ seq_of_seq_of_String: [[String]]) { let val: String_or_record_String_to_String_or_seq_of_seq_of_String = .seq_of_seq_of_String(seq_of_seq_of_String) self = val } @@ -523,14 +501,12 @@ public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCo default: return nil } } - - public var record_String_to_String: [String: String]? { + public var record_String_to_String: JSObject? { switch self { case let .record_String_to_String(record_String_to_String): return record_String_to_String default: return nil } } - public var seq_of_seq_of_String: [[String]]? { switch self { case let .seq_of_seq_of_String(seq_of_seq_of_String): return seq_of_seq_of_String @@ -539,10 +515,8 @@ public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCo } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let record_String_to_String: [String: String] = value.fromJSValue() { + if let string: String = value.fromJSValue() { return .string(string) } + if let record_String_to_String: JSObject = value.fromJSValue() { return .record_String_to_String(record_String_to_String) } if let seq_of_seq_of_String: [[String]] = value.fromJSValue() { @@ -553,741 +527,128 @@ public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCo public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .record_String_to_String(record_String_to_String): - return record_String_to_String.jsValue - case let .seq_of_seq_of_String(seq_of_seq_of_String): - return seq_of_seq_of_String.jsValue - } - } -} - -/* variadic generics please */ -@propertyWrapper public final class ClosureAttribute0 - where ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: () -> ReturnType { - get { ClosureAttribute0[name, in: jsObject] } - set { ClosureAttribute0[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> () -> ReturnType { - get { - let function = jsObject[name].function! - return { function().fromJSValue()! } - } - set { - jsObject[name] = JSClosure { _ in - _toJSValue(newValue()) - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping () -> ReturnType) -> JSValue - where ReturnType: JSValueCompatible -{ - JSClosure { _ in - _toJSValue(value()) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute0Optional - where ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (() -> ReturnType)? { - get { ClosureAttribute0Optional[name, in: jsObject] } - set { ClosureAttribute0Optional[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (() -> ReturnType)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function().fromJSValue()! } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { _ in - _toJSValue(newValue()) - }.jsValue - } else { - jsObject[name] = .null - } + case let .string(string): return string.jsValue + case let .record_String_to_String(record_String_to_String): return record_String_to_String.jsValue + case let .seq_of_seq_of_String(seq_of_seq_of_String): return seq_of_seq_of_String.jsValue } } } @inlinable public func _toJSValue(_ value: (() -> ReturnType)?) -> JSValue - where ReturnType: JSValueCompatible -{ - JSClosure { _ in - _toJSValue(value?()) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute0OptionalVoid { - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (() -> Void)? { - get { ClosureAttribute0OptionalVoid[name, in: jsObject] } - set { ClosureAttribute0OptionalVoid[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (() -> Void)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function() } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { _ in - newValue() - return .undefined - }.jsValue - } else { - jsObject[name] = .null - } - } - } -} - +where ReturnType: JSValueCompatible { JSClosure { _ in _toJSValue(value?()) }.jsValue } @inlinable public func _toJSValue(_ value: (() -> Void)?) -> JSValue { JSClosure { _ in value?() return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute0Void { - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: () -> Void { - get { ClosureAttribute0Void[name, in: jsObject] } - set { ClosureAttribute0Void[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> () -> Void { - get { - let function = jsObject[name].function! - return { function() } - } - set { - jsObject[name] = JSClosure { _ in - newValue() - return .undefined - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping () -> Void) -> JSValue { - JSClosure { _ in - value() - return .undefined - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute1 - where A0: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0) -> ReturnType { - get { ClosureAttribute1[name, in: jsObject] } - set { ClosureAttribute1[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0) -> ReturnType { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0)).fromJSValue()! } - } - set { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!)) - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping (A0) -> ReturnType) -> JSValue - where A0: JSValueCompatible, ReturnType: JSValueCompatible -{ - JSClosure { - _toJSValue(value($0[0].fromJSValue()!)) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute1Optional - where A0: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0) -> ReturnType)? { - get { ClosureAttribute1Optional[name, in: jsObject] } - set { ClosureAttribute1Optional[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0) -> ReturnType)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0)).fromJSValue()! } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!)) - }.jsValue - } else { - jsObject[name] = .null - } - } - } -} - @inlinable public func _toJSValue(_ value: ((A0) -> ReturnType)?) -> JSValue - where A0: JSValueCompatible, ReturnType: JSValueCompatible -{ - JSClosure { - _toJSValue(value?($0[0].fromJSValue()!)) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute1OptionalVoid - where A0: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0) -> Void)? { - get { ClosureAttribute1OptionalVoid[name, in: jsObject] } - set { ClosureAttribute1OptionalVoid[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0) -> Void)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0)) } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!) - return .undefined - }.jsValue - } else { - jsObject[name] = .null - } - } - } +where A0: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value?($0[0].fromJSValue()!)) }.jsValue } - -@inlinable public func _toJSValue(_ value: ((A0) -> Void)?) -> JSValue - where A0: JSValueCompatible -{ +@inlinable public func _toJSValue(_ value: ((A0) -> Void)?) -> JSValue where A0: JSValueCompatible { JSClosure { value?($0[0].fromJSValue()!) return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute1Void - where A0: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0) -> Void { - get { ClosureAttribute1Void[name, in: jsObject] } - set { ClosureAttribute1Void[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0) -> Void { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0)) } - } - set { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!) - return .undefined - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping (A0) -> Void) -> JSValue - where A0: JSValueCompatible -{ - JSClosure { - value($0[0].fromJSValue()!) - return .undefined - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute2 - where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0, A1) -> ReturnType { - get { ClosureAttribute2[name, in: jsObject] } - set { ClosureAttribute2[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1) -> ReturnType { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0), _toJSValue($1)).fromJSValue()! } - } - set { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)) - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping (A0, A1) -> ReturnType) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible -{ - JSClosure { - _toJSValue(value($0[0].fromJSValue()!, $0[1].fromJSValue()!)) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute2Optional - where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0, A1) -> ReturnType)? { - get { ClosureAttribute2Optional[name, in: jsObject] } - set { ClosureAttribute2Optional[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1) -> ReturnType)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0), _toJSValue($1)).fromJSValue()! } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)) - }.jsValue - } else { - jsObject[name] = .null - } - } - } -} - @inlinable public func _toJSValue(_ value: ((A0, A1) -> ReturnType)?) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible -{ - JSClosure { - _toJSValue(value?($0[0].fromJSValue()!, $0[1].fromJSValue()!)) - }.jsValue -} - -@propertyWrapper public final class ClosureAttribute2OptionalVoid - where A0: JSValueCompatible, A1: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0, A1) -> Void)? { - get { ClosureAttribute2OptionalVoid[name, in: jsObject] } - set { ClosureAttribute2OptionalVoid[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1) -> Void)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0), _toJSValue($1)) } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!) - return .undefined - }.jsValue - } else { - jsObject[name] = .null - } - } - } +where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value?($0[0].fromJSValue()!, $0[1].fromJSValue()!)) }.jsValue } - @inlinable public func _toJSValue(_ value: ((A0, A1) -> Void)?) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible -{ +where A0: JSValueCompatible, A1: JSValueCompatible { JSClosure { value?($0[0].fromJSValue()!, $0[1].fromJSValue()!) return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute2Void - where A0: JSValueCompatible, A1: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0, A1) -> Void { - get { ClosureAttribute2Void[name, in: jsObject] } - set { ClosureAttribute2Void[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1) -> Void { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0), _toJSValue($1)) } - } - set { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!) - return .undefined - }.jsValue - } - } +@inlinable public func _toJSValue(_ value: ((A0, A1, A2) -> ReturnType)?) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value?($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) }.jsValue } - -@inlinable public func _toJSValue(_ value: @escaping (A0, A1) -> Void) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible -{ +@inlinable public func _toJSValue(_ value: ((A0, A1, A2) -> Void)?) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible { JSClosure { - value($0[0].fromJSValue()!, $0[1].fromJSValue()!) + value?($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute3 - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0, A1, A2) -> ReturnType { - get { ClosureAttribute3[name, in: jsObject] } - set { ClosureAttribute3[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1, A2) -> ReturnType { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2)).fromJSValue()! } - } - set { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) - }.jsValue - } - } -} - -@inlinable public func _toJSValue(_ value: @escaping (A0, A1, A2) -> ReturnType) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible +@inlinable public func _toJSValue( + _ value: ((A0, A1, A2, A3, A4) -> ReturnType)? +) -> JSValue +where + A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, + ReturnType: JSValueCompatible { JSClosure { - _toJSValue(value($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) + _toJSValue( + value?( + $0[0].fromJSValue()!, + $0[1].fromJSValue()!, + $0[2].fromJSValue()!, + $0[3].fromJSValue()!, + $0[4].fromJSValue()! + ) + ) }.jsValue } - -@propertyWrapper public final class ClosureAttribute3Optional - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0, A1, A2) -> ReturnType)? { - get { ClosureAttribute3Optional[name, in: jsObject] } - set { ClosureAttribute3Optional[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1, A2) -> ReturnType)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2)).fromJSValue()! } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) - }.jsValue - } else { - jsObject[name] = .null - } - } - } -} - -@inlinable public func _toJSValue(_ value: ((A0, A1, A2) -> ReturnType)?) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible -{ - JSClosure { - _toJSValue(value?($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) +@inlinable public func _toJSValue(_ value: @escaping () -> ReturnType) -> JSValue +where ReturnType: JSValueCompatible { JSClosure { _ in _toJSValue(value()) }.jsValue } +@inlinable public func _toJSValue(_ value: @escaping () -> Void) -> JSValue { + JSClosure { _ in + value() + return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute3OptionalVoid - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0, A1, A2) -> Void)? { - get { ClosureAttribute3OptionalVoid[name, in: jsObject] } - set { ClosureAttribute3OptionalVoid[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1, A2) -> Void)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2)) } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) - return .undefined - }.jsValue - } else { - jsObject[name] = .null - } - } - } +@inlinable public func _toJSValue(_ value: @escaping (A0) -> ReturnType) -> JSValue +where A0: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value($0[0].fromJSValue()!)) }.jsValue } - -@inlinable public func _toJSValue(_ value: ((A0, A1, A2) -> Void)?) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible -{ +@inlinable public func _toJSValue(_ value: @escaping (A0) -> Void) -> JSValue where A0: JSValueCompatible { JSClosure { - value?($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) + value($0[0].fromJSValue()!) return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute3Void - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0, A1, A2) -> Void { - get { ClosureAttribute3Void[name, in: jsObject] } - set { ClosureAttribute3Void[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1, A2) -> Void { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2)) } - } - set { - jsObject[name] = JSClosure { - newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) - return .undefined - }.jsValue - } - } +@inlinable public func _toJSValue(_ value: @escaping (A0, A1) -> ReturnType) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value($0[0].fromJSValue()!, $0[1].fromJSValue()!)) }.jsValue } - -@inlinable public func _toJSValue(_ value: @escaping (A0, A1, A2) -> Void) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible -{ +@inlinable public func _toJSValue(_ value: @escaping (A0, A1) -> Void) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible { JSClosure { - value($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) + value($0[0].fromJSValue()!, $0[1].fromJSValue()!) return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute5 - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: (A0, A1, A2, A3, A4) -> ReturnType { - get { ClosureAttribute5[name, in: jsObject] } - set { ClosureAttribute5[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> (A0, A1, A2, A3, A4) -> ReturnType { - get { - let function = jsObject[name].function! - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2), _toJSValue($3), _toJSValue($4)).fromJSValue()! } - } - set { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!)) - }.jsValue - } - } +@inlinable public func _toJSValue(_ value: @escaping (A0, A1, A2) -> ReturnType) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible { + JSClosure { _toJSValue(value($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!)) }.jsValue } - -@inlinable public func _toJSValue(_ value: @escaping (A0, A1, A2, A3, A4) -> ReturnType) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible -{ +@inlinable public func _toJSValue(_ value: @escaping (A0, A1, A2) -> Void) -> JSValue +where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible { JSClosure { - _toJSValue(value($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!)) + value($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!) + return .undefined }.jsValue } - -@propertyWrapper public final class ClosureAttribute5Optional - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible -{ - @usableFromInline let jsObject: JSObject - @usableFromInline let name: JSString - - @inlinable public init(jsObject: JSObject, name: JSString) { - self.jsObject = jsObject - self.name = name - } - - @inlinable public var wrappedValue: ((A0, A1, A2, A3, A4) -> ReturnType)? { - get { ClosureAttribute5Optional[name, in: jsObject] } - set { ClosureAttribute5Optional[name, in: jsObject] = newValue } - } - - @inlinable public static subscript(name: JSString, in jsObject: JSObject) -> ((A0, A1, A2, A3, A4) -> ReturnType)? { - get { - guard let function = jsObject[name].function else { - return nil - } - return { function(_toJSValue($0), _toJSValue($1), _toJSValue($2), _toJSValue($3), _toJSValue($4)).fromJSValue()! } - } - set { - if let newValue = newValue { - jsObject[name] = JSClosure { - _toJSValue(newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!)) - }.jsValue - } else { - jsObject[name] = .null - } - } - } -} - -@inlinable public func _toJSValue(_ value: ((A0, A1, A2, A3, A4) -> ReturnType)?) -> JSValue - where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible +@inlinable public func _toJSValue( + _ value: @escaping (A0, A1, A2, A3, A4) -> ReturnType +) -> JSValue +where + A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, + ReturnType: JSValueCompatible { JSClosure { - _toJSValue(value?($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!)) + _toJSValue( + value( + $0[0].fromJSValue()!, + $0[1].fromJSValue()!, + $0[2].fromJSValue()!, + $0[3].fromJSValue()!, + $0[4].fromJSValue()! + ) + ) }.jsValue } diff --git a/Sources/WebAnimations/Generated.swift b/Sources/WebAnimations/Generated.swift index 4026b859..3907b93b 100644 --- a/Sources/WebAnimations/Generated.swift +++ b/Sources/WebAnimations/Generated.swift @@ -2,121 +2,152 @@ import DOM import ECMAScript -import JavaScriptEventLoop import JavaScriptKit import WebAPIBase import WebAudio +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public protocol Animatable: JSBridgedClass {} -public extension Animatable { - @inlinable func animate(keyframes: JSObject?, options: Double_or_KeyframeAnimationOptions? = nil) -> Animation { +extension Animatable { + @inlinable public func animate( + keyframes: JSObject?, + options: Double_or_KeyframeAnimationOptions? = nil + ) -> Animation { let this = jsObject - return this[Strings.animate].function!(this: this, arguments: [_toJSValue(keyframes), _toJSValue(options)]).fromJSValue()! + return this[Strings.animate].function!(this: this, arguments: [_toJSValue(keyframes), _toJSValue(options)]) + .fromJSValue()! } - @inlinable func getAnimations(options: GetAnimationsOptions? = nil) -> [Animation] { + @inlinable public func getAnimations(options: GetAnimationsOptions? = nil) -> [Animation] { let this = jsObject return this[Strings.getAnimations].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } } - extension Element: Animatable {} public class Animation: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Animation].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _id = ReadWriteAttribute(jsObject: jsObject, name: Strings.id) - _effect = ReadWriteAttribute(jsObject: jsObject, name: Strings.effect) - _timeline = ReadWriteAttribute(jsObject: jsObject, name: Strings.timeline) - _playbackRate = ReadWriteAttribute(jsObject: jsObject, name: Strings.playbackRate) - _playState = ReadonlyAttribute(jsObject: jsObject, name: Strings.playState) - _replaceState = ReadonlyAttribute(jsObject: jsObject, name: Strings.replaceState) - _pending = ReadonlyAttribute(jsObject: jsObject, name: Strings.pending) - _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready) - _finished = ReadonlyAttribute(jsObject: jsObject, name: Strings.finished) - _onfinish = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onfinish) - _oncancel = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncancel) - _onremove = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onremove) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.Animation].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(effect: AnimationEffect? = nil, timeline: AnimationTimeline? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(effect), _toJSValue(timeline)])) } - @ReadWriteAttribute - public var id: String + @inlinable public var id: String { + get { jsObject[Strings.id].fromJSValue()! } + set { jsObject[Strings.id] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var effect: AnimationEffect? + @inlinable public var effect: AnimationEffect? { + get { jsObject[Strings.effect].fromJSValue() } + set { jsObject[Strings.effect] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var timeline: AnimationTimeline? + @inlinable public var timeline: AnimationTimeline? { + get { jsObject[Strings.timeline].fromJSValue() } + set { jsObject[Strings.timeline] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var playbackRate: Double + @inlinable public var playbackRate: Double { + get { jsObject[Strings.playbackRate].fromJSValue()! } + set { jsObject[Strings.playbackRate] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var playState: AnimationPlayState + @inlinable public var playState: AnimationPlayState { jsObject[Strings.playState].fromJSValue()! } - @ReadonlyAttribute - public var replaceState: AnimationReplaceState + @inlinable public var replaceState: AnimationReplaceState { jsObject[Strings.replaceState].fromJSValue()! } - @ReadonlyAttribute - public var pending: Bool + @inlinable public var pending: Bool { jsObject[Strings.pending].fromJSValue()! } - @ReadonlyAttribute - public var ready: JSPromise + @inlinable public var ready: JSPromise { jsObject[Strings.ready].fromJSValue()! } - @ReadonlyAttribute - public var finished: JSPromise + @inlinable public var finished: JSPromise { jsObject[Strings.finished].fromJSValue()! } - @ClosureAttribute1Optional - public var onfinish: EventHandler + @inlinable public var onfinish: EventHandler { + get { + guard let function = jsObject[Strings.onfinish].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onfinish] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onfinish] = .null + } + } + } - @ClosureAttribute1Optional - public var oncancel: EventHandler + @inlinable public var oncancel: EventHandler { + get { + guard let function = jsObject[Strings.oncancel].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncancel] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncancel] = .null + } + } + } - @ClosureAttribute1Optional - public var onremove: EventHandler + @inlinable public var onremove: EventHandler { + get { + guard let function = jsObject[Strings.onremove].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onremove] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onremove] = .null + } + } + } - @inlinable public func cancel() { + @inlinable final public func cancel() { let this = jsObject _ = this[Strings.cancel].function!(this: this, arguments: []) } - @inlinable public func finish() { + @inlinable final public func finish() { let this = jsObject _ = this[Strings.finish].function!(this: this, arguments: []) } - @inlinable public func play() { + @inlinable final public func play() { let this = jsObject _ = this[Strings.play].function!(this: this, arguments: []) } - @inlinable public func pause() { + @inlinable final public func pause() { let this = jsObject _ = this[Strings.pause].function!(this: this, arguments: []) } - @inlinable public func updatePlaybackRate(playbackRate: Double) { + @inlinable final public func updatePlaybackRate(playbackRate: Double) { let this = jsObject _ = this[Strings.updatePlaybackRate].function!(this: this, arguments: [_toJSValue(playbackRate)]) } - @inlinable public func reverse() { + @inlinable final public func reverse() { let this = jsObject _ = this[Strings.reverse].function!(this: this, arguments: []) } - @inlinable public func persist() { + @inlinable final public func persist() { let this = jsObject _ = this[Strings.persist].function!(this: this, arguments: []) } - @inlinable public func commitStyles() { + @inlinable final public func commitStyles() { let this = jsObject _ = this[Strings.commitStyles].function!(this: this, arguments: []) } @@ -127,21 +158,19 @@ public class AnimationEffect: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func getTiming() -> EffectTiming { + @inlinable final public func getTiming() -> EffectTiming { let this = jsObject return this[Strings.getTiming].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func getComputedTiming() -> ComputedEffectTiming { + @inlinable final public func getComputedTiming() -> ComputedEffectTiming { let this = jsObject return this[Strings.getComputedTiming].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func updateTiming(timing: OptionalEffectTiming? = nil) { + @inlinable final public func updateTiming(timing: OptionalEffectTiming? = nil) { let this = jsObject _ = this[Strings.updateTiming].function!(this: this, arguments: [_toJSValue(timing)]) } @@ -154,150 +183,146 @@ public enum AnimationPlayState: JSString, JSValueCompatible { case finished = "finished" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum AnimationReplaceState: JSString, JSValueCompatible { case active = "active" case removed = "removed" case persisted = "persisted" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class AnimationTimeline: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AnimationTimeline].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class BaseComputedKeyframe: BridgedDictionary { - public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) { +open class BaseComputedKeyframe: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + offset: Double?, + computedOffset: Double? = nil, + easing: String? = nil, + composite: CompositeOperationOrAuto? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.offset] = _toJSValue(offset) object[Strings.computedOffset] = _toJSValue(computedOffset) object[Strings.easing] = _toJSValue(easing) object[Strings.composite] = _toJSValue(composite) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _computedOffset = ReadWriteAttribute(jsObject: object, name: Strings.computedOffset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var offset: Double? - - @ReadWriteAttribute - public var computedOffset: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var easing: String - - @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + @inlinable public var offset: Double? { + get { jsObject[Strings.offset].fromJSValue() } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var computedOffset: Double { + get { jsObject[Strings.computedOffset].fromJSValue()! } + set { jsObject[Strings.computedOffset] = _toJSValue(newValue) } + } + @inlinable public var easing: String { + get { jsObject[Strings.easing].fromJSValue()! } + set { jsObject[Strings.easing] = _toJSValue(newValue) } + } + @inlinable public var composite: CompositeOperationOrAuto { + get { jsObject[Strings.composite].fromJSValue()! } + set { jsObject[Strings.composite] = _toJSValue(newValue) } + } } +open class BaseKeyframe: JSDictionaryCompatible { + public let jsObject: JSObject -public class BaseKeyframe: BridgedDictionary { - public convenience init(offset: Double?, easing: String, composite: CompositeOperationOrAuto) { + public convenience init(offset: Double?, easing: String? = nil, composite: CompositeOperationOrAuto? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.offset] = _toJSValue(offset) object[Strings.easing] = _toJSValue(easing) object[Strings.composite] = _toJSValue(composite) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var offset: Double? - - @ReadWriteAttribute - public var easing: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var composite: CompositeOperationOrAuto + @inlinable public var offset: Double? { + get { jsObject[Strings.offset].fromJSValue() } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var easing: String { + get { jsObject[Strings.easing].fromJSValue()! } + set { jsObject[Strings.easing] = _toJSValue(newValue) } + } + @inlinable public var composite: CompositeOperationOrAuto { + get { jsObject[Strings.composite].fromJSValue()! } + set { jsObject[Strings.composite] = _toJSValue(newValue) } + } } +open class BasePropertyIndexedKeyframe: JSDictionaryCompatible { + public let jsObject: JSObject -public class BasePropertyIndexedKeyframe: BridgedDictionary { - public convenience init(offset: nullable_Double_or_seq_of_nullable_Double, easing: String_or_seq_of_String, composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto) { + public convenience init( + offset: nullable_Double_or_seq_of_nullable_Double? = nil, + easing: String_or_seq_of_String? = nil, + composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.offset] = _toJSValue(offset) object[Strings.easing] = _toJSValue(easing) object[Strings.composite] = _toJSValue(composite) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var offset: nullable_Double_or_seq_of_nullable_Double - - @ReadWriteAttribute - public var easing: String_or_seq_of_String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto + @inlinable public var offset: nullable_Double_or_seq_of_nullable_Double { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var easing: String_or_seq_of_String { + get { jsObject[Strings.easing].fromJSValue()! } + set { jsObject[Strings.easing] = _toJSValue(newValue) } + } + @inlinable public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto { + get { jsObject[Strings.composite].fromJSValue()! } + set { jsObject[Strings.composite] = _toJSValue(newValue) } + } } - public enum CompositeOperation: JSString, JSValueCompatible { case replace = "replace" case add = "add" case accumulate = "accumulate" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum CompositeOperationOrAuto: JSString, JSValueCompatible { case replace = "replace" case add = "add" @@ -305,111 +330,125 @@ public enum CompositeOperationOrAuto: JSString, JSValueCompatible { case auto = "auto" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - -public class ComputedEffectTiming: BridgedDictionary { - public convenience init(progress: Double?, currentIteration: Double?) { +open class ComputedEffectTiming: EffectTiming { + + public convenience init( + fill: FillMode? = nil, + iterationStart: Double? = nil, + iterations: Double? = nil, + direction: PlaybackDirection? = nil, + easing: String? = nil, + progress: Double?, + currentIteration: Double? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.fill] = _toJSValue(fill) + object[Strings.iterationStart] = _toJSValue(iterationStart) + object[Strings.iterations] = _toJSValue(iterations) + object[Strings.direction] = _toJSValue(direction) + object[Strings.easing] = _toJSValue(easing) object[Strings.progress] = _toJSValue(progress) object[Strings.currentIteration] = _toJSValue(currentIteration) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _progress = ReadWriteAttribute(jsObject: object, name: Strings.progress) - _currentIteration = ReadWriteAttribute(jsObject: object, name: Strings.currentIteration) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var progress: Double? + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var currentIteration: Double? + @inlinable public var progress: Double? { + get { jsObject[Strings.progress].fromJSValue() } + set { jsObject[Strings.progress] = _toJSValue(newValue) } + } + @inlinable public var currentIteration: Double? { + get { jsObject[Strings.currentIteration].fromJSValue() } + set { jsObject[Strings.currentIteration] = _toJSValue(newValue) } + } } -public extension DocumentOrShadowRoot { - @inlinable func getAnimations() -> [Animation] { +extension DocumentOrShadowRoot { + @inlinable public func getAnimations() -> [Animation] { let this = jsObject return this[Strings.getAnimations].function!(this: this, arguments: []).fromJSValue()! } } - public class DocumentTimeline: AnimationTimeline { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentTimeline].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DocumentTimeline].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(options: DocumentTimelineOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(options)])) } } -public class DocumentTimelineOptions: BridgedDictionary { - public convenience init(originTime: DOMHighResTimeStamp) { +open class DocumentTimelineOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(originTime: DOMHighResTimeStamp? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.originTime] = _toJSValue(originTime) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _originTime = ReadWriteAttribute(jsObject: object, name: Strings.originTime) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var originTime: DOMHighResTimeStamp + @inlinable public var originTime: DOMHighResTimeStamp { + get { jsObject[Strings.originTime].fromJSValue()! } + set { jsObject[Strings.originTime] = _toJSValue(newValue) } + } } +open class EffectTiming: JSDictionaryCompatible { + public let jsObject: JSObject -public class EffectTiming: BridgedDictionary { - public convenience init(fill: FillMode, iterationStart: Double, iterations: Double, direction: PlaybackDirection, easing: String) { + public convenience init( + fill: FillMode? = nil, + iterationStart: Double? = nil, + iterations: Double? = nil, + direction: PlaybackDirection? = nil, + easing: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.fill] = _toJSValue(fill) object[Strings.iterationStart] = _toJSValue(iterationStart) object[Strings.iterations] = _toJSValue(iterations) object[Strings.direction] = _toJSValue(direction) object[Strings.easing] = _toJSValue(easing) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _fill = ReadWriteAttribute(jsObject: object, name: Strings.fill) - _iterationStart = ReadWriteAttribute(jsObject: object, name: Strings.iterationStart) - _iterations = ReadWriteAttribute(jsObject: object, name: Strings.iterations) - _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var fill: FillMode - - @ReadWriteAttribute - public var iterationStart: Double - - @ReadWriteAttribute - public var iterations: Double - - @ReadWriteAttribute - public var direction: PlaybackDirection + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var easing: String + @inlinable public var fill: FillMode { + get { jsObject[Strings.fill].fromJSValue()! } + set { jsObject[Strings.fill] = _toJSValue(newValue) } + } + @inlinable public var iterationStart: Double { + get { jsObject[Strings.iterationStart].fromJSValue()! } + set { jsObject[Strings.iterationStart] = _toJSValue(newValue) } + } + @inlinable public var iterations: Double { + get { jsObject[Strings.iterations].fromJSValue()! } + set { jsObject[Strings.iterations] = _toJSValue(newValue) } + } + @inlinable public var direction: PlaybackDirection { + get { jsObject[Strings.direction].fromJSValue()! } + set { jsObject[Strings.direction] = _toJSValue(newValue) } + } + @inlinable public var easing: String { + get { jsObject[Strings.easing].fromJSValue()! } + set { jsObject[Strings.easing] = _toJSValue(newValue) } + } } - public enum FillMode: JSString, JSValueCompatible { case none = "none" case forwards = "forwards" @@ -418,117 +457,158 @@ public enum FillMode: JSString, JSValueCompatible { case auto = "auto" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GetAnimationsOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class GetAnimationsOptions: BridgedDictionary { - public convenience init(subtree: Bool) { + public convenience init(subtree: Bool? = nil, pseudoElement: String?) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.subtree] = _toJSValue(subtree) + object[Strings.pseudoElement] = _toJSValue(pseudoElement) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _subtree = ReadWriteAttribute(jsObject: object, name: Strings.subtree) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var subtree: Bool + @inlinable public var subtree: Bool { + get { jsObject[Strings.subtree].fromJSValue()! } + set { jsObject[Strings.subtree] = _toJSValue(newValue) } + } + @inlinable public var pseudoElement: String? { + get { jsObject[Strings.pseudoElement].fromJSValue() } + set { jsObject[Strings.pseudoElement] = _toJSValue(newValue) } + } } - -public class KeyframeAnimationOptions: BridgedDictionary { - public convenience init(id: String, timeline: AnimationTimeline?) { +open class KeyframeAnimationOptions: KeyframeEffectOptions { + + public convenience init( + composite: CompositeOperation? = nil, + pseudoElement: String?, + id: String? = nil, + timeline: AnimationTimeline? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.composite] = _toJSValue(composite) + object[Strings.pseudoElement] = _toJSValue(pseudoElement) object[Strings.id] = _toJSValue(id) object[Strings.timeline] = _toJSValue(timeline) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _id = ReadWriteAttribute(jsObject: object, name: Strings.id) - _timeline = ReadWriteAttribute(jsObject: object, name: Strings.timeline) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var id: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var timeline: AnimationTimeline? + @inlinable public var id: String { + get { jsObject[Strings.id].fromJSValue()! } + set { jsObject[Strings.id] = _toJSValue(newValue) } + } + @inlinable public var timeline: AnimationTimeline? { + get { jsObject[Strings.timeline].fromJSValue() } + set { jsObject[Strings.timeline] = _toJSValue(newValue) } + } } - public class KeyframeEffect: AnimationEffect { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.KeyframeEffect].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.KeyframeEffect].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target) - _pseudoElement = ReadWriteAttribute(jsObject: jsObject, name: Strings.pseudoElement) - _composite = ReadWriteAttribute(jsObject: jsObject, name: Strings.composite) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(target: Element?, keyframes: JSObject?, options: Double_or_KeyframeEffectOptions? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(target), _toJSValue(keyframes), _toJSValue(options)])) + @inlinable public convenience init( + target: Element?, + keyframes: JSObject?, + options: Double_or_KeyframeEffectOptions? = nil + ) { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(target), _toJSValue(keyframes), _toJSValue(options), + ]) + ) } @inlinable public convenience init(source: KeyframeEffect) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(source)])) } - @ReadWriteAttribute - public var target: Element? + @inlinable public var target: Element? { + get { jsObject[Strings.target].fromJSValue() } + set { jsObject[Strings.target] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var pseudoElement: String? + @inlinable public var pseudoElement: String? { + get { jsObject[Strings.pseudoElement].fromJSValue() } + set { jsObject[Strings.pseudoElement] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var composite: CompositeOperation + @inlinable public var composite: CompositeOperation { + get { jsObject[Strings.composite].fromJSValue()! } + set { jsObject[Strings.composite] = _toJSValue(newValue) } + } - @inlinable public func getKeyframes() -> [JSObject] { + @inlinable final public func getKeyframes() -> [JSObject] { let this = jsObject return this[Strings.getKeyframes].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func setKeyframes(keyframes: JSObject?) { + @inlinable final public func setKeyframes(keyframes: JSObject?) { let this = jsObject _ = this[Strings.setKeyframes].function!(this: this, arguments: [_toJSValue(keyframes)]) } } -public class KeyframeEffectOptions: BridgedDictionary { - public convenience init(composite: CompositeOperation, pseudoElement: String?) { +open class KeyframeEffectOptions: EffectTiming { + + public convenience init( + fill: FillMode? = nil, + iterationStart: Double? = nil, + iterations: Double? = nil, + direction: PlaybackDirection? = nil, + easing: String? = nil, + composite: CompositeOperation? = nil, + pseudoElement: String? + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.fill] = _toJSValue(fill) + object[Strings.iterationStart] = _toJSValue(iterationStart) + object[Strings.iterations] = _toJSValue(iterations) + object[Strings.direction] = _toJSValue(direction) + object[Strings.easing] = _toJSValue(easing) object[Strings.composite] = _toJSValue(composite) object[Strings.pseudoElement] = _toJSValue(pseudoElement) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _composite = ReadWriteAttribute(jsObject: object, name: Strings.composite) - _pseudoElement = ReadWriteAttribute(jsObject: object, name: Strings.pseudoElement) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var composite: CompositeOperation + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var pseudoElement: String? + @inlinable public var composite: CompositeOperation { + get { jsObject[Strings.composite].fromJSValue()! } + set { jsObject[Strings.composite] = _toJSValue(newValue) } + } + @inlinable public var pseudoElement: String? { + get { jsObject[Strings.pseudoElement].fromJSValue() } + set { jsObject[Strings.pseudoElement] = _toJSValue(newValue) } + } } +open class OptionalEffectTiming: JSDictionaryCompatible { + public let jsObject: JSObject -public class OptionalEffectTiming: BridgedDictionary { - public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, duration: Double_or_String, direction: PlaybackDirection, easing: String) { + public convenience init( + delay: Double? = nil, + endDelay: Double? = nil, + fill: FillMode? = nil, + iterationStart: Double? = nil, + iterations: Double? = nil, + duration: Double_or_String? = nil, + direction: PlaybackDirection? = nil, + easing: String? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.delay] = _toJSValue(delay) object[Strings.endDelay] = _toJSValue(endDelay) @@ -538,46 +618,45 @@ public class OptionalEffectTiming: BridgedDictionary { object[Strings.duration] = _toJSValue(duration) object[Strings.direction] = _toJSValue(direction) object[Strings.easing] = _toJSValue(easing) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _delay = ReadWriteAttribute(jsObject: object, name: Strings.delay) - _endDelay = ReadWriteAttribute(jsObject: object, name: Strings.endDelay) - _fill = ReadWriteAttribute(jsObject: object, name: Strings.fill) - _iterationStart = ReadWriteAttribute(jsObject: object, name: Strings.iterationStart) - _iterations = ReadWriteAttribute(jsObject: object, name: Strings.iterations) - _duration = ReadWriteAttribute(jsObject: object, name: Strings.duration) - _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction) - _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var delay: Double - - @ReadWriteAttribute - public var endDelay: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var fill: FillMode - - @ReadWriteAttribute - public var iterationStart: Double - - @ReadWriteAttribute - public var iterations: Double - - @ReadWriteAttribute - public var duration: Double_or_String - - @ReadWriteAttribute - public var direction: PlaybackDirection - - @ReadWriteAttribute - public var easing: String + @inlinable public var delay: Double { + get { jsObject[Strings.delay].fromJSValue()! } + set { jsObject[Strings.delay] = _toJSValue(newValue) } + } + @inlinable public var endDelay: Double { + get { jsObject[Strings.endDelay].fromJSValue()! } + set { jsObject[Strings.endDelay] = _toJSValue(newValue) } + } + @inlinable public var fill: FillMode { + get { jsObject[Strings.fill].fromJSValue()! } + set { jsObject[Strings.fill] = _toJSValue(newValue) } + } + @inlinable public var iterationStart: Double { + get { jsObject[Strings.iterationStart].fromJSValue()! } + set { jsObject[Strings.iterationStart] = _toJSValue(newValue) } + } + @inlinable public var iterations: Double { + get { jsObject[Strings.iterations].fromJSValue()! } + set { jsObject[Strings.iterations] = _toJSValue(newValue) } + } + @inlinable public var duration: Double_or_String { + get { jsObject[Strings.duration].fromJSValue()! } + set { jsObject[Strings.duration] = _toJSValue(newValue) } + } + @inlinable public var direction: PlaybackDirection { + get { jsObject[Strings.direction].fromJSValue()! } + set { jsObject[Strings.direction] = _toJSValue(newValue) } + } + @inlinable public var easing: String { + get { jsObject[Strings.easing].fromJSValue()! } + set { jsObject[Strings.easing] = _toJSValue(newValue) } + } } - public enum PlaybackDirection: JSString, JSValueCompatible { case normal = "normal" case reverse = "reverse" @@ -585,89 +664,90 @@ public enum PlaybackDirection: JSString, JSValueCompatible { case alternateReverse = "alternate-reverse" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let Animation: JSString = "Animation" - @usableFromInline static let AnimationEffect: JSString = "AnimationEffect" - @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline" - @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline" - @usableFromInline static let KeyframeEffect: JSString = "KeyframeEffect" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let animate: JSString = "animate" - @usableFromInline static let cancel: JSString = "cancel" - @usableFromInline static let commitStyles: JSString = "commitStyles" - @usableFromInline static let composite: JSString = "composite" - @usableFromInline static let computedOffset: JSString = "computedOffset" - @usableFromInline static let currentIteration: JSString = "currentIteration" - @usableFromInline static let delay: JSString = "delay" - @usableFromInline static let direction: JSString = "direction" - @usableFromInline static let duration: JSString = "duration" - @usableFromInline static let easing: JSString = "easing" - @usableFromInline static let effect: JSString = "effect" - @usableFromInline static let endDelay: JSString = "endDelay" - @usableFromInline static let fill: JSString = "fill" - @usableFromInline static let finish: JSString = "finish" - @usableFromInline static let finished: JSString = "finished" - @usableFromInline static let getAnimations: JSString = "getAnimations" - @usableFromInline static let getComputedTiming: JSString = "getComputedTiming" - @usableFromInline static let getKeyframes: JSString = "getKeyframes" - @usableFromInline static let getTiming: JSString = "getTiming" - @usableFromInline static let id: JSString = "id" - @usableFromInline static let iterationStart: JSString = "iterationStart" - @usableFromInline static let iterations: JSString = "iterations" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let oncancel: JSString = "oncancel" - @usableFromInline static let onfinish: JSString = "onfinish" - @usableFromInline static let onremove: JSString = "onremove" - @usableFromInline static let originTime: JSString = "originTime" - @usableFromInline static let pause: JSString = "pause" - @usableFromInline static let pending: JSString = "pending" - @usableFromInline static let persist: JSString = "persist" - @usableFromInline static let play: JSString = "play" - @usableFromInline static let playState: JSString = "playState" - @usableFromInline static let playbackRate: JSString = "playbackRate" - @usableFromInline static let progress: JSString = "progress" - @usableFromInline static let pseudoElement: JSString = "pseudoElement" - @usableFromInline static let ready: JSString = "ready" - @usableFromInline static let replaceState: JSString = "replaceState" - @usableFromInline static let reverse: JSString = "reverse" - @usableFromInline static let setKeyframes: JSString = "setKeyframes" - @usableFromInline static let subtree: JSString = "subtree" - @usableFromInline static let target: JSString = "target" - @usableFromInline static let timeline: JSString = "timeline" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate" - @usableFromInline static let updateTiming: JSString = "updateTiming" + @usableFromInline static let `Animation`: JSString = "Animation" + @usableFromInline static let `AnimationEffect`: JSString = "AnimationEffect" + @usableFromInline static let `AnimationTimeline`: JSString = "AnimationTimeline" + @usableFromInline static let `DocumentTimeline`: JSString = "DocumentTimeline" + @usableFromInline static let `KeyframeEffect`: JSString = "KeyframeEffect" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `animate`: JSString = "animate" + @usableFromInline static let `cancel`: JSString = "cancel" + @usableFromInline static let `commitStyles`: JSString = "commitStyles" + @usableFromInline static let `composite`: JSString = "composite" + @usableFromInline static let `computedOffset`: JSString = "computedOffset" + @usableFromInline static let `currentIteration`: JSString = "currentIteration" + @usableFromInline static let `delay`: JSString = "delay" + @usableFromInline static let `direction`: JSString = "direction" + @usableFromInline static let `duration`: JSString = "duration" + @usableFromInline static let `easing`: JSString = "easing" + @usableFromInline static let `effect`: JSString = "effect" + @usableFromInline static let `endDelay`: JSString = "endDelay" + @usableFromInline static let `fill`: JSString = "fill" + @usableFromInline static let `finish`: JSString = "finish" + @usableFromInline static let `finished`: JSString = "finished" + @usableFromInline static let `getAnimations`: JSString = "getAnimations" + @usableFromInline static let `getComputedTiming`: JSString = "getComputedTiming" + @usableFromInline static let `getKeyframes`: JSString = "getKeyframes" + @usableFromInline static let `getTiming`: JSString = "getTiming" + @usableFromInline static let `id`: JSString = "id" + @usableFromInline static let `iterationStart`: JSString = "iterationStart" + @usableFromInline static let `iterations`: JSString = "iterations" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `oncancel`: JSString = "oncancel" + @usableFromInline static let `onfinish`: JSString = "onfinish" + @usableFromInline static let `onremove`: JSString = "onremove" + @usableFromInline static let `originTime`: JSString = "originTime" + @usableFromInline static let `pause`: JSString = "pause" + @usableFromInline static let `pending`: JSString = "pending" + @usableFromInline static let `persist`: JSString = "persist" + @usableFromInline static let `play`: JSString = "play" + @usableFromInline static let `playState`: JSString = "playState" + @usableFromInline static let `playbackRate`: JSString = "playbackRate" + @usableFromInline static let `progress`: JSString = "progress" + @usableFromInline static let `pseudoElement`: JSString = "pseudoElement" + @usableFromInline static let `ready`: JSString = "ready" + @usableFromInline static let `replaceState`: JSString = "replaceState" + @usableFromInline static let `reverse`: JSString = "reverse" + @usableFromInline static let `setKeyframes`: JSString = "setKeyframes" + @usableFromInline static let `subtree`: JSString = "subtree" + @usableFromInline static let `target`: JSString = "target" + @usableFromInline static let `timeline`: JSString = "timeline" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `updatePlaybackRate`: JSString = "updatePlaybackRate" + @usableFromInline static let `updateTiming`: JSString = "updateTiming" } - public protocol Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: ConvertibleToJSValue {} extension CompositeOperationOrAuto: Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {} -extension Array: Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto where Element == CompositeOperationOrAuto {} +extension Array: Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto +where Element == CompositeOperationOrAuto {} -public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto { +public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, + Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto +{ case compositeOperationOrAuto(CompositeOperationOrAuto) case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto]) - init(_ compositeOperationOrAuto: CompositeOperationOrAuto) { - let val: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto = .compositeOperationOrAuto(compositeOperationOrAuto) + public init(_ compositeOperationOrAuto: CompositeOperationOrAuto) { + let val: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto = .compositeOperationOrAuto( + compositeOperationOrAuto + ) self = val } - - init(_ seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]) { - let val: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto = .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto) + public init(_ seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]) { + let val: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto = .seq_of_CompositeOperationOrAuto( + seq_of_CompositeOperationOrAuto + ) self = val } @@ -677,10 +757,10 @@ public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValue default: return nil } } - public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? { switch self { - case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto + case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): + return seq_of_CompositeOperationOrAuto default: return nil } } @@ -697,14 +777,12 @@ public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValue public var jsValue: JSValue { switch self { - case let .compositeOperationOrAuto(compositeOperationOrAuto): - return compositeOperationOrAuto.jsValue + case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto.jsValue case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto.jsValue } } } - public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {} extension Double: Any_Double_or_KeyframeAnimationOptions {} extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {} @@ -713,12 +791,11 @@ public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or case double(Double) case keyframeAnimationOptions(KeyframeAnimationOptions) - init(_ double: Double) { + public init(_ double: Double) { let val: Double_or_KeyframeAnimationOptions = .double(double) self = val } - - init(_ keyframeAnimationOptions: KeyframeAnimationOptions) { + public init(_ keyframeAnimationOptions: KeyframeAnimationOptions) { let val: Double_or_KeyframeAnimationOptions = .keyframeAnimationOptions(keyframeAnimationOptions) self = val } @@ -729,7 +806,6 @@ public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or default: return nil } } - public var keyframeAnimationOptions: KeyframeAnimationOptions? { switch self { case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions @@ -738,9 +814,7 @@ public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or } public static func construct(from value: JSValue) -> Self? { - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let double: Double = value.fromJSValue() { return .double(double) } if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() { return .keyframeAnimationOptions(keyframeAnimationOptions) } @@ -749,14 +823,11 @@ public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or public var jsValue: JSValue { switch self { - case let .double(double): - return double.jsValue - case let .keyframeAnimationOptions(keyframeAnimationOptions): - return keyframeAnimationOptions.jsValue + case let .double(double): return double.jsValue + case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions.jsValue } } } - public protocol Any_Double_or_KeyframeEffectOptions: ConvertibleToJSValue {} extension Double: Any_Double_or_KeyframeEffectOptions {} extension KeyframeEffectOptions: Any_Double_or_KeyframeEffectOptions {} @@ -765,12 +836,11 @@ public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_Ke case double(Double) case keyframeEffectOptions(KeyframeEffectOptions) - init(_ double: Double) { + public init(_ double: Double) { let val: Double_or_KeyframeEffectOptions = .double(double) self = val } - - init(_ keyframeEffectOptions: KeyframeEffectOptions) { + public init(_ keyframeEffectOptions: KeyframeEffectOptions) { let val: Double_or_KeyframeEffectOptions = .keyframeEffectOptions(keyframeEffectOptions) self = val } @@ -781,7 +851,6 @@ public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_Ke default: return nil } } - public var keyframeEffectOptions: KeyframeEffectOptions? { switch self { case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions @@ -790,9 +859,7 @@ public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_Ke } public static func construct(from value: JSValue) -> Self? { - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let double: Double = value.fromJSValue() { return .double(double) } if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() { return .keyframeEffectOptions(keyframeEffectOptions) } @@ -801,14 +868,11 @@ public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_Ke public var jsValue: JSValue { switch self { - case let .double(double): - return double.jsValue - case let .keyframeEffectOptions(keyframeEffectOptions): - return keyframeEffectOptions.jsValue + case let .double(double): return double.jsValue + case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions.jsValue } } } - public protocol Any_Double_or_String: ConvertibleToJSValue {} extension Double: Any_Double_or_String {} extension String: Any_Double_or_String {} @@ -817,12 +881,11 @@ public enum Double_or_String: JSValueCompatible, Any_Double_or_String { case double(Double) case string(String) - init(_ double: Double) { + public init(_ double: Double) { let val: Double_or_String = .double(double) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: Double_or_String = .string(string) self = val } @@ -833,7 +896,6 @@ public enum Double_or_String: JSValueCompatible, Any_Double_or_String { default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -842,25 +904,18 @@ public enum Double_or_String: JSValueCompatible, Any_Double_or_String { } public static func construct(from value: JSValue) -> Self? { - if let double: Double = value.fromJSValue() { - return .double(double) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let double: Double = value.fromJSValue() { return .double(double) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .double(double): - return double.jsValue - case let .string(string): - return string.jsValue + case let .double(double): return double.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_String_or_seq_of_String: ConvertibleToJSValue {} extension String: Any_String_or_seq_of_String {} extension Array: Any_String_or_seq_of_String where Element == String {} @@ -869,12 +924,11 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str case string(String) case seq_of_String([String]) - init(_ string: String) { + public init(_ string: String) { let val: String_or_seq_of_String = .string(string) self = val } - - init(_ seq_of_String: [String]) { + public init(_ seq_of_String: [String]) { let val: String_or_seq_of_String = .seq_of_String(seq_of_String) self = val } @@ -885,7 +939,6 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str default: return nil } } - public var seq_of_String: [String]? { switch self { case let .seq_of_String(seq_of_String): return seq_of_String @@ -894,39 +947,32 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_String: [String] = value.fromJSValue() { - return .seq_of_String(seq_of_String) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let seq_of_String: [String] = value.fromJSValue() { return .seq_of_String(seq_of_String) } return nil } public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .seq_of_String(seq_of_String): - return seq_of_String.jsValue + case let .string(string): return string.jsValue + case let .seq_of_String(seq_of_String): return seq_of_String.jsValue } } } - public protocol Any_nullable_Double_or_seq_of_nullable_Double: ConvertibleToJSValue {} extension Optional: Any_nullable_Double_or_seq_of_nullable_Double where Wrapped == Double {} extension Array: Any_nullable_Double_or_seq_of_nullable_Double where Element == Double? {} -public enum nullable_Double_or_seq_of_nullable_Double: JSValueCompatible, Any_nullable_Double_or_seq_of_nullable_Double { +public enum nullable_Double_or_seq_of_nullable_Double: JSValueCompatible, Any_nullable_Double_or_seq_of_nullable_Double +{ case nullable_Double(Double?) case seq_of_nullable_Double([Double?]) - init(_ nullable_Double: Double?) { + public init(_ nullable_Double: Double?) { let val: nullable_Double_or_seq_of_nullable_Double = .nullable_Double(nullable_Double) self = val } - - init(_ seq_of_nullable_Double: [Double?]) { + public init(_ seq_of_nullable_Double: [Double?]) { let val: nullable_Double_or_seq_of_nullable_Double = .seq_of_nullable_Double(seq_of_nullable_Double) self = val } @@ -937,7 +983,6 @@ public enum nullable_Double_or_seq_of_nullable_Double: JSValueCompatible, Any_nu default: return nil } } - public var seq_of_nullable_Double: [Double?]? { switch self { case let .seq_of_nullable_Double(seq_of_nullable_Double): return seq_of_nullable_Double @@ -946,9 +991,7 @@ public enum nullable_Double_or_seq_of_nullable_Double: JSValueCompatible, Any_nu } public static func construct(from value: JSValue) -> Self? { - if let nullable_Double: Double? = value.fromJSValue() { - return .nullable_Double(nullable_Double) - } + if let nullable_Double: Double? = value.fromJSValue() { return .nullable_Double(nullable_Double) } if let seq_of_nullable_Double: [Double?] = value.fromJSValue() { return .seq_of_nullable_Double(seq_of_nullable_Double) } @@ -957,10 +1000,8 @@ public enum nullable_Double_or_seq_of_nullable_Double: JSValueCompatible, Any_nu public var jsValue: JSValue { switch self { - case let .nullable_Double(nullable_Double): - return nullable_Double.jsValue - case let .seq_of_nullable_Double(seq_of_nullable_Double): - return seq_of_nullable_Double.jsValue + case let .nullable_Double(nullable_Double): return nullable_Double.jsValue + case let .seq_of_nullable_Double(seq_of_nullable_Double): return seq_of_nullable_Double.jsValue } } } diff --git a/Sources/WebAudio/Generated.swift b/Sources/WebAudio/Generated.swift index 590831f7..d672d8c1 100644 --- a/Sources/WebAudio/Generated.swift +++ b/Sources/WebAudio/Generated.swift @@ -2,208 +2,231 @@ import DOM import ECMAScript -import JavaScriptEventLoop import JavaScriptKit import WebAPIBase +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public class AnalyserNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AnalyserNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AnalyserNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _fftSize = ReadWriteAttribute(jsObject: jsObject, name: Strings.fftSize) - _frequencyBinCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequencyBinCount) - _minDecibels = ReadWriteAttribute(jsObject: jsObject, name: Strings.minDecibels) - _maxDecibels = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxDecibels) - _smoothingTimeConstant = ReadWriteAttribute(jsObject: jsObject, name: Strings.smoothingTimeConstant) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: AnalyserOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @inlinable public func getFloatFrequencyData(array: Float32Array) { + @inlinable final public func getFloatFrequencyData(array: Float32Array) { let this = jsObject _ = this[Strings.getFloatFrequencyData].function!(this: this, arguments: [_toJSValue(array)]) } - @inlinable public func getByteFrequencyData(array: Uint8Array) { + @inlinable final public func getByteFrequencyData(array: Uint8Array) { let this = jsObject _ = this[Strings.getByteFrequencyData].function!(this: this, arguments: [_toJSValue(array)]) } - @inlinable public func getFloatTimeDomainData(array: Float32Array) { + @inlinable final public func getFloatTimeDomainData(array: Float32Array) { let this = jsObject _ = this[Strings.getFloatTimeDomainData].function!(this: this, arguments: [_toJSValue(array)]) } - @inlinable public func getByteTimeDomainData(array: Uint8Array) { + @inlinable final public func getByteTimeDomainData(array: Uint8Array) { let this = jsObject _ = this[Strings.getByteTimeDomainData].function!(this: this, arguments: [_toJSValue(array)]) } - @ReadWriteAttribute - public var fftSize: UInt32 + @inlinable public var fftSize: UInt32 { + get { jsObject[Strings.fftSize].fromJSValue()! } + set { jsObject[Strings.fftSize] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var frequencyBinCount: UInt32 + @inlinable public var frequencyBinCount: UInt32 { jsObject[Strings.frequencyBinCount].fromJSValue()! } - @ReadWriteAttribute - public var minDecibels: Double + @inlinable public var minDecibels: Double { + get { jsObject[Strings.minDecibels].fromJSValue()! } + set { jsObject[Strings.minDecibels] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var maxDecibels: Double + @inlinable public var maxDecibels: Double { + get { jsObject[Strings.maxDecibels].fromJSValue()! } + set { jsObject[Strings.maxDecibels] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var smoothingTimeConstant: Double + @inlinable public var smoothingTimeConstant: Double { + get { jsObject[Strings.smoothingTimeConstant].fromJSValue()! } + set { jsObject[Strings.smoothingTimeConstant] = _toJSValue(newValue) } + } } -public class AnalyserOptions: BridgedDictionary { - public convenience init(fftSize: UInt32, maxDecibels: Double, minDecibels: Double, smoothingTimeConstant: Double) { +open class AnalyserOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + fftSize: UInt32? = nil, + maxDecibels: Double? = nil, + minDecibels: Double? = nil, + smoothingTimeConstant: Double? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.fftSize] = _toJSValue(fftSize) object[Strings.maxDecibels] = _toJSValue(maxDecibels) object[Strings.minDecibels] = _toJSValue(minDecibels) object[Strings.smoothingTimeConstant] = _toJSValue(smoothingTimeConstant) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _fftSize = ReadWriteAttribute(jsObject: object, name: Strings.fftSize) - _maxDecibels = ReadWriteAttribute(jsObject: object, name: Strings.maxDecibels) - _minDecibels = ReadWriteAttribute(jsObject: object, name: Strings.minDecibels) - _smoothingTimeConstant = ReadWriteAttribute(jsObject: object, name: Strings.smoothingTimeConstant) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var fftSize: UInt32 - - @ReadWriteAttribute - public var maxDecibels: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var minDecibels: Double - - @ReadWriteAttribute - public var smoothingTimeConstant: Double + @inlinable public var fftSize: UInt32 { + get { jsObject[Strings.fftSize].fromJSValue()! } + set { jsObject[Strings.fftSize] = _toJSValue(newValue) } + } + @inlinable public var maxDecibels: Double { + get { jsObject[Strings.maxDecibels].fromJSValue()! } + set { jsObject[Strings.maxDecibels] = _toJSValue(newValue) } + } + @inlinable public var minDecibels: Double { + get { jsObject[Strings.minDecibels].fromJSValue()! } + set { jsObject[Strings.minDecibels] = _toJSValue(newValue) } + } + @inlinable public var smoothingTimeConstant: Double { + get { jsObject[Strings.smoothingTimeConstant].fromJSValue()! } + set { jsObject[Strings.smoothingTimeConstant] = _toJSValue(newValue) } + } } - public class AudioBuffer: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioBuffer].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration) - _numberOfChannels = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfChannels) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(options: AudioBufferOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(options)])) } - @ReadonlyAttribute - public var sampleRate: Float + @inlinable public var sampleRate: Float { jsObject[Strings.sampleRate].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ReadonlyAttribute - public var duration: Double + @inlinable public var duration: Double { jsObject[Strings.duration].fromJSValue()! } - @ReadonlyAttribute - public var numberOfChannels: UInt32 + @inlinable public var numberOfChannels: UInt32 { jsObject[Strings.numberOfChannels].fromJSValue()! } - @inlinable public func getChannelData(channel: UInt32) -> Float32Array { + @inlinable final public func getChannelData(channel: UInt32) -> Float32Array { let this = jsObject return this[Strings.getChannelData].function!(this: this, arguments: [_toJSValue(channel)]).fromJSValue()! } - @inlinable public func copyFromChannel(destination: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) { + @inlinable final public func copyFromChannel( + destination: Float32Array, + channelNumber: UInt32, + bufferOffset: UInt32? = nil + ) { let this = jsObject - _ = this[Strings.copyFromChannel].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(channelNumber), _toJSValue(bufferOffset)]) + _ = this[Strings.copyFromChannel].function!( + this: this, + arguments: [_toJSValue(destination), _toJSValue(channelNumber), _toJSValue(bufferOffset)] + ) } - @inlinable public func copyToChannel(source: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) { + @inlinable final public func copyToChannel(source: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) + { let this = jsObject - _ = this[Strings.copyToChannel].function!(this: this, arguments: [_toJSValue(source), _toJSValue(channelNumber), _toJSValue(bufferOffset)]) + _ = this[Strings.copyToChannel].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(channelNumber), _toJSValue(bufferOffset)] + ) } } -public class AudioBufferOptions: BridgedDictionary { - public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { +open class AudioBufferOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(numberOfChannels: UInt32? = nil, length: UInt32, sampleRate: Float) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.numberOfChannels] = _toJSValue(numberOfChannels) object[Strings.length] = _toJSValue(length) object[Strings.sampleRate] = _toJSValue(sampleRate) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) - _length = ReadWriteAttribute(jsObject: object, name: Strings.length) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var numberOfChannels: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var length: UInt32 - - @ReadWriteAttribute - public var sampleRate: Float + @inlinable public var numberOfChannels: UInt32 { + get { jsObject[Strings.numberOfChannels].fromJSValue()! } + set { jsObject[Strings.numberOfChannels] = _toJSValue(newValue) } + } + @inlinable public var length: UInt32 { + get { jsObject[Strings.length].fromJSValue()! } + set { jsObject[Strings.length] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: Float { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } } - public class AudioBufferSourceNode: AudioScheduledSourceNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioBufferSourceNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _buffer = ReadWriteAttribute(jsObject: jsObject, name: Strings.buffer) - _playbackRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.playbackRate) - _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) - _loop = ReadWriteAttribute(jsObject: jsObject, name: Strings.loop) - _loopStart = ReadWriteAttribute(jsObject: jsObject, name: Strings.loopStart) - _loopEnd = ReadWriteAttribute(jsObject: jsObject, name: Strings.loopEnd) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.AudioBufferSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: BaseAudioContext, options: AudioBufferSourceOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var buffer: AudioBuffer? - - @ReadonlyAttribute - public var playbackRate: AudioParam + @inlinable public var buffer: AudioBuffer? { + get { jsObject[Strings.buffer].fromJSValue() } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var detune: AudioParam + @inlinable public var playbackRate: AudioParam { jsObject[Strings.playbackRate].fromJSValue()! } - @ReadWriteAttribute - public var loop: Bool + @inlinable public var detune: AudioParam { jsObject[Strings.detune].fromJSValue()! } - @ReadWriteAttribute - public var loopStart: Double + @inlinable public var loop: Bool { + get { jsObject[Strings.loop].fromJSValue()! } + set { jsObject[Strings.loop] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var loopEnd: Double + @inlinable public var loopStart: Double { + get { jsObject[Strings.loopStart].fromJSValue()! } + set { jsObject[Strings.loopStart] = _toJSValue(newValue) } + } - // `override` removed since the superclass function has fewer parameters - @inlinable func start(when: Double? = nil, offset: Double? = nil, duration: Double? = nil) { - let this = jsObject - _ = this[Strings.start].function!(this: this, arguments: [_toJSValue(when), _toJSValue(offset), _toJSValue(duration)]) + @inlinable public var loopEnd: Double { + get { jsObject[Strings.loopEnd].fromJSValue()! } + set { jsObject[Strings.loopEnd] = _toJSValue(newValue) } } + } -public class AudioBufferSourceOptions: BridgedDictionary { - public convenience init(buffer: AudioBuffer?, detune: Float, loop: Bool, loopEnd: Double, loopStart: Double, playbackRate: Float) { +open class AudioBufferSourceOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + buffer: AudioBuffer?, + detune: Float? = nil, + loop: Bool? = nil, + loopEnd: Double? = nil, + loopStart: Double? = nil, + playbackRate: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.buffer] = _toJSValue(buffer) object[Strings.detune] = _toJSValue(detune) @@ -211,138 +234,170 @@ public class AudioBufferSourceOptions: BridgedDictionary { object[Strings.loopEnd] = _toJSValue(loopEnd) object[Strings.loopStart] = _toJSValue(loopStart) object[Strings.playbackRate] = _toJSValue(playbackRate) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) - _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) - _loop = ReadWriteAttribute(jsObject: object, name: Strings.loop) - _loopEnd = ReadWriteAttribute(jsObject: object, name: Strings.loopEnd) - _loopStart = ReadWriteAttribute(jsObject: object, name: Strings.loopStart) - _playbackRate = ReadWriteAttribute(jsObject: object, name: Strings.playbackRate) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var buffer: AudioBuffer? - - @ReadWriteAttribute - public var detune: Float - - @ReadWriteAttribute - public var loop: Bool - - @ReadWriteAttribute - public var loopEnd: Double - - @ReadWriteAttribute - public var loopStart: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var playbackRate: Float + @inlinable public var buffer: AudioBuffer? { + get { jsObject[Strings.buffer].fromJSValue() } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } + @inlinable public var detune: Float { + get { jsObject[Strings.detune].fromJSValue()! } + set { jsObject[Strings.detune] = _toJSValue(newValue) } + } + @inlinable public var loop: Bool { + get { jsObject[Strings.loop].fromJSValue()! } + set { jsObject[Strings.loop] = _toJSValue(newValue) } + } + @inlinable public var loopEnd: Double { + get { jsObject[Strings.loopEnd].fromJSValue()! } + set { jsObject[Strings.loopEnd] = _toJSValue(newValue) } + } + @inlinable public var loopStart: Double { + get { jsObject[Strings.loopStart].fromJSValue()! } + set { jsObject[Strings.loopStart] = _toJSValue(newValue) } + } + @inlinable public var playbackRate: Float { + get { jsObject[Strings.playbackRate].fromJSValue()! } + set { jsObject[Strings.playbackRate] = _toJSValue(newValue) } + } } - public class AudioContext: BaseAudioContext { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioContext].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioContext].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _baseLatency = ReadonlyAttribute(jsObject: jsObject, name: Strings.baseLatency) - _outputLatency = ReadonlyAttribute(jsObject: jsObject, name: Strings.outputLatency) - _sinkId = ReadonlyAttribute(jsObject: jsObject, name: Strings.sinkId) - _renderCapacity = ReadonlyAttribute(jsObject: jsObject, name: Strings.renderCapacity) - _onsinkchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onsinkchange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(contextOptions: AudioContextOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(contextOptions)])) } - @ReadonlyAttribute - public var baseLatency: Double + @inlinable public var baseLatency: Double { jsObject[Strings.baseLatency].fromJSValue()! } - @ReadonlyAttribute - public var outputLatency: Double + @inlinable public var outputLatency: Double { jsObject[Strings.outputLatency].fromJSValue()! } - @ReadonlyAttribute - public var sinkId: AudioSinkInfo_or_String + @inlinable public var sinkId: AudioSinkInfo_or_String { jsObject[Strings.sinkId].fromJSValue()! } - @ReadonlyAttribute - public var renderCapacity: AudioRenderCapacity + @inlinable public var onsinkchange: EventHandler { + get { + guard let function = jsObject[Strings.onsinkchange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onsinkchange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onsinkchange] = .null + } + } + } - @ClosureAttribute1Optional - public var onsinkchange: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @inlinable public func getOutputTimestamp() -> AudioTimestamp { + @inlinable final public func getOutputTimestamp() -> AudioTimestamp { let this = jsObject return this[Strings.getOutputTimestamp].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func resume() -> JSPromise { + @inlinable final public func resume() -> JSPromise { let this = jsObject return this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func resume() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func resume() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func suspend() -> JSPromise { + @inlinable final public func suspend() -> JSPromise { let this = jsObject return this[Strings.suspend].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func suspend() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func suspend() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func close() -> JSPromise { + @inlinable final public func close() -> JSPromise { let this = jsObject return this[Strings.close].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func close() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func close() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.close].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func setSinkId(sinkId: AudioSinkOptions_or_String) -> JSPromise { + @inlinable final public func setSinkId(sinkId: AudioSinkOptions_or_String) -> JSPromise { let this = jsObject return this[Strings.setSinkId].function!(this: this, arguments: [_toJSValue(sinkId)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func setSinkId(sinkId: AudioSinkOptions_or_String) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.setSinkId].function!(this: this, arguments: [_toJSValue(sinkId)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func setSinkId( + sinkId: AudioSinkOptions_or_String + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.setSinkId].function!(this: this, arguments: [_toJSValue(sinkId)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func createMediaElementSource(mediaElement: HTMLMediaElement) -> MediaElementAudioSourceNode { + @inlinable final public func createMediaElementSource(mediaElement: HTMLMediaElement) -> MediaElementAudioSourceNode + { let this = jsObject - return this[Strings.createMediaElementSource].function!(this: this, arguments: [_toJSValue(mediaElement)]).fromJSValue()! + return this[Strings.createMediaElementSource].function!(this: this, arguments: [_toJSValue(mediaElement)]) + .fromJSValue()! } - @inlinable public func createMediaStreamSource(mediaStream: MediaStream) -> MediaStreamAudioSourceNode { + @inlinable final public func createMediaStreamSource(mediaStream: MediaStream) -> MediaStreamAudioSourceNode { let this = jsObject - return this[Strings.createMediaStreamSource].function!(this: this, arguments: [_toJSValue(mediaStream)]).fromJSValue()! + return this[Strings.createMediaStreamSource].function!(this: this, arguments: [_toJSValue(mediaStream)]) + .fromJSValue()! } - @inlinable public func createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack) -> MediaStreamTrackAudioSourceNode { + @inlinable final public func createMediaStreamTrackSource( + mediaStreamTrack: MediaStreamTrack + ) -> MediaStreamTrackAudioSourceNode { let this = jsObject - return this[Strings.createMediaStreamTrackSource].function!(this: this, arguments: [_toJSValue(mediaStreamTrack)]).fromJSValue()! + return this[Strings.createMediaStreamTrackSource].function!( + this: this, + arguments: [_toJSValue(mediaStreamTrack)] + ).fromJSValue()! } - @inlinable public func createMediaStreamDestination() -> MediaStreamAudioDestinationNode { + @inlinable final public func createMediaStreamDestination() -> MediaStreamAudioDestinationNode { let this = jsObject return this[Strings.createMediaStreamDestination].function!(this: this, arguments: []).fromJSValue()! } @@ -354,74 +409,86 @@ public enum AudioContextLatencyCategory: JSString, JSValueCompatible { case playback = "playback" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class AudioContextOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioContextOptions: BridgedDictionary { - public convenience init(latencyHint: AudioContextLatencyCategory_or_Double, sampleRate: Float, sinkId: AudioSinkOptions_or_String) { + public convenience init( + latencyHint: AudioContextLatencyCategory_or_Double? = nil, + sampleRate: Float? = nil, + sinkId: AudioSinkOptions_or_String? = nil, + renderSizeHint: AudioContextRenderSizeCategory_or_UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.latencyHint] = _toJSValue(latencyHint) object[Strings.sampleRate] = _toJSValue(sampleRate) object[Strings.sinkId] = _toJSValue(sinkId) + object[Strings.renderSizeHint] = _toJSValue(renderSizeHint) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _latencyHint = ReadWriteAttribute(jsObject: object, name: Strings.latencyHint) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - _sinkId = ReadWriteAttribute(jsObject: object, name: Strings.sinkId) - super.init(unsafelyWrapping: object) + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var latencyHint: AudioContextLatencyCategory_or_Double { + get { jsObject[Strings.latencyHint].fromJSValue()! } + set { jsObject[Strings.latencyHint] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: Float { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } } + @inlinable public var sinkId: AudioSinkOptions_or_String { + get { jsObject[Strings.sinkId].fromJSValue()! } + set { jsObject[Strings.sinkId] = _toJSValue(newValue) } + } + @inlinable public var renderSizeHint: AudioContextRenderSizeCategory_or_UInt32 { + get { jsObject[Strings.renderSizeHint].fromJSValue()! } + set { jsObject[Strings.renderSizeHint] = _toJSValue(newValue) } + } +} +public enum AudioContextRenderSizeCategory: JSString, JSValueCompatible { + case `default` = "default" + case hardware = "hardware" - @ReadWriteAttribute - public var latencyHint: AudioContextLatencyCategory_or_Double + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } - @ReadWriteAttribute - public var sampleRate: Float + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } - @ReadWriteAttribute - public var sinkId: AudioSinkOptions_or_String + @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum AudioContextState: JSString, JSValueCompatible { case suspended = "suspended" case running = "running" case closed = "closed" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class AudioDestinationNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioDestinationNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _maxChannelCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxChannelCount) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.AudioDestinationNode].function } - @ReadonlyAttribute - public var maxChannelCount: UInt32 + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var maxChannelCount: UInt32 { jsObject[Strings.maxChannelCount].fromJSValue()! } } public class AudioListener: JSBridgedClass { @@ -429,437 +496,360 @@ public class AudioListener: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _positionX = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionX) - _positionY = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionY) - _positionZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionZ) - _forwardX = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardX) - _forwardY = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardY) - _forwardZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.forwardZ) - _upX = ReadonlyAttribute(jsObject: jsObject, name: Strings.upX) - _upY = ReadonlyAttribute(jsObject: jsObject, name: Strings.upY) - _upZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.upZ) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var positionX: AudioParam + @inlinable public var positionX: AudioParam { jsObject[Strings.positionX].fromJSValue()! } - @ReadonlyAttribute - public var positionY: AudioParam + @inlinable public var positionY: AudioParam { jsObject[Strings.positionY].fromJSValue()! } - @ReadonlyAttribute - public var positionZ: AudioParam + @inlinable public var positionZ: AudioParam { jsObject[Strings.positionZ].fromJSValue()! } - @ReadonlyAttribute - public var forwardX: AudioParam + @inlinable public var forwardX: AudioParam { jsObject[Strings.forwardX].fromJSValue()! } - @ReadonlyAttribute - public var forwardY: AudioParam + @inlinable public var forwardY: AudioParam { jsObject[Strings.forwardY].fromJSValue()! } - @ReadonlyAttribute - public var forwardZ: AudioParam + @inlinable public var forwardZ: AudioParam { jsObject[Strings.forwardZ].fromJSValue()! } - @ReadonlyAttribute - public var upX: AudioParam + @inlinable public var upX: AudioParam { jsObject[Strings.upX].fromJSValue()! } - @ReadonlyAttribute - public var upY: AudioParam + @inlinable public var upY: AudioParam { jsObject[Strings.upY].fromJSValue()! } - @ReadonlyAttribute - public var upZ: AudioParam + @inlinable public var upZ: AudioParam { jsObject[Strings.upZ].fromJSValue()! } - @inlinable public func setPosition(x: Float, y: Float, z: Float) { + @inlinable final public func setPosition(x: Float, y: Float, z: Float) { let this = jsObject _ = this[Strings.setPosition].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)]) } - @inlinable public func setOrientation(x: Float, y: Float, z: Float, xUp: Float, yUp: Float, zUp: Float) { + @inlinable final public func setOrientation(x: Float, y: Float, z: Float, xUp: Float, yUp: Float, zUp: Float) { let this = jsObject - _ = this[Strings.setOrientation].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(xUp), _toJSValue(yUp), _toJSValue(zUp)]) + _ = this[Strings.setOrientation].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(xUp), _toJSValue(yUp), _toJSValue(zUp)] + ) } } public class AudioNode: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _context = ReadonlyAttribute(jsObject: jsObject, name: Strings.context) - _numberOfInputs = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfInputs) - _numberOfOutputs = ReadonlyAttribute(jsObject: jsObject, name: Strings.numberOfOutputs) - _channelCount = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelCount) - _channelCountMode = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelCountMode) - _channelInterpretation = ReadWriteAttribute(jsObject: jsObject, name: Strings.channelInterpretation) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @discardableResult @inlinable public func connect(destinationNode: NodeType, output: UInt32? = nil, input: UInt32? = nil) -> NodeType { + @discardableResult @inlinable public final func connect( + destinationNode: NodeType, + output: UInt32? = nil, + input: UInt32? = nil + ) -> NodeType { let this = jsObject - return this[Strings.connect].function!(this: this, arguments: [_toJSValue(destinationNode), _toJSValue(output), _toJSValue(input)]).fromJSValue()! + return this[Strings.connect].function!( + this: this, + arguments: [_toJSValue(destinationNode), _toJSValue(output), _toJSValue(input)] + ).fromJSValue()! } - @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) { + @inlinable final public func connect(destinationParam: AudioParam, output: UInt32? = nil) { let this = jsObject _ = this[Strings.connect].function!(this: this, arguments: [_toJSValue(destinationParam), _toJSValue(output)]) } - @inlinable public func disconnect() { + @inlinable final public func disconnect() { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: []) } - @inlinable public func disconnect(output: UInt32) { + @inlinable final public func disconnect(output: UInt32) { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(output)]) } - @inlinable public func disconnect(destinationNode: AudioNode) { + @inlinable final public func disconnect(destinationNode: AudioNode) { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(destinationNode)]) } - @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) { + @inlinable final public func disconnect(destinationNode: AudioNode, output: UInt32) { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(destinationNode), _toJSValue(output)]) + _ = this[Strings.disconnect].function!( + this: this, + arguments: [_toJSValue(destinationNode), _toJSValue(output)] + ) } - @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) { + @inlinable final public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(destinationNode), _toJSValue(output), _toJSValue(input)]) + _ = this[Strings.disconnect].function!( + this: this, + arguments: [_toJSValue(destinationNode), _toJSValue(output), _toJSValue(input)] + ) } - @inlinable public func disconnect(destinationParam: AudioParam) { + @inlinable final public func disconnect(destinationParam: AudioParam) { let this = jsObject _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(destinationParam)]) } - @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) { + @inlinable final public func disconnect(destinationParam: AudioParam, output: UInt32) { let this = jsObject - _ = this[Strings.disconnect].function!(this: this, arguments: [_toJSValue(destinationParam), _toJSValue(output)]) + _ = this[Strings.disconnect].function!( + this: this, + arguments: [_toJSValue(destinationParam), _toJSValue(output)] + ) } - @ReadonlyAttribute - public var context: BaseAudioContext + @inlinable public var context: BaseAudioContext { jsObject[Strings.context].fromJSValue()! } - @ReadonlyAttribute - public var numberOfInputs: UInt32 + @inlinable public var numberOfInputs: UInt32 { jsObject[Strings.numberOfInputs].fromJSValue()! } - @ReadonlyAttribute - public var numberOfOutputs: UInt32 + @inlinable public var numberOfOutputs: UInt32 { jsObject[Strings.numberOfOutputs].fromJSValue()! } - @ReadWriteAttribute - public var channelCount: UInt32 + @inlinable public var channelCount: UInt32 { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var channelCountMode: ChannelCountMode + @inlinable public var channelCountMode: ChannelCountMode { + get { jsObject[Strings.channelCountMode].fromJSValue()! } + set { jsObject[Strings.channelCountMode] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var channelInterpretation: ChannelInterpretation + @inlinable public var channelInterpretation: ChannelInterpretation { + get { jsObject[Strings.channelInterpretation].fromJSValue()! } + set { jsObject[Strings.channelInterpretation] = _toJSValue(newValue) } + } } -public class AudioNodeOptions: BridgedDictionary { - public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) { +open class AudioNodeOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.channelCount] = _toJSValue(channelCount) object[Strings.channelCountMode] = _toJSValue(channelCountMode) object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _channelCount = ReadWriteAttribute(jsObject: object, name: Strings.channelCount) - _channelCountMode = ReadWriteAttribute(jsObject: object, name: Strings.channelCountMode) - _channelInterpretation = ReadWriteAttribute(jsObject: object, name: Strings.channelInterpretation) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var channelCount: UInt32 - - @ReadWriteAttribute - public var channelCountMode: ChannelCountMode + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var channelInterpretation: ChannelInterpretation + @inlinable public var channelCount: UInt32 { + get { jsObject[Strings.channelCount].fromJSValue()! } + set { jsObject[Strings.channelCount] = _toJSValue(newValue) } + } + @inlinable public var channelCountMode: ChannelCountMode { + get { jsObject[Strings.channelCountMode].fromJSValue()! } + set { jsObject[Strings.channelCountMode] = _toJSValue(newValue) } + } + @inlinable public var channelInterpretation: ChannelInterpretation { + get { jsObject[Strings.channelInterpretation].fromJSValue()! } + set { jsObject[Strings.channelInterpretation] = _toJSValue(newValue) } + } } - public class AudioParam: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioParam].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value) - _automationRate = ReadWriteAttribute(jsObject: jsObject, name: Strings.automationRate) - _defaultValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.defaultValue) - _minValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.minValue) - _maxValue = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxValue) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadWriteAttribute - public var value: Float + @inlinable public var value: Float { + get { jsObject[Strings.value].fromJSValue()! } + set { jsObject[Strings.value] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var automationRate: AutomationRate + @inlinable public var automationRate: AutomationRate { + get { jsObject[Strings.automationRate].fromJSValue()! } + set { jsObject[Strings.automationRate] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var defaultValue: Float + @inlinable public var defaultValue: Float { jsObject[Strings.defaultValue].fromJSValue()! } - @ReadonlyAttribute - public var minValue: Float + @inlinable public var minValue: Float { jsObject[Strings.minValue].fromJSValue()! } - @ReadonlyAttribute - public var maxValue: Float + @inlinable public var maxValue: Float { jsObject[Strings.maxValue].fromJSValue()! } - @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self { + @inlinable final public func setValueAtTime(value: Float, startTime: Double) -> AudioParam { let this = jsObject - return this[Strings.setValueAtTime].function!(this: this, arguments: [_toJSValue(value), _toJSValue(startTime)]).fromJSValue()! + return this[Strings.setValueAtTime].function!( + this: this, + arguments: [_toJSValue(value), _toJSValue(startTime)] + ).fromJSValue()! } - @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self { + @inlinable final public func linearRampToValueAtTime(value: Float, endTime: Double) -> AudioParam { let this = jsObject - return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [_toJSValue(value), _toJSValue(endTime)]).fromJSValue()! + return this[Strings.linearRampToValueAtTime].function!( + this: this, + arguments: [_toJSValue(value), _toJSValue(endTime)] + ).fromJSValue()! } - @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self { + @inlinable final public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> AudioParam { let this = jsObject - return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [_toJSValue(value), _toJSValue(endTime)]).fromJSValue()! + return this[Strings.exponentialRampToValueAtTime].function!( + this: this, + arguments: [_toJSValue(value), _toJSValue(endTime)] + ).fromJSValue()! } - @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self { + @inlinable final public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> AudioParam { let this = jsObject - return this[Strings.setTargetAtTime].function!(this: this, arguments: [_toJSValue(target), _toJSValue(startTime), _toJSValue(timeConstant)]).fromJSValue()! + return this[Strings.setTargetAtTime].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(startTime), _toJSValue(timeConstant)] + ).fromJSValue()! } - @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self { + @inlinable final public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> AudioParam + { let this = jsObject - return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [_toJSValue(values), _toJSValue(startTime), _toJSValue(duration)]).fromJSValue()! + return this[Strings.setValueCurveAtTime].function!( + this: this, + arguments: [_toJSValue(values), _toJSValue(startTime), _toJSValue(duration)] + ).fromJSValue()! } - @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self { + @inlinable final public func cancelScheduledValues(cancelTime: Double) -> AudioParam { let this = jsObject - return this[Strings.cancelScheduledValues].function!(this: this, arguments: [_toJSValue(cancelTime)]).fromJSValue()! + return this[Strings.cancelScheduledValues].function!(this: this, arguments: [_toJSValue(cancelTime)]) + .fromJSValue()! } - @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self { + @inlinable final public func cancelAndHoldAtTime(cancelTime: Double) -> AudioParam { let this = jsObject - return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [_toJSValue(cancelTime)]).fromJSValue()! + return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [_toJSValue(cancelTime)]) + .fromJSValue()! } } -public class AudioParamDescriptor: BridgedDictionary { - public convenience init(name: String, defaultValue: Float, minValue: Float, maxValue: Float, automationRate: AutomationRate) { +open class AudioParamDescriptor: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + name: String, + defaultValue: Float? = nil, + minValue: Float? = nil, + maxValue: Float? = nil, + automationRate: AutomationRate? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.name] = _toJSValue(name) object[Strings.defaultValue] = _toJSValue(defaultValue) object[Strings.minValue] = _toJSValue(minValue) object[Strings.maxValue] = _toJSValue(maxValue) object[Strings.automationRate] = _toJSValue(automationRate) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _name = ReadWriteAttribute(jsObject: object, name: Strings.name) - _defaultValue = ReadWriteAttribute(jsObject: object, name: Strings.defaultValue) - _minValue = ReadWriteAttribute(jsObject: object, name: Strings.minValue) - _maxValue = ReadWriteAttribute(jsObject: object, name: Strings.maxValue) - _automationRate = ReadWriteAttribute(jsObject: object, name: Strings.automationRate) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var name: String + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var defaultValue: Float - - @ReadWriteAttribute - public var minValue: Float - - @ReadWriteAttribute - public var maxValue: Float - - @ReadWriteAttribute - public var automationRate: AutomationRate + @inlinable public var name: String { + get { jsObject[Strings.name].fromJSValue()! } + set { jsObject[Strings.name] = _toJSValue(newValue) } + } + @inlinable public var defaultValue: Float { + get { jsObject[Strings.defaultValue].fromJSValue()! } + set { jsObject[Strings.defaultValue] = _toJSValue(newValue) } + } + @inlinable public var minValue: Float { + get { jsObject[Strings.minValue].fromJSValue()! } + set { jsObject[Strings.minValue] = _toJSValue(newValue) } + } + @inlinable public var maxValue: Float { + get { jsObject[Strings.maxValue].fromJSValue()! } + set { jsObject[Strings.maxValue] = _toJSValue(newValue) } + } + @inlinable public var automationRate: AutomationRate { + get { jsObject[Strings.automationRate].fromJSValue()! } + set { jsObject[Strings.automationRate] = _toJSValue(newValue) } + } } - public class AudioParamMap: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioParamMap].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } // XXX: make me Map-like! } public class AudioProcessingEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioProcessingEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _playbackTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.playbackTime) - _inputBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.inputBuffer) - _outputBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.outputBuffer) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.AudioProcessingEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: AudioProcessingEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var playbackTime: Double + @inlinable public var playbackTime: Double { jsObject[Strings.playbackTime].fromJSValue()! } - @ReadonlyAttribute - public var inputBuffer: AudioBuffer + @inlinable public var inputBuffer: AudioBuffer { jsObject[Strings.inputBuffer].fromJSValue()! } - @ReadonlyAttribute - public var outputBuffer: AudioBuffer + @inlinable public var outputBuffer: AudioBuffer { jsObject[Strings.outputBuffer].fromJSValue()! } } -public class AudioProcessingEventInit: BridgedDictionary { +open class AudioProcessingEventInit: EventInit { + public convenience init(playbackTime: Double, inputBuffer: AudioBuffer, outputBuffer: AudioBuffer) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.playbackTime] = _toJSValue(playbackTime) object[Strings.inputBuffer] = _toJSValue(inputBuffer) object[Strings.outputBuffer] = _toJSValue(outputBuffer) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _playbackTime = ReadWriteAttribute(jsObject: object, name: Strings.playbackTime) - _inputBuffer = ReadWriteAttribute(jsObject: object, name: Strings.inputBuffer) - _outputBuffer = ReadWriteAttribute(jsObject: object, name: Strings.outputBuffer) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var playbackTime: Double - - @ReadWriteAttribute - public var inputBuffer: AudioBuffer - - @ReadWriteAttribute - public var outputBuffer: AudioBuffer -} - -public class AudioRenderCapacity: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioRenderCapacity].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _onupdate = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onupdate) - super.init(unsafelyWrapping: jsObject) - } - @inlinable public func start(options: AudioRenderCapacityOptions? = nil) { - let this = jsObject - _ = this[Strings.start].function!(this: this, arguments: [_toJSValue(options)]) - } - - @inlinable public func stop() { - let this = jsObject - _ = this[Strings.stop].function!(this: this, arguments: []) + self.init(unsafelyWrapping: object) } - @ClosureAttribute1Optional - public var onupdate: EventHandler -} - -public class AudioRenderCapacityEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioRenderCapacityEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _timestamp = ReadonlyAttribute(jsObject: jsObject, name: Strings.timestamp) - _averageLoad = ReadonlyAttribute(jsObject: jsObject, name: Strings.averageLoad) - _peakLoad = ReadonlyAttribute(jsObject: jsObject, name: Strings.peakLoad) - _underrunRatio = ReadonlyAttribute(jsObject: jsObject, name: Strings.underrunRatio) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @inlinable public convenience init(type: String, eventInitDict: AudioRenderCapacityEventInit? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) + @inlinable public var playbackTime: Double { + get { jsObject[Strings.playbackTime].fromJSValue()! } + set { jsObject[Strings.playbackTime] = _toJSValue(newValue) } } - - @ReadonlyAttribute - public var timestamp: Double - - @ReadonlyAttribute - public var averageLoad: Double - - @ReadonlyAttribute - public var peakLoad: Double - - @ReadonlyAttribute - public var underrunRatio: Double -} - -public class AudioRenderCapacityEventInit: BridgedDictionary { - public convenience init(timestamp: Double, averageLoad: Double, peakLoad: Double, underrunRatio: Double) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.timestamp] = _toJSValue(timestamp) - object[Strings.averageLoad] = _toJSValue(averageLoad) - object[Strings.peakLoad] = _toJSValue(peakLoad) - object[Strings.underrunRatio] = _toJSValue(underrunRatio) - self.init(unsafelyWrapping: object) + @inlinable public var inputBuffer: AudioBuffer { + get { jsObject[Strings.inputBuffer].fromJSValue()! } + set { jsObject[Strings.inputBuffer] = _toJSValue(newValue) } } - - public required init(unsafelyWrapping object: JSObject) { - _timestamp = ReadWriteAttribute(jsObject: object, name: Strings.timestamp) - _averageLoad = ReadWriteAttribute(jsObject: object, name: Strings.averageLoad) - _peakLoad = ReadWriteAttribute(jsObject: object, name: Strings.peakLoad) - _underrunRatio = ReadWriteAttribute(jsObject: object, name: Strings.underrunRatio) - super.init(unsafelyWrapping: object) + @inlinable public var outputBuffer: AudioBuffer { + get { jsObject[Strings.outputBuffer].fromJSValue()! } + set { jsObject[Strings.outputBuffer] = _toJSValue(newValue) } } - - @ReadWriteAttribute - public var timestamp: Double - - @ReadWriteAttribute - public var averageLoad: Double - - @ReadWriteAttribute - public var peakLoad: Double - - @ReadWriteAttribute - public var underrunRatio: Double } - -public class AudioRenderCapacityOptions: BridgedDictionary { - public convenience init(updateInterval: Double) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.updateInterval] = _toJSValue(updateInterval) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _updateInterval = ReadWriteAttribute(jsObject: object, name: Strings.updateInterval) - super.init(unsafelyWrapping: object) +public class AudioScheduledSourceNode: AudioNode { + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.AudioScheduledSourceNode].function } - @ReadWriteAttribute - public var updateInterval: Double -} - -public class AudioScheduledSourceNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioScheduledSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended) - super.init(unsafelyWrapping: jsObject) + @inlinable public var onended: EventHandler { + get { + guard let function = jsObject[Strings.onended].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onended] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onended] = .null + } + } } - @ClosureAttribute1Optional - public var onended: EventHandler - - @inlinable public func start(when: Double? = nil) { + @inlinable final public func start(when: Double? = nil) { let this = jsObject _ = this[Strings.start].function!(this: this, arguments: [_toJSValue(when)]) } - @inlinable public func stop(when: Double? = nil) { + @inlinable final public func stop(when: Double? = nil) { let this = jsObject _ = this[Strings.stop].function!(this: this, arguments: [_toJSValue(when)]) } @@ -870,370 +860,424 @@ public class AudioSinkInfo: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var type: AudioSinkType + @inlinable public var type: AudioSinkType { jsObject[Strings.type].fromJSValue()! } } -public class AudioSinkOptions: BridgedDictionary { +open class AudioSinkOptions: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(type: AudioSinkType) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: AudioSinkType + @inlinable public var type: AudioSinkType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } - public enum AudioSinkType: JSString, JSValueCompatible { case none = "none" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class AudioTimestamp: JSDictionaryCompatible { + public let jsObject: JSObject -public class AudioTimestamp: BridgedDictionary { - public convenience init(contextTime: Double, performanceTime: DOMHighResTimeStamp) { + public convenience init(contextTime: Double? = nil, performanceTime: DOMHighResTimeStamp? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.contextTime] = _toJSValue(contextTime) object[Strings.performanceTime] = _toJSValue(performanceTime) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _contextTime = ReadWriteAttribute(jsObject: object, name: Strings.contextTime) - _performanceTime = ReadWriteAttribute(jsObject: object, name: Strings.performanceTime) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var contextTime: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var performanceTime: DOMHighResTimeStamp + @inlinable public var contextTime: Double { + get { jsObject[Strings.contextTime].fromJSValue()! } + set { jsObject[Strings.contextTime] = _toJSValue(newValue) } + } + @inlinable public var performanceTime: DOMHighResTimeStamp { + get { jsObject[Strings.performanceTime].fromJSValue()! } + set { jsObject[Strings.performanceTime] = _toJSValue(newValue) } + } } - public class AudioWorklet: Worklet { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioWorklet].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioWorklet].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _port = ReadonlyAttribute(jsObject: jsObject, name: Strings.port) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var port: MessagePort + @inlinable public var port: MessagePort { jsObject[Strings.port].fromJSValue()! } } public class AudioWorkletNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioWorkletNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.AudioWorkletNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _parameters = ReadonlyAttribute(jsObject: jsObject, name: Strings.parameters) - _port = ReadonlyAttribute(jsObject: jsObject, name: Strings.port) - _onprocessorerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onprocessorerror) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @inlinable public convenience init(context: BaseAudioContext, name: String, options: AudioWorkletNodeOptions? = nil) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(name), _toJSValue(options)])) + @inlinable public convenience init(context: BaseAudioContext, name: String, options: AudioWorkletNodeOptions? = nil) + { + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(context), _toJSValue(name), _toJSValue(options), + ]) + ) } - @ReadonlyAttribute - public var parameters: AudioParamMap + @inlinable public var parameters: AudioParamMap { jsObject[Strings.parameters].fromJSValue()! } - @ReadonlyAttribute - public var port: MessagePort + @inlinable public var port: MessagePort { jsObject[Strings.port].fromJSValue()! } - @ClosureAttribute1Optional - public var onprocessorerror: EventHandler + @inlinable public var onprocessorerror: EventHandler { + get { + guard let function = jsObject[Strings.onprocessorerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onprocessorerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onprocessorerror] = .null + } + } + } } -public class AudioWorkletNodeOptions: BridgedDictionary { - public convenience init(numberOfInputs: UInt32, numberOfOutputs: UInt32, outputChannelCount: [UInt32], parameterData: [String: Double], processorOptions: JSObject) { +open class AudioWorkletNodeOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + numberOfInputs: UInt32? = nil, + numberOfOutputs: UInt32? = nil, + outputChannelCount: [UInt32]? = nil, + parameterData: JSObject? = nil, + processorOptions: JSObject? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.numberOfInputs] = _toJSValue(numberOfInputs) object[Strings.numberOfOutputs] = _toJSValue(numberOfOutputs) object[Strings.outputChannelCount] = _toJSValue(outputChannelCount) object[Strings.parameterData] = _toJSValue(parameterData) object[Strings.processorOptions] = _toJSValue(processorOptions) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs) - _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs) - _outputChannelCount = ReadWriteAttribute(jsObject: object, name: Strings.outputChannelCount) - _parameterData = ReadWriteAttribute(jsObject: object, name: Strings.parameterData) - _processorOptions = ReadWriteAttribute(jsObject: object, name: Strings.processorOptions) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var numberOfInputs: UInt32 - - @ReadWriteAttribute - public var numberOfOutputs: UInt32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var outputChannelCount: [UInt32] - - @ReadWriteAttribute - public var parameterData: [String: Double] - - @ReadWriteAttribute - public var processorOptions: JSObject + @inlinable public var numberOfInputs: UInt32 { + get { jsObject[Strings.numberOfInputs].fromJSValue()! } + set { jsObject[Strings.numberOfInputs] = _toJSValue(newValue) } + } + @inlinable public var numberOfOutputs: UInt32 { + get { jsObject[Strings.numberOfOutputs].fromJSValue()! } + set { jsObject[Strings.numberOfOutputs] = _toJSValue(newValue) } + } + @inlinable public var outputChannelCount: [UInt32] { + get { jsObject[Strings.outputChannelCount].fromJSValue()! } + set { jsObject[Strings.outputChannelCount] = _toJSValue(newValue) } + } + @inlinable public var parameterData: JSObject { + get { jsObject[Strings.parameterData].fromJSValue()! } + set { jsObject[Strings.parameterData] = _toJSValue(newValue) } + } + @inlinable public var processorOptions: JSObject { + get { jsObject[Strings.processorOptions].fromJSValue()! } + set { jsObject[Strings.processorOptions] = _toJSValue(newValue) } + } } - public enum AutomationRate: JSString, JSValueCompatible { case aRate = "a-rate" case kRate = "k-rate" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class BaseAudioContext: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BaseAudioContext].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.BaseAudioContext].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _destination = ReadonlyAttribute(jsObject: jsObject, name: Strings.destination) - _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate) - _currentTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTime) - _listener = ReadonlyAttribute(jsObject: jsObject, name: Strings.listener) - _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state) - _audioWorklet = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioWorklet) - _onstatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstatechange) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var destination: AudioDestinationNode + @inlinable public var destination: AudioDestinationNode { jsObject[Strings.destination].fromJSValue()! } - @ReadonlyAttribute - public var sampleRate: Float + @inlinable public var sampleRate: Float { jsObject[Strings.sampleRate].fromJSValue()! } - @ReadonlyAttribute - public var currentTime: Double + @inlinable public var currentTime: Double { jsObject[Strings.currentTime].fromJSValue()! } - @ReadonlyAttribute - public var listener: AudioListener + @inlinable public var listener: AudioListener { jsObject[Strings.listener].fromJSValue()! } - @ReadonlyAttribute - public var state: AudioContextState + @inlinable public var state: AudioContextState { jsObject[Strings.state].fromJSValue()! } - @ReadonlyAttribute - public var audioWorklet: AudioWorklet + @inlinable public var renderQuantumSize: UInt32 { jsObject[Strings.renderQuantumSize].fromJSValue()! } - @ClosureAttribute1Optional - public var onstatechange: EventHandler + @inlinable public var audioWorklet: AudioWorklet { jsObject[Strings.audioWorklet].fromJSValue()! } - @inlinable public func createAnalyser() -> AnalyserNode { + @inlinable public var onstatechange: EventHandler { + get { + guard let function = jsObject[Strings.onstatechange].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onstatechange] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onstatechange] = .null + } + } + } + + @inlinable final public func createAnalyser() -> AnalyserNode { let this = jsObject return this[Strings.createAnalyser].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createBiquadFilter() -> BiquadFilterNode { + @inlinable final public func createBiquadFilter() -> BiquadFilterNode { let this = jsObject return this[Strings.createBiquadFilter].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createBuffer(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) -> AudioBuffer { + @inlinable final public func createBuffer( + numberOfChannels: UInt32, + length: UInt32, + sampleRate: Float + ) -> AudioBuffer { let this = jsObject - return this[Strings.createBuffer].function!(this: this, arguments: [_toJSValue(numberOfChannels), _toJSValue(length), _toJSValue(sampleRate)]).fromJSValue()! + return this[Strings.createBuffer].function!( + this: this, + arguments: [_toJSValue(numberOfChannels), _toJSValue(length), _toJSValue(sampleRate)] + ).fromJSValue()! } - @inlinable public func createBufferSource() -> AudioBufferSourceNode { + @inlinable final public func createBufferSource() -> AudioBufferSourceNode { let this = jsObject return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode { + @inlinable final public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode { let this = jsObject - return this[Strings.createChannelMerger].function!(this: this, arguments: [_toJSValue(numberOfInputs)]).fromJSValue()! + return this[Strings.createChannelMerger].function!(this: this, arguments: [_toJSValue(numberOfInputs)]) + .fromJSValue()! } - @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode { + @inlinable final public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode { let this = jsObject - return this[Strings.createChannelSplitter].function!(this: this, arguments: [_toJSValue(numberOfOutputs)]).fromJSValue()! + return this[Strings.createChannelSplitter].function!(this: this, arguments: [_toJSValue(numberOfOutputs)]) + .fromJSValue()! } - @inlinable public func createConstantSource() -> ConstantSourceNode { + @inlinable final public func createConstantSource() -> ConstantSourceNode { let this = jsObject return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createConvolver() -> ConvolverNode { + @inlinable final public func createConvolver() -> ConvolverNode { let this = jsObject return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode { + @inlinable final public func createDelay(maxDelayTime: Double? = nil) -> DelayNode { let this = jsObject return this[Strings.createDelay].function!(this: this, arguments: [_toJSValue(maxDelayTime)]).fromJSValue()! } - @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode { + @inlinable final public func createDynamicsCompressor() -> DynamicsCompressorNode { let this = jsObject return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createGain() -> GainNode { + @inlinable final public func createGain() -> GainNode { let this = jsObject return this[Strings.createGain].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createIIRFilter(feedforward: [Double], feedback: [Double]) -> IIRFilterNode { + @inlinable final public func createIIRFilter(feedforward: [Double], feedback: [Double]) -> IIRFilterNode { let this = jsObject - return this[Strings.createIIRFilter].function!(this: this, arguments: [_toJSValue(feedforward), _toJSValue(feedback)]).fromJSValue()! + return this[Strings.createIIRFilter].function!( + this: this, + arguments: [_toJSValue(feedforward), _toJSValue(feedback)] + ).fromJSValue()! } - @inlinable public func createOscillator() -> OscillatorNode { + @inlinable final public func createOscillator() -> OscillatorNode { let this = jsObject return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createPanner() -> PannerNode { + @inlinable final public func createPanner() -> PannerNode { let this = jsObject return this[Strings.createPanner].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createPeriodicWave(real: [Float], imag: [Float], constraints: PeriodicWaveConstraints? = nil) -> PeriodicWave { + @inlinable final public func createPeriodicWave( + real: [Float], + imag: [Float], + constraints: PeriodicWaveConstraints? = nil + ) -> PeriodicWave { let this = jsObject - return this[Strings.createPeriodicWave].function!(this: this, arguments: [_toJSValue(real), _toJSValue(imag), _toJSValue(constraints)]).fromJSValue()! + return this[Strings.createPeriodicWave].function!( + this: this, + arguments: [_toJSValue(real), _toJSValue(imag), _toJSValue(constraints)] + ).fromJSValue()! } - @inlinable public func createScriptProcessor(bufferSize: UInt32? = nil, numberOfInputChannels: UInt32? = nil, numberOfOutputChannels: UInt32? = nil) -> ScriptProcessorNode { + @inlinable final public func createScriptProcessor( + bufferSize: UInt32? = nil, + numberOfInputChannels: UInt32? = nil, + numberOfOutputChannels: UInt32? = nil + ) -> ScriptProcessorNode { let this = jsObject - return this[Strings.createScriptProcessor].function!(this: this, arguments: [_toJSValue(bufferSize), _toJSValue(numberOfInputChannels), _toJSValue(numberOfOutputChannels)]).fromJSValue()! + return this[Strings.createScriptProcessor].function!( + this: this, + arguments: [_toJSValue(bufferSize), _toJSValue(numberOfInputChannels), _toJSValue(numberOfOutputChannels)] + ).fromJSValue()! } - @inlinable public func createStereoPanner() -> StereoPannerNode { + @inlinable final public func createStereoPanner() -> StereoPannerNode { let this = jsObject return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func createWaveShaper() -> WaveShaperNode { + @inlinable final public func createWaveShaper() -> WaveShaperNode { let this = jsObject return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()! } - @inlinable public func decodeAudioData(audioData: ArrayBuffer, successCallback: DecodeSuccessCallback? = nil, errorCallback: DecodeErrorCallback? = nil) -> JSPromise { - let this = jsObject - return this[Strings.decodeAudioData].function!(this: this, arguments: [_toJSValue(audioData), _toJSValue(successCallback), _toJSValue(errorCallback)]).fromJSValue()! - } - - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func decodeAudioData(audioData: ArrayBuffer, successCallback: DecodeSuccessCallback? = nil, errorCallback: DecodeErrorCallback? = nil) async throws -> AudioBuffer { - let this = jsObject - let _promise: JSPromise = this[Strings.decodeAudioData].function!(this: this, arguments: [_toJSValue(audioData), _toJSValue(successCallback), _toJSValue(errorCallback)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + @inlinable final public func decodeAudioData( + audioData: ArrayBuffer, + successCallback: DecodeSuccessCallback? = nil, + errorCallback: DecodeErrorCallback? = nil + ) -> JSPromise { + let this = jsObject + return this[Strings.decodeAudioData].function!( + this: this, + arguments: [_toJSValue(audioData), _toJSValue(successCallback), _toJSValue(errorCallback)] + ).fromJSValue()! + } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func decodeAudioData( + audioData: ArrayBuffer, + successCallback: DecodeSuccessCallback? = nil, + errorCallback: DecodeErrorCallback? = nil + ) async throws(JSException) -> AudioBuffer { + let this = jsObject + let _promise: JSPromise = this[Strings.decodeAudioData].function!( + this: this, + arguments: [_toJSValue(audioData), _toJSValue(successCallback), _toJSValue(errorCallback)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public class BiquadFilterNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BiquadFilterNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.BiquadFilterNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _frequency = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequency) - _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) - _Q = ReadonlyAttribute(jsObject: jsObject, name: Strings.Q) - _gain = ReadonlyAttribute(jsObject: jsObject, name: Strings.gain) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: BiquadFilterOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var type: BiquadFilterType + @inlinable public var type: BiquadFilterType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var frequency: AudioParam + @inlinable public var frequency: AudioParam { jsObject[Strings.frequency].fromJSValue()! } - @ReadonlyAttribute - public var detune: AudioParam + @inlinable public var detune: AudioParam { jsObject[Strings.detune].fromJSValue()! } - @ReadonlyAttribute - public var Q: AudioParam + @inlinable public var Q: AudioParam { jsObject[Strings.Q].fromJSValue()! } - @ReadonlyAttribute - public var gain: AudioParam + @inlinable public var gain: AudioParam { jsObject[Strings.gain].fromJSValue()! } - @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) { + @inlinable final public func getFrequencyResponse( + frequencyHz: Float32Array, + magResponse: Float32Array, + phaseResponse: Float32Array + ) { let this = jsObject - _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [_toJSValue(frequencyHz), _toJSValue(magResponse), _toJSValue(phaseResponse)]) + _ = this[Strings.getFrequencyResponse].function!( + this: this, + arguments: [_toJSValue(frequencyHz), _toJSValue(magResponse), _toJSValue(phaseResponse)] + ) } } -public class BiquadFilterOptions: BridgedDictionary { - public convenience init(type: BiquadFilterType, Q: Float, detune: Float, frequency: Float, gain: Float) { +open class BiquadFilterOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + type: BiquadFilterType? = nil, + Q: Float? = nil, + detune: Float? = nil, + frequency: Float? = nil, + gain: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.type] = _toJSValue(type) object[Strings.Q] = _toJSValue(Q) object[Strings.detune] = _toJSValue(detune) object[Strings.frequency] = _toJSValue(frequency) object[Strings.gain] = _toJSValue(gain) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _Q = ReadWriteAttribute(jsObject: object, name: Strings.Q) - _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) - _frequency = ReadWriteAttribute(jsObject: object, name: Strings.frequency) - _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: BiquadFilterType - - @ReadWriteAttribute - public var Q: Float + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var detune: Float - - @ReadWriteAttribute - public var frequency: Float - - @ReadWriteAttribute - public var gain: Float + @inlinable public var type: BiquadFilterType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var Q: Float { + get { jsObject[Strings.Q].fromJSValue()! } + set { jsObject[Strings.Q] = _toJSValue(newValue) } + } + @inlinable public var detune: Float { + get { jsObject[Strings.detune].fromJSValue()! } + set { jsObject[Strings.detune] = _toJSValue(newValue) } + } + @inlinable public var frequency: Float { + get { jsObject[Strings.frequency].fromJSValue()! } + set { jsObject[Strings.frequency] = _toJSValue(newValue) } + } + @inlinable public var gain: Float { + get { jsObject[Strings.gain].fromJSValue()! } + set { jsObject[Strings.gain] = _toJSValue(newValue) } + } } - public enum BiquadFilterType: JSString, JSValueCompatible { case lowpass = "lowpass" case highpass = "highpass" @@ -1245,669 +1289,730 @@ public enum BiquadFilterType: JSString, JSValueCompatible { case allpass = "allpass" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ChannelCountMode: JSString, JSValueCompatible { case max = "max" case clampedMax = "clamped-max" case explicit = "explicit" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum ChannelInterpretation: JSString, JSValueCompatible { case speakers = "speakers" case discrete = "discrete" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class ChannelMergerNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ChannelMergerNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ChannelMergerNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: BaseAudioContext, options: ChannelMergerOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } } -public class ChannelMergerOptions: BridgedDictionary { - public convenience init(numberOfInputs: UInt32) { +open class ChannelMergerOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + numberOfInputs: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.numberOfInputs] = _toJSValue(numberOfInputs) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var numberOfInputs: UInt32 + @inlinable public var numberOfInputs: UInt32 { + get { jsObject[Strings.numberOfInputs].fromJSValue()! } + set { jsObject[Strings.numberOfInputs] = _toJSValue(newValue) } + } } - public class ChannelSplitterNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ChannelSplitterNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ChannelSplitterNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: BaseAudioContext, options: ChannelSplitterOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } } -public class ChannelSplitterOptions: BridgedDictionary { - public convenience init(numberOfOutputs: UInt32) { +open class ChannelSplitterOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + numberOfOutputs: UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.numberOfOutputs] = _toJSValue(numberOfOutputs) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var numberOfOutputs: UInt32 + @inlinable public var numberOfOutputs: UInt32 { + get { jsObject[Strings.numberOfOutputs].fromJSValue()! } + set { jsObject[Strings.numberOfOutputs] = _toJSValue(newValue) } + } } - public class ConstantSourceNode: AudioScheduledSourceNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ConstantSourceNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ConstantSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: BaseAudioContext, options: ConstantSourceOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var offset: AudioParam + @inlinable public var offset: AudioParam { jsObject[Strings.offset].fromJSValue()! } } -public class ConstantSourceOptions: BridgedDictionary { - public convenience init(offset: Float) { +open class ConstantSourceOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(offset: Float? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.offset] = _toJSValue(offset) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var offset: Float + @inlinable public var offset: Float { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } } - public class ConvolverNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ConvolverNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.ConvolverNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _buffer = ReadWriteAttribute(jsObject: jsObject, name: Strings.buffer) - _normalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.normalize) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: ConvolverOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var buffer: AudioBuffer? + @inlinable public var buffer: AudioBuffer? { + get { jsObject[Strings.buffer].fromJSValue() } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var normalize: Bool + @inlinable public var normalize: Bool { + get { jsObject[Strings.normalize].fromJSValue()! } + set { jsObject[Strings.normalize] = _toJSValue(newValue) } + } } -public class ConvolverOptions: BridgedDictionary { - public convenience init(buffer: AudioBuffer?, disableNormalization: Bool) { +open class ConvolverOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + buffer: AudioBuffer?, + disableNormalization: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.buffer] = _toJSValue(buffer) object[Strings.disableNormalization] = _toJSValue(disableNormalization) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) - _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var buffer: AudioBuffer? + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var disableNormalization: Bool + @inlinable public var buffer: AudioBuffer? { + get { jsObject[Strings.buffer].fromJSValue() } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } + @inlinable public var disableNormalization: Bool { + get { jsObject[Strings.disableNormalization].fromJSValue()! } + set { jsObject[Strings.disableNormalization] = _toJSValue(newValue) } + } } - public class DelayNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DelayNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.DelayNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _delayTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.delayTime) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: DelayOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var delayTime: AudioParam + @inlinable public var delayTime: AudioParam { jsObject[Strings.delayTime].fromJSValue()! } } -public class DelayOptions: BridgedDictionary { - public convenience init(maxDelayTime: Double, delayTime: Double) { +open class DelayOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + maxDelayTime: Double? = nil, + delayTime: Double? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.maxDelayTime] = _toJSValue(maxDelayTime) object[Strings.delayTime] = _toJSValue(delayTime) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _maxDelayTime = ReadWriteAttribute(jsObject: object, name: Strings.maxDelayTime) - _delayTime = ReadWriteAttribute(jsObject: object, name: Strings.delayTime) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var maxDelayTime: Double + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var delayTime: Double + @inlinable public var maxDelayTime: Double { + get { jsObject[Strings.maxDelayTime].fromJSValue()! } + set { jsObject[Strings.maxDelayTime] = _toJSValue(newValue) } + } + @inlinable public var delayTime: Double { + get { jsObject[Strings.delayTime].fromJSValue()! } + set { jsObject[Strings.delayTime] = _toJSValue(newValue) } + } } - public enum DistanceModelType: JSString, JSValueCompatible { case linear = "linear" case inverse = "inverse" case exponential = "exponential" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class DynamicsCompressorNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DynamicsCompressorNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _threshold = ReadonlyAttribute(jsObject: jsObject, name: Strings.threshold) - _knee = ReadonlyAttribute(jsObject: jsObject, name: Strings.knee) - _ratio = ReadonlyAttribute(jsObject: jsObject, name: Strings.ratio) - _reduction = ReadonlyAttribute(jsObject: jsObject, name: Strings.reduction) - _attack = ReadonlyAttribute(jsObject: jsObject, name: Strings.attack) - _release = ReadonlyAttribute(jsObject: jsObject, name: Strings.release) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.DynamicsCompressorNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: BaseAudioContext, options: DynamicsCompressorOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var threshold: AudioParam + @inlinable public var threshold: AudioParam { jsObject[Strings.threshold].fromJSValue()! } - @ReadonlyAttribute - public var knee: AudioParam + @inlinable public var knee: AudioParam { jsObject[Strings.knee].fromJSValue()! } - @ReadonlyAttribute - public var ratio: AudioParam + @inlinable public var ratio: AudioParam { jsObject[Strings.ratio].fromJSValue()! } - @ReadonlyAttribute - public var reduction: Float + @inlinable public var reduction: Float { jsObject[Strings.reduction].fromJSValue()! } - @ReadonlyAttribute - public var attack: AudioParam + @inlinable public var attack: AudioParam { jsObject[Strings.attack].fromJSValue()! } - @ReadonlyAttribute - public var release: AudioParam + @inlinable public var release: AudioParam { jsObject[Strings.release].fromJSValue()! } } -public class DynamicsCompressorOptions: BridgedDictionary { - public convenience init(attack: Float, knee: Float, ratio: Float, release: Float, threshold: Float) { +open class DynamicsCompressorOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + attack: Float? = nil, + knee: Float? = nil, + ratio: Float? = nil, + release: Float? = nil, + threshold: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.attack] = _toJSValue(attack) object[Strings.knee] = _toJSValue(knee) object[Strings.ratio] = _toJSValue(ratio) object[Strings.release] = _toJSValue(release) object[Strings.threshold] = _toJSValue(threshold) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _attack = ReadWriteAttribute(jsObject: object, name: Strings.attack) - _knee = ReadWriteAttribute(jsObject: object, name: Strings.knee) - _ratio = ReadWriteAttribute(jsObject: object, name: Strings.ratio) - _release = ReadWriteAttribute(jsObject: object, name: Strings.release) - _threshold = ReadWriteAttribute(jsObject: object, name: Strings.threshold) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var attack: Float - - @ReadWriteAttribute - public var knee: Float + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var ratio: Float - - @ReadWriteAttribute - public var release: Float - - @ReadWriteAttribute - public var threshold: Float + @inlinable public var attack: Float { + get { jsObject[Strings.attack].fromJSValue()! } + set { jsObject[Strings.attack] = _toJSValue(newValue) } + } + @inlinable public var knee: Float { + get { jsObject[Strings.knee].fromJSValue()! } + set { jsObject[Strings.knee] = _toJSValue(newValue) } + } + @inlinable public var ratio: Float { + get { jsObject[Strings.ratio].fromJSValue()! } + set { jsObject[Strings.ratio] = _toJSValue(newValue) } + } + @inlinable public var release: Float { + get { jsObject[Strings.release].fromJSValue()! } + set { jsObject[Strings.release] = _toJSValue(newValue) } + } + @inlinable public var threshold: Float { + get { jsObject[Strings.threshold].fromJSValue()! } + set { jsObject[Strings.threshold] = _toJSValue(newValue) } + } } - public class GainNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GainNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.GainNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _gain = ReadonlyAttribute(jsObject: jsObject, name: Strings.gain) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: GainOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var gain: AudioParam + @inlinable public var gain: AudioParam { jsObject[Strings.gain].fromJSValue()! } } -public class GainOptions: BridgedDictionary { - public convenience init(gain: Float) { +open class GainOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + gain: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.gain] = _toJSValue(gain) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var gain: Float + @inlinable public var gain: Float { + get { jsObject[Strings.gain].fromJSValue()! } + set { jsObject[Strings.gain] = _toJSValue(newValue) } + } } - public class IIRFilterNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.IIRFilterNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.IIRFilterNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: IIRFilterOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) { + @inlinable final public func getFrequencyResponse( + frequencyHz: Float32Array, + magResponse: Float32Array, + phaseResponse: Float32Array + ) { let this = jsObject - _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [_toJSValue(frequencyHz), _toJSValue(magResponse), _toJSValue(phaseResponse)]) + _ = this[Strings.getFrequencyResponse].function!( + this: this, + arguments: [_toJSValue(frequencyHz), _toJSValue(magResponse), _toJSValue(phaseResponse)] + ) } } -public class IIRFilterOptions: BridgedDictionary { - public convenience init(feedforward: [Double], feedback: [Double]) { +open class IIRFilterOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + feedforward: [Double], + feedback: [Double] + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.feedforward] = _toJSValue(feedforward) object[Strings.feedback] = _toJSValue(feedback) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _feedforward = ReadWriteAttribute(jsObject: object, name: Strings.feedforward) - _feedback = ReadWriteAttribute(jsObject: object, name: Strings.feedback) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var feedforward: [Double] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var feedback: [Double] + @inlinable public var feedforward: [Double] { + get { jsObject[Strings.feedforward].fromJSValue()! } + set { jsObject[Strings.feedforward] = _toJSValue(newValue) } + } + @inlinable public var feedback: [Double] { + get { jsObject[Strings.feedback].fromJSValue()! } + set { jsObject[Strings.feedback] = _toJSValue(newValue) } + } } - public class MediaElementAudioSourceNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaElementAudioSourceNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _mediaElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaElement) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaElementAudioSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: AudioContext, options: MediaElementAudioSourceOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var mediaElement: HTMLMediaElement + @inlinable public var mediaElement: HTMLMediaElement { jsObject[Strings.mediaElement].fromJSValue()! } } -public class MediaElementAudioSourceOptions: BridgedDictionary { +open class MediaElementAudioSourceOptions: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(mediaElement: HTMLMediaElement) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mediaElement] = _toJSValue(mediaElement) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _mediaElement = ReadWriteAttribute(jsObject: object, name: Strings.mediaElement) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mediaElement: HTMLMediaElement + @inlinable public var mediaElement: HTMLMediaElement { + get { jsObject[Strings.mediaElement].fromJSValue()! } + set { jsObject[Strings.mediaElement] = _toJSValue(newValue) } + } } - public class MediaStreamAudioDestinationNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamAudioDestinationNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _stream = ReadonlyAttribute(jsObject: jsObject, name: Strings.stream) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaStreamAudioDestinationNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: AudioContext, options: AudioNodeOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var stream: MediaStream + @inlinable public var stream: MediaStream { jsObject[Strings.stream].fromJSValue()! } } public class MediaStreamAudioSourceNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamAudioSourceNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _mediaStream = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaStream) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaStreamAudioSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: AudioContext, options: MediaStreamAudioSourceOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var mediaStream: MediaStream + @inlinable public var mediaStream: MediaStream { jsObject[Strings.mediaStream].fromJSValue()! } } -public class MediaStreamAudioSourceOptions: BridgedDictionary { +open class MediaStreamAudioSourceOptions: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(mediaStream: MediaStream) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mediaStream] = _toJSValue(mediaStream) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _mediaStream = ReadWriteAttribute(jsObject: object, name: Strings.mediaStream) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mediaStream: MediaStream + @inlinable public var mediaStream: MediaStream { + get { jsObject[Strings.mediaStream].fromJSValue()! } + set { jsObject[Strings.mediaStream] = _toJSValue(newValue) } + } } - public class MediaStreamTrackAudioSourceNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrackAudioSourceNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.MediaStreamTrackAudioSourceNode].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(context: AudioContext, options: MediaStreamTrackAudioSourceOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } } -public class MediaStreamTrackAudioSourceOptions: BridgedDictionary { +open class MediaStreamTrackAudioSourceOptions: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(mediaStreamTrack: MediaStreamTrack) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.mediaStreamTrack] = _toJSValue(mediaStreamTrack) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _mediaStreamTrack = ReadWriteAttribute(jsObject: object, name: Strings.mediaStreamTrack) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mediaStreamTrack: MediaStreamTrack + @inlinable public var mediaStreamTrack: MediaStreamTrack { + get { jsObject[Strings.mediaStreamTrack].fromJSValue()! } + set { jsObject[Strings.mediaStreamTrack] = _toJSValue(newValue) } + } } - public class OfflineAudioCompletionEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OfflineAudioCompletionEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _renderedBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.renderedBuffer) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.OfflineAudioCompletionEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInitDict: OfflineAudioCompletionEventInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var renderedBuffer: AudioBuffer + @inlinable public var renderedBuffer: AudioBuffer { jsObject[Strings.renderedBuffer].fromJSValue()! } } -public class OfflineAudioCompletionEventInit: BridgedDictionary { +open class OfflineAudioCompletionEventInit: EventInit { + public convenience init(renderedBuffer: AudioBuffer) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.renderedBuffer] = _toJSValue(renderedBuffer) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _renderedBuffer = ReadWriteAttribute(jsObject: object, name: Strings.renderedBuffer) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var renderedBuffer: AudioBuffer + @inlinable public var renderedBuffer: AudioBuffer { + get { jsObject[Strings.renderedBuffer].fromJSValue()! } + set { jsObject[Strings.renderedBuffer] = _toJSValue(newValue) } + } } - public class OfflineAudioContext: BaseAudioContext { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OfflineAudioContext].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - _oncomplete = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncomplete) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.OfflineAudioContext].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(contextOptions: OfflineAudioContextOptions) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(contextOptions)])) } @inlinable public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(numberOfChannels), _toJSValue(length), _toJSValue(sampleRate)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(numberOfChannels), _toJSValue(length), _toJSValue(sampleRate), + ]) + ) } - @inlinable public func startRendering() -> JSPromise { + @inlinable final public func startRendering() -> JSPromise { let this = jsObject return this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func startRendering() async throws -> AudioBuffer { - let this = jsObject - let _promise: JSPromise = this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func startRendering() + async throws(JSException) -> AudioBuffer + { + let this = jsObject + let _promise: JSPromise = this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func resume() -> JSPromise { + @inlinable final public func resume() -> JSPromise { let this = jsObject return this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func resume() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func resume() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.resume].function!(this: this, arguments: []).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func suspend(suspendTime: Double) -> JSPromise { + @inlinable final public func suspend(suspendTime: Double) -> JSPromise { let this = jsObject return this[Strings.suspend].function!(this: this, arguments: [_toJSValue(suspendTime)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func suspend(suspendTime: Double) async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: [_toJSValue(suspendTime)]).fromJSValue()! - _ = try await _promise.value - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func suspend( + suspendTime: Double + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: [_toJSValue(suspendTime)]) + .fromJSValue()! + _ = try await _promise.value + } + #endif - @ReadonlyAttribute - public var length: UInt32 + @inlinable public var length: UInt32 { jsObject[Strings.length].fromJSValue()! } - @ClosureAttribute1Optional - public var oncomplete: EventHandler + @inlinable public var oncomplete: EventHandler { + get { + guard let function = jsObject[Strings.oncomplete].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.oncomplete] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.oncomplete] = .null + } + } + } } -public class OfflineAudioContextOptions: BridgedDictionary { - public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) { +open class OfflineAudioContextOptions: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + numberOfChannels: UInt32? = nil, + length: UInt32, + sampleRate: Float, + renderSizeHint: AudioContextRenderSizeCategory_or_UInt32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.numberOfChannels] = _toJSValue(numberOfChannels) object[Strings.length] = _toJSValue(length) object[Strings.sampleRate] = _toJSValue(sampleRate) - self.init(unsafelyWrapping: object) - } + object[Strings.renderSizeHint] = _toJSValue(renderSizeHint) - public required init(unsafelyWrapping object: JSObject) { - _numberOfChannels = ReadWriteAttribute(jsObject: object, name: Strings.numberOfChannels) - _length = ReadWriteAttribute(jsObject: object, name: Strings.length) - _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var numberOfChannels: UInt32 - - @ReadWriteAttribute - public var length: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var sampleRate: Float + @inlinable public var numberOfChannels: UInt32 { + get { jsObject[Strings.numberOfChannels].fromJSValue()! } + set { jsObject[Strings.numberOfChannels] = _toJSValue(newValue) } + } + @inlinable public var length: UInt32 { + get { jsObject[Strings.length].fromJSValue()! } + set { jsObject[Strings.length] = _toJSValue(newValue) } + } + @inlinable public var sampleRate: Float { + get { jsObject[Strings.sampleRate].fromJSValue()! } + set { jsObject[Strings.sampleRate] = _toJSValue(newValue) } + } + @inlinable public var renderSizeHint: AudioContextRenderSizeCategory_or_UInt32 { + get { jsObject[Strings.renderSizeHint].fromJSValue()! } + set { jsObject[Strings.renderSizeHint] = _toJSValue(newValue) } + } } - public class OscillatorNode: AudioScheduledSourceNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OscillatorNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.OscillatorNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type) - _frequency = ReadonlyAttribute(jsObject: jsObject, name: Strings.frequency) - _detune = ReadonlyAttribute(jsObject: jsObject, name: Strings.detune) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: OscillatorOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var type: OscillatorType + @inlinable public var type: OscillatorType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var frequency: AudioParam + @inlinable public var frequency: AudioParam { jsObject[Strings.frequency].fromJSValue()! } - @ReadonlyAttribute - public var detune: AudioParam + @inlinable public var detune: AudioParam { jsObject[Strings.detune].fromJSValue()! } - @inlinable public func setPeriodicWave(periodicWave: PeriodicWave) { + @inlinable final public func setPeriodicWave(periodicWave: PeriodicWave) { let this = jsObject _ = this[Strings.setPeriodicWave].function!(this: this, arguments: [_toJSValue(periodicWave)]) } } -public class OscillatorOptions: BridgedDictionary { - public convenience init(type: OscillatorType, frequency: Float, detune: Float, periodicWave: PeriodicWave) { +open class OscillatorOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + type: OscillatorType? = nil, + frequency: Float? = nil, + detune: Float? = nil, + periodicWave: PeriodicWave? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.type] = _toJSValue(type) object[Strings.frequency] = _toJSValue(frequency) object[Strings.detune] = _toJSValue(detune) object[Strings.periodicWave] = _toJSValue(periodicWave) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _frequency = ReadWriteAttribute(jsObject: object, name: Strings.frequency) - _detune = ReadWriteAttribute(jsObject: object, name: Strings.detune) - _periodicWave = ReadWriteAttribute(jsObject: object, name: Strings.periodicWave) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: OscillatorType - - @ReadWriteAttribute - public var frequency: Float - - @ReadWriteAttribute - public var detune: Float + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var periodicWave: PeriodicWave + @inlinable public var type: OscillatorType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var frequency: Float { + get { jsObject[Strings.frequency].fromJSValue()! } + set { jsObject[Strings.frequency] = _toJSValue(newValue) } + } + @inlinable public var detune: Float { + get { jsObject[Strings.detune].fromJSValue()! } + set { jsObject[Strings.detune] = _toJSValue(newValue) } + } + @inlinable public var periodicWave: PeriodicWave { + get { jsObject[Strings.periodicWave].fromJSValue()! } + set { jsObject[Strings.periodicWave] = _toJSValue(newValue) } + } } - public enum OscillatorType: JSString, JSValueCompatible { case sine = "sine" case square = "square" @@ -1916,119 +2021,128 @@ public enum OscillatorType: JSString, JSValueCompatible { case custom = "custom" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum OverSampleType: JSString, JSValueCompatible { case none = "none" case _2x = "2x" case _4x = "4x" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class PannerNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PannerNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _panningModel = ReadWriteAttribute(jsObject: jsObject, name: Strings.panningModel) - _positionX = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionX) - _positionY = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionY) - _positionZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.positionZ) - _orientationX = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationX) - _orientationY = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationY) - _orientationZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.orientationZ) - _distanceModel = ReadWriteAttribute(jsObject: jsObject, name: Strings.distanceModel) - _refDistance = ReadWriteAttribute(jsObject: jsObject, name: Strings.refDistance) - _maxDistance = ReadWriteAttribute(jsObject: jsObject, name: Strings.maxDistance) - _rolloffFactor = ReadWriteAttribute(jsObject: jsObject, name: Strings.rolloffFactor) - _coneInnerAngle = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneInnerAngle) - _coneOuterAngle = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneOuterAngle) - _coneOuterGain = ReadWriteAttribute(jsObject: jsObject, name: Strings.coneOuterGain) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.PannerNode].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: PannerOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var panningModel: PanningModelType - - @ReadonlyAttribute - public var positionX: AudioParam + @inlinable public var panningModel: PanningModelType { + get { jsObject[Strings.panningModel].fromJSValue()! } + set { jsObject[Strings.panningModel] = _toJSValue(newValue) } + } - @ReadonlyAttribute - public var positionY: AudioParam + @inlinable public var positionX: AudioParam { jsObject[Strings.positionX].fromJSValue()! } - @ReadonlyAttribute - public var positionZ: AudioParam + @inlinable public var positionY: AudioParam { jsObject[Strings.positionY].fromJSValue()! } - @ReadonlyAttribute - public var orientationX: AudioParam + @inlinable public var positionZ: AudioParam { jsObject[Strings.positionZ].fromJSValue()! } - @ReadonlyAttribute - public var orientationY: AudioParam + @inlinable public var orientationX: AudioParam { jsObject[Strings.orientationX].fromJSValue()! } - @ReadonlyAttribute - public var orientationZ: AudioParam + @inlinable public var orientationY: AudioParam { jsObject[Strings.orientationY].fromJSValue()! } - @ReadWriteAttribute - public var distanceModel: DistanceModelType + @inlinable public var orientationZ: AudioParam { jsObject[Strings.orientationZ].fromJSValue()! } - @ReadWriteAttribute - public var refDistance: Double + @inlinable public var distanceModel: DistanceModelType { + get { jsObject[Strings.distanceModel].fromJSValue()! } + set { jsObject[Strings.distanceModel] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var maxDistance: Double + @inlinable public var refDistance: Double { + get { jsObject[Strings.refDistance].fromJSValue()! } + set { jsObject[Strings.refDistance] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var rolloffFactor: Double + @inlinable public var maxDistance: Double { + get { jsObject[Strings.maxDistance].fromJSValue()! } + set { jsObject[Strings.maxDistance] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var coneInnerAngle: Double + @inlinable public var rolloffFactor: Double { + get { jsObject[Strings.rolloffFactor].fromJSValue()! } + set { jsObject[Strings.rolloffFactor] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var coneOuterAngle: Double + @inlinable public var coneInnerAngle: Double { + get { jsObject[Strings.coneInnerAngle].fromJSValue()! } + set { jsObject[Strings.coneInnerAngle] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var coneOuterGain: Double + @inlinable public var coneOuterAngle: Double { + get { jsObject[Strings.coneOuterAngle].fromJSValue()! } + set { jsObject[Strings.coneOuterAngle] = _toJSValue(newValue) } + } - @inlinable public func setPosition(x: Float, y: Float, z: Float) { - let this = jsObject - _ = this[Strings.setPosition].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)]) + @inlinable public var coneOuterGain: Double { + get { jsObject[Strings.coneOuterGain].fromJSValue()! } + set { jsObject[Strings.coneOuterGain] = _toJSValue(newValue) } } - @inlinable public func setOrientation(x: Float, y: Float, z: Float) { + @inlinable final public func setPosition(x: Float, y: Float, z: Float) { let this = jsObject - _ = this[Strings.setOrientation].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)]) + _ = this[Strings.setPosition].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)]) } -} -public class PannerOptions: BridgedDictionary { - public convenience init(panningModel: PanningModelType, distanceModel: DistanceModelType, positionX: Float, positionY: Float, positionZ: Float, orientationX: Float, orientationY: Float, orientationZ: Float, refDistance: Double, maxDistance: Double, rolloffFactor: Double, coneInnerAngle: Double, coneOuterAngle: Double, coneOuterGain: Double) { + @inlinable final public func setOrientation(x: Float, y: Float, z: Float) { + let this = jsObject + _ = this[Strings.setOrientation].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(z)] + ) + } +} + +open class PannerOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + panningModel: PanningModelType? = nil, + distanceModel: DistanceModelType? = nil, + positionX: Float? = nil, + positionY: Float? = nil, + positionZ: Float? = nil, + orientationX: Float? = nil, + orientationY: Float? = nil, + orientationZ: Float? = nil, + refDistance: Double? = nil, + maxDistance: Double? = nil, + rolloffFactor: Double? = nil, + coneInnerAngle: Double? = nil, + coneOuterAngle: Double? = nil, + coneOuterGain: Double? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.panningModel] = _toJSValue(panningModel) object[Strings.distanceModel] = _toJSValue(distanceModel) object[Strings.positionX] = _toJSValue(positionX) @@ -2043,435 +2157,443 @@ public class PannerOptions: BridgedDictionary { object[Strings.coneInnerAngle] = _toJSValue(coneInnerAngle) object[Strings.coneOuterAngle] = _toJSValue(coneOuterAngle) object[Strings.coneOuterGain] = _toJSValue(coneOuterGain) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _panningModel = ReadWriteAttribute(jsObject: object, name: Strings.panningModel) - _distanceModel = ReadWriteAttribute(jsObject: object, name: Strings.distanceModel) - _positionX = ReadWriteAttribute(jsObject: object, name: Strings.positionX) - _positionY = ReadWriteAttribute(jsObject: object, name: Strings.positionY) - _positionZ = ReadWriteAttribute(jsObject: object, name: Strings.positionZ) - _orientationX = ReadWriteAttribute(jsObject: object, name: Strings.orientationX) - _orientationY = ReadWriteAttribute(jsObject: object, name: Strings.orientationY) - _orientationZ = ReadWriteAttribute(jsObject: object, name: Strings.orientationZ) - _refDistance = ReadWriteAttribute(jsObject: object, name: Strings.refDistance) - _maxDistance = ReadWriteAttribute(jsObject: object, name: Strings.maxDistance) - _rolloffFactor = ReadWriteAttribute(jsObject: object, name: Strings.rolloffFactor) - _coneInnerAngle = ReadWriteAttribute(jsObject: object, name: Strings.coneInnerAngle) - _coneOuterAngle = ReadWriteAttribute(jsObject: object, name: Strings.coneOuterAngle) - _coneOuterGain = ReadWriteAttribute(jsObject: object, name: Strings.coneOuterGain) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var panningModel: PanningModelType - - @ReadWriteAttribute - public var distanceModel: DistanceModelType - - @ReadWriteAttribute - public var positionX: Float - - @ReadWriteAttribute - public var positionY: Float - - @ReadWriteAttribute - public var positionZ: Float - - @ReadWriteAttribute - public var orientationX: Float - - @ReadWriteAttribute - public var orientationY: Float - - @ReadWriteAttribute - public var orientationZ: Float + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var refDistance: Double - - @ReadWriteAttribute - public var maxDistance: Double - - @ReadWriteAttribute - public var rolloffFactor: Double - - @ReadWriteAttribute - public var coneInnerAngle: Double - - @ReadWriteAttribute - public var coneOuterAngle: Double - - @ReadWriteAttribute - public var coneOuterGain: Double + @inlinable public var panningModel: PanningModelType { + get { jsObject[Strings.panningModel].fromJSValue()! } + set { jsObject[Strings.panningModel] = _toJSValue(newValue) } + } + @inlinable public var distanceModel: DistanceModelType { + get { jsObject[Strings.distanceModel].fromJSValue()! } + set { jsObject[Strings.distanceModel] = _toJSValue(newValue) } + } + @inlinable public var positionX: Float { + get { jsObject[Strings.positionX].fromJSValue()! } + set { jsObject[Strings.positionX] = _toJSValue(newValue) } + } + @inlinable public var positionY: Float { + get { jsObject[Strings.positionY].fromJSValue()! } + set { jsObject[Strings.positionY] = _toJSValue(newValue) } + } + @inlinable public var positionZ: Float { + get { jsObject[Strings.positionZ].fromJSValue()! } + set { jsObject[Strings.positionZ] = _toJSValue(newValue) } + } + @inlinable public var orientationX: Float { + get { jsObject[Strings.orientationX].fromJSValue()! } + set { jsObject[Strings.orientationX] = _toJSValue(newValue) } + } + @inlinable public var orientationY: Float { + get { jsObject[Strings.orientationY].fromJSValue()! } + set { jsObject[Strings.orientationY] = _toJSValue(newValue) } + } + @inlinable public var orientationZ: Float { + get { jsObject[Strings.orientationZ].fromJSValue()! } + set { jsObject[Strings.orientationZ] = _toJSValue(newValue) } + } + @inlinable public var refDistance: Double { + get { jsObject[Strings.refDistance].fromJSValue()! } + set { jsObject[Strings.refDistance] = _toJSValue(newValue) } + } + @inlinable public var maxDistance: Double { + get { jsObject[Strings.maxDistance].fromJSValue()! } + set { jsObject[Strings.maxDistance] = _toJSValue(newValue) } + } + @inlinable public var rolloffFactor: Double { + get { jsObject[Strings.rolloffFactor].fromJSValue()! } + set { jsObject[Strings.rolloffFactor] = _toJSValue(newValue) } + } + @inlinable public var coneInnerAngle: Double { + get { jsObject[Strings.coneInnerAngle].fromJSValue()! } + set { jsObject[Strings.coneInnerAngle] = _toJSValue(newValue) } + } + @inlinable public var coneOuterAngle: Double { + get { jsObject[Strings.coneOuterAngle].fromJSValue()! } + set { jsObject[Strings.coneOuterAngle] = _toJSValue(newValue) } + } + @inlinable public var coneOuterGain: Double { + get { jsObject[Strings.coneOuterGain].fromJSValue()! } + set { jsObject[Strings.coneOuterGain] = _toJSValue(newValue) } + } } - public enum PanningModelType: JSString, JSValueCompatible { case equalpower = "equalpower" case hRTF = "HRTF" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class PeriodicWave: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.PeriodicWave].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } @inlinable public convenience init(context: BaseAudioContext, options: PeriodicWaveOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } } -public class PeriodicWaveConstraints: BridgedDictionary { - public convenience init(disableNormalization: Bool) { +open class PeriodicWaveConstraints: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(disableNormalization: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.disableNormalization] = _toJSValue(disableNormalization) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var disableNormalization: Bool + @inlinable public var disableNormalization: Bool { + get { jsObject[Strings.disableNormalization].fromJSValue()! } + set { jsObject[Strings.disableNormalization] = _toJSValue(newValue) } + } } +open class PeriodicWaveOptions: PeriodicWaveConstraints { -public class PeriodicWaveOptions: BridgedDictionary { - public convenience init(real: [Float], imag: [Float]) { + public convenience init(disableNormalization: Bool? = nil, real: [Float]? = nil, imag: [Float]? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.disableNormalization] = _toJSValue(disableNormalization) object[Strings.real] = _toJSValue(real) object[Strings.imag] = _toJSValue(imag) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _real = ReadWriteAttribute(jsObject: object, name: Strings.real) - _imag = ReadWriteAttribute(jsObject: object, name: Strings.imag) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var real: [Float] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var imag: [Float] + @inlinable public var real: [Float] { + get { jsObject[Strings.real].fromJSValue()! } + set { jsObject[Strings.real] = _toJSValue(newValue) } + } + @inlinable public var imag: [Float] { + get { jsObject[Strings.imag].fromJSValue()! } + set { jsObject[Strings.imag] = _toJSValue(newValue) } + } } - public class ScriptProcessorNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ScriptProcessorNode].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _onaudioprocess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaudioprocess) - _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.ScriptProcessorNode].function } - @ClosureAttribute1Optional - public var onaudioprocess: EventHandler + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - @ReadonlyAttribute - public var bufferSize: Int32 + @inlinable public var onaudioprocess: EventHandler { + get { + guard let function = jsObject[Strings.onaudioprocess].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onaudioprocess] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onaudioprocess] = .null + } + } + } + + @inlinable public var bufferSize: Int32 { jsObject[Strings.bufferSize].fromJSValue()! } } public class StereoPannerNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StereoPannerNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.StereoPannerNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _pan = ReadonlyAttribute(jsObject: jsObject, name: Strings.pan) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: StereoPannerOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadonlyAttribute - public var pan: AudioParam + @inlinable public var pan: AudioParam { jsObject[Strings.pan].fromJSValue()! } } -public class StereoPannerOptions: BridgedDictionary { - public convenience init(pan: Float) { +open class StereoPannerOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + pan: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.pan] = _toJSValue(pan) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _pan = ReadWriteAttribute(jsObject: object, name: Strings.pan) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var pan: Float + @inlinable public var pan: Float { + get { jsObject[Strings.pan].fromJSValue()! } + set { jsObject[Strings.pan] = _toJSValue(newValue) } + } } - public typealias DecodeErrorCallback = (DOMException) -> Void public typealias DecodeSuccessCallback = (AudioBuffer) -> Void public typealias AudioWorkletProcessCallback = ([[Float32Array]], [[Float32Array]], JSObject) -> Bool public class WaveShaperNode: AudioNode { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WaveShaperNode].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WaveShaperNode].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _curve = ReadWriteAttribute(jsObject: jsObject, name: Strings.curve) - _oversample = ReadWriteAttribute(jsObject: jsObject, name: Strings.oversample) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(context: BaseAudioContext, options: WaveShaperOptions? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(context), _toJSValue(options)])) } - @ReadWriteAttribute - public var curve: Float32Array? + @inlinable public var curve: Float32Array? { + get { jsObject[Strings.curve].fromJSValue() } + set { jsObject[Strings.curve] = _toJSValue(newValue) } + } - @ReadWriteAttribute - public var oversample: OverSampleType + @inlinable public var oversample: OverSampleType { + get { jsObject[Strings.oversample].fromJSValue()! } + set { jsObject[Strings.oversample] = _toJSValue(newValue) } + } } -public class WaveShaperOptions: BridgedDictionary { - public convenience init(curve: [Float], oversample: OverSampleType) { +open class WaveShaperOptions: AudioNodeOptions { + + public convenience init( + channelCount: UInt32? = nil, + channelCountMode: ChannelCountMode? = nil, + channelInterpretation: ChannelInterpretation? = nil, + curve: [Float]? = nil, + oversample: OverSampleType? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.channelCount] = _toJSValue(channelCount) + object[Strings.channelCountMode] = _toJSValue(channelCountMode) + object[Strings.channelInterpretation] = _toJSValue(channelInterpretation) object[Strings.curve] = _toJSValue(curve) object[Strings.oversample] = _toJSValue(oversample) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _curve = ReadWriteAttribute(jsObject: object, name: Strings.curve) - _oversample = ReadWriteAttribute(jsObject: object, name: Strings.oversample) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var curve: [Float] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var oversample: OverSampleType + @inlinable public var curve: [Float] { + get { jsObject[Strings.curve].fromJSValue()! } + set { jsObject[Strings.curve] = _toJSValue(newValue) } + } + @inlinable public var oversample: OverSampleType { + get { jsObject[Strings.oversample].fromJSValue()! } + set { jsObject[Strings.oversample] = _toJSValue(newValue) } + } } - @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let AnalyserNode: JSString = "AnalyserNode" - @usableFromInline static let AudioBuffer: JSString = "AudioBuffer" - @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode" - @usableFromInline static let AudioContext: JSString = "AudioContext" - @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode" - @usableFromInline static let AudioListener: JSString = "AudioListener" - @usableFromInline static let AudioNode: JSString = "AudioNode" - @usableFromInline static let AudioParam: JSString = "AudioParam" - @usableFromInline static let AudioParamMap: JSString = "AudioParamMap" - @usableFromInline static let AudioProcessingEvent: JSString = "AudioProcessingEvent" - @usableFromInline static let AudioRenderCapacity: JSString = "AudioRenderCapacity" - @usableFromInline static let AudioRenderCapacityEvent: JSString = "AudioRenderCapacityEvent" - @usableFromInline static let AudioScheduledSourceNode: JSString = "AudioScheduledSourceNode" - @usableFromInline static let AudioSinkInfo: JSString = "AudioSinkInfo" - @usableFromInline static let AudioWorklet: JSString = "AudioWorklet" - @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode" - @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext" - @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode" - @usableFromInline static let ChannelMergerNode: JSString = "ChannelMergerNode" - @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode" - @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode" - @usableFromInline static let ConvolverNode: JSString = "ConvolverNode" - @usableFromInline static let DelayNode: JSString = "DelayNode" - @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode" - @usableFromInline static let GainNode: JSString = "GainNode" - @usableFromInline static let IIRFilterNode: JSString = "IIRFilterNode" - @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode" - @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode" - @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode" - @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent" - @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext" - @usableFromInline static let OscillatorNode: JSString = "OscillatorNode" - @usableFromInline static let PannerNode: JSString = "PannerNode" - @usableFromInline static let PeriodicWave: JSString = "PeriodicWave" - @usableFromInline static let Q: JSString = "Q" - @usableFromInline static let ScriptProcessorNode: JSString = "ScriptProcessorNode" - @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode" - @usableFromInline static let WaveShaperNode: JSString = "WaveShaperNode" - @usableFromInline static let attack: JSString = "attack" - @usableFromInline static let audioWorklet: JSString = "audioWorklet" - @usableFromInline static let automationRate: JSString = "automationRate" - @usableFromInline static let averageLoad: JSString = "averageLoad" - @usableFromInline static let baseLatency: JSString = "baseLatency" - @usableFromInline static let buffer: JSString = "buffer" - @usableFromInline static let bufferSize: JSString = "bufferSize" - @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime" - @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues" - @usableFromInline static let channelCount: JSString = "channelCount" - @usableFromInline static let channelCountMode: JSString = "channelCountMode" - @usableFromInline static let channelInterpretation: JSString = "channelInterpretation" - @usableFromInline static let close: JSString = "close" - @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle" - @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle" - @usableFromInline static let coneOuterGain: JSString = "coneOuterGain" - @usableFromInline static let connect: JSString = "connect" - @usableFromInline static let context: JSString = "context" - @usableFromInline static let contextTime: JSString = "contextTime" - @usableFromInline static let copyFromChannel: JSString = "copyFromChannel" - @usableFromInline static let copyToChannel: JSString = "copyToChannel" - @usableFromInline static let createAnalyser: JSString = "createAnalyser" - @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter" - @usableFromInline static let createBuffer: JSString = "createBuffer" - @usableFromInline static let createBufferSource: JSString = "createBufferSource" - @usableFromInline static let createChannelMerger: JSString = "createChannelMerger" - @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter" - @usableFromInline static let createConstantSource: JSString = "createConstantSource" - @usableFromInline static let createConvolver: JSString = "createConvolver" - @usableFromInline static let createDelay: JSString = "createDelay" - @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor" - @usableFromInline static let createGain: JSString = "createGain" - @usableFromInline static let createIIRFilter: JSString = "createIIRFilter" - @usableFromInline static let createMediaElementSource: JSString = "createMediaElementSource" - @usableFromInline static let createMediaStreamDestination: JSString = "createMediaStreamDestination" - @usableFromInline static let createMediaStreamSource: JSString = "createMediaStreamSource" - @usableFromInline static let createMediaStreamTrackSource: JSString = "createMediaStreamTrackSource" - @usableFromInline static let createOscillator: JSString = "createOscillator" - @usableFromInline static let createPanner: JSString = "createPanner" - @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave" - @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor" - @usableFromInline static let createStereoPanner: JSString = "createStereoPanner" - @usableFromInline static let createWaveShaper: JSString = "createWaveShaper" - @usableFromInline static let currentTime: JSString = "currentTime" - @usableFromInline static let curve: JSString = "curve" - @usableFromInline static let decodeAudioData: JSString = "decodeAudioData" - @usableFromInline static let defaultValue: JSString = "defaultValue" - @usableFromInline static let delayTime: JSString = "delayTime" - @usableFromInline static let destination: JSString = "destination" - @usableFromInline static let detune: JSString = "detune" - @usableFromInline static let disableNormalization: JSString = "disableNormalization" - @usableFromInline static let disconnect: JSString = "disconnect" - @usableFromInline static let distanceModel: JSString = "distanceModel" - @usableFromInline static let duration: JSString = "duration" - @usableFromInline static let exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime" - @usableFromInline static let feedback: JSString = "feedback" - @usableFromInline static let feedforward: JSString = "feedforward" - @usableFromInline static let fftSize: JSString = "fftSize" - @usableFromInline static let forwardX: JSString = "forwardX" - @usableFromInline static let forwardY: JSString = "forwardY" - @usableFromInline static let forwardZ: JSString = "forwardZ" - @usableFromInline static let frequency: JSString = "frequency" - @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount" - @usableFromInline static let gain: JSString = "gain" - @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData" - @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData" - @usableFromInline static let getChannelData: JSString = "getChannelData" - @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData" - @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData" - @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse" - @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp" - @usableFromInline static let imag: JSString = "imag" - @usableFromInline static let inputBuffer: JSString = "inputBuffer" - @usableFromInline static let knee: JSString = "knee" - @usableFromInline static let latencyHint: JSString = "latencyHint" - @usableFromInline static let length: JSString = "length" - @usableFromInline static let linearRampToValueAtTime: JSString = "linearRampToValueAtTime" - @usableFromInline static let listener: JSString = "listener" - @usableFromInline static let loop: JSString = "loop" - @usableFromInline static let loopEnd: JSString = "loopEnd" - @usableFromInline static let loopStart: JSString = "loopStart" - @usableFromInline static let maxChannelCount: JSString = "maxChannelCount" - @usableFromInline static let maxDecibels: JSString = "maxDecibels" - @usableFromInline static let maxDelayTime: JSString = "maxDelayTime" - @usableFromInline static let maxDistance: JSString = "maxDistance" - @usableFromInline static let maxValue: JSString = "maxValue" - @usableFromInline static let mediaElement: JSString = "mediaElement" - @usableFromInline static let mediaStream: JSString = "mediaStream" - @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack" - @usableFromInline static let minDecibels: JSString = "minDecibels" - @usableFromInline static let minValue: JSString = "minValue" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let normalize: JSString = "normalize" - @usableFromInline static let numberOfChannels: JSString = "numberOfChannels" - @usableFromInline static let numberOfInputs: JSString = "numberOfInputs" - @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let onaudioprocess: JSString = "onaudioprocess" - @usableFromInline static let oncomplete: JSString = "oncomplete" - @usableFromInline static let onended: JSString = "onended" - @usableFromInline static let onprocessorerror: JSString = "onprocessorerror" - @usableFromInline static let onsinkchange: JSString = "onsinkchange" - @usableFromInline static let onstatechange: JSString = "onstatechange" - @usableFromInline static let onupdate: JSString = "onupdate" - @usableFromInline static let orientationX: JSString = "orientationX" - @usableFromInline static let orientationY: JSString = "orientationY" - @usableFromInline static let orientationZ: JSString = "orientationZ" - @usableFromInline static let outputBuffer: JSString = "outputBuffer" - @usableFromInline static let outputChannelCount: JSString = "outputChannelCount" - @usableFromInline static let outputLatency: JSString = "outputLatency" - @usableFromInline static let oversample: JSString = "oversample" - @usableFromInline static let pan: JSString = "pan" - @usableFromInline static let panningModel: JSString = "panningModel" - @usableFromInline static let parameterData: JSString = "parameterData" - @usableFromInline static let parameters: JSString = "parameters" - @usableFromInline static let peakLoad: JSString = "peakLoad" - @usableFromInline static let performanceTime: JSString = "performanceTime" - @usableFromInline static let periodicWave: JSString = "periodicWave" - @usableFromInline static let playbackRate: JSString = "playbackRate" - @usableFromInline static let playbackTime: JSString = "playbackTime" - @usableFromInline static let port: JSString = "port" - @usableFromInline static let positionX: JSString = "positionX" - @usableFromInline static let positionY: JSString = "positionY" - @usableFromInline static let positionZ: JSString = "positionZ" - @usableFromInline static let processorOptions: JSString = "processorOptions" - @usableFromInline static let ratio: JSString = "ratio" - @usableFromInline static let real: JSString = "real" - @usableFromInline static let reduction: JSString = "reduction" - @usableFromInline static let refDistance: JSString = "refDistance" - @usableFromInline static let release: JSString = "release" - @usableFromInline static let renderCapacity: JSString = "renderCapacity" - @usableFromInline static let renderedBuffer: JSString = "renderedBuffer" - @usableFromInline static let resume: JSString = "resume" - @usableFromInline static let rolloffFactor: JSString = "rolloffFactor" - @usableFromInline static let sampleRate: JSString = "sampleRate" - @usableFromInline static let setOrientation: JSString = "setOrientation" - @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave" - @usableFromInline static let setPosition: JSString = "setPosition" - @usableFromInline static let setSinkId: JSString = "setSinkId" - @usableFromInline static let setTargetAtTime: JSString = "setTargetAtTime" - @usableFromInline static let setValueAtTime: JSString = "setValueAtTime" - @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime" - @usableFromInline static let sinkId: JSString = "sinkId" - @usableFromInline static let smoothingTimeConstant: JSString = "smoothingTimeConstant" - @usableFromInline static let start: JSString = "start" - @usableFromInline static let startRendering: JSString = "startRendering" - @usableFromInline static let state: JSString = "state" - @usableFromInline static let stop: JSString = "stop" - @usableFromInline static let stream: JSString = "stream" - @usableFromInline static let suspend: JSString = "suspend" - @usableFromInline static let threshold: JSString = "threshold" - @usableFromInline static let timestamp: JSString = "timestamp" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let underrunRatio: JSString = "underrunRatio" - @usableFromInline static let upX: JSString = "upX" - @usableFromInline static let upY: JSString = "upY" - @usableFromInline static let upZ: JSString = "upZ" - @usableFromInline static let updateInterval: JSString = "updateInterval" - @usableFromInline static let value: JSString = "value" + @usableFromInline static let `AnalyserNode`: JSString = "AnalyserNode" + @usableFromInline static let `AudioBuffer`: JSString = "AudioBuffer" + @usableFromInline static let `AudioBufferSourceNode`: JSString = "AudioBufferSourceNode" + @usableFromInline static let `AudioContext`: JSString = "AudioContext" + @usableFromInline static let `AudioDestinationNode`: JSString = "AudioDestinationNode" + @usableFromInline static let `AudioListener`: JSString = "AudioListener" + @usableFromInline static let `AudioNode`: JSString = "AudioNode" + @usableFromInline static let `AudioParam`: JSString = "AudioParam" + @usableFromInline static let `AudioParamMap`: JSString = "AudioParamMap" + @usableFromInline static let `AudioProcessingEvent`: JSString = "AudioProcessingEvent" + @usableFromInline static let `AudioScheduledSourceNode`: JSString = "AudioScheduledSourceNode" + @usableFromInline static let `AudioSinkInfo`: JSString = "AudioSinkInfo" + @usableFromInline static let `AudioWorklet`: JSString = "AudioWorklet" + @usableFromInline static let `AudioWorkletNode`: JSString = "AudioWorkletNode" + @usableFromInline static let `BaseAudioContext`: JSString = "BaseAudioContext" + @usableFromInline static let `BiquadFilterNode`: JSString = "BiquadFilterNode" + @usableFromInline static let `ChannelMergerNode`: JSString = "ChannelMergerNode" + @usableFromInline static let `ChannelSplitterNode`: JSString = "ChannelSplitterNode" + @usableFromInline static let `ConstantSourceNode`: JSString = "ConstantSourceNode" + @usableFromInline static let `ConvolverNode`: JSString = "ConvolverNode" + @usableFromInline static let `DelayNode`: JSString = "DelayNode" + @usableFromInline static let `DynamicsCompressorNode`: JSString = "DynamicsCompressorNode" + @usableFromInline static let `GainNode`: JSString = "GainNode" + @usableFromInline static let `IIRFilterNode`: JSString = "IIRFilterNode" + @usableFromInline static let `MediaElementAudioSourceNode`: JSString = "MediaElementAudioSourceNode" + @usableFromInline static let `MediaStreamAudioDestinationNode`: JSString = "MediaStreamAudioDestinationNode" + @usableFromInline static let `MediaStreamAudioSourceNode`: JSString = "MediaStreamAudioSourceNode" + @usableFromInline static let `MediaStreamTrackAudioSourceNode`: JSString = "MediaStreamTrackAudioSourceNode" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `OfflineAudioCompletionEvent`: JSString = "OfflineAudioCompletionEvent" + @usableFromInline static let `OfflineAudioContext`: JSString = "OfflineAudioContext" + @usableFromInline static let `OscillatorNode`: JSString = "OscillatorNode" + @usableFromInline static let `PannerNode`: JSString = "PannerNode" + @usableFromInline static let `PeriodicWave`: JSString = "PeriodicWave" + @usableFromInline static let `Q`: JSString = "Q" + @usableFromInline static let `ScriptProcessorNode`: JSString = "ScriptProcessorNode" + @usableFromInline static let `StereoPannerNode`: JSString = "StereoPannerNode" + @usableFromInline static let `WaveShaperNode`: JSString = "WaveShaperNode" + @usableFromInline static let `attack`: JSString = "attack" + @usableFromInline static let `audioWorklet`: JSString = "audioWorklet" + @usableFromInline static let `automationRate`: JSString = "automationRate" + @usableFromInline static let `baseLatency`: JSString = "baseLatency" + @usableFromInline static let `buffer`: JSString = "buffer" + @usableFromInline static let `bufferSize`: JSString = "bufferSize" + @usableFromInline static let `cancelAndHoldAtTime`: JSString = "cancelAndHoldAtTime" + @usableFromInline static let `cancelScheduledValues`: JSString = "cancelScheduledValues" + @usableFromInline static let `channelCount`: JSString = "channelCount" + @usableFromInline static let `channelCountMode`: JSString = "channelCountMode" + @usableFromInline static let `channelInterpretation`: JSString = "channelInterpretation" + @usableFromInline static let `close`: JSString = "close" + @usableFromInline static let `coneInnerAngle`: JSString = "coneInnerAngle" + @usableFromInline static let `coneOuterAngle`: JSString = "coneOuterAngle" + @usableFromInline static let `coneOuterGain`: JSString = "coneOuterGain" + @usableFromInline static let `connect`: JSString = "connect" + @usableFromInline static let `context`: JSString = "context" + @usableFromInline static let `contextTime`: JSString = "contextTime" + @usableFromInline static let `copyFromChannel`: JSString = "copyFromChannel" + @usableFromInline static let `copyToChannel`: JSString = "copyToChannel" + @usableFromInline static let `createAnalyser`: JSString = "createAnalyser" + @usableFromInline static let `createBiquadFilter`: JSString = "createBiquadFilter" + @usableFromInline static let `createBuffer`: JSString = "createBuffer" + @usableFromInline static let `createBufferSource`: JSString = "createBufferSource" + @usableFromInline static let `createChannelMerger`: JSString = "createChannelMerger" + @usableFromInline static let `createChannelSplitter`: JSString = "createChannelSplitter" + @usableFromInline static let `createConstantSource`: JSString = "createConstantSource" + @usableFromInline static let `createConvolver`: JSString = "createConvolver" + @usableFromInline static let `createDelay`: JSString = "createDelay" + @usableFromInline static let `createDynamicsCompressor`: JSString = "createDynamicsCompressor" + @usableFromInline static let `createGain`: JSString = "createGain" + @usableFromInline static let `createIIRFilter`: JSString = "createIIRFilter" + @usableFromInline static let `createMediaElementSource`: JSString = "createMediaElementSource" + @usableFromInline static let `createMediaStreamDestination`: JSString = "createMediaStreamDestination" + @usableFromInline static let `createMediaStreamSource`: JSString = "createMediaStreamSource" + @usableFromInline static let `createMediaStreamTrackSource`: JSString = "createMediaStreamTrackSource" + @usableFromInline static let `createOscillator`: JSString = "createOscillator" + @usableFromInline static let `createPanner`: JSString = "createPanner" + @usableFromInline static let `createPeriodicWave`: JSString = "createPeriodicWave" + @usableFromInline static let `createScriptProcessor`: JSString = "createScriptProcessor" + @usableFromInline static let `createStereoPanner`: JSString = "createStereoPanner" + @usableFromInline static let `createWaveShaper`: JSString = "createWaveShaper" + @usableFromInline static let `currentTime`: JSString = "currentTime" + @usableFromInline static let `curve`: JSString = "curve" + @usableFromInline static let `decodeAudioData`: JSString = "decodeAudioData" + @usableFromInline static let `defaultValue`: JSString = "defaultValue" + @usableFromInline static let `delayTime`: JSString = "delayTime" + @usableFromInline static let `destination`: JSString = "destination" + @usableFromInline static let `detune`: JSString = "detune" + @usableFromInline static let `disableNormalization`: JSString = "disableNormalization" + @usableFromInline static let `disconnect`: JSString = "disconnect" + @usableFromInline static let `distanceModel`: JSString = "distanceModel" + @usableFromInline static let `duration`: JSString = "duration" + @usableFromInline static let `exponentialRampToValueAtTime`: JSString = "exponentialRampToValueAtTime" + @usableFromInline static let `feedback`: JSString = "feedback" + @usableFromInline static let `feedforward`: JSString = "feedforward" + @usableFromInline static let `fftSize`: JSString = "fftSize" + @usableFromInline static let `forwardX`: JSString = "forwardX" + @usableFromInline static let `forwardY`: JSString = "forwardY" + @usableFromInline static let `forwardZ`: JSString = "forwardZ" + @usableFromInline static let `frequency`: JSString = "frequency" + @usableFromInline static let `frequencyBinCount`: JSString = "frequencyBinCount" + @usableFromInline static let `gain`: JSString = "gain" + @usableFromInline static let `getByteFrequencyData`: JSString = "getByteFrequencyData" + @usableFromInline static let `getByteTimeDomainData`: JSString = "getByteTimeDomainData" + @usableFromInline static let `getChannelData`: JSString = "getChannelData" + @usableFromInline static let `getFloatFrequencyData`: JSString = "getFloatFrequencyData" + @usableFromInline static let `getFloatTimeDomainData`: JSString = "getFloatTimeDomainData" + @usableFromInline static let `getFrequencyResponse`: JSString = "getFrequencyResponse" + @usableFromInline static let `getOutputTimestamp`: JSString = "getOutputTimestamp" + @usableFromInline static let `imag`: JSString = "imag" + @usableFromInline static let `inputBuffer`: JSString = "inputBuffer" + @usableFromInline static let `knee`: JSString = "knee" + @usableFromInline static let `latencyHint`: JSString = "latencyHint" + @usableFromInline static let `length`: JSString = "length" + @usableFromInline static let `linearRampToValueAtTime`: JSString = "linearRampToValueAtTime" + @usableFromInline static let `listener`: JSString = "listener" + @usableFromInline static let `loop`: JSString = "loop" + @usableFromInline static let `loopEnd`: JSString = "loopEnd" + @usableFromInline static let `loopStart`: JSString = "loopStart" + @usableFromInline static let `maxChannelCount`: JSString = "maxChannelCount" + @usableFromInline static let `maxDecibels`: JSString = "maxDecibels" + @usableFromInline static let `maxDelayTime`: JSString = "maxDelayTime" + @usableFromInline static let `maxDistance`: JSString = "maxDistance" + @usableFromInline static let `maxValue`: JSString = "maxValue" + @usableFromInline static let `mediaElement`: JSString = "mediaElement" + @usableFromInline static let `mediaStream`: JSString = "mediaStream" + @usableFromInline static let `mediaStreamTrack`: JSString = "mediaStreamTrack" + @usableFromInline static let `minDecibels`: JSString = "minDecibels" + @usableFromInline static let `minValue`: JSString = "minValue" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `normalize`: JSString = "normalize" + @usableFromInline static let `numberOfChannels`: JSString = "numberOfChannels" + @usableFromInline static let `numberOfInputs`: JSString = "numberOfInputs" + @usableFromInline static let `numberOfOutputs`: JSString = "numberOfOutputs" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `onaudioprocess`: JSString = "onaudioprocess" + @usableFromInline static let `oncomplete`: JSString = "oncomplete" + @usableFromInline static let `onended`: JSString = "onended" + @usableFromInline static let `onerror`: JSString = "onerror" + @usableFromInline static let `onprocessorerror`: JSString = "onprocessorerror" + @usableFromInline static let `onsinkchange`: JSString = "onsinkchange" + @usableFromInline static let `onstatechange`: JSString = "onstatechange" + @usableFromInline static let `orientationX`: JSString = "orientationX" + @usableFromInline static let `orientationY`: JSString = "orientationY" + @usableFromInline static let `orientationZ`: JSString = "orientationZ" + @usableFromInline static let `outputBuffer`: JSString = "outputBuffer" + @usableFromInline static let `outputChannelCount`: JSString = "outputChannelCount" + @usableFromInline static let `outputLatency`: JSString = "outputLatency" + @usableFromInline static let `oversample`: JSString = "oversample" + @usableFromInline static let `pan`: JSString = "pan" + @usableFromInline static let `panningModel`: JSString = "panningModel" + @usableFromInline static let `parameterData`: JSString = "parameterData" + @usableFromInline static let `parameters`: JSString = "parameters" + @usableFromInline static let `performanceTime`: JSString = "performanceTime" + @usableFromInline static let `periodicWave`: JSString = "periodicWave" + @usableFromInline static let `playbackRate`: JSString = "playbackRate" + @usableFromInline static let `playbackTime`: JSString = "playbackTime" + @usableFromInline static let `port`: JSString = "port" + @usableFromInline static let `positionX`: JSString = "positionX" + @usableFromInline static let `positionY`: JSString = "positionY" + @usableFromInline static let `positionZ`: JSString = "positionZ" + @usableFromInline static let `processorOptions`: JSString = "processorOptions" + @usableFromInline static let `ratio`: JSString = "ratio" + @usableFromInline static let `real`: JSString = "real" + @usableFromInline static let `reduction`: JSString = "reduction" + @usableFromInline static let `refDistance`: JSString = "refDistance" + @usableFromInline static let `release`: JSString = "release" + @usableFromInline static let `renderQuantumSize`: JSString = "renderQuantumSize" + @usableFromInline static let `renderSizeHint`: JSString = "renderSizeHint" + @usableFromInline static let `renderedBuffer`: JSString = "renderedBuffer" + @usableFromInline static let `resume`: JSString = "resume" + @usableFromInline static let `rolloffFactor`: JSString = "rolloffFactor" + @usableFromInline static let `sampleRate`: JSString = "sampleRate" + @usableFromInline static let `setOrientation`: JSString = "setOrientation" + @usableFromInline static let `setPeriodicWave`: JSString = "setPeriodicWave" + @usableFromInline static let `setPosition`: JSString = "setPosition" + @usableFromInline static let `setSinkId`: JSString = "setSinkId" + @usableFromInline static let `setTargetAtTime`: JSString = "setTargetAtTime" + @usableFromInline static let `setValueAtTime`: JSString = "setValueAtTime" + @usableFromInline static let `setValueCurveAtTime`: JSString = "setValueCurveAtTime" + @usableFromInline static let `sinkId`: JSString = "sinkId" + @usableFromInline static let `smoothingTimeConstant`: JSString = "smoothingTimeConstant" + @usableFromInline static let `start`: JSString = "start" + @usableFromInline static let `startRendering`: JSString = "startRendering" + @usableFromInline static let `state`: JSString = "state" + @usableFromInline static let `stop`: JSString = "stop" + @usableFromInline static let `stream`: JSString = "stream" + @usableFromInline static let `suspend`: JSString = "suspend" + @usableFromInline static let `threshold`: JSString = "threshold" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `upX`: JSString = "upX" + @usableFromInline static let `upY`: JSString = "upY" + @usableFromInline static let `upZ`: JSString = "upZ" + @usableFromInline static let `value`: JSString = "value" } - public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {} extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {} extension Double: Any_AudioContextLatencyCategory_or_Double {} @@ -2480,12 +2602,11 @@ public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioC case audioContextLatencyCategory(AudioContextLatencyCategory) case double(Double) - init(_ audioContextLatencyCategory: AudioContextLatencyCategory) { + public init(_ audioContextLatencyCategory: AudioContextLatencyCategory) { let val: AudioContextLatencyCategory_or_Double = .audioContextLatencyCategory(audioContextLatencyCategory) self = val } - - init(_ double: Double) { + public init(_ double: Double) { let val: AudioContextLatencyCategory_or_Double = .double(double) self = val } @@ -2496,7 +2617,6 @@ public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioC default: return nil } } - public var double: Double? { switch self { case let .double(double): return double @@ -2508,22 +2628,65 @@ public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioC if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() { return .audioContextLatencyCategory(audioContextLatencyCategory) } - if let double: Double = value.fromJSValue() { - return .double(double) - } + if let double: Double = value.fromJSValue() { return .double(double) } return nil } public var jsValue: JSValue { switch self { - case let .audioContextLatencyCategory(audioContextLatencyCategory): - return audioContextLatencyCategory.jsValue - case let .double(double): - return double.jsValue + case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory.jsValue + case let .double(double): return double.jsValue } } } +public protocol Any_AudioContextRenderSizeCategory_or_UInt32: ConvertibleToJSValue {} +extension AudioContextRenderSizeCategory: Any_AudioContextRenderSizeCategory_or_UInt32 {} +extension UInt32: Any_AudioContextRenderSizeCategory_or_UInt32 {} + +public enum AudioContextRenderSizeCategory_or_UInt32: JSValueCompatible, Any_AudioContextRenderSizeCategory_or_UInt32 { + case audioContextRenderSizeCategory(AudioContextRenderSizeCategory) + case uInt32(UInt32) + + public init(_ audioContextRenderSizeCategory: AudioContextRenderSizeCategory) { + let val: AudioContextRenderSizeCategory_or_UInt32 = .audioContextRenderSizeCategory( + audioContextRenderSizeCategory + ) + self = val + } + public init(_ uInt32: UInt32) { + let val: AudioContextRenderSizeCategory_or_UInt32 = .uInt32(uInt32) + self = val + } + public var audioContextRenderSizeCategory: AudioContextRenderSizeCategory? { + switch self { + case let .audioContextRenderSizeCategory(audioContextRenderSizeCategory): return audioContextRenderSizeCategory + default: return nil + } + } + public var uInt32: UInt32? { + switch self { + case let .uInt32(uInt32): return uInt32 + default: return nil + } + } + + public static func construct(from value: JSValue) -> Self? { + if let audioContextRenderSizeCategory: AudioContextRenderSizeCategory = value.fromJSValue() { + return .audioContextRenderSizeCategory(audioContextRenderSizeCategory) + } + if let uInt32: UInt32 = value.fromJSValue() { return .uInt32(uInt32) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .audioContextRenderSizeCategory(audioContextRenderSizeCategory): + return audioContextRenderSizeCategory.jsValue + case let .uInt32(uInt32): return uInt32.jsValue + } + } +} public protocol Any_AudioSinkInfo_or_String: ConvertibleToJSValue {} extension AudioSinkInfo: Any_AudioSinkInfo_or_String {} extension String: Any_AudioSinkInfo_or_String {} @@ -2532,12 +2695,11 @@ public enum AudioSinkInfo_or_String: JSValueCompatible, Any_AudioSinkInfo_or_Str case audioSinkInfo(AudioSinkInfo) case string(String) - init(_ audioSinkInfo: AudioSinkInfo) { + public init(_ audioSinkInfo: AudioSinkInfo) { let val: AudioSinkInfo_or_String = .audioSinkInfo(audioSinkInfo) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: AudioSinkInfo_or_String = .string(string) self = val } @@ -2548,7 +2710,6 @@ public enum AudioSinkInfo_or_String: JSValueCompatible, Any_AudioSinkInfo_or_Str default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2557,25 +2718,18 @@ public enum AudioSinkInfo_or_String: JSValueCompatible, Any_AudioSinkInfo_or_Str } public static func construct(from value: JSValue) -> Self? { - if let audioSinkInfo: AudioSinkInfo = value.fromJSValue() { - return .audioSinkInfo(audioSinkInfo) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let audioSinkInfo: AudioSinkInfo = value.fromJSValue() { return .audioSinkInfo(audioSinkInfo) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .audioSinkInfo(audioSinkInfo): - return audioSinkInfo.jsValue - case let .string(string): - return string.jsValue + case let .audioSinkInfo(audioSinkInfo): return audioSinkInfo.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_AudioSinkOptions_or_String: ConvertibleToJSValue {} extension AudioSinkOptions: Any_AudioSinkOptions_or_String {} extension String: Any_AudioSinkOptions_or_String {} @@ -2584,12 +2738,11 @@ public enum AudioSinkOptions_or_String: JSValueCompatible, Any_AudioSinkOptions_ case audioSinkOptions(AudioSinkOptions) case string(String) - init(_ audioSinkOptions: AudioSinkOptions) { + public init(_ audioSinkOptions: AudioSinkOptions) { let val: AudioSinkOptions_or_String = .audioSinkOptions(audioSinkOptions) self = val } - - init(_ string: String) { + public init(_ string: String) { let val: AudioSinkOptions_or_String = .string(string) self = val } @@ -2600,7 +2753,6 @@ public enum AudioSinkOptions_or_String: JSValueCompatible, Any_AudioSinkOptions_ default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -2609,21 +2761,15 @@ public enum AudioSinkOptions_or_String: JSValueCompatible, Any_AudioSinkOptions_ } public static func construct(from value: JSValue) -> Self? { - if let audioSinkOptions: AudioSinkOptions = value.fromJSValue() { - return .audioSinkOptions(audioSinkOptions) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let audioSinkOptions: AudioSinkOptions = value.fromJSValue() { return .audioSinkOptions(audioSinkOptions) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .audioSinkOptions(audioSinkOptions): - return audioSinkOptions.jsValue - case let .string(string): - return string.jsValue + case let .audioSinkOptions(audioSinkOptions): return audioSinkOptions.jsValue + case let .string(string): return string.jsValue } } } diff --git a/Sources/WebGL1/Generated.swift b/Sources/WebGL1/Generated.swift index f8a827b6..93ec0543 100644 --- a/Sources/WebGL1/Generated.swift +++ b/Sources/WebGL1/Generated.swift @@ -3,12 +3,18 @@ import DOM import ECMAScript import JavaScriptBigIntSupport -import JavaScriptEventLoop import JavaScriptKit -import WebAnimations import WebAPIBase +import WebAnimations import WebAudio +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public typealias GLenum = UInt32 public typealias GLboolean = Bool public typealias GLbitfield = UInt32 @@ -16,6 +22,7 @@ public typealias GLbyte = Int8 public typealias GLshort = Int16 public typealias GLint = Int32 public typealias GLsizei = Int32 +public typealias GLintptr = Int32 public typealias GLsizeiptr = Int64 public typealias GLubyte = UInt8 public typealias GLushort = UInt16 @@ -28,33 +35,36 @@ public class WebGLActiveInfo: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var size: GLint + @inlinable public var size: GLint { jsObject[Strings.size].fromJSValue()! } - @ReadonlyAttribute - public var type: GLenum + @inlinable public var type: GLenum { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var name: String + @inlinable public var name: String { jsObject[Strings.name].fromJSValue()! } } public class WebGLBuffer: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLBuffer].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLBuffer].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } -public class WebGLContextAttributes: BridgedDictionary { - public convenience init(alpha: Bool, depth: Bool, stencil: Bool, antialias: Bool, premultipliedAlpha: Bool, preserveDrawingBuffer: Bool, powerPreference: WebGLPowerPreference, failIfMajorPerformanceCaveat: Bool, desynchronized: Bool) { +open class WebGLContextAttributes: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + alpha: Bool? = nil, + depth: Bool? = nil, + stencil: Bool? = nil, + antialias: Bool? = nil, + premultipliedAlpha: Bool? = nil, + preserveDrawingBuffer: Bool? = nil, + powerPreference: WebGLPowerPreference? = nil, + failIfMajorPerformanceCaveat: Bool? = nil, + desynchronized: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.alpha] = _toJSValue(alpha) object[Strings.depth] = _toJSValue(depth) @@ -65,88 +75,84 @@ public class WebGLContextAttributes: BridgedDictionary { object[Strings.powerPreference] = _toJSValue(powerPreference) object[Strings.failIfMajorPerformanceCaveat] = _toJSValue(failIfMajorPerformanceCaveat) object[Strings.desynchronized] = _toJSValue(desynchronized) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - _depth = ReadWriteAttribute(jsObject: object, name: Strings.depth) - _stencil = ReadWriteAttribute(jsObject: object, name: Strings.stencil) - _antialias = ReadWriteAttribute(jsObject: object, name: Strings.antialias) - _premultipliedAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultipliedAlpha) - _preserveDrawingBuffer = ReadWriteAttribute(jsObject: object, name: Strings.preserveDrawingBuffer) - _powerPreference = ReadWriteAttribute(jsObject: object, name: Strings.powerPreference) - _failIfMajorPerformanceCaveat = ReadWriteAttribute(jsObject: object, name: Strings.failIfMajorPerformanceCaveat) - _desynchronized = ReadWriteAttribute(jsObject: object, name: Strings.desynchronized) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var alpha: Bool - - @ReadWriteAttribute - public var depth: Bool - - @ReadWriteAttribute - public var stencil: Bool - - @ReadWriteAttribute - public var antialias: Bool - - @ReadWriteAttribute - public var premultipliedAlpha: Bool - - @ReadWriteAttribute - public var preserveDrawingBuffer: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var powerPreference: WebGLPowerPreference - - @ReadWriteAttribute - public var failIfMajorPerformanceCaveat: Bool - - @ReadWriteAttribute - public var desynchronized: Bool + @inlinable public var alpha: Bool { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } + @inlinable public var depth: Bool { + get { jsObject[Strings.depth].fromJSValue()! } + set { jsObject[Strings.depth] = _toJSValue(newValue) } + } + @inlinable public var stencil: Bool { + get { jsObject[Strings.stencil].fromJSValue()! } + set { jsObject[Strings.stencil] = _toJSValue(newValue) } + } + @inlinable public var antialias: Bool { + get { jsObject[Strings.antialias].fromJSValue()! } + set { jsObject[Strings.antialias] = _toJSValue(newValue) } + } + @inlinable public var premultipliedAlpha: Bool { + get { jsObject[Strings.premultipliedAlpha].fromJSValue()! } + set { jsObject[Strings.premultipliedAlpha] = _toJSValue(newValue) } + } + @inlinable public var preserveDrawingBuffer: Bool { + get { jsObject[Strings.preserveDrawingBuffer].fromJSValue()! } + set { jsObject[Strings.preserveDrawingBuffer] = _toJSValue(newValue) } + } + @inlinable public var powerPreference: WebGLPowerPreference { + get { jsObject[Strings.powerPreference].fromJSValue()! } + set { jsObject[Strings.powerPreference] = _toJSValue(newValue) } + } + @inlinable public var failIfMajorPerformanceCaveat: Bool { + get { jsObject[Strings.failIfMajorPerformanceCaveat].fromJSValue()! } + set { jsObject[Strings.failIfMajorPerformanceCaveat] = _toJSValue(newValue) } + } + @inlinable public var desynchronized: Bool { + get { jsObject[Strings.desynchronized].fromJSValue()! } + set { jsObject[Strings.desynchronized] = _toJSValue(newValue) } + } } - public class WebGLContextEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLContextEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _statusMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.statusMessage) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.WebGLContextEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, eventInit: WebGLContextEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInit)])) } - @ReadonlyAttribute - public var statusMessage: String + @inlinable public var statusMessage: String { jsObject[Strings.statusMessage].fromJSValue()! } } -public class WebGLContextEventInit: BridgedDictionary { - public convenience init(statusMessage: String) { +open class WebGLContextEventInit: EventInit { + + public convenience init(statusMessage: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.statusMessage] = _toJSValue(statusMessage) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _statusMessage = ReadWriteAttribute(jsObject: object, name: Strings.statusMessage) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var statusMessage: String + @inlinable public var statusMessage: String { + get { jsObject[Strings.statusMessage].fromJSValue()! } + set { jsObject[Strings.statusMessage] = _toJSValue(newValue) } + } } - public class WebGLFramebuffer: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLFramebuffer].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLFramebuffer].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } open class WebGLObject: JSBridgedClass { @@ -154,8 +160,11 @@ open class WebGLObject: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var label: String { + get { jsObject[Strings.label].fromJSValue()! } + set { jsObject[Strings.label] = _toJSValue(newValue) } } } @@ -165,33 +174,28 @@ public enum WebGLPowerPreference: JSString, JSValueCompatible { case highPerformance = "high-performance" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class WebGLProgram: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLProgram].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLProgram].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLRenderbuffer: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLRenderbuffer].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.WebGLRenderbuffer].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class WebGLRenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGLRenderingContextOverloads { @@ -199,1356 +203,1669 @@ public class WebGLRenderingContext: JSBridgedClass, WebGLRenderingContextBase, W public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } public protocol WebGLRenderingContextBase: JSBridgedClass {} -public extension WebGLRenderingContextBase { - @inlinable static var DEPTH_BUFFER_BIT: GLenum { 0x0000_0100 } +extension WebGLRenderingContextBase { + @inlinable public static var DEPTH_BUFFER_BIT: GLenum { 0x0000_0100 } - @inlinable static var STENCIL_BUFFER_BIT: GLenum { 0x0000_0400 } + @inlinable public static var STENCIL_BUFFER_BIT: GLenum { 0x0000_0400 } - @inlinable static var COLOR_BUFFER_BIT: GLenum { 0x0000_4000 } + @inlinable public static var COLOR_BUFFER_BIT: GLenum { 0x0000_4000 } - @inlinable static var POINTS: GLenum { 0x0000 } + @inlinable public static var POINTS: GLenum { 0x0000 } - @inlinable static var LINES: GLenum { 0x0001 } + @inlinable public static var LINES: GLenum { 0x0001 } - @inlinable static var LINE_LOOP: GLenum { 0x0002 } + @inlinable public static var LINE_LOOP: GLenum { 0x0002 } - @inlinable static var LINE_STRIP: GLenum { 0x0003 } + @inlinable public static var LINE_STRIP: GLenum { 0x0003 } - @inlinable static var TRIANGLES: GLenum { 0x0004 } + @inlinable public static var TRIANGLES: GLenum { 0x0004 } - @inlinable static var TRIANGLE_STRIP: GLenum { 0x0005 } + @inlinable public static var TRIANGLE_STRIP: GLenum { 0x0005 } - @inlinable static var TRIANGLE_FAN: GLenum { 0x0006 } + @inlinable public static var TRIANGLE_FAN: GLenum { 0x0006 } - @inlinable static var ZERO: GLenum { 0 } + @inlinable public static var ZERO: GLenum { 0 } - @inlinable static var ONE: GLenum { 1 } + @inlinable public static var ONE: GLenum { 1 } - @inlinable static var SRC_COLOR: GLenum { 0x0300 } + @inlinable public static var SRC_COLOR: GLenum { 0x0300 } - @inlinable static var ONE_MINUS_SRC_COLOR: GLenum { 0x0301 } + @inlinable public static var ONE_MINUS_SRC_COLOR: GLenum { 0x0301 } - @inlinable static var SRC_ALPHA: GLenum { 0x0302 } + @inlinable public static var SRC_ALPHA: GLenum { 0x0302 } - @inlinable static var ONE_MINUS_SRC_ALPHA: GLenum { 0x0303 } + @inlinable public static var ONE_MINUS_SRC_ALPHA: GLenum { 0x0303 } - @inlinable static var DST_ALPHA: GLenum { 0x0304 } + @inlinable public static var DST_ALPHA: GLenum { 0x0304 } - @inlinable static var ONE_MINUS_DST_ALPHA: GLenum { 0x0305 } + @inlinable public static var ONE_MINUS_DST_ALPHA: GLenum { 0x0305 } - @inlinable static var DST_COLOR: GLenum { 0x0306 } + @inlinable public static var DST_COLOR: GLenum { 0x0306 } - @inlinable static var ONE_MINUS_DST_COLOR: GLenum { 0x0307 } + @inlinable public static var ONE_MINUS_DST_COLOR: GLenum { 0x0307 } - @inlinable static var SRC_ALPHA_SATURATE: GLenum { 0x0308 } + @inlinable public static var SRC_ALPHA_SATURATE: GLenum { 0x0308 } - @inlinable static var FUNC_ADD: GLenum { 0x8006 } + @inlinable public static var FUNC_ADD: GLenum { 0x8006 } - @inlinable static var BLEND_EQUATION: GLenum { 0x8009 } + @inlinable public static var BLEND_EQUATION: GLenum { 0x8009 } - @inlinable static var BLEND_EQUATION_RGB: GLenum { 0x8009 } + @inlinable public static var BLEND_EQUATION_RGB: GLenum { 0x8009 } - @inlinable static var BLEND_EQUATION_ALPHA: GLenum { 0x883D } + @inlinable public static var BLEND_EQUATION_ALPHA: GLenum { 0x883D } - @inlinable static var FUNC_SUBTRACT: GLenum { 0x800A } + @inlinable public static var FUNC_SUBTRACT: GLenum { 0x800A } - @inlinable static var FUNC_REVERSE_SUBTRACT: GLenum { 0x800B } + @inlinable public static var FUNC_REVERSE_SUBTRACT: GLenum { 0x800B } - @inlinable static var BLEND_DST_RGB: GLenum { 0x80C8 } + @inlinable public static var BLEND_DST_RGB: GLenum { 0x80C8 } - @inlinable static var BLEND_SRC_RGB: GLenum { 0x80C9 } + @inlinable public static var BLEND_SRC_RGB: GLenum { 0x80C9 } - @inlinable static var BLEND_DST_ALPHA: GLenum { 0x80CA } + @inlinable public static var BLEND_DST_ALPHA: GLenum { 0x80CA } - @inlinable static var BLEND_SRC_ALPHA: GLenum { 0x80CB } + @inlinable public static var BLEND_SRC_ALPHA: GLenum { 0x80CB } - @inlinable static var CONSTANT_COLOR: GLenum { 0x8001 } + @inlinable public static var CONSTANT_COLOR: GLenum { 0x8001 } - @inlinable static var ONE_MINUS_CONSTANT_COLOR: GLenum { 0x8002 } + @inlinable public static var ONE_MINUS_CONSTANT_COLOR: GLenum { 0x8002 } - @inlinable static var CONSTANT_ALPHA: GLenum { 0x8003 } + @inlinable public static var CONSTANT_ALPHA: GLenum { 0x8003 } - @inlinable static var ONE_MINUS_CONSTANT_ALPHA: GLenum { 0x8004 } + @inlinable public static var ONE_MINUS_CONSTANT_ALPHA: GLenum { 0x8004 } - @inlinable static var BLEND_COLOR: GLenum { 0x8005 } + @inlinable public static var BLEND_COLOR: GLenum { 0x8005 } - @inlinable static var ARRAY_BUFFER: GLenum { 0x8892 } + @inlinable public static var ARRAY_BUFFER: GLenum { 0x8892 } - @inlinable static var ELEMENT_ARRAY_BUFFER: GLenum { 0x8893 } + @inlinable public static var ELEMENT_ARRAY_BUFFER: GLenum { 0x8893 } - @inlinable static var ARRAY_BUFFER_BINDING: GLenum { 0x8894 } + @inlinable public static var ARRAY_BUFFER_BINDING: GLenum { 0x8894 } - @inlinable static var ELEMENT_ARRAY_BUFFER_BINDING: GLenum { 0x8895 } + @inlinable public static var ELEMENT_ARRAY_BUFFER_BINDING: GLenum { 0x8895 } - @inlinable static var STREAM_DRAW: GLenum { 0x88E0 } + @inlinable public static var STREAM_DRAW: GLenum { 0x88E0 } - @inlinable static var STATIC_DRAW: GLenum { 0x88E4 } + @inlinable public static var STATIC_DRAW: GLenum { 0x88E4 } - @inlinable static var DYNAMIC_DRAW: GLenum { 0x88E8 } + @inlinable public static var DYNAMIC_DRAW: GLenum { 0x88E8 } - @inlinable static var BUFFER_SIZE: GLenum { 0x8764 } + @inlinable public static var BUFFER_SIZE: GLenum { 0x8764 } - @inlinable static var BUFFER_USAGE: GLenum { 0x8765 } + @inlinable public static var BUFFER_USAGE: GLenum { 0x8765 } - @inlinable static var CURRENT_VERTEX_ATTRIB: GLenum { 0x8626 } + @inlinable public static var CURRENT_VERTEX_ATTRIB: GLenum { 0x8626 } - @inlinable static var FRONT: GLenum { 0x0404 } + @inlinable public static var FRONT: GLenum { 0x0404 } - @inlinable static var BACK: GLenum { 0x0405 } + @inlinable public static var BACK: GLenum { 0x0405 } - @inlinable static var FRONT_AND_BACK: GLenum { 0x0408 } + @inlinable public static var FRONT_AND_BACK: GLenum { 0x0408 } - @inlinable static var CULL_FACE: GLenum { 0x0B44 } + @inlinable public static var CULL_FACE: GLenum { 0x0B44 } - @inlinable static var BLEND: GLenum { 0x0BE2 } + @inlinable public static var BLEND: GLenum { 0x0BE2 } - @inlinable static var DITHER: GLenum { 0x0BD0 } + @inlinable public static var DITHER: GLenum { 0x0BD0 } - @inlinable static var STENCIL_TEST: GLenum { 0x0B90 } + @inlinable public static var STENCIL_TEST: GLenum { 0x0B90 } - @inlinable static var DEPTH_TEST: GLenum { 0x0B71 } + @inlinable public static var DEPTH_TEST: GLenum { 0x0B71 } - @inlinable static var SCISSOR_TEST: GLenum { 0x0C11 } + @inlinable public static var SCISSOR_TEST: GLenum { 0x0C11 } - @inlinable static var POLYGON_OFFSET_FILL: GLenum { 0x8037 } + @inlinable public static var POLYGON_OFFSET_FILL: GLenum { 0x8037 } - @inlinable static var SAMPLE_ALPHA_TO_COVERAGE: GLenum { 0x809E } + @inlinable public static var SAMPLE_ALPHA_TO_COVERAGE: GLenum { 0x809E } - @inlinable static var SAMPLE_COVERAGE: GLenum { 0x80A0 } + @inlinable public static var SAMPLE_COVERAGE: GLenum { 0x80A0 } - @inlinable static var NO_ERROR: GLenum { 0 } + @inlinable public static var NO_ERROR: GLenum { 0 } - @inlinable static var INVALID_ENUM: GLenum { 0x0500 } + @inlinable public static var INVALID_ENUM: GLenum { 0x0500 } - @inlinable static var INVALID_VALUE: GLenum { 0x0501 } + @inlinable public static var INVALID_VALUE: GLenum { 0x0501 } - @inlinable static var INVALID_OPERATION: GLenum { 0x0502 } + @inlinable public static var INVALID_OPERATION: GLenum { 0x0502 } - @inlinable static var OUT_OF_MEMORY: GLenum { 0x0505 } + @inlinable public static var OUT_OF_MEMORY: GLenum { 0x0505 } - @inlinable static var CW: GLenum { 0x0900 } + @inlinable public static var CW: GLenum { 0x0900 } - @inlinable static var CCW: GLenum { 0x0901 } + @inlinable public static var CCW: GLenum { 0x0901 } - @inlinable static var LINE_WIDTH: GLenum { 0x0B21 } + @inlinable public static var LINE_WIDTH: GLenum { 0x0B21 } - @inlinable static var ALIASED_POINT_SIZE_RANGE: GLenum { 0x846D } + @inlinable public static var ALIASED_POINT_SIZE_RANGE: GLenum { 0x846D } - @inlinable static var ALIASED_LINE_WIDTH_RANGE: GLenum { 0x846E } + @inlinable public static var ALIASED_LINE_WIDTH_RANGE: GLenum { 0x846E } - @inlinable static var CULL_FACE_MODE: GLenum { 0x0B45 } + @inlinable public static var CULL_FACE_MODE: GLenum { 0x0B45 } - @inlinable static var FRONT_FACE: GLenum { 0x0B46 } + @inlinable public static var FRONT_FACE: GLenum { 0x0B46 } - @inlinable static var DEPTH_RANGE: GLenum { 0x0B70 } + @inlinable public static var DEPTH_RANGE: GLenum { 0x0B70 } - @inlinable static var DEPTH_WRITEMASK: GLenum { 0x0B72 } + @inlinable public static var DEPTH_WRITEMASK: GLenum { 0x0B72 } - @inlinable static var DEPTH_CLEAR_VALUE: GLenum { 0x0B73 } + @inlinable public static var DEPTH_CLEAR_VALUE: GLenum { 0x0B73 } - @inlinable static var DEPTH_FUNC: GLenum { 0x0B74 } + @inlinable public static var DEPTH_FUNC: GLenum { 0x0B74 } - @inlinable static var STENCIL_CLEAR_VALUE: GLenum { 0x0B91 } + @inlinable public static var STENCIL_CLEAR_VALUE: GLenum { 0x0B91 } - @inlinable static var STENCIL_FUNC: GLenum { 0x0B92 } + @inlinable public static var STENCIL_FUNC: GLenum { 0x0B92 } - @inlinable static var STENCIL_FAIL: GLenum { 0x0B94 } + @inlinable public static var STENCIL_FAIL: GLenum { 0x0B94 } - @inlinable static var STENCIL_PASS_DEPTH_FAIL: GLenum { 0x0B95 } + @inlinable public static var STENCIL_PASS_DEPTH_FAIL: GLenum { 0x0B95 } - @inlinable static var STENCIL_PASS_DEPTH_PASS: GLenum { 0x0B96 } + @inlinable public static var STENCIL_PASS_DEPTH_PASS: GLenum { 0x0B96 } - @inlinable static var STENCIL_REF: GLenum { 0x0B97 } + @inlinable public static var STENCIL_REF: GLenum { 0x0B97 } - @inlinable static var STENCIL_VALUE_MASK: GLenum { 0x0B93 } + @inlinable public static var STENCIL_VALUE_MASK: GLenum { 0x0B93 } - @inlinable static var STENCIL_WRITEMASK: GLenum { 0x0B98 } + @inlinable public static var STENCIL_WRITEMASK: GLenum { 0x0B98 } - @inlinable static var STENCIL_BACK_FUNC: GLenum { 0x8800 } + @inlinable public static var STENCIL_BACK_FUNC: GLenum { 0x8800 } - @inlinable static var STENCIL_BACK_FAIL: GLenum { 0x8801 } + @inlinable public static var STENCIL_BACK_FAIL: GLenum { 0x8801 } - @inlinable static var STENCIL_BACK_PASS_DEPTH_FAIL: GLenum { 0x8802 } + @inlinable public static var STENCIL_BACK_PASS_DEPTH_FAIL: GLenum { 0x8802 } - @inlinable static var STENCIL_BACK_PASS_DEPTH_PASS: GLenum { 0x8803 } + @inlinable public static var STENCIL_BACK_PASS_DEPTH_PASS: GLenum { 0x8803 } - @inlinable static var STENCIL_BACK_REF: GLenum { 0x8CA3 } + @inlinable public static var STENCIL_BACK_REF: GLenum { 0x8CA3 } - @inlinable static var STENCIL_BACK_VALUE_MASK: GLenum { 0x8CA4 } + @inlinable public static var STENCIL_BACK_VALUE_MASK: GLenum { 0x8CA4 } - @inlinable static var STENCIL_BACK_WRITEMASK: GLenum { 0x8CA5 } + @inlinable public static var STENCIL_BACK_WRITEMASK: GLenum { 0x8CA5 } - @inlinable static var VIEWPORT: GLenum { 0x0BA2 } + @inlinable public static var VIEWPORT: GLenum { 0x0BA2 } - @inlinable static var SCISSOR_BOX: GLenum { 0x0C10 } + @inlinable public static var SCISSOR_BOX: GLenum { 0x0C10 } - @inlinable static var COLOR_CLEAR_VALUE: GLenum { 0x0C22 } + @inlinable public static var COLOR_CLEAR_VALUE: GLenum { 0x0C22 } - @inlinable static var COLOR_WRITEMASK: GLenum { 0x0C23 } + @inlinable public static var COLOR_WRITEMASK: GLenum { 0x0C23 } - @inlinable static var UNPACK_ALIGNMENT: GLenum { 0x0CF5 } + @inlinable public static var UNPACK_ALIGNMENT: GLenum { 0x0CF5 } - @inlinable static var PACK_ALIGNMENT: GLenum { 0x0D05 } + @inlinable public static var PACK_ALIGNMENT: GLenum { 0x0D05 } - @inlinable static var MAX_TEXTURE_SIZE: GLenum { 0x0D33 } + @inlinable public static var MAX_TEXTURE_SIZE: GLenum { 0x0D33 } - @inlinable static var MAX_VIEWPORT_DIMS: GLenum { 0x0D3A } + @inlinable public static var MAX_VIEWPORT_DIMS: GLenum { 0x0D3A } - @inlinable static var SUBPIXEL_BITS: GLenum { 0x0D50 } + @inlinable public static var SUBPIXEL_BITS: GLenum { 0x0D50 } - @inlinable static var RED_BITS: GLenum { 0x0D52 } + @inlinable public static var RED_BITS: GLenum { 0x0D52 } - @inlinable static var GREEN_BITS: GLenum { 0x0D53 } + @inlinable public static var GREEN_BITS: GLenum { 0x0D53 } - @inlinable static var BLUE_BITS: GLenum { 0x0D54 } + @inlinable public static var BLUE_BITS: GLenum { 0x0D54 } - @inlinable static var ALPHA_BITS: GLenum { 0x0D55 } + @inlinable public static var ALPHA_BITS: GLenum { 0x0D55 } - @inlinable static var DEPTH_BITS: GLenum { 0x0D56 } + @inlinable public static var DEPTH_BITS: GLenum { 0x0D56 } - @inlinable static var STENCIL_BITS: GLenum { 0x0D57 } + @inlinable public static var STENCIL_BITS: GLenum { 0x0D57 } - @inlinable static var POLYGON_OFFSET_UNITS: GLenum { 0x2A00 } + @inlinable public static var POLYGON_OFFSET_UNITS: GLenum { 0x2A00 } - @inlinable static var POLYGON_OFFSET_FACTOR: GLenum { 0x8038 } + @inlinable public static var POLYGON_OFFSET_FACTOR: GLenum { 0x8038 } - @inlinable static var TEXTURE_BINDING_2D: GLenum { 0x8069 } + @inlinable public static var TEXTURE_BINDING_2D: GLenum { 0x8069 } - @inlinable static var SAMPLE_BUFFERS: GLenum { 0x80A8 } + @inlinable public static var SAMPLE_BUFFERS: GLenum { 0x80A8 } - @inlinable static var SAMPLES: GLenum { 0x80A9 } + @inlinable public static var SAMPLES: GLenum { 0x80A9 } - @inlinable static var SAMPLE_COVERAGE_VALUE: GLenum { 0x80AA } + @inlinable public static var SAMPLE_COVERAGE_VALUE: GLenum { 0x80AA } - @inlinable static var SAMPLE_COVERAGE_INVERT: GLenum { 0x80AB } + @inlinable public static var SAMPLE_COVERAGE_INVERT: GLenum { 0x80AB } - @inlinable static var COMPRESSED_TEXTURE_FORMATS: GLenum { 0x86A3 } + @inlinable public static var COMPRESSED_TEXTURE_FORMATS: GLenum { 0x86A3 } - @inlinable static var DONT_CARE: GLenum { 0x1100 } + @inlinable public static var DONT_CARE: GLenum { 0x1100 } - @inlinable static var FASTEST: GLenum { 0x1101 } + @inlinable public static var FASTEST: GLenum { 0x1101 } - @inlinable static var NICEST: GLenum { 0x1102 } + @inlinable public static var NICEST: GLenum { 0x1102 } - @inlinable static var GENERATE_MIPMAP_HINT: GLenum { 0x8192 } + @inlinable public static var GENERATE_MIPMAP_HINT: GLenum { 0x8192 } - @inlinable static var BYTE: GLenum { 0x1400 } + @inlinable public static var BYTE: GLenum { 0x1400 } - @inlinable static var UNSIGNED_BYTE: GLenum { 0x1401 } + @inlinable public static var UNSIGNED_BYTE: GLenum { 0x1401 } - @inlinable static var SHORT: GLenum { 0x1402 } + @inlinable public static var SHORT: GLenum { 0x1402 } - @inlinable static var UNSIGNED_SHORT: GLenum { 0x1403 } + @inlinable public static var UNSIGNED_SHORT: GLenum { 0x1403 } - @inlinable static var INT: GLenum { 0x1404 } + @inlinable public static var INT: GLenum { 0x1404 } - @inlinable static var UNSIGNED_INT: GLenum { 0x1405 } + @inlinable public static var UNSIGNED_INT: GLenum { 0x1405 } - @inlinable static var FLOAT: GLenum { 0x1406 } + @inlinable public static var FLOAT: GLenum { 0x1406 } - @inlinable static var DEPTH_COMPONENT: GLenum { 0x1902 } + @inlinable public static var DEPTH_COMPONENT: GLenum { 0x1902 } - @inlinable static var ALPHA: GLenum { 0x1906 } + @inlinable public static var ALPHA: GLenum { 0x1906 } - @inlinable static var RGB: GLenum { 0x1907 } + @inlinable public static var RGB: GLenum { 0x1907 } - @inlinable static var RGBA: GLenum { 0x1908 } + @inlinable public static var RGBA: GLenum { 0x1908 } - @inlinable static var LUMINANCE: GLenum { 0x1909 } + @inlinable public static var LUMINANCE: GLenum { 0x1909 } - @inlinable static var LUMINANCE_ALPHA: GLenum { 0x190A } + @inlinable public static var LUMINANCE_ALPHA: GLenum { 0x190A } - @inlinable static var UNSIGNED_SHORT_4_4_4_4: GLenum { 0x8033 } + @inlinable public static var UNSIGNED_SHORT_4_4_4_4: GLenum { 0x8033 } - @inlinable static var UNSIGNED_SHORT_5_5_5_1: GLenum { 0x8034 } + @inlinable public static var UNSIGNED_SHORT_5_5_5_1: GLenum { 0x8034 } - @inlinable static var UNSIGNED_SHORT_5_6_5: GLenum { 0x8363 } + @inlinable public static var UNSIGNED_SHORT_5_6_5: GLenum { 0x8363 } - @inlinable static var FRAGMENT_SHADER: GLenum { 0x8B30 } + @inlinable public static var FRAGMENT_SHADER: GLenum { 0x8B30 } - @inlinable static var VERTEX_SHADER: GLenum { 0x8B31 } + @inlinable public static var VERTEX_SHADER: GLenum { 0x8B31 } - @inlinable static var MAX_VERTEX_ATTRIBS: GLenum { 0x8869 } + @inlinable public static var MAX_VERTEX_ATTRIBS: GLenum { 0x8869 } - @inlinable static var MAX_VERTEX_UNIFORM_VECTORS: GLenum { 0x8DFB } + @inlinable public static var MAX_VERTEX_UNIFORM_VECTORS: GLenum { 0x8DFB } - @inlinable static var MAX_VARYING_VECTORS: GLenum { 0x8DFC } + @inlinable public static var MAX_VARYING_VECTORS: GLenum { 0x8DFC } - @inlinable static var MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4D } + @inlinable public static var MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4D } - @inlinable static var MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4C } + @inlinable public static var MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4C } - @inlinable static var MAX_TEXTURE_IMAGE_UNITS: GLenum { 0x8872 } + @inlinable public static var MAX_TEXTURE_IMAGE_UNITS: GLenum { 0x8872 } - @inlinable static var MAX_FRAGMENT_UNIFORM_VECTORS: GLenum { 0x8DFD } + @inlinable public static var MAX_FRAGMENT_UNIFORM_VECTORS: GLenum { 0x8DFD } - @inlinable static var SHADER_TYPE: GLenum { 0x8B4F } + @inlinable public static var SHADER_TYPE: GLenum { 0x8B4F } - @inlinable static var DELETE_STATUS: GLenum { 0x8B80 } + @inlinable public static var DELETE_STATUS: GLenum { 0x8B80 } - @inlinable static var LINK_STATUS: GLenum { 0x8B82 } + @inlinable public static var LINK_STATUS: GLenum { 0x8B82 } - @inlinable static var VALIDATE_STATUS: GLenum { 0x8B83 } + @inlinable public static var VALIDATE_STATUS: GLenum { 0x8B83 } - @inlinable static var ATTACHED_SHADERS: GLenum { 0x8B85 } + @inlinable public static var ATTACHED_SHADERS: GLenum { 0x8B85 } - @inlinable static var ACTIVE_UNIFORMS: GLenum { 0x8B86 } + @inlinable public static var ACTIVE_UNIFORMS: GLenum { 0x8B86 } - @inlinable static var ACTIVE_ATTRIBUTES: GLenum { 0x8B89 } + @inlinable public static var ACTIVE_ATTRIBUTES: GLenum { 0x8B89 } - @inlinable static var SHADING_LANGUAGE_VERSION: GLenum { 0x8B8C } + @inlinable public static var SHADING_LANGUAGE_VERSION: GLenum { 0x8B8C } - @inlinable static var CURRENT_PROGRAM: GLenum { 0x8B8D } + @inlinable public static var CURRENT_PROGRAM: GLenum { 0x8B8D } - @inlinable static var NEVER: GLenum { 0x0200 } + @inlinable public static var NEVER: GLenum { 0x0200 } - @inlinable static var LESS: GLenum { 0x0201 } + @inlinable public static var LESS: GLenum { 0x0201 } - @inlinable static var EQUAL: GLenum { 0x0202 } + @inlinable public static var EQUAL: GLenum { 0x0202 } - @inlinable static var LEQUAL: GLenum { 0x0203 } + @inlinable public static var LEQUAL: GLenum { 0x0203 } - @inlinable static var GREATER: GLenum { 0x0204 } + @inlinable public static var GREATER: GLenum { 0x0204 } - @inlinable static var NOTEQUAL: GLenum { 0x0205 } + @inlinable public static var NOTEQUAL: GLenum { 0x0205 } - @inlinable static var GEQUAL: GLenum { 0x0206 } + @inlinable public static var GEQUAL: GLenum { 0x0206 } - @inlinable static var ALWAYS: GLenum { 0x0207 } + @inlinable public static var ALWAYS: GLenum { 0x0207 } - @inlinable static var KEEP: GLenum { 0x1E00 } + @inlinable public static var KEEP: GLenum { 0x1E00 } - @inlinable static var REPLACE: GLenum { 0x1E01 } + @inlinable public static var REPLACE: GLenum { 0x1E01 } - @inlinable static var INCR: GLenum { 0x1E02 } + @inlinable public static var INCR: GLenum { 0x1E02 } - @inlinable static var DECR: GLenum { 0x1E03 } + @inlinable public static var DECR: GLenum { 0x1E03 } - @inlinable static var INVERT: GLenum { 0x150A } + @inlinable public static var INVERT: GLenum { 0x150A } - @inlinable static var INCR_WRAP: GLenum { 0x8507 } + @inlinable public static var INCR_WRAP: GLenum { 0x8507 } - @inlinable static var DECR_WRAP: GLenum { 0x8508 } + @inlinable public static var DECR_WRAP: GLenum { 0x8508 } - @inlinable static var VENDOR: GLenum { 0x1F00 } + @inlinable public static var VENDOR: GLenum { 0x1F00 } - @inlinable static var RENDERER: GLenum { 0x1F01 } + @inlinable public static var RENDERER: GLenum { 0x1F01 } - @inlinable static var VERSION: GLenum { 0x1F02 } + @inlinable public static var VERSION: GLenum { 0x1F02 } - @inlinable static var NEAREST: GLenum { 0x2600 } + @inlinable public static var NEAREST: GLenum { 0x2600 } - @inlinable static var LINEAR: GLenum { 0x2601 } + @inlinable public static var LINEAR: GLenum { 0x2601 } - @inlinable static var NEAREST_MIPMAP_NEAREST: GLenum { 0x2700 } + @inlinable public static var NEAREST_MIPMAP_NEAREST: GLenum { 0x2700 } - @inlinable static var LINEAR_MIPMAP_NEAREST: GLenum { 0x2701 } + @inlinable public static var LINEAR_MIPMAP_NEAREST: GLenum { 0x2701 } - @inlinable static var NEAREST_MIPMAP_LINEAR: GLenum { 0x2702 } + @inlinable public static var NEAREST_MIPMAP_LINEAR: GLenum { 0x2702 } - @inlinable static var LINEAR_MIPMAP_LINEAR: GLenum { 0x2703 } + @inlinable public static var LINEAR_MIPMAP_LINEAR: GLenum { 0x2703 } - @inlinable static var TEXTURE_MAG_FILTER: GLenum { 0x2800 } + @inlinable public static var TEXTURE_MAG_FILTER: GLenum { 0x2800 } - @inlinable static var TEXTURE_MIN_FILTER: GLenum { 0x2801 } + @inlinable public static var TEXTURE_MIN_FILTER: GLenum { 0x2801 } - @inlinable static var TEXTURE_WRAP_S: GLenum { 0x2802 } + @inlinable public static var TEXTURE_WRAP_S: GLenum { 0x2802 } - @inlinable static var TEXTURE_WRAP_T: GLenum { 0x2803 } + @inlinable public static var TEXTURE_WRAP_T: GLenum { 0x2803 } - @inlinable static var TEXTURE_2D: GLenum { 0x0DE1 } + @inlinable public static var TEXTURE_2D: GLenum { 0x0DE1 } - @inlinable static var TEXTURE: GLenum { 0x1702 } + @inlinable public static var TEXTURE: GLenum { 0x1702 } - @inlinable static var TEXTURE_CUBE_MAP: GLenum { 0x8513 } + @inlinable public static var TEXTURE_CUBE_MAP: GLenum { 0x8513 } - @inlinable static var TEXTURE_BINDING_CUBE_MAP: GLenum { 0x8514 } + @inlinable public static var TEXTURE_BINDING_CUBE_MAP: GLenum { 0x8514 } - @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_X: GLenum { 0x8515 } + @inlinable public static var TEXTURE_CUBE_MAP_POSITIVE_X: GLenum { 0x8515 } - @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum { 0x8516 } + @inlinable public static var TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum { 0x8516 } - @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum { 0x8517 } + @inlinable public static var TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum { 0x8517 } - @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum { 0x8518 } + @inlinable public static var TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum { 0x8518 } - @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum { 0x8519 } + @inlinable public static var TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum { 0x8519 } - @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum { 0x851A } + @inlinable public static var TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum { 0x851A } - @inlinable static var MAX_CUBE_MAP_TEXTURE_SIZE: GLenum { 0x851C } + @inlinable public static var MAX_CUBE_MAP_TEXTURE_SIZE: GLenum { 0x851C } - @inlinable static var TEXTURE0: GLenum { 0x84C0 } + @inlinable public static var TEXTURE0: GLenum { 0x84C0 } - @inlinable static var TEXTURE1: GLenum { 0x84C1 } + @inlinable public static var TEXTURE1: GLenum { 0x84C1 } - @inlinable static var TEXTURE2: GLenum { 0x84C2 } + @inlinable public static var TEXTURE2: GLenum { 0x84C2 } - @inlinable static var TEXTURE3: GLenum { 0x84C3 } + @inlinable public static var TEXTURE3: GLenum { 0x84C3 } - @inlinable static var TEXTURE4: GLenum { 0x84C4 } + @inlinable public static var TEXTURE4: GLenum { 0x84C4 } - @inlinable static var TEXTURE5: GLenum { 0x84C5 } + @inlinable public static var TEXTURE5: GLenum { 0x84C5 } - @inlinable static var TEXTURE6: GLenum { 0x84C6 } + @inlinable public static var TEXTURE6: GLenum { 0x84C6 } - @inlinable static var TEXTURE7: GLenum { 0x84C7 } + @inlinable public static var TEXTURE7: GLenum { 0x84C7 } - @inlinable static var TEXTURE8: GLenum { 0x84C8 } + @inlinable public static var TEXTURE8: GLenum { 0x84C8 } - @inlinable static var TEXTURE9: GLenum { 0x84C9 } + @inlinable public static var TEXTURE9: GLenum { 0x84C9 } - @inlinable static var TEXTURE10: GLenum { 0x84CA } + @inlinable public static var TEXTURE10: GLenum { 0x84CA } - @inlinable static var TEXTURE11: GLenum { 0x84CB } + @inlinable public static var TEXTURE11: GLenum { 0x84CB } - @inlinable static var TEXTURE12: GLenum { 0x84CC } + @inlinable public static var TEXTURE12: GLenum { 0x84CC } - @inlinable static var TEXTURE13: GLenum { 0x84CD } + @inlinable public static var TEXTURE13: GLenum { 0x84CD } - @inlinable static var TEXTURE14: GLenum { 0x84CE } + @inlinable public static var TEXTURE14: GLenum { 0x84CE } - @inlinable static var TEXTURE15: GLenum { 0x84CF } + @inlinable public static var TEXTURE15: GLenum { 0x84CF } - @inlinable static var TEXTURE16: GLenum { 0x84D0 } + @inlinable public static var TEXTURE16: GLenum { 0x84D0 } - @inlinable static var TEXTURE17: GLenum { 0x84D1 } + @inlinable public static var TEXTURE17: GLenum { 0x84D1 } - @inlinable static var TEXTURE18: GLenum { 0x84D2 } + @inlinable public static var TEXTURE18: GLenum { 0x84D2 } - @inlinable static var TEXTURE19: GLenum { 0x84D3 } + @inlinable public static var TEXTURE19: GLenum { 0x84D3 } - @inlinable static var TEXTURE20: GLenum { 0x84D4 } + @inlinable public static var TEXTURE20: GLenum { 0x84D4 } - @inlinable static var TEXTURE21: GLenum { 0x84D5 } + @inlinable public static var TEXTURE21: GLenum { 0x84D5 } - @inlinable static var TEXTURE22: GLenum { 0x84D6 } + @inlinable public static var TEXTURE22: GLenum { 0x84D6 } - @inlinable static var TEXTURE23: GLenum { 0x84D7 } + @inlinable public static var TEXTURE23: GLenum { 0x84D7 } - @inlinable static var TEXTURE24: GLenum { 0x84D8 } + @inlinable public static var TEXTURE24: GLenum { 0x84D8 } - @inlinable static var TEXTURE25: GLenum { 0x84D9 } + @inlinable public static var TEXTURE25: GLenum { 0x84D9 } - @inlinable static var TEXTURE26: GLenum { 0x84DA } + @inlinable public static var TEXTURE26: GLenum { 0x84DA } - @inlinable static var TEXTURE27: GLenum { 0x84DB } + @inlinable public static var TEXTURE27: GLenum { 0x84DB } - @inlinable static var TEXTURE28: GLenum { 0x84DC } + @inlinable public static var TEXTURE28: GLenum { 0x84DC } - @inlinable static var TEXTURE29: GLenum { 0x84DD } + @inlinable public static var TEXTURE29: GLenum { 0x84DD } - @inlinable static var TEXTURE30: GLenum { 0x84DE } + @inlinable public static var TEXTURE30: GLenum { 0x84DE } - @inlinable static var TEXTURE31: GLenum { 0x84DF } + @inlinable public static var TEXTURE31: GLenum { 0x84DF } - @inlinable static var ACTIVE_TEXTURE: GLenum { 0x84E0 } + @inlinable public static var ACTIVE_TEXTURE: GLenum { 0x84E0 } - @inlinable static var REPEAT: GLenum { 0x2901 } + @inlinable public static var REPEAT: GLenum { 0x2901 } - @inlinable static var CLAMP_TO_EDGE: GLenum { 0x812F } + @inlinable public static var CLAMP_TO_EDGE: GLenum { 0x812F } - @inlinable static var MIRRORED_REPEAT: GLenum { 0x8370 } + @inlinable public static var MIRRORED_REPEAT: GLenum { 0x8370 } - @inlinable static var FLOAT_VEC2: GLenum { 0x8B50 } + @inlinable public static var FLOAT_VEC2: GLenum { 0x8B50 } - @inlinable static var FLOAT_VEC3: GLenum { 0x8B51 } + @inlinable public static var FLOAT_VEC3: GLenum { 0x8B51 } - @inlinable static var FLOAT_VEC4: GLenum { 0x8B52 } + @inlinable public static var FLOAT_VEC4: GLenum { 0x8B52 } - @inlinable static var INT_VEC2: GLenum { 0x8B53 } + @inlinable public static var INT_VEC2: GLenum { 0x8B53 } - @inlinable static var INT_VEC3: GLenum { 0x8B54 } + @inlinable public static var INT_VEC3: GLenum { 0x8B54 } - @inlinable static var INT_VEC4: GLenum { 0x8B55 } + @inlinable public static var INT_VEC4: GLenum { 0x8B55 } - @inlinable static var BOOL: GLenum { 0x8B56 } + @inlinable public static var BOOL: GLenum { 0x8B56 } - @inlinable static var BOOL_VEC2: GLenum { 0x8B57 } + @inlinable public static var BOOL_VEC2: GLenum { 0x8B57 } - @inlinable static var BOOL_VEC3: GLenum { 0x8B58 } + @inlinable public static var BOOL_VEC3: GLenum { 0x8B58 } - @inlinable static var BOOL_VEC4: GLenum { 0x8B59 } + @inlinable public static var BOOL_VEC4: GLenum { 0x8B59 } - @inlinable static var FLOAT_MAT2: GLenum { 0x8B5A } + @inlinable public static var FLOAT_MAT2: GLenum { 0x8B5A } - @inlinable static var FLOAT_MAT3: GLenum { 0x8B5B } + @inlinable public static var FLOAT_MAT3: GLenum { 0x8B5B } - @inlinable static var FLOAT_MAT4: GLenum { 0x8B5C } + @inlinable public static var FLOAT_MAT4: GLenum { 0x8B5C } - @inlinable static var SAMPLER_2D: GLenum { 0x8B5E } + @inlinable public static var SAMPLER_2D: GLenum { 0x8B5E } - @inlinable static var SAMPLER_CUBE: GLenum { 0x8B60 } + @inlinable public static var SAMPLER_CUBE: GLenum { 0x8B60 } - @inlinable static var VERTEX_ATTRIB_ARRAY_ENABLED: GLenum { 0x8622 } + @inlinable public static var VERTEX_ATTRIB_ARRAY_ENABLED: GLenum { 0x8622 } - @inlinable static var VERTEX_ATTRIB_ARRAY_SIZE: GLenum { 0x8623 } + @inlinable public static var VERTEX_ATTRIB_ARRAY_SIZE: GLenum { 0x8623 } - @inlinable static var VERTEX_ATTRIB_ARRAY_STRIDE: GLenum { 0x8624 } + @inlinable public static var VERTEX_ATTRIB_ARRAY_STRIDE: GLenum { 0x8624 } - @inlinable static var VERTEX_ATTRIB_ARRAY_TYPE: GLenum { 0x8625 } + @inlinable public static var VERTEX_ATTRIB_ARRAY_TYPE: GLenum { 0x8625 } - @inlinable static var VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum { 0x886A } + @inlinable public static var VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum { 0x886A } - @inlinable static var VERTEX_ATTRIB_ARRAY_POINTER: GLenum { 0x8645 } + @inlinable public static var VERTEX_ATTRIB_ARRAY_POINTER: GLenum { 0x8645 } - @inlinable static var VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum { 0x889F } + @inlinable public static var VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum { 0x889F } - @inlinable static var IMPLEMENTATION_COLOR_READ_TYPE: GLenum { 0x8B9A } + @inlinable public static var IMPLEMENTATION_COLOR_READ_TYPE: GLenum { 0x8B9A } - @inlinable static var IMPLEMENTATION_COLOR_READ_FORMAT: GLenum { 0x8B9B } + @inlinable public static var IMPLEMENTATION_COLOR_READ_FORMAT: GLenum { 0x8B9B } - @inlinable static var COMPILE_STATUS: GLenum { 0x8B81 } + @inlinable public static var COMPILE_STATUS: GLenum { 0x8B81 } - @inlinable static var LOW_FLOAT: GLenum { 0x8DF0 } + @inlinable public static var LOW_FLOAT: GLenum { 0x8DF0 } - @inlinable static var MEDIUM_FLOAT: GLenum { 0x8DF1 } + @inlinable public static var MEDIUM_FLOAT: GLenum { 0x8DF1 } - @inlinable static var HIGH_FLOAT: GLenum { 0x8DF2 } + @inlinable public static var HIGH_FLOAT: GLenum { 0x8DF2 } - @inlinable static var LOW_INT: GLenum { 0x8DF3 } + @inlinable public static var LOW_INT: GLenum { 0x8DF3 } - @inlinable static var MEDIUM_INT: GLenum { 0x8DF4 } + @inlinable public static var MEDIUM_INT: GLenum { 0x8DF4 } - @inlinable static var HIGH_INT: GLenum { 0x8DF5 } + @inlinable public static var HIGH_INT: GLenum { 0x8DF5 } - @inlinable static var FRAMEBUFFER: GLenum { 0x8D40 } + @inlinable public static var FRAMEBUFFER: GLenum { 0x8D40 } - @inlinable static var RENDERBUFFER: GLenum { 0x8D41 } + @inlinable public static var RENDERBUFFER: GLenum { 0x8D41 } - @inlinable static var RGBA4: GLenum { 0x8056 } + @inlinable public static var RGBA4: GLenum { 0x8056 } - @inlinable static var RGB5_A1: GLenum { 0x8057 } + @inlinable public static var RGB5_A1: GLenum { 0x8057 } - @inlinable static var RGB565: GLenum { 0x8D62 } + @inlinable public static var RGBA8: GLenum { 0x8058 } - @inlinable static var DEPTH_COMPONENT16: GLenum { 0x81A5 } + @inlinable public static var RGB565: GLenum { 0x8D62 } - @inlinable static var STENCIL_INDEX8: GLenum { 0x8D48 } + @inlinable public static var DEPTH_COMPONENT16: GLenum { 0x81A5 } - @inlinable static var DEPTH_STENCIL: GLenum { 0x84F9 } + @inlinable public static var STENCIL_INDEX8: GLenum { 0x8D48 } - @inlinable static var RENDERBUFFER_WIDTH: GLenum { 0x8D42 } + @inlinable public static var DEPTH_STENCIL: GLenum { 0x84F9 } - @inlinable static var RENDERBUFFER_HEIGHT: GLenum { 0x8D43 } + @inlinable public static var RENDERBUFFER_WIDTH: GLenum { 0x8D42 } - @inlinable static var RENDERBUFFER_INTERNAL_FORMAT: GLenum { 0x8D44 } + @inlinable public static var RENDERBUFFER_HEIGHT: GLenum { 0x8D43 } - @inlinable static var RENDERBUFFER_RED_SIZE: GLenum { 0x8D50 } + @inlinable public static var RENDERBUFFER_INTERNAL_FORMAT: GLenum { 0x8D44 } - @inlinable static var RENDERBUFFER_GREEN_SIZE: GLenum { 0x8D51 } + @inlinable public static var RENDERBUFFER_RED_SIZE: GLenum { 0x8D50 } - @inlinable static var RENDERBUFFER_BLUE_SIZE: GLenum { 0x8D52 } + @inlinable public static var RENDERBUFFER_GREEN_SIZE: GLenum { 0x8D51 } - @inlinable static var RENDERBUFFER_ALPHA_SIZE: GLenum { 0x8D53 } + @inlinable public static var RENDERBUFFER_BLUE_SIZE: GLenum { 0x8D52 } - @inlinable static var RENDERBUFFER_DEPTH_SIZE: GLenum { 0x8D54 } + @inlinable public static var RENDERBUFFER_ALPHA_SIZE: GLenum { 0x8D53 } - @inlinable static var RENDERBUFFER_STENCIL_SIZE: GLenum { 0x8D55 } + @inlinable public static var RENDERBUFFER_DEPTH_SIZE: GLenum { 0x8D54 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum { 0x8CD0 } + @inlinable public static var RENDERBUFFER_STENCIL_SIZE: GLenum { 0x8D55 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum { 0x8CD1 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum { 0x8CD0 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum { 0x8CD2 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum { 0x8CD1 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum { 0x8CD3 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum { 0x8CD2 } - @inlinable static var COLOR_ATTACHMENT0: GLenum { 0x8CE0 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum { 0x8CD3 } - @inlinable static var DEPTH_ATTACHMENT: GLenum { 0x8D00 } + @inlinable public static var COLOR_ATTACHMENT0: GLenum { 0x8CE0 } - @inlinable static var STENCIL_ATTACHMENT: GLenum { 0x8D20 } + @inlinable public static var DEPTH_ATTACHMENT: GLenum { 0x8D00 } - @inlinable static var DEPTH_STENCIL_ATTACHMENT: GLenum { 0x821A } + @inlinable public static var STENCIL_ATTACHMENT: GLenum { 0x8D20 } - @inlinable static var NONE: GLenum { 0 } + @inlinable public static var DEPTH_STENCIL_ATTACHMENT: GLenum { 0x821A } - @inlinable static var FRAMEBUFFER_COMPLETE: GLenum { 0x8CD5 } + @inlinable public static var NONE: GLenum { 0 } - @inlinable static var FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum { 0x8CD6 } + @inlinable public static var FRAMEBUFFER_COMPLETE: GLenum { 0x8CD5 } - @inlinable static var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum { 0x8CD7 } + @inlinable public static var FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum { 0x8CD6 } - @inlinable static var FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum { 0x8CD9 } + @inlinable public static var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum { 0x8CD7 } - @inlinable static var FRAMEBUFFER_UNSUPPORTED: GLenum { 0x8CDD } + @inlinable public static var FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum { 0x8CD9 } - @inlinable static var FRAMEBUFFER_BINDING: GLenum { 0x8CA6 } + @inlinable public static var FRAMEBUFFER_UNSUPPORTED: GLenum { 0x8CDD } - @inlinable static var RENDERBUFFER_BINDING: GLenum { 0x8CA7 } + @inlinable public static var FRAMEBUFFER_BINDING: GLenum { 0x8CA6 } - @inlinable static var MAX_RENDERBUFFER_SIZE: GLenum { 0x84E8 } + @inlinable public static var RENDERBUFFER_BINDING: GLenum { 0x8CA7 } - @inlinable static var INVALID_FRAMEBUFFER_OPERATION: GLenum { 0x0506 } + @inlinable public static var MAX_RENDERBUFFER_SIZE: GLenum { 0x84E8 } - @inlinable static var UNPACK_FLIP_Y_WEBGL: GLenum { 0x9240 } + @inlinable public static var INVALID_FRAMEBUFFER_OPERATION: GLenum { 0x0506 } - @inlinable static var UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum { 0x9241 } + @inlinable public static var UNPACK_FLIP_Y_WEBGL: GLenum { 0x9240 } - @inlinable static var CONTEXT_LOST_WEBGL: GLenum { 0x9242 } + @inlinable public static var UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum { 0x9241 } - @inlinable static var UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum { 0x9243 } + @inlinable public static var CONTEXT_LOST_WEBGL: GLenum { 0x9242 } - @inlinable static var BROWSER_DEFAULT_WEBGL: GLenum { 0x9244 } + @inlinable public static var UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum { 0x9243 } - @inlinable var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! } + @inlinable public static var BROWSER_DEFAULT_WEBGL: GLenum { 0x9244 } - @inlinable var drawingBufferWidth: GLsizei { jsObject[Strings.drawingBufferWidth].fromJSValue()! } + @inlinable public var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! } - @inlinable var drawingBufferHeight: GLsizei { jsObject[Strings.drawingBufferHeight].fromJSValue()! } + @inlinable public var drawingBufferWidth: GLsizei { jsObject[Strings.drawingBufferWidth].fromJSValue()! } - @inlinable var drawingBufferColorSpace: PredefinedColorSpace { + @inlinable public var drawingBufferHeight: GLsizei { jsObject[Strings.drawingBufferHeight].fromJSValue()! } + + @inlinable public var drawingBufferFormat: GLenum { jsObject[Strings.drawingBufferFormat].fromJSValue()! } + + @inlinable public var drawingBufferColorSpace: PredefinedColorSpace { get { jsObject[Strings.drawingBufferColorSpace].fromJSValue()! } - nonmutating set { jsObject[Strings.drawingBufferColorSpace] = _toJSValue(newValue) } + set { jsObject[Strings.drawingBufferColorSpace] = _toJSValue(newValue) } } - @inlinable var unpackColorSpace: PredefinedColorSpace { + @inlinable public var unpackColorSpace: PredefinedColorSpace { get { jsObject[Strings.unpackColorSpace].fromJSValue()! } - nonmutating set { jsObject[Strings.unpackColorSpace] = _toJSValue(newValue) } + set { jsObject[Strings.unpackColorSpace] = _toJSValue(newValue) } } - @inlinable func getContextAttributes() -> WebGLContextAttributes? { + @inlinable public func getContextAttributes() -> WebGLContextAttributes? { let this = jsObject return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue() } - @inlinable func isContextLost() -> Bool { + @inlinable public func isContextLost() -> Bool { let this = jsObject return this[Strings.isContextLost].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func getSupportedExtensions() -> [String]? { + @inlinable public func getSupportedExtensions() -> [String]? { let this = jsObject return this[Strings.getSupportedExtensions].function!(this: this, arguments: []).fromJSValue() } - @inlinable func getExtension(name: String) -> JSObject? { + @inlinable public func getExtension(name: String) -> JSObject? { let this = jsObject return this[Strings.getExtension].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue() } - @inlinable func activeTexture(texture: GLenum) { + @inlinable public func drawingBufferStorage(sizedFormat: GLenum, width: UInt32, height: UInt32) { + let this = jsObject + _ = this[Strings.drawingBufferStorage].function!( + this: this, + arguments: [_toJSValue(sizedFormat), _toJSValue(width), _toJSValue(height)] + ) + } + + @inlinable public func activeTexture(texture: GLenum) { let this = jsObject _ = this[Strings.activeTexture].function!(this: this, arguments: [_toJSValue(texture)]) } - @inlinable func attachShader(program: WebGLProgram, shader: WebGLShader) { + @inlinable public func attachShader(program: WebGLProgram, shader: WebGLShader) { let this = jsObject _ = this[Strings.attachShader].function!(this: this, arguments: [_toJSValue(program), _toJSValue(shader)]) } - @inlinable func bindAttribLocation(program: WebGLProgram, index: GLuint, name: String) { + @inlinable public func bindAttribLocation(program: WebGLProgram, index: GLuint, name: String) { let this = jsObject - _ = this[Strings.bindAttribLocation].function!(this: this, arguments: [_toJSValue(program), _toJSValue(index), _toJSValue(name)]) + _ = this[Strings.bindAttribLocation].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(index), _toJSValue(name)] + ) } - @inlinable func bindBuffer(target: GLenum, buffer: WebGLBuffer?) { + @inlinable public func bindBuffer(target: GLenum, buffer: WebGLBuffer?) { let this = jsObject _ = this[Strings.bindBuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(buffer)]) } - @inlinable func bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer?) { + @inlinable public func bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer?) { let this = jsObject - _ = this[Strings.bindFramebuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(framebuffer)]) + _ = this[Strings.bindFramebuffer].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(framebuffer)] + ) } - @inlinable func bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer?) { + @inlinable public func bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer?) { let this = jsObject - _ = this[Strings.bindRenderbuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(renderbuffer)]) + _ = this[Strings.bindRenderbuffer].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(renderbuffer)] + ) } - @inlinable func bindTexture(target: GLenum, texture: WebGLTexture?) { + @inlinable public func bindTexture(target: GLenum, texture: WebGLTexture?) { let this = jsObject _ = this[Strings.bindTexture].function!(this: this, arguments: [_toJSValue(target), _toJSValue(texture)]) } - @inlinable func blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) { + @inlinable public func blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) { let this = jsObject - _ = this[Strings.blendColor].function!(this: this, arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)]) + _ = this[Strings.blendColor].function!( + this: this, + arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)] + ) } - @inlinable func blendEquation(mode: GLenum) { + @inlinable public func blendEquation(mode: GLenum) { let this = jsObject _ = this[Strings.blendEquation].function!(this: this, arguments: [_toJSValue(mode)]) } - @inlinable func blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum) { + @inlinable public func blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum) { let this = jsObject - _ = this[Strings.blendEquationSeparate].function!(this: this, arguments: [_toJSValue(modeRGB), _toJSValue(modeAlpha)]) + _ = this[Strings.blendEquationSeparate].function!( + this: this, + arguments: [_toJSValue(modeRGB), _toJSValue(modeAlpha)] + ) } - @inlinable func blendFunc(sfactor: GLenum, dfactor: GLenum) { + @inlinable public func blendFunc(sfactor: GLenum, dfactor: GLenum) { let this = jsObject _ = this[Strings.blendFunc].function!(this: this, arguments: [_toJSValue(sfactor), _toJSValue(dfactor)]) } - @inlinable func blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) { + @inlinable public func blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) { let this = jsObject - _ = this[Strings.blendFuncSeparate].function!(this: this, arguments: [_toJSValue(srcRGB), _toJSValue(dstRGB), _toJSValue(srcAlpha), _toJSValue(dstAlpha)]) + _ = this[Strings.blendFuncSeparate].function!( + this: this, + arguments: [_toJSValue(srcRGB), _toJSValue(dstRGB), _toJSValue(srcAlpha), _toJSValue(dstAlpha)] + ) } - @inlinable func checkFramebufferStatus(target: GLenum) -> GLenum { + @inlinable public func checkFramebufferStatus(target: GLenum) -> GLenum { let this = jsObject - return this[Strings.checkFramebufferStatus].function!(this: this, arguments: [_toJSValue(target)]).fromJSValue()! + return this[Strings.checkFramebufferStatus].function!(this: this, arguments: [_toJSValue(target)]) + .fromJSValue()! } - @inlinable func clear(mask: GLbitfield) { + @inlinable public func clear(mask: GLbitfield) { let this = jsObject _ = this[Strings.clear].function!(this: this, arguments: [_toJSValue(mask)]) } - @inlinable func clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) { + @inlinable public func clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) { let this = jsObject - _ = this[Strings.clearColor].function!(this: this, arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)]) + _ = this[Strings.clearColor].function!( + this: this, + arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)] + ) } - @inlinable func clearDepth(depth: GLclampf) { + @inlinable public func clearDepth(depth: GLclampf) { let this = jsObject _ = this[Strings.clearDepth].function!(this: this, arguments: [_toJSValue(depth)]) } - @inlinable func clearStencil(s: GLint) { + @inlinable public func clearStencil(s: GLint) { let this = jsObject _ = this[Strings.clearStencil].function!(this: this, arguments: [_toJSValue(s)]) } - @inlinable func colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) { + @inlinable public func colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) { let this = jsObject - _ = this[Strings.colorMask].function!(this: this, arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)]) + _ = this[Strings.colorMask].function!( + this: this, + arguments: [_toJSValue(red), _toJSValue(green), _toJSValue(blue), _toJSValue(alpha)] + ) } - @inlinable func compileShader(shader: WebGLShader) { + @inlinable public func compileShader(shader: WebGLShader) { let this = jsObject _ = this[Strings.compileShader].function!(this: this, arguments: [_toJSValue(shader)]) } - @inlinable func copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint) { + @inlinable public func copyTexImage2D( + target: GLenum, + level: GLint, + internalformat: GLenum, + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei, + border: GLint + ) { let this = jsObject - _ = this[Strings.copyTexImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(border)]) + _ = this[Strings.copyTexImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(x), _toJSValue(y), + _toJSValue(width), _toJSValue(height), _toJSValue(border), + ] + ) } - @inlinable func copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) { + @inlinable public func copyTexSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei + ) { let this = jsObject - _ = this[Strings.copyTexSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.copyTexSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(x), + _toJSValue(y), _toJSValue(width), _toJSValue(height), + ] + ) } - @inlinable func createBuffer() -> WebGLBuffer? { + @inlinable public func createBuffer() -> WebGLBuffer { let this = jsObject - return this[Strings.createBuffer].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createBuffer].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func createFramebuffer() -> WebGLFramebuffer? { + @inlinable public func createFramebuffer() -> WebGLFramebuffer { let this = jsObject - return this[Strings.createFramebuffer].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createFramebuffer].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func createProgram() -> WebGLProgram? { + @inlinable public func createProgram() -> WebGLProgram { let this = jsObject - return this[Strings.createProgram].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createProgram].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func createRenderbuffer() -> WebGLRenderbuffer? { + @inlinable public func createRenderbuffer() -> WebGLRenderbuffer { let this = jsObject - return this[Strings.createRenderbuffer].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createRenderbuffer].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func createShader(type: GLenum) -> WebGLShader? { + @inlinable public func createShader(type: GLenum) -> WebGLShader? { let this = jsObject return this[Strings.createShader].function!(this: this, arguments: [_toJSValue(type)]).fromJSValue() } - @inlinable func createTexture() -> WebGLTexture? { + @inlinable public func createTexture() -> WebGLTexture { let this = jsObject - return this[Strings.createTexture].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createTexture].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func cullFace(mode: GLenum) { + @inlinable public func cullFace(mode: GLenum) { let this = jsObject _ = this[Strings.cullFace].function!(this: this, arguments: [_toJSValue(mode)]) } - @inlinable func deleteBuffer(buffer: WebGLBuffer?) { + @inlinable public func deleteBuffer(buffer: WebGLBuffer?) { let this = jsObject _ = this[Strings.deleteBuffer].function!(this: this, arguments: [_toJSValue(buffer)]) } - @inlinable func deleteFramebuffer(framebuffer: WebGLFramebuffer?) { + @inlinable public func deleteFramebuffer(framebuffer: WebGLFramebuffer?) { let this = jsObject _ = this[Strings.deleteFramebuffer].function!(this: this, arguments: [_toJSValue(framebuffer)]) } - @inlinable func deleteProgram(program: WebGLProgram?) { + @inlinable public func deleteProgram(program: WebGLProgram?) { let this = jsObject _ = this[Strings.deleteProgram].function!(this: this, arguments: [_toJSValue(program)]) } - @inlinable func deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) { + @inlinable public func deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) { let this = jsObject _ = this[Strings.deleteRenderbuffer].function!(this: this, arguments: [_toJSValue(renderbuffer)]) } - @inlinable func deleteShader(shader: WebGLShader?) { + @inlinable public func deleteShader(shader: WebGLShader?) { let this = jsObject _ = this[Strings.deleteShader].function!(this: this, arguments: [_toJSValue(shader)]) } - @inlinable func deleteTexture(texture: WebGLTexture?) { + @inlinable public func deleteTexture(texture: WebGLTexture?) { let this = jsObject _ = this[Strings.deleteTexture].function!(this: this, arguments: [_toJSValue(texture)]) } - @inlinable func depthFunc(func: GLenum) { + @inlinable public func depthFunc(`func`: GLenum) { let this = jsObject _ = this[Strings.depthFunc].function!(this: this, arguments: [_toJSValue(`func`)]) } - @inlinable func depthMask(flag: GLboolean) { + @inlinable public func depthMask(flag: GLboolean) { let this = jsObject _ = this[Strings.depthMask].function!(this: this, arguments: [_toJSValue(flag)]) } - @inlinable func depthRange(zNear: GLclampf, zFar: GLclampf) { + @inlinable public func depthRange(zNear: GLclampf, zFar: GLclampf) { let this = jsObject _ = this[Strings.depthRange].function!(this: this, arguments: [_toJSValue(zNear), _toJSValue(zFar)]) } - @inlinable func detachShader(program: WebGLProgram, shader: WebGLShader) { + @inlinable public func detachShader(program: WebGLProgram, shader: WebGLShader) { let this = jsObject _ = this[Strings.detachShader].function!(this: this, arguments: [_toJSValue(program), _toJSValue(shader)]) } - @inlinable func disable(cap: GLenum) { + @inlinable public func disable(cap: GLenum) { let this = jsObject _ = this[Strings.disable].function!(this: this, arguments: [_toJSValue(cap)]) } - @inlinable func disableVertexAttribArray(index: GLuint) { + @inlinable public func disableVertexAttribArray(index: GLuint) { let this = jsObject _ = this[Strings.disableVertexAttribArray].function!(this: this, arguments: [_toJSValue(index)]) } - @inlinable func drawArrays(mode: GLenum, first: GLint, count: GLsizei) { + @inlinable public func drawArrays(mode: GLenum, first: GLint, count: GLsizei) { let this = jsObject - _ = this[Strings.drawArrays].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(first), _toJSValue(count)]) + _ = this[Strings.drawArrays].function!( + this: this, + arguments: [_toJSValue(mode), _toJSValue(first), _toJSValue(count)] + ) } - @inlinable func drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) { + @inlinable public func drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) { let this = jsObject - _ = this[Strings.drawElements].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(count), _toJSValue(type), _toJSValue(offset)]) + _ = this[Strings.drawElements].function!( + this: this, + arguments: [_toJSValue(mode), _toJSValue(count), _toJSValue(type), _toJSValue(offset)] + ) } - @inlinable func enable(cap: GLenum) { + @inlinable public func enable(cap: GLenum) { let this = jsObject _ = this[Strings.enable].function!(this: this, arguments: [_toJSValue(cap)]) } - @inlinable func enableVertexAttribArray(index: GLuint) { + @inlinable public func enableVertexAttribArray(index: GLuint) { let this = jsObject _ = this[Strings.enableVertexAttribArray].function!(this: this, arguments: [_toJSValue(index)]) } - @inlinable func finish() { + @inlinable public func finish() { let this = jsObject _ = this[Strings.finish].function!(this: this, arguments: []) } - @inlinable func flush() { + @inlinable public func flush() { let this = jsObject _ = this[Strings.flush].function!(this: this, arguments: []) } - @inlinable func framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer?) { + @inlinable public func framebufferRenderbuffer( + target: GLenum, + attachment: GLenum, + renderbuffertarget: GLenum, + renderbuffer: WebGLRenderbuffer? + ) { let this = jsObject - _ = this[Strings.framebufferRenderbuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachment), _toJSValue(renderbuffertarget), _toJSValue(renderbuffer)]) + _ = this[Strings.framebufferRenderbuffer].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(attachment), _toJSValue(renderbuffertarget), _toJSValue(renderbuffer), + ] + ) } - @inlinable func framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture?, level: GLint) { + @inlinable public func framebufferTexture2D( + target: GLenum, + attachment: GLenum, + textarget: GLenum, + texture: WebGLTexture?, + level: GLint + ) { let this = jsObject - _ = this[Strings.framebufferTexture2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachment), _toJSValue(textarget), _toJSValue(texture), _toJSValue(level)]) + _ = this[Strings.framebufferTexture2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(attachment), _toJSValue(textarget), _toJSValue(texture), + _toJSValue(level), + ] + ) } - @inlinable func frontFace(mode: GLenum) { + @inlinable public func frontFace(mode: GLenum) { let this = jsObject _ = this[Strings.frontFace].function!(this: this, arguments: [_toJSValue(mode)]) } - @inlinable func generateMipmap(target: GLenum) { + @inlinable public func generateMipmap(target: GLenum) { let this = jsObject _ = this[Strings.generateMipmap].function!(this: this, arguments: [_toJSValue(target)]) } - @inlinable func getActiveAttrib(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { + @inlinable public func getActiveAttrib(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { let this = jsObject - return this[Strings.getActiveAttrib].function!(this: this, arguments: [_toJSValue(program), _toJSValue(index)]).fromJSValue() + return this[Strings.getActiveAttrib].function!(this: this, arguments: [_toJSValue(program), _toJSValue(index)]) + .fromJSValue() } - @inlinable func getActiveUniform(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { + @inlinable public func getActiveUniform(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { let this = jsObject - return this[Strings.getActiveUniform].function!(this: this, arguments: [_toJSValue(program), _toJSValue(index)]).fromJSValue() + return this[Strings.getActiveUniform].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(index)] + ).fromJSValue() } - @inlinable func getAttachedShaders(program: WebGLProgram) -> [WebGLShader]? { + @inlinable public func getAttachedShaders(program: WebGLProgram) -> [WebGLShader]? { let this = jsObject return this[Strings.getAttachedShaders].function!(this: this, arguments: [_toJSValue(program)]).fromJSValue() } - @inlinable func getAttribLocation(program: WebGLProgram, name: String) -> GLint { + @inlinable public func getAttribLocation(program: WebGLProgram, name: String) -> GLint { let this = jsObject - return this[Strings.getAttribLocation].function!(this: this, arguments: [_toJSValue(program), _toJSValue(name)]).fromJSValue()! + return this[Strings.getAttribLocation].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(name)] + ).fromJSValue()! } - @inlinable func getBufferParameter(target: GLenum, pname: GLenum) -> JSValue { + @inlinable public func getBufferParameter(target: GLenum, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getBufferParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getBufferParameter].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getParameter(pname: GLenum) -> JSValue { + @inlinable public func getParameter(pname: GLenum) -> JSValue { let this = jsObject return this[Strings.getParameter].function!(this: this, arguments: [_toJSValue(pname)]).fromJSValue()! } - @inlinable func getError() -> GLenum { + @inlinable public func getError() -> GLenum { let this = jsObject return this[Strings.getError].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum) -> JSValue { + @inlinable public func getFramebufferAttachmentParameter( + target: GLenum, + attachment: GLenum, + pname: GLenum + ) -> JSValue { let this = jsObject - return this[Strings.getFramebufferAttachmentParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachment), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getFramebufferAttachmentParameter].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(attachment), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getProgramParameter(program: WebGLProgram, pname: GLenum) -> JSValue { + @inlinable public func getProgramParameter(program: WebGLProgram, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getProgramParameter].function!(this: this, arguments: [_toJSValue(program), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getProgramParameter].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getProgramInfoLog(program: WebGLProgram) -> String? { + @inlinable public func getProgramInfoLog(program: WebGLProgram) -> String? { let this = jsObject return this[Strings.getProgramInfoLog].function!(this: this, arguments: [_toJSValue(program)]).fromJSValue() } - @inlinable func getRenderbufferParameter(target: GLenum, pname: GLenum) -> JSValue { + @inlinable public func getRenderbufferParameter(target: GLenum, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getRenderbufferParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getRenderbufferParameter].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getShaderParameter(shader: WebGLShader, pname: GLenum) -> JSValue { + @inlinable public func getShaderParameter(shader: WebGLShader, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getShaderParameter].function!(this: this, arguments: [_toJSValue(shader), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getShaderParameter].function!( + this: this, + arguments: [_toJSValue(shader), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum) -> WebGLShaderPrecisionFormat? { + @inlinable public func getShaderPrecisionFormat( + shadertype: GLenum, + precisiontype: GLenum + ) -> WebGLShaderPrecisionFormat? { let this = jsObject - return this[Strings.getShaderPrecisionFormat].function!(this: this, arguments: [_toJSValue(shadertype), _toJSValue(precisiontype)]).fromJSValue() + return this[Strings.getShaderPrecisionFormat].function!( + this: this, + arguments: [_toJSValue(shadertype), _toJSValue(precisiontype)] + ).fromJSValue() } - @inlinable func getShaderInfoLog(shader: WebGLShader) -> String? { + @inlinable public func getShaderInfoLog(shader: WebGLShader) -> String? { let this = jsObject return this[Strings.getShaderInfoLog].function!(this: this, arguments: [_toJSValue(shader)]).fromJSValue() } - @inlinable func getShaderSource(shader: WebGLShader) -> String? { + @inlinable public func getShaderSource(shader: WebGLShader) -> String? { let this = jsObject return this[Strings.getShaderSource].function!(this: this, arguments: [_toJSValue(shader)]).fromJSValue() } - @inlinable func getTexParameter(target: GLenum, pname: GLenum) -> JSValue { + @inlinable public func getTexParameter(target: GLenum, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getTexParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getTexParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]) + .fromJSValue()! } - @inlinable func getUniform(program: WebGLProgram, location: WebGLUniformLocation) -> JSValue { + @inlinable public func getUniform(program: WebGLProgram, location: WebGLUniformLocation) -> JSValue { let this = jsObject - return this[Strings.getUniform].function!(this: this, arguments: [_toJSValue(program), _toJSValue(location)]).fromJSValue()! + return this[Strings.getUniform].function!(this: this, arguments: [_toJSValue(program), _toJSValue(location)]) + .fromJSValue()! } - @inlinable func getUniformLocation(program: WebGLProgram, name: String) -> WebGLUniformLocation? { + @inlinable public func getUniformLocation(program: WebGLProgram, name: String) -> WebGLUniformLocation? { let this = jsObject - return this[Strings.getUniformLocation].function!(this: this, arguments: [_toJSValue(program), _toJSValue(name)]).fromJSValue() + return this[Strings.getUniformLocation].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(name)] + ).fromJSValue() } - @inlinable func getVertexAttrib(index: GLuint, pname: GLenum) -> JSValue { + @inlinable public func getVertexAttrib(index: GLuint, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getVertexAttrib].function!(this: this, arguments: [_toJSValue(index), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getVertexAttrib].function!(this: this, arguments: [_toJSValue(index), _toJSValue(pname)]) + .fromJSValue()! } - @inlinable func getVertexAttribOffset(index: GLuint, pname: GLenum) -> GLintptr { + @inlinable public func getVertexAttribOffset(index: GLuint, pname: GLenum) -> GLintptr { let this = jsObject - return this[Strings.getVertexAttribOffset].function!(this: this, arguments: [_toJSValue(index), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getVertexAttribOffset].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func hint(target: GLenum, mode: GLenum) { + @inlinable public func hint(target: GLenum, mode: GLenum) { let this = jsObject _ = this[Strings.hint].function!(this: this, arguments: [_toJSValue(target), _toJSValue(mode)]) } - @inlinable func isBuffer(buffer: WebGLBuffer?) -> GLboolean { + @inlinable public func isBuffer(buffer: WebGLBuffer?) -> GLboolean { let this = jsObject return this[Strings.isBuffer].function!(this: this, arguments: [_toJSValue(buffer)]).fromJSValue()! } - @inlinable func isEnabled(cap: GLenum) -> GLboolean { + @inlinable public func isEnabled(cap: GLenum) -> GLboolean { let this = jsObject return this[Strings.isEnabled].function!(this: this, arguments: [_toJSValue(cap)]).fromJSValue()! } - @inlinable func isFramebuffer(framebuffer: WebGLFramebuffer?) -> GLboolean { + @inlinable public func isFramebuffer(framebuffer: WebGLFramebuffer?) -> GLboolean { let this = jsObject return this[Strings.isFramebuffer].function!(this: this, arguments: [_toJSValue(framebuffer)]).fromJSValue()! } - @inlinable func isProgram(program: WebGLProgram?) -> GLboolean { + @inlinable public func isProgram(program: WebGLProgram?) -> GLboolean { let this = jsObject return this[Strings.isProgram].function!(this: this, arguments: [_toJSValue(program)]).fromJSValue()! } - @inlinable func isRenderbuffer(renderbuffer: WebGLRenderbuffer?) -> GLboolean { + @inlinable public func isRenderbuffer(renderbuffer: WebGLRenderbuffer?) -> GLboolean { let this = jsObject return this[Strings.isRenderbuffer].function!(this: this, arguments: [_toJSValue(renderbuffer)]).fromJSValue()! } - @inlinable func isShader(shader: WebGLShader?) -> GLboolean { + @inlinable public func isShader(shader: WebGLShader?) -> GLboolean { let this = jsObject return this[Strings.isShader].function!(this: this, arguments: [_toJSValue(shader)]).fromJSValue()! } - @inlinable func isTexture(texture: WebGLTexture?) -> GLboolean { + @inlinable public func isTexture(texture: WebGLTexture?) -> GLboolean { let this = jsObject return this[Strings.isTexture].function!(this: this, arguments: [_toJSValue(texture)]).fromJSValue()! } - @inlinable func lineWidth(width: GLfloat) { + @inlinable public func lineWidth(width: GLfloat) { let this = jsObject _ = this[Strings.lineWidth].function!(this: this, arguments: [_toJSValue(width)]) } - @inlinable func linkProgram(program: WebGLProgram) { + @inlinable public func linkProgram(program: WebGLProgram) { let this = jsObject _ = this[Strings.linkProgram].function!(this: this, arguments: [_toJSValue(program)]) } - @inlinable func pixelStorei(pname: GLenum, param: GLint) { + @inlinable public func pixelStorei(pname: GLenum, param: GLint) { let this = jsObject _ = this[Strings.pixelStorei].function!(this: this, arguments: [_toJSValue(pname), _toJSValue(param)]) } - @inlinable func polygonOffset(factor: GLfloat, units: GLfloat) { + @inlinable public func polygonOffset(factor: GLfloat, units: GLfloat) { let this = jsObject _ = this[Strings.polygonOffset].function!(this: this, arguments: [_toJSValue(factor), _toJSValue(units)]) } - @inlinable func renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) { + @inlinable public func renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) + { let this = jsObject - _ = this[Strings.renderbufferStorage].function!(this: this, arguments: [_toJSValue(target), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.renderbufferStorage].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height)] + ) } - @inlinable func sampleCoverage(value: GLclampf, invert: GLboolean) { + @inlinable public func sampleCoverage(value: GLclampf, invert: GLboolean) { let this = jsObject _ = this[Strings.sampleCoverage].function!(this: this, arguments: [_toJSValue(value), _toJSValue(invert)]) } - @inlinable func scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) { + @inlinable public func scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) { let this = jsObject - _ = this[Strings.scissor].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.scissor].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)] + ) } - @inlinable func shaderSource(shader: WebGLShader, source: String) { + @inlinable public func shaderSource(shader: WebGLShader, source: String) { let this = jsObject _ = this[Strings.shaderSource].function!(this: this, arguments: [_toJSValue(shader), _toJSValue(source)]) } - @inlinable func stencilFunc(func: GLenum, ref: GLint, mask: GLuint) { + @inlinable public func stencilFunc(`func`: GLenum, ref: GLint, mask: GLuint) { let this = jsObject - _ = this[Strings.stencilFunc].function!(this: this, arguments: [_toJSValue(`func`), _toJSValue(ref), _toJSValue(mask)]) + _ = this[Strings.stencilFunc].function!( + this: this, + arguments: [_toJSValue(`func`), _toJSValue(ref), _toJSValue(mask)] + ) } - @inlinable func stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint) { + @inlinable public func stencilFuncSeparate(face: GLenum, `func`: GLenum, ref: GLint, mask: GLuint) { let this = jsObject - _ = this[Strings.stencilFuncSeparate].function!(this: this, arguments: [_toJSValue(face), _toJSValue(`func`), _toJSValue(ref), _toJSValue(mask)]) + _ = this[Strings.stencilFuncSeparate].function!( + this: this, + arguments: [_toJSValue(face), _toJSValue(`func`), _toJSValue(ref), _toJSValue(mask)] + ) } - @inlinable func stencilMask(mask: GLuint) { + @inlinable public func stencilMask(mask: GLuint) { let this = jsObject _ = this[Strings.stencilMask].function!(this: this, arguments: [_toJSValue(mask)]) } - @inlinable func stencilMaskSeparate(face: GLenum, mask: GLuint) { + @inlinable public func stencilMaskSeparate(face: GLenum, mask: GLuint) { let this = jsObject _ = this[Strings.stencilMaskSeparate].function!(this: this, arguments: [_toJSValue(face), _toJSValue(mask)]) } - @inlinable func stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum) { + @inlinable public func stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum) { let this = jsObject - _ = this[Strings.stencilOp].function!(this: this, arguments: [_toJSValue(fail), _toJSValue(zfail), _toJSValue(zpass)]) + _ = this[Strings.stencilOp].function!( + this: this, + arguments: [_toJSValue(fail), _toJSValue(zfail), _toJSValue(zpass)] + ) } - @inlinable func stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum) { + @inlinable public func stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum) { let this = jsObject - _ = this[Strings.stencilOpSeparate].function!(this: this, arguments: [_toJSValue(face), _toJSValue(fail), _toJSValue(zfail), _toJSValue(zpass)]) + _ = this[Strings.stencilOpSeparate].function!( + this: this, + arguments: [_toJSValue(face), _toJSValue(fail), _toJSValue(zfail), _toJSValue(zpass)] + ) } - @inlinable func texParameterf(target: GLenum, pname: GLenum, param: GLfloat) { + @inlinable public func texParameterf(target: GLenum, pname: GLenum, param: GLfloat) { let this = jsObject - _ = this[Strings.texParameterf].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname), _toJSValue(param)]) + _ = this[Strings.texParameterf].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(pname), _toJSValue(param)] + ) } - @inlinable func texParameteri(target: GLenum, pname: GLenum, param: GLint) { + @inlinable public func texParameteri(target: GLenum, pname: GLenum, param: GLint) { let this = jsObject - _ = this[Strings.texParameteri].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname), _toJSValue(param)]) + _ = this[Strings.texParameteri].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(pname), _toJSValue(param)] + ) } - @inlinable func uniform1f(location: WebGLUniformLocation?, x: GLfloat) { + @inlinable public func uniform1f(location: WebGLUniformLocation?, x: GLfloat) { let this = jsObject _ = this[Strings.uniform1f].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x)]) } - @inlinable func uniform2f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat) { + @inlinable public func uniform2f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat) { let this = jsObject - _ = this[Strings.uniform2f].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.uniform2f].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y)] + ) } - @inlinable func uniform3f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat) { + @inlinable public func uniform3f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat) { let this = jsObject - _ = this[Strings.uniform3f].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z)]) + _ = this[Strings.uniform3f].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z)] + ) } - @inlinable func uniform4f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) { + @inlinable public func uniform4f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) { let this = jsObject - _ = this[Strings.uniform4f].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)]) + _ = this[Strings.uniform4f].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)] + ) } - @inlinable func uniform1i(location: WebGLUniformLocation?, x: GLint) { + @inlinable public func uniform1i(location: WebGLUniformLocation?, x: GLint) { let this = jsObject _ = this[Strings.uniform1i].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x)]) } - @inlinable func uniform2i(location: WebGLUniformLocation?, x: GLint, y: GLint) { + @inlinable public func uniform2i(location: WebGLUniformLocation?, x: GLint, y: GLint) { let this = jsObject - _ = this[Strings.uniform2i].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.uniform2i].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y)] + ) } - @inlinable func uniform3i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint) { + @inlinable public func uniform3i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint) { let this = jsObject - _ = this[Strings.uniform3i].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z)]) + _ = this[Strings.uniform3i].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z)] + ) } - @inlinable func uniform4i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint, w: GLint) { + @inlinable public func uniform4i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint, w: GLint) { let this = jsObject - _ = this[Strings.uniform4i].function!(this: this, arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)]) + _ = this[Strings.uniform4i].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)] + ) } - @inlinable func useProgram(program: WebGLProgram?) { + @inlinable public func useProgram(program: WebGLProgram?) { let this = jsObject _ = this[Strings.useProgram].function!(this: this, arguments: [_toJSValue(program)]) } - @inlinable func validateProgram(program: WebGLProgram) { + @inlinable public func validateProgram(program: WebGLProgram) { let this = jsObject _ = this[Strings.validateProgram].function!(this: this, arguments: [_toJSValue(program)]) } - @inlinable func vertexAttrib1f(index: GLuint, x: GLfloat) { + @inlinable public func vertexAttrib1f(index: GLuint, x: GLfloat) { let this = jsObject _ = this[Strings.vertexAttrib1f].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x)]) } - @inlinable func vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat) { + @inlinable public func vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat) { let this = jsObject - _ = this[Strings.vertexAttrib2f].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y)]) + _ = this[Strings.vertexAttrib2f].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y)] + ) } - @inlinable func vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) { + @inlinable public func vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) { let this = jsObject - _ = this[Strings.vertexAttrib3f].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z)]) + _ = this[Strings.vertexAttrib3f].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z)] + ) } - @inlinable func vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) { + @inlinable public func vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) { let this = jsObject - _ = this[Strings.vertexAttrib4f].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)]) + _ = this[Strings.vertexAttrib4f].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)] + ) } - @inlinable func vertexAttrib1fv(index: GLuint, values: Float32List) { + @inlinable public func vertexAttrib1fv(index: GLuint, values: Float32List) { let this = jsObject _ = this[Strings.vertexAttrib1fv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttrib2fv(index: GLuint, values: Float32List) { + @inlinable public func vertexAttrib2fv(index: GLuint, values: Float32List) { let this = jsObject _ = this[Strings.vertexAttrib2fv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttrib3fv(index: GLuint, values: Float32List) { + @inlinable public func vertexAttrib3fv(index: GLuint, values: Float32List) { let this = jsObject _ = this[Strings.vertexAttrib3fv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttrib4fv(index: GLuint, values: Float32List) { + @inlinable public func vertexAttrib4fv(index: GLuint, values: Float32List) { let this = jsObject _ = this[Strings.vertexAttrib4fv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr) { + @inlinable public func vertexAttribPointer( + index: GLuint, + size: GLint, + type: GLenum, + normalized: GLboolean, + stride: GLsizei, + offset: GLintptr + ) { let this = jsObject - _ = this[Strings.vertexAttribPointer].function!(this: this, arguments: [_toJSValue(index), _toJSValue(size), _toJSValue(type), _toJSValue(normalized), _toJSValue(stride), _toJSValue(offset)]) + _ = this[Strings.vertexAttribPointer].function!( + this: this, + arguments: [ + _toJSValue(index), _toJSValue(size), _toJSValue(type), _toJSValue(normalized), _toJSValue(stride), + _toJSValue(offset), + ] + ) } - @inlinable func viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) { + @inlinable public func viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) { let this = jsObject - _ = this[Strings.viewport].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.viewport].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)] + ) } } - public protocol WebGLRenderingContextOverloads: JSBridgedClass {} -public extension WebGLRenderingContextOverloads { - @inlinable func bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) { - let this = jsObject - _ = this[Strings.bufferData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(size), _toJSValue(usage)]) - } - - @inlinable func bufferData(target: GLenum, data: AllowSharedBufferSource?, usage: GLenum) { - let this = jsObject - _ = this[Strings.bufferData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(data), _toJSValue(usage)]) - } - - @inlinable func bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource) { - let this = jsObject - _ = this[Strings.bufferSubData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(offset), _toJSValue(data)]) - } - - @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView) { - let this = jsObject - _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(data)]) - } - - @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView) { - let this = jsObject - _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(data)]) - } - - @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.readPixels].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pixels)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pixels)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pixels)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func uniform1fv(location: WebGLUniformLocation?, v: Float32List) { +extension WebGLRenderingContextOverloads { + @inlinable public func bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) { + let this = jsObject + _ = this[Strings.bufferData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(size), _toJSValue(usage)] + ) + } + + @inlinable public func bufferData(target: GLenum, data: AllowSharedBufferSource?, usage: GLenum) { + let this = jsObject + _ = this[Strings.bufferData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(data), _toJSValue(usage)] + ) + } + + @inlinable public func bufferSubData(target: GLenum, offset: GLintptr, data: AllowSharedBufferSource) { + let this = jsObject + _ = this[Strings.bufferSubData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(offset), _toJSValue(data)] + ) + } + + @inlinable public func compressedTexImage2D( + target: GLenum, + level: GLint, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + border: GLint, + data: ArrayBufferView + ) { + let this = jsObject + _ = this[Strings.compressedTexImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(data), + ] + ) + } + + @inlinable public func compressedTexSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + data: ArrayBufferView + ) { + let this = jsObject + _ = this[Strings.compressedTexSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(data), + ] + ) + } + + @inlinable public func readPixels( + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + pixels: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.readPixels].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), + _toJSValue(type), _toJSValue(pixels), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + pixels: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pixels), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(format), _toJSValue(type), + _toJSValue(source), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + pixels: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pixels), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(format), + _toJSValue(type), _toJSValue(source), + ] + ) + } + + @inlinable public func uniform1fv(location: WebGLUniformLocation?, v: Float32List) { let this = jsObject _ = this[Strings.uniform1fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform2fv(location: WebGLUniformLocation?, v: Float32List) { + @inlinable public func uniform2fv(location: WebGLUniformLocation?, v: Float32List) { let this = jsObject _ = this[Strings.uniform2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform3fv(location: WebGLUniformLocation?, v: Float32List) { + @inlinable public func uniform3fv(location: WebGLUniformLocation?, v: Float32List) { let this = jsObject _ = this[Strings.uniform3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform4fv(location: WebGLUniformLocation?, v: Float32List) { + @inlinable public func uniform4fv(location: WebGLUniformLocation?, v: Float32List) { let this = jsObject _ = this[Strings.uniform4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform1iv(location: WebGLUniformLocation?, v: Int32List) { + @inlinable public func uniform1iv(location: WebGLUniformLocation?, v: Int32List) { let this = jsObject _ = this[Strings.uniform1iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform2iv(location: WebGLUniformLocation?, v: Int32List) { + @inlinable public func uniform2iv(location: WebGLUniformLocation?, v: Int32List) { let this = jsObject _ = this[Strings.uniform2iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform3iv(location: WebGLUniformLocation?, v: Int32List) { + @inlinable public func uniform3iv(location: WebGLUniformLocation?, v: Int32List) { let this = jsObject _ = this[Strings.uniform3iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniform4iv(location: WebGLUniformLocation?, v: Int32List) { + @inlinable public func uniform4iv(location: WebGLUniformLocation?, v: Int32List) { let this = jsObject _ = this[Strings.uniform4iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v)]) } - @inlinable func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { + @inlinable public func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { let this = jsObject - _ = this[Strings.uniformMatrix2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)]) + _ = this[Strings.uniformMatrix2fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)] + ) } - @inlinable func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { + @inlinable public func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { let this = jsObject - _ = this[Strings.uniformMatrix3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)]) + _ = this[Strings.uniformMatrix3fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)] + ) } - @inlinable func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { + @inlinable public func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) { let this = jsObject - _ = this[Strings.uniformMatrix4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)]) + _ = this[Strings.uniformMatrix4fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(value)] + ) } } - public class WebGLShader: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLShader].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLShader].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLShaderPrecisionFormat: JSBridgedClass { - @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLShaderPrecisionFormat].function } + @inlinable public class var constructor: JSFunction? { + JSObject.global[Strings.WebGLShaderPrecisionFormat].function + } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _rangeMin = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeMin) - _rangeMax = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeMax) - _precision = ReadonlyAttribute(jsObject: jsObject, name: Strings.precision) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var rangeMin: GLint + @inlinable public var rangeMin: GLint { jsObject[Strings.rangeMin].fromJSValue()! } - @ReadonlyAttribute - public var rangeMax: GLint + @inlinable public var rangeMax: GLint { jsObject[Strings.rangeMax].fromJSValue()! } - @ReadonlyAttribute - public var precision: GLint + @inlinable public var precision: GLint { jsObject[Strings.precision].fromJSValue()! } } public class WebGLTexture: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLTexture].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLTexture].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLUniformLocation: JSBridgedClass { @@ -1556,186 +1873,187 @@ public class WebGLUniformLocation: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let WebGLActiveInfo: JSString = "WebGLActiveInfo" - @usableFromInline static let WebGLBuffer: JSString = "WebGLBuffer" - @usableFromInline static let WebGLContextEvent: JSString = "WebGLContextEvent" - @usableFromInline static let WebGLFramebuffer: JSString = "WebGLFramebuffer" - @usableFromInline static let WebGLObject: JSString = "WebGLObject" - @usableFromInline static let WebGLProgram: JSString = "WebGLProgram" - @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer" - @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext" - @usableFromInline static let WebGLShader: JSString = "WebGLShader" - @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat" - @usableFromInline static let WebGLTexture: JSString = "WebGLTexture" - @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation" - @usableFromInline static let activeTexture: JSString = "activeTexture" - @usableFromInline static let alpha: JSString = "alpha" - @usableFromInline static let antialias: JSString = "antialias" - @usableFromInline static let attachShader: JSString = "attachShader" - @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation" - @usableFromInline static let bindBuffer: JSString = "bindBuffer" - @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer" - @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer" - @usableFromInline static let bindTexture: JSString = "bindTexture" - @usableFromInline static let blendColor: JSString = "blendColor" - @usableFromInline static let blendEquation: JSString = "blendEquation" - @usableFromInline static let blendEquationSeparate: JSString = "blendEquationSeparate" - @usableFromInline static let blendFunc: JSString = "blendFunc" - @usableFromInline static let blendFuncSeparate: JSString = "blendFuncSeparate" - @usableFromInline static let bufferData: JSString = "bufferData" - @usableFromInline static let bufferSubData: JSString = "bufferSubData" - @usableFromInline static let canvas: JSString = "canvas" - @usableFromInline static let checkFramebufferStatus: JSString = "checkFramebufferStatus" - @usableFromInline static let clear: JSString = "clear" - @usableFromInline static let clearColor: JSString = "clearColor" - @usableFromInline static let clearDepth: JSString = "clearDepth" - @usableFromInline static let clearStencil: JSString = "clearStencil" - @usableFromInline static let colorMask: JSString = "colorMask" - @usableFromInline static let compileShader: JSString = "compileShader" - @usableFromInline static let compressedTexImage2D: JSString = "compressedTexImage2D" - @usableFromInline static let compressedTexSubImage2D: JSString = "compressedTexSubImage2D" - @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D" - @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D" - @usableFromInline static let createBuffer: JSString = "createBuffer" - @usableFromInline static let createFramebuffer: JSString = "createFramebuffer" - @usableFromInline static let createProgram: JSString = "createProgram" - @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer" - @usableFromInline static let createShader: JSString = "createShader" - @usableFromInline static let createTexture: JSString = "createTexture" - @usableFromInline static let cullFace: JSString = "cullFace" - @usableFromInline static let deleteBuffer: JSString = "deleteBuffer" - @usableFromInline static let deleteFramebuffer: JSString = "deleteFramebuffer" - @usableFromInline static let deleteProgram: JSString = "deleteProgram" - @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer" - @usableFromInline static let deleteShader: JSString = "deleteShader" - @usableFromInline static let deleteTexture: JSString = "deleteTexture" - @usableFromInline static let depth: JSString = "depth" - @usableFromInline static let depthFunc: JSString = "depthFunc" - @usableFromInline static let depthMask: JSString = "depthMask" - @usableFromInline static let depthRange: JSString = "depthRange" - @usableFromInline static let desynchronized: JSString = "desynchronized" - @usableFromInline static let detachShader: JSString = "detachShader" - @usableFromInline static let disable: JSString = "disable" - @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray" - @usableFromInline static let drawArrays: JSString = "drawArrays" - @usableFromInline static let drawElements: JSString = "drawElements" - @usableFromInline static let drawingBufferColorSpace: JSString = "drawingBufferColorSpace" - @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight" - @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth" - @usableFromInline static let enable: JSString = "enable" - @usableFromInline static let enableVertexAttribArray: JSString = "enableVertexAttribArray" - @usableFromInline static let failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat" - @usableFromInline static let finish: JSString = "finish" - @usableFromInline static let flush: JSString = "flush" - @usableFromInline static let framebufferRenderbuffer: JSString = "framebufferRenderbuffer" - @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D" - @usableFromInline static let frontFace: JSString = "frontFace" - @usableFromInline static let generateMipmap: JSString = "generateMipmap" - @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib" - @usableFromInline static let getActiveUniform: JSString = "getActiveUniform" - @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders" - @usableFromInline static let getAttribLocation: JSString = "getAttribLocation" - @usableFromInline static let getBufferParameter: JSString = "getBufferParameter" - @usableFromInline static let getContextAttributes: JSString = "getContextAttributes" - @usableFromInline static let getError: JSString = "getError" - @usableFromInline static let getExtension: JSString = "getExtension" - @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter" - @usableFromInline static let getParameter: JSString = "getParameter" - @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog" - @usableFromInline static let getProgramParameter: JSString = "getProgramParameter" - @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter" - @usableFromInline static let getShaderInfoLog: JSString = "getShaderInfoLog" - @usableFromInline static let getShaderParameter: JSString = "getShaderParameter" - @usableFromInline static let getShaderPrecisionFormat: JSString = "getShaderPrecisionFormat" - @usableFromInline static let getShaderSource: JSString = "getShaderSource" - @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions" - @usableFromInline static let getTexParameter: JSString = "getTexParameter" - @usableFromInline static let getUniform: JSString = "getUniform" - @usableFromInline static let getUniformLocation: JSString = "getUniformLocation" - @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib" - @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset" - @usableFromInline static let hint: JSString = "hint" - @usableFromInline static let isBuffer: JSString = "isBuffer" - @usableFromInline static let isContextLost: JSString = "isContextLost" - @usableFromInline static let isEnabled: JSString = "isEnabled" - @usableFromInline static let isFramebuffer: JSString = "isFramebuffer" - @usableFromInline static let isProgram: JSString = "isProgram" - @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer" - @usableFromInline static let isShader: JSString = "isShader" - @usableFromInline static let isTexture: JSString = "isTexture" - @usableFromInline static let lineWidth: JSString = "lineWidth" - @usableFromInline static let linkProgram: JSString = "linkProgram" - @usableFromInline static let name: JSString = "name" - @usableFromInline static let pixelStorei: JSString = "pixelStorei" - @usableFromInline static let polygonOffset: JSString = "polygonOffset" - @usableFromInline static let powerPreference: JSString = "powerPreference" - @usableFromInline static let precision: JSString = "precision" - @usableFromInline static let premultipliedAlpha: JSString = "premultipliedAlpha" - @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer" - @usableFromInline static let rangeMax: JSString = "rangeMax" - @usableFromInline static let rangeMin: JSString = "rangeMin" - @usableFromInline static let readPixels: JSString = "readPixels" - @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage" - @usableFromInline static let sampleCoverage: JSString = "sampleCoverage" - @usableFromInline static let scissor: JSString = "scissor" - @usableFromInline static let shaderSource: JSString = "shaderSource" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let statusMessage: JSString = "statusMessage" - @usableFromInline static let stencil: JSString = "stencil" - @usableFromInline static let stencilFunc: JSString = "stencilFunc" - @usableFromInline static let stencilFuncSeparate: JSString = "stencilFuncSeparate" - @usableFromInline static let stencilMask: JSString = "stencilMask" - @usableFromInline static let stencilMaskSeparate: JSString = "stencilMaskSeparate" - @usableFromInline static let stencilOp: JSString = "stencilOp" - @usableFromInline static let stencilOpSeparate: JSString = "stencilOpSeparate" - @usableFromInline static let texImage2D: JSString = "texImage2D" - @usableFromInline static let texParameterf: JSString = "texParameterf" - @usableFromInline static let texParameteri: JSString = "texParameteri" - @usableFromInline static let texSubImage2D: JSString = "texSubImage2D" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let uniform1f: JSString = "uniform1f" - @usableFromInline static let uniform1fv: JSString = "uniform1fv" - @usableFromInline static let uniform1i: JSString = "uniform1i" - @usableFromInline static let uniform1iv: JSString = "uniform1iv" - @usableFromInline static let uniform2f: JSString = "uniform2f" - @usableFromInline static let uniform2fv: JSString = "uniform2fv" - @usableFromInline static let uniform2i: JSString = "uniform2i" - @usableFromInline static let uniform2iv: JSString = "uniform2iv" - @usableFromInline static let uniform3f: JSString = "uniform3f" - @usableFromInline static let uniform3fv: JSString = "uniform3fv" - @usableFromInline static let uniform3i: JSString = "uniform3i" - @usableFromInline static let uniform3iv: JSString = "uniform3iv" - @usableFromInline static let uniform4f: JSString = "uniform4f" - @usableFromInline static let uniform4fv: JSString = "uniform4fv" - @usableFromInline static let uniform4i: JSString = "uniform4i" - @usableFromInline static let uniform4iv: JSString = "uniform4iv" - @usableFromInline static let uniformMatrix2fv: JSString = "uniformMatrix2fv" - @usableFromInline static let uniformMatrix3fv: JSString = "uniformMatrix3fv" - @usableFromInline static let uniformMatrix4fv: JSString = "uniformMatrix4fv" - @usableFromInline static let unpackColorSpace: JSString = "unpackColorSpace" - @usableFromInline static let useProgram: JSString = "useProgram" - @usableFromInline static let validateProgram: JSString = "validateProgram" - @usableFromInline static let vertexAttrib1f: JSString = "vertexAttrib1f" - @usableFromInline static let vertexAttrib1fv: JSString = "vertexAttrib1fv" - @usableFromInline static let vertexAttrib2f: JSString = "vertexAttrib2f" - @usableFromInline static let vertexAttrib2fv: JSString = "vertexAttrib2fv" - @usableFromInline static let vertexAttrib3f: JSString = "vertexAttrib3f" - @usableFromInline static let vertexAttrib3fv: JSString = "vertexAttrib3fv" - @usableFromInline static let vertexAttrib4f: JSString = "vertexAttrib4f" - @usableFromInline static let vertexAttrib4fv: JSString = "vertexAttrib4fv" - @usableFromInline static let vertexAttribPointer: JSString = "vertexAttribPointer" - @usableFromInline static let viewport: JSString = "viewport" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `WebGLActiveInfo`: JSString = "WebGLActiveInfo" + @usableFromInline static let `WebGLBuffer`: JSString = "WebGLBuffer" + @usableFromInline static let `WebGLContextEvent`: JSString = "WebGLContextEvent" + @usableFromInline static let `WebGLFramebuffer`: JSString = "WebGLFramebuffer" + @usableFromInline static let `WebGLObject`: JSString = "WebGLObject" + @usableFromInline static let `WebGLProgram`: JSString = "WebGLProgram" + @usableFromInline static let `WebGLRenderbuffer`: JSString = "WebGLRenderbuffer" + @usableFromInline static let `WebGLRenderingContext`: JSString = "WebGLRenderingContext" + @usableFromInline static let `WebGLShader`: JSString = "WebGLShader" + @usableFromInline static let `WebGLShaderPrecisionFormat`: JSString = "WebGLShaderPrecisionFormat" + @usableFromInline static let `WebGLTexture`: JSString = "WebGLTexture" + @usableFromInline static let `WebGLUniformLocation`: JSString = "WebGLUniformLocation" + @usableFromInline static let `activeTexture`: JSString = "activeTexture" + @usableFromInline static let `alpha`: JSString = "alpha" + @usableFromInline static let `antialias`: JSString = "antialias" + @usableFromInline static let `attachShader`: JSString = "attachShader" + @usableFromInline static let `bindAttribLocation`: JSString = "bindAttribLocation" + @usableFromInline static let `bindBuffer`: JSString = "bindBuffer" + @usableFromInline static let `bindFramebuffer`: JSString = "bindFramebuffer" + @usableFromInline static let `bindRenderbuffer`: JSString = "bindRenderbuffer" + @usableFromInline static let `bindTexture`: JSString = "bindTexture" + @usableFromInline static let `blendColor`: JSString = "blendColor" + @usableFromInline static let `blendEquation`: JSString = "blendEquation" + @usableFromInline static let `blendEquationSeparate`: JSString = "blendEquationSeparate" + @usableFromInline static let `blendFunc`: JSString = "blendFunc" + @usableFromInline static let `blendFuncSeparate`: JSString = "blendFuncSeparate" + @usableFromInline static let `bufferData`: JSString = "bufferData" + @usableFromInline static let `bufferSubData`: JSString = "bufferSubData" + @usableFromInline static let `canvas`: JSString = "canvas" + @usableFromInline static let `checkFramebufferStatus`: JSString = "checkFramebufferStatus" + @usableFromInline static let `clear`: JSString = "clear" + @usableFromInline static let `clearColor`: JSString = "clearColor" + @usableFromInline static let `clearDepth`: JSString = "clearDepth" + @usableFromInline static let `clearStencil`: JSString = "clearStencil" + @usableFromInline static let `colorMask`: JSString = "colorMask" + @usableFromInline static let `compileShader`: JSString = "compileShader" + @usableFromInline static let `compressedTexImage2D`: JSString = "compressedTexImage2D" + @usableFromInline static let `compressedTexSubImage2D`: JSString = "compressedTexSubImage2D" + @usableFromInline static let `copyTexImage2D`: JSString = "copyTexImage2D" + @usableFromInline static let `copyTexSubImage2D`: JSString = "copyTexSubImage2D" + @usableFromInline static let `createBuffer`: JSString = "createBuffer" + @usableFromInline static let `createFramebuffer`: JSString = "createFramebuffer" + @usableFromInline static let `createProgram`: JSString = "createProgram" + @usableFromInline static let `createRenderbuffer`: JSString = "createRenderbuffer" + @usableFromInline static let `createShader`: JSString = "createShader" + @usableFromInline static let `createTexture`: JSString = "createTexture" + @usableFromInline static let `cullFace`: JSString = "cullFace" + @usableFromInline static let `deleteBuffer`: JSString = "deleteBuffer" + @usableFromInline static let `deleteFramebuffer`: JSString = "deleteFramebuffer" + @usableFromInline static let `deleteProgram`: JSString = "deleteProgram" + @usableFromInline static let `deleteRenderbuffer`: JSString = "deleteRenderbuffer" + @usableFromInline static let `deleteShader`: JSString = "deleteShader" + @usableFromInline static let `deleteTexture`: JSString = "deleteTexture" + @usableFromInline static let `depth`: JSString = "depth" + @usableFromInline static let `depthFunc`: JSString = "depthFunc" + @usableFromInline static let `depthMask`: JSString = "depthMask" + @usableFromInline static let `depthRange`: JSString = "depthRange" + @usableFromInline static let `desynchronized`: JSString = "desynchronized" + @usableFromInline static let `detachShader`: JSString = "detachShader" + @usableFromInline static let `disable`: JSString = "disable" + @usableFromInline static let `disableVertexAttribArray`: JSString = "disableVertexAttribArray" + @usableFromInline static let `drawArrays`: JSString = "drawArrays" + @usableFromInline static let `drawElements`: JSString = "drawElements" + @usableFromInline static let `drawingBufferColorSpace`: JSString = "drawingBufferColorSpace" + @usableFromInline static let `drawingBufferFormat`: JSString = "drawingBufferFormat" + @usableFromInline static let `drawingBufferHeight`: JSString = "drawingBufferHeight" + @usableFromInline static let `drawingBufferStorage`: JSString = "drawingBufferStorage" + @usableFromInline static let `drawingBufferWidth`: JSString = "drawingBufferWidth" + @usableFromInline static let `enable`: JSString = "enable" + @usableFromInline static let `enableVertexAttribArray`: JSString = "enableVertexAttribArray" + @usableFromInline static let `failIfMajorPerformanceCaveat`: JSString = "failIfMajorPerformanceCaveat" + @usableFromInline static let `finish`: JSString = "finish" + @usableFromInline static let `flush`: JSString = "flush" + @usableFromInline static let `framebufferRenderbuffer`: JSString = "framebufferRenderbuffer" + @usableFromInline static let `framebufferTexture2D`: JSString = "framebufferTexture2D" + @usableFromInline static let `frontFace`: JSString = "frontFace" + @usableFromInline static let `generateMipmap`: JSString = "generateMipmap" + @usableFromInline static let `getActiveAttrib`: JSString = "getActiveAttrib" + @usableFromInline static let `getActiveUniform`: JSString = "getActiveUniform" + @usableFromInline static let `getAttachedShaders`: JSString = "getAttachedShaders" + @usableFromInline static let `getAttribLocation`: JSString = "getAttribLocation" + @usableFromInline static let `getBufferParameter`: JSString = "getBufferParameter" + @usableFromInline static let `getContextAttributes`: JSString = "getContextAttributes" + @usableFromInline static let `getError`: JSString = "getError" + @usableFromInline static let `getExtension`: JSString = "getExtension" + @usableFromInline static let `getFramebufferAttachmentParameter`: JSString = "getFramebufferAttachmentParameter" + @usableFromInline static let `getParameter`: JSString = "getParameter" + @usableFromInline static let `getProgramInfoLog`: JSString = "getProgramInfoLog" + @usableFromInline static let `getProgramParameter`: JSString = "getProgramParameter" + @usableFromInline static let `getRenderbufferParameter`: JSString = "getRenderbufferParameter" + @usableFromInline static let `getShaderInfoLog`: JSString = "getShaderInfoLog" + @usableFromInline static let `getShaderParameter`: JSString = "getShaderParameter" + @usableFromInline static let `getShaderPrecisionFormat`: JSString = "getShaderPrecisionFormat" + @usableFromInline static let `getShaderSource`: JSString = "getShaderSource" + @usableFromInline static let `getSupportedExtensions`: JSString = "getSupportedExtensions" + @usableFromInline static let `getTexParameter`: JSString = "getTexParameter" + @usableFromInline static let `getUniform`: JSString = "getUniform" + @usableFromInline static let `getUniformLocation`: JSString = "getUniformLocation" + @usableFromInline static let `getVertexAttrib`: JSString = "getVertexAttrib" + @usableFromInline static let `getVertexAttribOffset`: JSString = "getVertexAttribOffset" + @usableFromInline static let `hint`: JSString = "hint" + @usableFromInline static let `isBuffer`: JSString = "isBuffer" + @usableFromInline static let `isContextLost`: JSString = "isContextLost" + @usableFromInline static let `isEnabled`: JSString = "isEnabled" + @usableFromInline static let `isFramebuffer`: JSString = "isFramebuffer" + @usableFromInline static let `isProgram`: JSString = "isProgram" + @usableFromInline static let `isRenderbuffer`: JSString = "isRenderbuffer" + @usableFromInline static let `isShader`: JSString = "isShader" + @usableFromInline static let `isTexture`: JSString = "isTexture" + @usableFromInline static let `label`: JSString = "label" + @usableFromInline static let `lineWidth`: JSString = "lineWidth" + @usableFromInline static let `linkProgram`: JSString = "linkProgram" + @usableFromInline static let `name`: JSString = "name" + @usableFromInline static let `pixelStorei`: JSString = "pixelStorei" + @usableFromInline static let `polygonOffset`: JSString = "polygonOffset" + @usableFromInline static let `powerPreference`: JSString = "powerPreference" + @usableFromInline static let `precision`: JSString = "precision" + @usableFromInline static let `premultipliedAlpha`: JSString = "premultipliedAlpha" + @usableFromInline static let `preserveDrawingBuffer`: JSString = "preserveDrawingBuffer" + @usableFromInline static let `rangeMax`: JSString = "rangeMax" + @usableFromInline static let `rangeMin`: JSString = "rangeMin" + @usableFromInline static let `readPixels`: JSString = "readPixels" + @usableFromInline static let `renderbufferStorage`: JSString = "renderbufferStorage" + @usableFromInline static let `sampleCoverage`: JSString = "sampleCoverage" + @usableFromInline static let `scissor`: JSString = "scissor" + @usableFromInline static let `shaderSource`: JSString = "shaderSource" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `statusMessage`: JSString = "statusMessage" + @usableFromInline static let `stencil`: JSString = "stencil" + @usableFromInline static let `stencilFunc`: JSString = "stencilFunc" + @usableFromInline static let `stencilFuncSeparate`: JSString = "stencilFuncSeparate" + @usableFromInline static let `stencilMask`: JSString = "stencilMask" + @usableFromInline static let `stencilMaskSeparate`: JSString = "stencilMaskSeparate" + @usableFromInline static let `stencilOp`: JSString = "stencilOp" + @usableFromInline static let `stencilOpSeparate`: JSString = "stencilOpSeparate" + @usableFromInline static let `texImage2D`: JSString = "texImage2D" + @usableFromInline static let `texParameterf`: JSString = "texParameterf" + @usableFromInline static let `texParameteri`: JSString = "texParameteri" + @usableFromInline static let `texSubImage2D`: JSString = "texSubImage2D" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `uniform1f`: JSString = "uniform1f" + @usableFromInline static let `uniform1fv`: JSString = "uniform1fv" + @usableFromInline static let `uniform1i`: JSString = "uniform1i" + @usableFromInline static let `uniform1iv`: JSString = "uniform1iv" + @usableFromInline static let `uniform2f`: JSString = "uniform2f" + @usableFromInline static let `uniform2fv`: JSString = "uniform2fv" + @usableFromInline static let `uniform2i`: JSString = "uniform2i" + @usableFromInline static let `uniform2iv`: JSString = "uniform2iv" + @usableFromInline static let `uniform3f`: JSString = "uniform3f" + @usableFromInline static let `uniform3fv`: JSString = "uniform3fv" + @usableFromInline static let `uniform3i`: JSString = "uniform3i" + @usableFromInline static let `uniform3iv`: JSString = "uniform3iv" + @usableFromInline static let `uniform4f`: JSString = "uniform4f" + @usableFromInline static let `uniform4fv`: JSString = "uniform4fv" + @usableFromInline static let `uniform4i`: JSString = "uniform4i" + @usableFromInline static let `uniform4iv`: JSString = "uniform4iv" + @usableFromInline static let `uniformMatrix2fv`: JSString = "uniformMatrix2fv" + @usableFromInline static let `uniformMatrix3fv`: JSString = "uniformMatrix3fv" + @usableFromInline static let `uniformMatrix4fv`: JSString = "uniformMatrix4fv" + @usableFromInline static let `unpackColorSpace`: JSString = "unpackColorSpace" + @usableFromInline static let `useProgram`: JSString = "useProgram" + @usableFromInline static let `validateProgram`: JSString = "validateProgram" + @usableFromInline static let `vertexAttrib1f`: JSString = "vertexAttrib1f" + @usableFromInline static let `vertexAttrib1fv`: JSString = "vertexAttrib1fv" + @usableFromInline static let `vertexAttrib2f`: JSString = "vertexAttrib2f" + @usableFromInline static let `vertexAttrib2fv`: JSString = "vertexAttrib2fv" + @usableFromInline static let `vertexAttrib3f`: JSString = "vertexAttrib3f" + @usableFromInline static let `vertexAttrib3fv`: JSString = "vertexAttrib3fv" + @usableFromInline static let `vertexAttrib4f`: JSString = "vertexAttrib4f" + @usableFromInline static let `vertexAttrib4fv`: JSString = "vertexAttrib4fv" + @usableFromInline static let `vertexAttribPointer`: JSString = "vertexAttribPointer" + @usableFromInline static let `viewport`: JSString = "viewport" } - public protocol Any_Float32List: ConvertibleToJSValue {} extension Float32Array: Any_Float32List {} extension Array: Any_Float32List where Element == GLfloat {} @@ -1744,12 +2062,11 @@ public enum Float32List: JSValueCompatible, Any_Float32List { case float32Array(Float32Array) case seq_of_GLfloat([GLfloat]) - init(_ float32Array: Float32Array) { + public init(_ float32Array: Float32Array) { let val: Float32List = .float32Array(float32Array) self = val } - - init(_ seq_of_GLfloat: [GLfloat]) { + public init(_ seq_of_GLfloat: [GLfloat]) { let val: Float32List = .seq_of_GLfloat(seq_of_GLfloat) self = val } @@ -1760,7 +2077,6 @@ public enum Float32List: JSValueCompatible, Any_Float32List { default: return nil } } - public var seq_of_GLfloat: [GLfloat]? { switch self { case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat @@ -1769,25 +2085,18 @@ public enum Float32List: JSValueCompatible, Any_Float32List { } public static func construct(from value: JSValue) -> Self? { - if let float32Array: Float32Array = value.fromJSValue() { - return .float32Array(float32Array) - } - if let seq_of_GLfloat: [GLfloat] = value.fromJSValue() { - return .seq_of_GLfloat(seq_of_GLfloat) - } + if let float32Array: Float32Array = value.fromJSValue() { return .float32Array(float32Array) } + if let seq_of_GLfloat: [GLfloat] = value.fromJSValue() { return .seq_of_GLfloat(seq_of_GLfloat) } return nil } public var jsValue: JSValue { switch self { - case let .float32Array(float32Array): - return float32Array.jsValue - case let .seq_of_GLfloat(seq_of_GLfloat): - return seq_of_GLfloat.jsValue + case let .float32Array(float32Array): return float32Array.jsValue + case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat.jsValue } } } - public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {} extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {} extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {} @@ -1796,12 +2105,11 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan case htmlCanvasElement(HTMLCanvasElement) case offscreenCanvas(OffscreenCanvas) - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: HTMLCanvasElement_or_OffscreenCanvas = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: HTMLCanvasElement_or_OffscreenCanvas = .offscreenCanvas(offscreenCanvas) self = val } @@ -1812,7 +2120,6 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan default: return nil } } - public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas @@ -1824,22 +2131,17 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { return .htmlCanvasElement(htmlCanvasElement) } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue } } } - public protocol Any_Int32List: ConvertibleToJSValue {} extension Int32Array: Any_Int32List {} extension Array: Any_Int32List where Element == GLint {} @@ -1848,12 +2150,11 @@ public enum Int32List: JSValueCompatible, Any_Int32List { case int32Array(Int32Array) case seq_of_GLint([GLint]) - init(_ int32Array: Int32Array) { + public init(_ int32Array: Int32Array) { let val: Int32List = .int32Array(int32Array) self = val } - - init(_ seq_of_GLint: [GLint]) { + public init(_ seq_of_GLint: [GLint]) { let val: Int32List = .seq_of_GLint(seq_of_GLint) self = val } @@ -1864,7 +2165,6 @@ public enum Int32List: JSValueCompatible, Any_Int32List { default: return nil } } - public var seq_of_GLint: [GLint]? { switch self { case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint @@ -1873,25 +2173,18 @@ public enum Int32List: JSValueCompatible, Any_Int32List { } public static func construct(from value: JSValue) -> Self? { - if let int32Array: Int32Array = value.fromJSValue() { - return .int32Array(int32Array) - } - if let seq_of_GLint: [GLint] = value.fromJSValue() { - return .seq_of_GLint(seq_of_GLint) - } + if let int32Array: Int32Array = value.fromJSValue() { return .int32Array(int32Array) } + if let seq_of_GLint: [GLint] = value.fromJSValue() { return .seq_of_GLint(seq_of_GLint) } return nil } public var jsValue: JSValue { switch self { - case let .int32Array(int32Array): - return int32Array.jsValue - case let .seq_of_GLint(seq_of_GLint): - return seq_of_GLint.jsValue + case let .int32Array(int32Array): return int32Array.jsValue + case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint.jsValue } } } - public protocol Any_TexImageSource: ConvertibleToJSValue {} extension HTMLCanvasElement: Any_TexImageSource {} extension HTMLImageElement: Any_TexImageSource {} @@ -1910,37 +2203,31 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource { case offscreenCanvas(OffscreenCanvas) case videoFrame(VideoFrame) - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: TexImageSource = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ htmlImageElement: HTMLImageElement) { + public init(_ htmlImageElement: HTMLImageElement) { let val: TexImageSource = .htmlImageElement(htmlImageElement) self = val } - - init(_ htmlVideoElement: HTMLVideoElement) { + public init(_ htmlVideoElement: HTMLVideoElement) { let val: TexImageSource = .htmlVideoElement(htmlVideoElement) self = val } - - init(_ imageBitmap: ImageBitmap) { + public init(_ imageBitmap: ImageBitmap) { let val: TexImageSource = .imageBitmap(imageBitmap) self = val } - - init(_ imageData: ImageData) { + public init(_ imageData: ImageData) { let val: TexImageSource = .imageData(imageData) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: TexImageSource = .offscreenCanvas(offscreenCanvas) self = val } - - init(_ videoFrame: VideoFrame) { + public init(_ videoFrame: VideoFrame) { let val: TexImageSource = .videoFrame(videoFrame) self = val } @@ -1951,42 +2238,36 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource { default: return nil } } - public var htmlImageElement: HTMLImageElement? { switch self { case let .htmlImageElement(htmlImageElement): return htmlImageElement default: return nil } } - public var htmlVideoElement: HTMLVideoElement? { switch self { case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement default: return nil } } - public var imageBitmap: ImageBitmap? { switch self { case let .imageBitmap(imageBitmap): return imageBitmap default: return nil } } - public var imageData: ImageData? { switch self { case let .imageData(imageData): return imageData default: return nil } } - public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas default: return nil } } - public var videoFrame: VideoFrame? { switch self { case let .videoFrame(videoFrame): return videoFrame @@ -1998,43 +2279,24 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource { if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { return .htmlCanvasElement(htmlCanvasElement) } - if let htmlImageElement: HTMLImageElement = value.fromJSValue() { - return .htmlImageElement(htmlImageElement) - } - if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { - return .htmlVideoElement(htmlVideoElement) - } - if let imageBitmap: ImageBitmap = value.fromJSValue() { - return .imageBitmap(imageBitmap) - } - if let imageData: ImageData = value.fromJSValue() { - return .imageData(imageData) - } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } - if let videoFrame: VideoFrame = value.fromJSValue() { - return .videoFrame(videoFrame) - } + if let htmlImageElement: HTMLImageElement = value.fromJSValue() { return .htmlImageElement(htmlImageElement) } + if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { return .htmlVideoElement(htmlVideoElement) } + if let imageBitmap: ImageBitmap = value.fromJSValue() { return .imageBitmap(imageBitmap) } + if let imageData: ImageData = value.fromJSValue() { return .imageData(imageData) } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } + if let videoFrame: VideoFrame = value.fromJSValue() { return .videoFrame(videoFrame) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .htmlImageElement(htmlImageElement): - return htmlImageElement.jsValue - case let .htmlVideoElement(htmlVideoElement): - return htmlVideoElement.jsValue - case let .imageBitmap(imageBitmap): - return imageBitmap.jsValue - case let .imageData(imageData): - return imageData.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue - case let .videoFrame(videoFrame): - return videoFrame.jsValue + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .htmlImageElement(htmlImageElement): return htmlImageElement.jsValue + case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement.jsValue + case let .imageBitmap(imageBitmap): return imageBitmap.jsValue + case let .imageData(imageData): return imageData.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue + case let .videoFrame(videoFrame): return videoFrame.jsValue } } } diff --git a/Sources/WebGL1/Support.swift b/Sources/WebGL1/Support.swift index bb942252..977dc4c7 100644 --- a/Sources/WebGL1/Support.swift +++ b/Sources/WebGL1/Support.swift @@ -1,8 +1,6 @@ import DOM import JavaScriptKit -public typealias GLintptr = Int32 - extension WebGLRenderingContext: RenderingContext { public static var contextID: JSString { "webgl" } } diff --git a/Sources/WebGL2/Generated.swift b/Sources/WebGL2/Generated.swift index 36e4f8a9..29e7027e 100644 --- a/Sources/WebGL2/Generated.swift +++ b/Sources/WebGL2/Generated.swift @@ -3,1355 +3,2337 @@ import DOM import ECMAScript import JavaScriptBigIntSupport -import JavaScriptEventLoop import JavaScriptKit -import WebAnimations import WebAPIBase +import WebAnimations import WebAudio import WebGL1 +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public typealias GLint64 = Int64 public typealias GLuint64 = UInt64 -public class WebGL2RenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGL2RenderingContextBase, WebGL2RenderingContextOverloads { +public class WebGL2RenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGL2RenderingContextBase, + WebGL2RenderingContextOverloads +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGL2RenderingContext].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } public protocol WebGL2RenderingContextBase: JSBridgedClass {} -public extension WebGL2RenderingContextBase { - @inlinable static var READ_BUFFER: GLenum { 0x0C02 } - - @inlinable static var UNPACK_ROW_LENGTH: GLenum { 0x0CF2 } - - @inlinable static var UNPACK_SKIP_ROWS: GLenum { 0x0CF3 } +extension WebGL2RenderingContextBase { + @inlinable public static var READ_BUFFER: GLenum { 0x0C02 } - @inlinable static var UNPACK_SKIP_PIXELS: GLenum { 0x0CF4 } + @inlinable public static var UNPACK_ROW_LENGTH: GLenum { 0x0CF2 } - @inlinable static var PACK_ROW_LENGTH: GLenum { 0x0D02 } + @inlinable public static var UNPACK_SKIP_ROWS: GLenum { 0x0CF3 } - @inlinable static var PACK_SKIP_ROWS: GLenum { 0x0D03 } + @inlinable public static var UNPACK_SKIP_PIXELS: GLenum { 0x0CF4 } - @inlinable static var PACK_SKIP_PIXELS: GLenum { 0x0D04 } + @inlinable public static var PACK_ROW_LENGTH: GLenum { 0x0D02 } - @inlinable static var COLOR: GLenum { 0x1800 } + @inlinable public static var PACK_SKIP_ROWS: GLenum { 0x0D03 } - @inlinable static var DEPTH: GLenum { 0x1801 } + @inlinable public static var PACK_SKIP_PIXELS: GLenum { 0x0D04 } - @inlinable static var STENCIL: GLenum { 0x1802 } + @inlinable public static var COLOR: GLenum { 0x1800 } - @inlinable static var RED: GLenum { 0x1903 } + @inlinable public static var DEPTH: GLenum { 0x1801 } - @inlinable static var RGB8: GLenum { 0x8051 } + @inlinable public static var STENCIL: GLenum { 0x1802 } - @inlinable static var RGBA8: GLenum { 0x8058 } + @inlinable public static var RED: GLenum { 0x1903 } - @inlinable static var RGB10_A2: GLenum { 0x8059 } + @inlinable public static var RGB8: GLenum { 0x8051 } - @inlinable static var TEXTURE_BINDING_3D: GLenum { 0x806A } + @inlinable public static var RGB10_A2: GLenum { 0x8059 } - @inlinable static var UNPACK_SKIP_IMAGES: GLenum { 0x806D } + @inlinable public static var TEXTURE_BINDING_3D: GLenum { 0x806A } - @inlinable static var UNPACK_IMAGE_HEIGHT: GLenum { 0x806E } + @inlinable public static var UNPACK_SKIP_IMAGES: GLenum { 0x806D } - @inlinable static var TEXTURE_3D: GLenum { 0x806F } + @inlinable public static var UNPACK_IMAGE_HEIGHT: GLenum { 0x806E } - @inlinable static var TEXTURE_WRAP_R: GLenum { 0x8072 } + @inlinable public static var TEXTURE_3D: GLenum { 0x806F } - @inlinable static var MAX_3D_TEXTURE_SIZE: GLenum { 0x8073 } + @inlinable public static var TEXTURE_WRAP_R: GLenum { 0x8072 } - @inlinable static var UNSIGNED_INT_2_10_10_10_REV: GLenum { 0x8368 } + @inlinable public static var MAX_3D_TEXTURE_SIZE: GLenum { 0x8073 } - @inlinable static var MAX_ELEMENTS_VERTICES: GLenum { 0x80E8 } + @inlinable public static var UNSIGNED_INT_2_10_10_10_REV: GLenum { 0x8368 } - @inlinable static var MAX_ELEMENTS_INDICES: GLenum { 0x80E9 } + @inlinable public static var MAX_ELEMENTS_VERTICES: GLenum { 0x80E8 } - @inlinable static var TEXTURE_MIN_LOD: GLenum { 0x813A } + @inlinable public static var MAX_ELEMENTS_INDICES: GLenum { 0x80E9 } - @inlinable static var TEXTURE_MAX_LOD: GLenum { 0x813B } + @inlinable public static var TEXTURE_MIN_LOD: GLenum { 0x813A } - @inlinable static var TEXTURE_BASE_LEVEL: GLenum { 0x813C } + @inlinable public static var TEXTURE_MAX_LOD: GLenum { 0x813B } - @inlinable static var TEXTURE_MAX_LEVEL: GLenum { 0x813D } + @inlinable public static var TEXTURE_BASE_LEVEL: GLenum { 0x813C } - @inlinable static var MIN: GLenum { 0x8007 } + @inlinable public static var TEXTURE_MAX_LEVEL: GLenum { 0x813D } - @inlinable static var MAX: GLenum { 0x8008 } + @inlinable public static var MIN: GLenum { 0x8007 } - @inlinable static var DEPTH_COMPONENT24: GLenum { 0x81A6 } + @inlinable public static var MAX: GLenum { 0x8008 } - @inlinable static var MAX_TEXTURE_LOD_BIAS: GLenum { 0x84FD } + @inlinable public static var DEPTH_COMPONENT24: GLenum { 0x81A6 } - @inlinable static var TEXTURE_COMPARE_MODE: GLenum { 0x884C } + @inlinable public static var MAX_TEXTURE_LOD_BIAS: GLenum { 0x84FD } - @inlinable static var TEXTURE_COMPARE_FUNC: GLenum { 0x884D } + @inlinable public static var TEXTURE_COMPARE_MODE: GLenum { 0x884C } - @inlinable static var CURRENT_QUERY: GLenum { 0x8865 } + @inlinable public static var TEXTURE_COMPARE_FUNC: GLenum { 0x884D } - @inlinable static var QUERY_RESULT: GLenum { 0x8866 } + @inlinable public static var CURRENT_QUERY: GLenum { 0x8865 } - @inlinable static var QUERY_RESULT_AVAILABLE: GLenum { 0x8867 } + @inlinable public static var QUERY_RESULT: GLenum { 0x8866 } - @inlinable static var STREAM_READ: GLenum { 0x88E1 } + @inlinable public static var QUERY_RESULT_AVAILABLE: GLenum { 0x8867 } - @inlinable static var STREAM_COPY: GLenum { 0x88E2 } + @inlinable public static var STREAM_READ: GLenum { 0x88E1 } - @inlinable static var STATIC_READ: GLenum { 0x88E5 } + @inlinable public static var STREAM_COPY: GLenum { 0x88E2 } - @inlinable static var STATIC_COPY: GLenum { 0x88E6 } + @inlinable public static var STATIC_READ: GLenum { 0x88E5 } - @inlinable static var DYNAMIC_READ: GLenum { 0x88E9 } + @inlinable public static var STATIC_COPY: GLenum { 0x88E6 } - @inlinable static var DYNAMIC_COPY: GLenum { 0x88EA } + @inlinable public static var DYNAMIC_READ: GLenum { 0x88E9 } - @inlinable static var MAX_DRAW_BUFFERS: GLenum { 0x8824 } + @inlinable public static var DYNAMIC_COPY: GLenum { 0x88EA } - @inlinable static var DRAW_BUFFER0: GLenum { 0x8825 } + @inlinable public static var MAX_DRAW_BUFFERS: GLenum { 0x8824 } - @inlinable static var DRAW_BUFFER1: GLenum { 0x8826 } + @inlinable public static var DRAW_BUFFER0: GLenum { 0x8825 } - @inlinable static var DRAW_BUFFER2: GLenum { 0x8827 } + @inlinable public static var DRAW_BUFFER1: GLenum { 0x8826 } - @inlinable static var DRAW_BUFFER3: GLenum { 0x8828 } + @inlinable public static var DRAW_BUFFER2: GLenum { 0x8827 } - @inlinable static var DRAW_BUFFER4: GLenum { 0x8829 } + @inlinable public static var DRAW_BUFFER3: GLenum { 0x8828 } - @inlinable static var DRAW_BUFFER5: GLenum { 0x882A } + @inlinable public static var DRAW_BUFFER4: GLenum { 0x8829 } - @inlinable static var DRAW_BUFFER6: GLenum { 0x882B } + @inlinable public static var DRAW_BUFFER5: GLenum { 0x882A } - @inlinable static var DRAW_BUFFER7: GLenum { 0x882C } + @inlinable public static var DRAW_BUFFER6: GLenum { 0x882B } - @inlinable static var DRAW_BUFFER8: GLenum { 0x882D } + @inlinable public static var DRAW_BUFFER7: GLenum { 0x882C } - @inlinable static var DRAW_BUFFER9: GLenum { 0x882E } + @inlinable public static var DRAW_BUFFER8: GLenum { 0x882D } - @inlinable static var DRAW_BUFFER10: GLenum { 0x882F } + @inlinable public static var DRAW_BUFFER9: GLenum { 0x882E } - @inlinable static var DRAW_BUFFER11: GLenum { 0x8830 } + @inlinable public static var DRAW_BUFFER10: GLenum { 0x882F } - @inlinable static var DRAW_BUFFER12: GLenum { 0x8831 } + @inlinable public static var DRAW_BUFFER11: GLenum { 0x8830 } - @inlinable static var DRAW_BUFFER13: GLenum { 0x8832 } + @inlinable public static var DRAW_BUFFER12: GLenum { 0x8831 } - @inlinable static var DRAW_BUFFER14: GLenum { 0x8833 } + @inlinable public static var DRAW_BUFFER13: GLenum { 0x8832 } - @inlinable static var DRAW_BUFFER15: GLenum { 0x8834 } + @inlinable public static var DRAW_BUFFER14: GLenum { 0x8833 } - @inlinable static var MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8B49 } + @inlinable public static var DRAW_BUFFER15: GLenum { 0x8834 } - @inlinable static var MAX_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8B4A } + @inlinable public static var MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8B49 } - @inlinable static var SAMPLER_3D: GLenum { 0x8B5F } + @inlinable public static var MAX_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8B4A } - @inlinable static var SAMPLER_2D_SHADOW: GLenum { 0x8B62 } + @inlinable public static var SAMPLER_3D: GLenum { 0x8B5F } - @inlinable static var FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum { 0x8B8B } + @inlinable public static var SAMPLER_2D_SHADOW: GLenum { 0x8B62 } - @inlinable static var PIXEL_PACK_BUFFER: GLenum { 0x88EB } + @inlinable public static var FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum { 0x8B8B } - @inlinable static var PIXEL_UNPACK_BUFFER: GLenum { 0x88EC } + @inlinable public static var PIXEL_PACK_BUFFER: GLenum { 0x88EB } - @inlinable static var PIXEL_PACK_BUFFER_BINDING: GLenum { 0x88ED } + @inlinable public static var PIXEL_UNPACK_BUFFER: GLenum { 0x88EC } - @inlinable static var PIXEL_UNPACK_BUFFER_BINDING: GLenum { 0x88EF } + @inlinable public static var PIXEL_PACK_BUFFER_BINDING: GLenum { 0x88ED } - @inlinable static var FLOAT_MAT2x3: GLenum { 0x8B65 } + @inlinable public static var PIXEL_UNPACK_BUFFER_BINDING: GLenum { 0x88EF } - @inlinable static var FLOAT_MAT2x4: GLenum { 0x8B66 } + @inlinable public static var FLOAT_MAT2x3: GLenum { 0x8B65 } - @inlinable static var FLOAT_MAT3x2: GLenum { 0x8B67 } + @inlinable public static var FLOAT_MAT2x4: GLenum { 0x8B66 } - @inlinable static var FLOAT_MAT3x4: GLenum { 0x8B68 } + @inlinable public static var FLOAT_MAT3x2: GLenum { 0x8B67 } - @inlinable static var FLOAT_MAT4x2: GLenum { 0x8B69 } + @inlinable public static var FLOAT_MAT3x4: GLenum { 0x8B68 } - @inlinable static var FLOAT_MAT4x3: GLenum { 0x8B6A } + @inlinable public static var FLOAT_MAT4x2: GLenum { 0x8B69 } - @inlinable static var SRGB: GLenum { 0x8C40 } + @inlinable public static var FLOAT_MAT4x3: GLenum { 0x8B6A } - @inlinable static var SRGB8: GLenum { 0x8C41 } + @inlinable public static var SRGB: GLenum { 0x8C40 } - @inlinable static var SRGB8_ALPHA8: GLenum { 0x8C43 } + @inlinable public static var SRGB8: GLenum { 0x8C41 } - @inlinable static var COMPARE_REF_TO_TEXTURE: GLenum { 0x884E } + @inlinable public static var SRGB8_ALPHA8: GLenum { 0x8C43 } - @inlinable static var RGBA32F: GLenum { 0x8814 } + @inlinable public static var COMPARE_REF_TO_TEXTURE: GLenum { 0x884E } - @inlinable static var RGB32F: GLenum { 0x8815 } + @inlinable public static var RGBA32F: GLenum { 0x8814 } - @inlinable static var RGBA16F: GLenum { 0x881A } + @inlinable public static var RGB32F: GLenum { 0x8815 } - @inlinable static var RGB16F: GLenum { 0x881B } + @inlinable public static var RGBA16F: GLenum { 0x881A } - @inlinable static var VERTEX_ATTRIB_ARRAY_INTEGER: GLenum { 0x88FD } + @inlinable public static var RGB16F: GLenum { 0x881B } - @inlinable static var MAX_ARRAY_TEXTURE_LAYERS: GLenum { 0x88FF } + @inlinable public static var VERTEX_ATTRIB_ARRAY_INTEGER: GLenum { 0x88FD } - @inlinable static var MIN_PROGRAM_TEXEL_OFFSET: GLenum { 0x8904 } + @inlinable public static var MAX_ARRAY_TEXTURE_LAYERS: GLenum { 0x88FF } - @inlinable static var MAX_PROGRAM_TEXEL_OFFSET: GLenum { 0x8905 } + @inlinable public static var MIN_PROGRAM_TEXEL_OFFSET: GLenum { 0x8904 } - @inlinable static var MAX_VARYING_COMPONENTS: GLenum { 0x8B4B } + @inlinable public static var MAX_PROGRAM_TEXEL_OFFSET: GLenum { 0x8905 } - @inlinable static var TEXTURE_2D_ARRAY: GLenum { 0x8C1A } + @inlinable public static var MAX_VARYING_COMPONENTS: GLenum { 0x8B4B } - @inlinable static var TEXTURE_BINDING_2D_ARRAY: GLenum { 0x8C1D } + @inlinable public static var TEXTURE_2D_ARRAY: GLenum { 0x8C1A } - @inlinable static var R11F_G11F_B10F: GLenum { 0x8C3A } + @inlinable public static var TEXTURE_BINDING_2D_ARRAY: GLenum { 0x8C1D } - @inlinable static var UNSIGNED_INT_10F_11F_11F_REV: GLenum { 0x8C3B } + @inlinable public static var R11F_G11F_B10F: GLenum { 0x8C3A } - @inlinable static var RGB9_E5: GLenum { 0x8C3D } + @inlinable public static var UNSIGNED_INT_10F_11F_11F_REV: GLenum { 0x8C3B } - @inlinable static var UNSIGNED_INT_5_9_9_9_REV: GLenum { 0x8C3E } + @inlinable public static var RGB9_E5: GLenum { 0x8C3D } - @inlinable static var TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum { 0x8C7F } + @inlinable public static var UNSIGNED_INT_5_9_9_9_REV: GLenum { 0x8C3E } - @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum { 0x8C80 } + @inlinable public static var TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum { 0x8C7F } - @inlinable static var TRANSFORM_FEEDBACK_VARYINGS: GLenum { 0x8C83 } + @inlinable public static var MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum { 0x8C80 } - @inlinable static var TRANSFORM_FEEDBACK_BUFFER_START: GLenum { 0x8C84 } + @inlinable public static var TRANSFORM_FEEDBACK_VARYINGS: GLenum { 0x8C83 } - @inlinable static var TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum { 0x8C85 } + @inlinable public static var TRANSFORM_FEEDBACK_BUFFER_START: GLenum { 0x8C84 } - @inlinable static var TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum { 0x8C88 } + @inlinable public static var TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum { 0x8C85 } - @inlinable static var RASTERIZER_DISCARD: GLenum { 0x8C89 } + @inlinable public static var TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum { 0x8C88 } - @inlinable static var MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum { 0x8C8A } + @inlinable public static var RASTERIZER_DISCARD: GLenum { 0x8C89 } - @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum { 0x8C8B } + @inlinable public static var MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum { 0x8C8A } - @inlinable static var INTERLEAVED_ATTRIBS: GLenum { 0x8C8C } + @inlinable public static var MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum { 0x8C8B } - @inlinable static var SEPARATE_ATTRIBS: GLenum { 0x8C8D } + @inlinable public static var INTERLEAVED_ATTRIBS: GLenum { 0x8C8C } - @inlinable static var TRANSFORM_FEEDBACK_BUFFER: GLenum { 0x8C8E } + @inlinable public static var SEPARATE_ATTRIBS: GLenum { 0x8C8D } - @inlinable static var TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum { 0x8C8F } + @inlinable public static var TRANSFORM_FEEDBACK_BUFFER: GLenum { 0x8C8E } - @inlinable static var RGBA32UI: GLenum { 0x8D70 } + @inlinable public static var TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum { 0x8C8F } - @inlinable static var RGB32UI: GLenum { 0x8D71 } + @inlinable public static var RGBA32UI: GLenum { 0x8D70 } - @inlinable static var RGBA16UI: GLenum { 0x8D76 } + @inlinable public static var RGB32UI: GLenum { 0x8D71 } - @inlinable static var RGB16UI: GLenum { 0x8D77 } + @inlinable public static var RGBA16UI: GLenum { 0x8D76 } - @inlinable static var RGBA8UI: GLenum { 0x8D7C } + @inlinable public static var RGB16UI: GLenum { 0x8D77 } - @inlinable static var RGB8UI: GLenum { 0x8D7D } + @inlinable public static var RGBA8UI: GLenum { 0x8D7C } - @inlinable static var RGBA32I: GLenum { 0x8D82 } + @inlinable public static var RGB8UI: GLenum { 0x8D7D } - @inlinable static var RGB32I: GLenum { 0x8D83 } + @inlinable public static var RGBA32I: GLenum { 0x8D82 } - @inlinable static var RGBA16I: GLenum { 0x8D88 } + @inlinable public static var RGB32I: GLenum { 0x8D83 } - @inlinable static var RGB16I: GLenum { 0x8D89 } + @inlinable public static var RGBA16I: GLenum { 0x8D88 } - @inlinable static var RGBA8I: GLenum { 0x8D8E } + @inlinable public static var RGB16I: GLenum { 0x8D89 } - @inlinable static var RGB8I: GLenum { 0x8D8F } + @inlinable public static var RGBA8I: GLenum { 0x8D8E } - @inlinable static var RED_INTEGER: GLenum { 0x8D94 } + @inlinable public static var RGB8I: GLenum { 0x8D8F } - @inlinable static var RGB_INTEGER: GLenum { 0x8D98 } + @inlinable public static var RED_INTEGER: GLenum { 0x8D94 } - @inlinable static var RGBA_INTEGER: GLenum { 0x8D99 } + @inlinable public static var RGB_INTEGER: GLenum { 0x8D98 } - @inlinable static var SAMPLER_2D_ARRAY: GLenum { 0x8DC1 } + @inlinable public static var RGBA_INTEGER: GLenum { 0x8D99 } - @inlinable static var SAMPLER_2D_ARRAY_SHADOW: GLenum { 0x8DC4 } + @inlinable public static var SAMPLER_2D_ARRAY: GLenum { 0x8DC1 } - @inlinable static var SAMPLER_CUBE_SHADOW: GLenum { 0x8DC5 } + @inlinable public static var SAMPLER_2D_ARRAY_SHADOW: GLenum { 0x8DC4 } - @inlinable static var UNSIGNED_INT_VEC2: GLenum { 0x8DC6 } + @inlinable public static var SAMPLER_CUBE_SHADOW: GLenum { 0x8DC5 } - @inlinable static var UNSIGNED_INT_VEC3: GLenum { 0x8DC7 } + @inlinable public static var UNSIGNED_INT_VEC2: GLenum { 0x8DC6 } - @inlinable static var UNSIGNED_INT_VEC4: GLenum { 0x8DC8 } + @inlinable public static var UNSIGNED_INT_VEC3: GLenum { 0x8DC7 } - @inlinable static var INT_SAMPLER_2D: GLenum { 0x8DCA } + @inlinable public static var UNSIGNED_INT_VEC4: GLenum { 0x8DC8 } - @inlinable static var INT_SAMPLER_3D: GLenum { 0x8DCB } + @inlinable public static var INT_SAMPLER_2D: GLenum { 0x8DCA } - @inlinable static var INT_SAMPLER_CUBE: GLenum { 0x8DCC } + @inlinable public static var INT_SAMPLER_3D: GLenum { 0x8DCB } - @inlinable static var INT_SAMPLER_2D_ARRAY: GLenum { 0x8DCF } + @inlinable public static var INT_SAMPLER_CUBE: GLenum { 0x8DCC } - @inlinable static var UNSIGNED_INT_SAMPLER_2D: GLenum { 0x8DD2 } + @inlinable public static var INT_SAMPLER_2D_ARRAY: GLenum { 0x8DCF } - @inlinable static var UNSIGNED_INT_SAMPLER_3D: GLenum { 0x8DD3 } + @inlinable public static var UNSIGNED_INT_SAMPLER_2D: GLenum { 0x8DD2 } - @inlinable static var UNSIGNED_INT_SAMPLER_CUBE: GLenum { 0x8DD4 } + @inlinable public static var UNSIGNED_INT_SAMPLER_3D: GLenum { 0x8DD3 } - @inlinable static var UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum { 0x8DD7 } + @inlinable public static var UNSIGNED_INT_SAMPLER_CUBE: GLenum { 0x8DD4 } - @inlinable static var DEPTH_COMPONENT32F: GLenum { 0x8CAC } + @inlinable public static var UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum { 0x8DD7 } - @inlinable static var DEPTH32F_STENCIL8: GLenum { 0x8CAD } + @inlinable public static var DEPTH_COMPONENT32F: GLenum { 0x8CAC } - @inlinable static var FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum { 0x8DAD } + @inlinable public static var DEPTH32F_STENCIL8: GLenum { 0x8CAD } - @inlinable static var FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum { 0x8210 } + @inlinable public static var FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum { 0x8DAD } - @inlinable static var FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum { 0x8211 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum { 0x8210 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum { 0x8212 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum { 0x8211 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum { 0x8213 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum { 0x8212 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum { 0x8214 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum { 0x8213 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum { 0x8215 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum { 0x8214 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum { 0x8216 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum { 0x8215 } - @inlinable static var FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum { 0x8217 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum { 0x8216 } - @inlinable static var FRAMEBUFFER_DEFAULT: GLenum { 0x8218 } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum { 0x8217 } - @inlinable static var UNSIGNED_INT_24_8: GLenum { 0x84FA } + @inlinable public static var FRAMEBUFFER_DEFAULT: GLenum { 0x8218 } - @inlinable static var DEPTH24_STENCIL8: GLenum { 0x88F0 } + @inlinable public static var UNSIGNED_INT_24_8: GLenum { 0x84FA } - @inlinable static var UNSIGNED_NORMALIZED: GLenum { 0x8C17 } + @inlinable public static var DEPTH24_STENCIL8: GLenum { 0x88F0 } - @inlinable static var DRAW_FRAMEBUFFER_BINDING: GLenum { 0x8CA6 } + @inlinable public static var UNSIGNED_NORMALIZED: GLenum { 0x8C17 } - @inlinable static var READ_FRAMEBUFFER: GLenum { 0x8CA8 } + @inlinable public static var DRAW_FRAMEBUFFER_BINDING: GLenum { 0x8CA6 } - @inlinable static var DRAW_FRAMEBUFFER: GLenum { 0x8CA9 } + @inlinable public static var READ_FRAMEBUFFER: GLenum { 0x8CA8 } - @inlinable static var READ_FRAMEBUFFER_BINDING: GLenum { 0x8CAA } + @inlinable public static var DRAW_FRAMEBUFFER: GLenum { 0x8CA9 } - @inlinable static var RENDERBUFFER_SAMPLES: GLenum { 0x8CAB } + @inlinable public static var READ_FRAMEBUFFER_BINDING: GLenum { 0x8CAA } - @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum { 0x8CD4 } + @inlinable public static var RENDERBUFFER_SAMPLES: GLenum { 0x8CAB } - @inlinable static var MAX_COLOR_ATTACHMENTS: GLenum { 0x8CDF } + @inlinable public static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum { 0x8CD4 } - @inlinable static var COLOR_ATTACHMENT1: GLenum { 0x8CE1 } + @inlinable public static var MAX_COLOR_ATTACHMENTS: GLenum { 0x8CDF } - @inlinable static var COLOR_ATTACHMENT2: GLenum { 0x8CE2 } + @inlinable public static var COLOR_ATTACHMENT1: GLenum { 0x8CE1 } - @inlinable static var COLOR_ATTACHMENT3: GLenum { 0x8CE3 } + @inlinable public static var COLOR_ATTACHMENT2: GLenum { 0x8CE2 } - @inlinable static var COLOR_ATTACHMENT4: GLenum { 0x8CE4 } + @inlinable public static var COLOR_ATTACHMENT3: GLenum { 0x8CE3 } - @inlinable static var COLOR_ATTACHMENT5: GLenum { 0x8CE5 } + @inlinable public static var COLOR_ATTACHMENT4: GLenum { 0x8CE4 } - @inlinable static var COLOR_ATTACHMENT6: GLenum { 0x8CE6 } + @inlinable public static var COLOR_ATTACHMENT5: GLenum { 0x8CE5 } - @inlinable static var COLOR_ATTACHMENT7: GLenum { 0x8CE7 } + @inlinable public static var COLOR_ATTACHMENT6: GLenum { 0x8CE6 } - @inlinable static var COLOR_ATTACHMENT8: GLenum { 0x8CE8 } + @inlinable public static var COLOR_ATTACHMENT7: GLenum { 0x8CE7 } - @inlinable static var COLOR_ATTACHMENT9: GLenum { 0x8CE9 } + @inlinable public static var COLOR_ATTACHMENT8: GLenum { 0x8CE8 } - @inlinable static var COLOR_ATTACHMENT10: GLenum { 0x8CEA } + @inlinable public static var COLOR_ATTACHMENT9: GLenum { 0x8CE9 } - @inlinable static var COLOR_ATTACHMENT11: GLenum { 0x8CEB } + @inlinable public static var COLOR_ATTACHMENT10: GLenum { 0x8CEA } - @inlinable static var COLOR_ATTACHMENT12: GLenum { 0x8CEC } + @inlinable public static var COLOR_ATTACHMENT11: GLenum { 0x8CEB } - @inlinable static var COLOR_ATTACHMENT13: GLenum { 0x8CED } + @inlinable public static var COLOR_ATTACHMENT12: GLenum { 0x8CEC } - @inlinable static var COLOR_ATTACHMENT14: GLenum { 0x8CEE } + @inlinable public static var COLOR_ATTACHMENT13: GLenum { 0x8CED } - @inlinable static var COLOR_ATTACHMENT15: GLenum { 0x8CEF } + @inlinable public static var COLOR_ATTACHMENT14: GLenum { 0x8CEE } - @inlinable static var FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum { 0x8D56 } + @inlinable public static var COLOR_ATTACHMENT15: GLenum { 0x8CEF } - @inlinable static var MAX_SAMPLES: GLenum { 0x8D57 } + @inlinable public static var FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum { 0x8D56 } - @inlinable static var HALF_FLOAT: GLenum { 0x140B } + @inlinable public static var MAX_SAMPLES: GLenum { 0x8D57 } - @inlinable static var RG: GLenum { 0x8227 } + @inlinable public static var HALF_FLOAT: GLenum { 0x140B } - @inlinable static var RG_INTEGER: GLenum { 0x8228 } + @inlinable public static var RG: GLenum { 0x8227 } - @inlinable static var R8: GLenum { 0x8229 } + @inlinable public static var RG_INTEGER: GLenum { 0x8228 } - @inlinable static var RG8: GLenum { 0x822B } + @inlinable public static var R8: GLenum { 0x8229 } - @inlinable static var R16F: GLenum { 0x822D } + @inlinable public static var RG8: GLenum { 0x822B } - @inlinable static var R32F: GLenum { 0x822E } + @inlinable public static var R16F: GLenum { 0x822D } - @inlinable static var RG16F: GLenum { 0x822F } + @inlinable public static var R32F: GLenum { 0x822E } - @inlinable static var RG32F: GLenum { 0x8230 } + @inlinable public static var RG16F: GLenum { 0x822F } - @inlinable static var R8I: GLenum { 0x8231 } + @inlinable public static var RG32F: GLenum { 0x8230 } - @inlinable static var R8UI: GLenum { 0x8232 } + @inlinable public static var R8I: GLenum { 0x8231 } - @inlinable static var R16I: GLenum { 0x8233 } + @inlinable public static var R8UI: GLenum { 0x8232 } - @inlinable static var R16UI: GLenum { 0x8234 } + @inlinable public static var R16I: GLenum { 0x8233 } - @inlinable static var R32I: GLenum { 0x8235 } + @inlinable public static var R16UI: GLenum { 0x8234 } - @inlinable static var R32UI: GLenum { 0x8236 } + @inlinable public static var R32I: GLenum { 0x8235 } - @inlinable static var RG8I: GLenum { 0x8237 } + @inlinable public static var R32UI: GLenum { 0x8236 } - @inlinable static var RG8UI: GLenum { 0x8238 } + @inlinable public static var RG8I: GLenum { 0x8237 } - @inlinable static var RG16I: GLenum { 0x8239 } + @inlinable public static var RG8UI: GLenum { 0x8238 } - @inlinable static var RG16UI: GLenum { 0x823A } + @inlinable public static var RG16I: GLenum { 0x8239 } - @inlinable static var RG32I: GLenum { 0x823B } + @inlinable public static var RG16UI: GLenum { 0x823A } - @inlinable static var RG32UI: GLenum { 0x823C } + @inlinable public static var RG32I: GLenum { 0x823B } - @inlinable static var VERTEX_ARRAY_BINDING: GLenum { 0x85B5 } + @inlinable public static var RG32UI: GLenum { 0x823C } - @inlinable static var R8_SNORM: GLenum { 0x8F94 } + @inlinable public static var VERTEX_ARRAY_BINDING: GLenum { 0x85B5 } - @inlinable static var RG8_SNORM: GLenum { 0x8F95 } + @inlinable public static var R8_SNORM: GLenum { 0x8F94 } - @inlinable static var RGB8_SNORM: GLenum { 0x8F96 } + @inlinable public static var RG8_SNORM: GLenum { 0x8F95 } - @inlinable static var RGBA8_SNORM: GLenum { 0x8F97 } + @inlinable public static var RGB8_SNORM: GLenum { 0x8F96 } - @inlinable static var SIGNED_NORMALIZED: GLenum { 0x8F9C } + @inlinable public static var RGBA8_SNORM: GLenum { 0x8F97 } - @inlinable static var COPY_READ_BUFFER: GLenum { 0x8F36 } + @inlinable public static var SIGNED_NORMALIZED: GLenum { 0x8F9C } - @inlinable static var COPY_WRITE_BUFFER: GLenum { 0x8F37 } + @inlinable public static var COPY_READ_BUFFER: GLenum { 0x8F36 } - @inlinable static var COPY_READ_BUFFER_BINDING: GLenum { 0x8F36 } + @inlinable public static var COPY_WRITE_BUFFER: GLenum { 0x8F37 } - @inlinable static var COPY_WRITE_BUFFER_BINDING: GLenum { 0x8F37 } + @inlinable public static var COPY_READ_BUFFER_BINDING: GLenum { 0x8F36 } - @inlinable static var UNIFORM_BUFFER: GLenum { 0x8A11 } + @inlinable public static var COPY_WRITE_BUFFER_BINDING: GLenum { 0x8F37 } - @inlinable static var UNIFORM_BUFFER_BINDING: GLenum { 0x8A28 } + @inlinable public static var UNIFORM_BUFFER: GLenum { 0x8A11 } - @inlinable static var UNIFORM_BUFFER_START: GLenum { 0x8A29 } + @inlinable public static var UNIFORM_BUFFER_BINDING: GLenum { 0x8A28 } - @inlinable static var UNIFORM_BUFFER_SIZE: GLenum { 0x8A2A } + @inlinable public static var UNIFORM_BUFFER_START: GLenum { 0x8A29 } - @inlinable static var MAX_VERTEX_UNIFORM_BLOCKS: GLenum { 0x8A2B } + @inlinable public static var UNIFORM_BUFFER_SIZE: GLenum { 0x8A2A } - @inlinable static var MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum { 0x8A2D } + @inlinable public static var MAX_VERTEX_UNIFORM_BLOCKS: GLenum { 0x8A2B } - @inlinable static var MAX_COMBINED_UNIFORM_BLOCKS: GLenum { 0x8A2E } + @inlinable public static var MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum { 0x8A2D } - @inlinable static var MAX_UNIFORM_BUFFER_BINDINGS: GLenum { 0x8A2F } + @inlinable public static var MAX_COMBINED_UNIFORM_BLOCKS: GLenum { 0x8A2E } - @inlinable static var MAX_UNIFORM_BLOCK_SIZE: GLenum { 0x8A30 } + @inlinable public static var MAX_UNIFORM_BUFFER_BINDINGS: GLenum { 0x8A2F } - @inlinable static var MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8A31 } + @inlinable public static var MAX_UNIFORM_BLOCK_SIZE: GLenum { 0x8A30 } - @inlinable static var MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8A33 } + @inlinable public static var MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8A31 } - @inlinable static var UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum { 0x8A34 } + @inlinable public static var MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8A33 } - @inlinable static var ACTIVE_UNIFORM_BLOCKS: GLenum { 0x8A36 } + @inlinable public static var UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum { 0x8A34 } - @inlinable static var UNIFORM_TYPE: GLenum { 0x8A37 } + @inlinable public static var ACTIVE_UNIFORM_BLOCKS: GLenum { 0x8A36 } - @inlinable static var UNIFORM_SIZE: GLenum { 0x8A38 } + @inlinable public static var UNIFORM_TYPE: GLenum { 0x8A37 } - @inlinable static var UNIFORM_BLOCK_INDEX: GLenum { 0x8A3A } + @inlinable public static var UNIFORM_SIZE: GLenum { 0x8A38 } - @inlinable static var UNIFORM_OFFSET: GLenum { 0x8A3B } + @inlinable public static var UNIFORM_BLOCK_INDEX: GLenum { 0x8A3A } - @inlinable static var UNIFORM_ARRAY_STRIDE: GLenum { 0x8A3C } + @inlinable public static var UNIFORM_OFFSET: GLenum { 0x8A3B } - @inlinable static var UNIFORM_MATRIX_STRIDE: GLenum { 0x8A3D } + @inlinable public static var UNIFORM_ARRAY_STRIDE: GLenum { 0x8A3C } - @inlinable static var UNIFORM_IS_ROW_MAJOR: GLenum { 0x8A3E } + @inlinable public static var UNIFORM_MATRIX_STRIDE: GLenum { 0x8A3D } - @inlinable static var UNIFORM_BLOCK_BINDING: GLenum { 0x8A3F } + @inlinable public static var UNIFORM_IS_ROW_MAJOR: GLenum { 0x8A3E } - @inlinable static var UNIFORM_BLOCK_DATA_SIZE: GLenum { 0x8A40 } + @inlinable public static var UNIFORM_BLOCK_BINDING: GLenum { 0x8A3F } - @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum { 0x8A42 } + @inlinable public static var UNIFORM_BLOCK_DATA_SIZE: GLenum { 0x8A40 } - @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum { 0x8A43 } + @inlinable public static var UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum { 0x8A42 } - @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum { 0x8A44 } + @inlinable public static var UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum { 0x8A43 } - @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum { 0x8A46 } + @inlinable public static var UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum { 0x8A44 } - @inlinable static var INVALID_INDEX: GLenum { 0xFFFF_FFFF } + @inlinable public static var UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum { 0x8A46 } - @inlinable static var MAX_VERTEX_OUTPUT_COMPONENTS: GLenum { 0x9122 } + @inlinable public static var INVALID_INDEX: GLenum { 0xFFFF_FFFF } - @inlinable static var MAX_FRAGMENT_INPUT_COMPONENTS: GLenum { 0x9125 } + @inlinable public static var MAX_VERTEX_OUTPUT_COMPONENTS: GLenum { 0x9122 } - @inlinable static var MAX_SERVER_WAIT_TIMEOUT: GLenum { 0x9111 } + @inlinable public static var MAX_FRAGMENT_INPUT_COMPONENTS: GLenum { 0x9125 } - @inlinable static var OBJECT_TYPE: GLenum { 0x9112 } + @inlinable public static var MAX_SERVER_WAIT_TIMEOUT: GLenum { 0x9111 } - @inlinable static var SYNC_CONDITION: GLenum { 0x9113 } + @inlinable public static var OBJECT_TYPE: GLenum { 0x9112 } - @inlinable static var SYNC_STATUS: GLenum { 0x9114 } + @inlinable public static var SYNC_CONDITION: GLenum { 0x9113 } - @inlinable static var SYNC_FLAGS: GLenum { 0x9115 } + @inlinable public static var SYNC_STATUS: GLenum { 0x9114 } - @inlinable static var SYNC_FENCE: GLenum { 0x9116 } + @inlinable public static var SYNC_FLAGS: GLenum { 0x9115 } - @inlinable static var SYNC_GPU_COMMANDS_COMPLETE: GLenum { 0x9117 } + @inlinable public static var SYNC_FENCE: GLenum { 0x9116 } - @inlinable static var UNSIGNALED: GLenum { 0x9118 } + @inlinable public static var SYNC_GPU_COMMANDS_COMPLETE: GLenum { 0x9117 } - @inlinable static var SIGNALED: GLenum { 0x9119 } + @inlinable public static var UNSIGNALED: GLenum { 0x9118 } - @inlinable static var ALREADY_SIGNALED: GLenum { 0x911A } + @inlinable public static var SIGNALED: GLenum { 0x9119 } - @inlinable static var TIMEOUT_EXPIRED: GLenum { 0x911B } + @inlinable public static var ALREADY_SIGNALED: GLenum { 0x911A } - @inlinable static var CONDITION_SATISFIED: GLenum { 0x911C } + @inlinable public static var TIMEOUT_EXPIRED: GLenum { 0x911B } - @inlinable static var WAIT_FAILED: GLenum { 0x911D } + @inlinable public static var CONDITION_SATISFIED: GLenum { 0x911C } - @inlinable static var SYNC_FLUSH_COMMANDS_BIT: GLenum { 0x0000_0001 } + @inlinable public static var WAIT_FAILED: GLenum { 0x911D } - @inlinable static var VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum { 0x88FE } + @inlinable public static var SYNC_FLUSH_COMMANDS_BIT: GLenum { 0x0000_0001 } - @inlinable static var ANY_SAMPLES_PASSED: GLenum { 0x8C2F } + @inlinable public static var VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum { 0x88FE } - @inlinable static var ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum { 0x8D6A } + @inlinable public static var ANY_SAMPLES_PASSED: GLenum { 0x8C2F } - @inlinable static var SAMPLER_BINDING: GLenum { 0x8919 } + @inlinable public static var ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum { 0x8D6A } - @inlinable static var RGB10_A2UI: GLenum { 0x906F } + @inlinable public static var SAMPLER_BINDING: GLenum { 0x8919 } - @inlinable static var INT_2_10_10_10_REV: GLenum { 0x8D9F } + @inlinable public static var RGB10_A2UI: GLenum { 0x906F } - @inlinable static var TRANSFORM_FEEDBACK: GLenum { 0x8E22 } + @inlinable public static var INT_2_10_10_10_REV: GLenum { 0x8D9F } - @inlinable static var TRANSFORM_FEEDBACK_PAUSED: GLenum { 0x8E23 } + @inlinable public static var TRANSFORM_FEEDBACK: GLenum { 0x8E22 } - @inlinable static var TRANSFORM_FEEDBACK_ACTIVE: GLenum { 0x8E24 } + @inlinable public static var TRANSFORM_FEEDBACK_PAUSED: GLenum { 0x8E23 } - @inlinable static var TRANSFORM_FEEDBACK_BINDING: GLenum { 0x8E25 } + @inlinable public static var TRANSFORM_FEEDBACK_ACTIVE: GLenum { 0x8E24 } - @inlinable static var TEXTURE_IMMUTABLE_FORMAT: GLenum { 0x912F } + @inlinable public static var TRANSFORM_FEEDBACK_BINDING: GLenum { 0x8E25 } - @inlinable static var MAX_ELEMENT_INDEX: GLenum { 0x8D6B } + @inlinable public static var TEXTURE_IMMUTABLE_FORMAT: GLenum { 0x912F } - @inlinable static var TEXTURE_IMMUTABLE_LEVELS: GLenum { 0x82DF } + @inlinable public static var MAX_ELEMENT_INDEX: GLenum { 0x8D6B } - @inlinable static var TIMEOUT_IGNORED: GLint64 { -1 } + @inlinable public static var TEXTURE_IMMUTABLE_LEVELS: GLenum { 0x82DF } - @inlinable static var MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum { 0x9247 } + @inlinable public static var TIMEOUT_IGNORED: GLint64 { -1 } - @inlinable func copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) { - let this = jsObject - _ = this[Strings.copyBufferSubData].function!(this: this, arguments: [_toJSValue(readTarget), _toJSValue(writeTarget), _toJSValue(readOffset), _toJSValue(writeOffset), _toJSValue(size)]) - } + @inlinable public static var MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum { 0x9247 } - @inlinable func getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset: GLuint? = nil, length: GLuint? = nil) { + @inlinable public func copyBufferSubData( + readTarget: GLenum, + writeTarget: GLenum, + readOffset: GLintptr, + writeOffset: GLintptr, + size: GLsizeiptr + ) { let this = jsObject - _ = this[Strings.getBufferSubData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(srcByteOffset), _toJSValue(dstBuffer), _toJSValue(dstOffset), _toJSValue(length)]) + _ = this[Strings.copyBufferSubData].function!( + this: this, + arguments: [ + _toJSValue(readTarget), _toJSValue(writeTarget), _toJSValue(readOffset), _toJSValue(writeOffset), + _toJSValue(size), + ] + ) } - @inlinable func blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) { + @inlinable public func getBufferSubData( + target: GLenum, + srcByteOffset: GLintptr, + dstBuffer: ArrayBufferView, + dstOffset: UInt64? = nil, + length: GLuint? = nil + ) { let this = jsObject - _ = this[Strings.blitFramebuffer].function!(this: this, arguments: [_toJSValue(srcX0), _toJSValue(srcY0), _toJSValue(srcX1), _toJSValue(srcY1), _toJSValue(dstX0), _toJSValue(dstY0), _toJSValue(dstX1), _toJSValue(dstY1), _toJSValue(mask), _toJSValue(filter)]) + _ = this[Strings.getBufferSubData].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(srcByteOffset), _toJSValue(dstBuffer), _toJSValue(dstOffset), + _toJSValue(length), + ] + ) } - @inlinable func framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture?, level: GLint, layer: GLint) { + @inlinable public func blitFramebuffer( + srcX0: GLint, + srcY0: GLint, + srcX1: GLint, + srcY1: GLint, + dstX0: GLint, + dstY0: GLint, + dstX1: GLint, + dstY1: GLint, + mask: GLbitfield, + filter: GLenum + ) { let this = jsObject - _ = this[Strings.framebufferTextureLayer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachment), _toJSValue(texture), _toJSValue(level), _toJSValue(layer)]) + _ = this[Strings.blitFramebuffer].function!( + this: this, + arguments: [ + _toJSValue(srcX0), _toJSValue(srcY0), _toJSValue(srcX1), _toJSValue(srcY1), _toJSValue(dstX0), + _toJSValue(dstY0), _toJSValue(dstX1), _toJSValue(dstY1), _toJSValue(mask), _toJSValue(filter), + ] + ) } - @inlinable func invalidateFramebuffer(target: GLenum, attachments: [GLenum]) { + @inlinable public func framebufferTextureLayer( + target: GLenum, + attachment: GLenum, + texture: WebGLTexture?, + level: GLint, + layer: GLint + ) { let this = jsObject - _ = this[Strings.invalidateFramebuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachments)]) + _ = this[Strings.framebufferTextureLayer].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(attachment), _toJSValue(texture), _toJSValue(level), _toJSValue(layer), + ] + ) } - @inlinable func invalidateSubFramebuffer(target: GLenum, attachments: [GLenum], x: GLint, y: GLint, width: GLsizei, height: GLsizei) { + @inlinable public func invalidateFramebuffer(target: GLenum, attachments: [GLenum]) { let this = jsObject - _ = this[Strings.invalidateSubFramebuffer].function!(this: this, arguments: [_toJSValue(target), _toJSValue(attachments), _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.invalidateFramebuffer].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(attachments)] + ) } - @inlinable func readBuffer(src: GLenum) { + @inlinable public func invalidateSubFramebuffer( + target: GLenum, + attachments: [GLenum], + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei + ) { + let this = jsObject + _ = this[Strings.invalidateSubFramebuffer].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(attachments), _toJSValue(x), _toJSValue(y), _toJSValue(width), + _toJSValue(height), + ] + ) + } + + @inlinable public func readBuffer(src: GLenum) { let this = jsObject _ = this[Strings.readBuffer].function!(this: this, arguments: [_toJSValue(src)]) } - @inlinable func getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) -> JSValue { - let this = jsObject - return this[Strings.getInternalformatParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(internalformat), _toJSValue(pname)]).fromJSValue()! - } - - @inlinable func renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) { - let this = jsObject - _ = this[Strings.renderbufferStorageMultisample].function!(this: this, arguments: [_toJSValue(target), _toJSValue(samples), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height)]) - } - - @inlinable func texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) { - let this = jsObject - _ = this[Strings.texStorage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(levels), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height)]) - } - - @inlinable func texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) { - let this = jsObject - _ = this[Strings.texStorage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(levels), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth)]) - } - - @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) { - let this = jsObject - _ = this[Strings.texImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset)]) - } - - @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.texImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(srcData)]) - } - - @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) { - let this = jsObject - _ = this[Strings.texImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), _toJSValue(srcOffset)]) - } - - @inlinable func texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) { - let this = jsObject - _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset)]) - } - - @inlinable func texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView?, srcOffset: GLuint? = nil) { - let this = jsObject - _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), _toJSValue(srcOffset)]) - } - - @inlinable func copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) { - let this = jsObject - _ = this[Strings.copyTexSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) - } - - @inlinable func compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) { - let this = jsObject - _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(imageSize), _toJSValue(offset)]) - } - - @inlinable func compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) { - let this = jsObject - _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(srcData), _toJSValue(srcOffset), _toJSValue(srcLengthOverride)]) - } - - @inlinable func compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) { - let this = jsObject - _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(imageSize), _toJSValue(offset)]) - } - - @inlinable func compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) { - let this = jsObject - _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(srcData), _toJSValue(srcOffset), _toJSValue(srcLengthOverride)]) - } - - @inlinable func getFragDataLocation(program: WebGLProgram, name: String) -> GLint { - let this = jsObject - return this[Strings.getFragDataLocation].function!(this: this, arguments: [_toJSValue(program), _toJSValue(name)]).fromJSValue()! - } - - @inlinable func uniform1ui(location: WebGLUniformLocation?, v0: GLuint) { + @inlinable public func getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) -> JSValue + { + let this = jsObject + return this[Strings.getInternalformatParameter].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(internalformat), _toJSValue(pname)] + ).fromJSValue()! + } + + @inlinable public func renderbufferStorageMultisample( + target: GLenum, + samples: GLsizei, + internalformat: GLenum, + width: GLsizei, + height: GLsizei + ) { + let this = jsObject + _ = this[Strings.renderbufferStorageMultisample].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(samples), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), + ] + ) + } + + @inlinable public func texStorage2D( + target: GLenum, + levels: GLsizei, + internalformat: GLenum, + width: GLsizei, + height: GLsizei + ) { + let this = jsObject + _ = this[Strings.texStorage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(levels), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), + ] + ) + } + + @inlinable public func texStorage3D( + target: GLenum, + levels: GLsizei, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + depth: GLsizei + ) { + let this = jsObject + _ = this[Strings.texStorage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(levels), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), + ] + ) + } + + @inlinable public func texImage3D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + pboOffset: GLintptr + ) { + let this = jsObject + _ = this[Strings.texImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), + _toJSValue(pboOffset), + ] + ) + } + + @inlinable public func texImage3D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), + _toJSValue(source), + ] + ) + } + + @inlinable public func texImage3D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + srcData: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.texImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), + _toJSValue(srcData), + ] + ) + } + + @inlinable public func texImage3D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + srcData: ArrayBufferView, + srcOffset: UInt64 + ) { + let this = jsObject + _ = this[Strings.texImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(format), _toJSValue(type), + _toJSValue(srcData), _toJSValue(srcOffset), + ] + ) + } + + @inlinable public func texSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + format: GLenum, + type: GLenum, + pboOffset: GLintptr + ) { + let this = jsObject + _ = this[Strings.texSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), + _toJSValue(pboOffset), + ] + ) + } + + @inlinable public func texSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), + _toJSValue(source), + ] + ) + } + + @inlinable public func texSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + format: GLenum, + type: GLenum, + srcData: ArrayBufferView?, + srcOffset: UInt64? = nil + ) { + let this = jsObject + _ = this[Strings.texSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(type), + _toJSValue(srcData), _toJSValue(srcOffset), + ] + ) + } + + @inlinable public func copyTexSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei + ) { + let this = jsObject + _ = this[Strings.copyTexSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), + ] + ) + } + + @inlinable public func compressedTexImage3D( + target: GLenum, + level: GLint, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + imageSize: GLsizei, + offset: GLintptr + ) { + let this = jsObject + _ = this[Strings.compressedTexImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(imageSize), _toJSValue(offset), + ] + ) + } + + @inlinable public func compressedTexImage3D( + target: GLenum, + level: GLint, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + border: GLint, + srcData: ArrayBufferView, + srcOffset: UInt64? = nil, + srcLengthOverride: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.compressedTexImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(depth), _toJSValue(border), _toJSValue(srcData), _toJSValue(srcOffset), + _toJSValue(srcLengthOverride), + ] + ) + } + + @inlinable public func compressedTexSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + format: GLenum, + imageSize: GLsizei, + offset: GLintptr + ) { + let this = jsObject + _ = this[Strings.compressedTexSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(imageSize), + _toJSValue(offset), + ] + ) + } + + @inlinable public func compressedTexSubImage3D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + zoffset: GLint, + width: GLsizei, + height: GLsizei, + depth: GLsizei, + format: GLenum, + srcData: ArrayBufferView, + srcOffset: UInt64? = nil, + srcLengthOverride: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.compressedTexSubImage3D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(zoffset), + _toJSValue(width), _toJSValue(height), _toJSValue(depth), _toJSValue(format), _toJSValue(srcData), + _toJSValue(srcOffset), _toJSValue(srcLengthOverride), + ] + ) + } + + @inlinable public func getFragDataLocation(program: WebGLProgram, name: String) -> GLint { + let this = jsObject + return this[Strings.getFragDataLocation].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(name)] + ).fromJSValue()! + } + + @inlinable public func uniform1ui(location: WebGLUniformLocation?, v0: GLuint) { let this = jsObject _ = this[Strings.uniform1ui].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v0)]) } - @inlinable func uniform2ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint) { + @inlinable public func uniform2ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint) { let this = jsObject - _ = this[Strings.uniform2ui].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1)]) + _ = this[Strings.uniform2ui].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1)] + ) } - @inlinable func uniform3ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint) { + @inlinable public func uniform3ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint) { let this = jsObject - _ = this[Strings.uniform3ui].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1), _toJSValue(v2)]) + _ = this[Strings.uniform3ui].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1), _toJSValue(v2)] + ) } - @inlinable func uniform4ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) { + @inlinable public func uniform4ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) { let this = jsObject - _ = this[Strings.uniform4ui].function!(this: this, arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1), _toJSValue(v2), _toJSValue(v3)]) - } - - @inlinable func uniform1uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform1uiv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform2uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform2uiv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform3uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform3uiv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform4uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform4uiv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix3x2fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix3x2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix4x2fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix4x2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix2x3fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix2x3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix4x3fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix4x3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix2x4fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix2x4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix3x4fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix3x4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) { - let this = jsObject - _ = this[Strings.vertexAttribI4i].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)]) - } - - @inlinable func vertexAttribI4iv(index: GLuint, values: Int32List) { + _ = this[Strings.uniform4ui].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(v0), _toJSValue(v1), _toJSValue(v2), _toJSValue(v3)] + ) + } + + @inlinable public func uniform1uiv( + location: WebGLUniformLocation?, + data: Uint32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform1uiv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform2uiv( + location: WebGLUniformLocation?, + data: Uint32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform2uiv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform3uiv( + location: WebGLUniformLocation?, + data: Uint32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform3uiv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform4uiv( + location: WebGLUniformLocation?, + data: Uint32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform4uiv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniformMatrix3x2fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix3x2fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix4x2fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix4x2fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix2x3fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix2x3fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix4x3fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix4x3fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix2x4fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix2x4fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix3x4fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix3x4fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) { + let this = jsObject + _ = this[Strings.vertexAttribI4i].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)] + ) + } + + @inlinable public func vertexAttribI4iv(index: GLuint, values: Int32List) { let this = jsObject _ = this[Strings.vertexAttribI4iv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) { + @inlinable public func vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) { let this = jsObject - _ = this[Strings.vertexAttribI4ui].function!(this: this, arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)]) + _ = this[Strings.vertexAttribI4ui].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(x), _toJSValue(y), _toJSValue(z), _toJSValue(w)] + ) } - @inlinable func vertexAttribI4uiv(index: GLuint, values: Uint32List) { + @inlinable public func vertexAttribI4uiv(index: GLuint, values: Uint32List) { let this = jsObject _ = this[Strings.vertexAttribI4uiv].function!(this: this, arguments: [_toJSValue(index), _toJSValue(values)]) } - @inlinable func vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) { + @inlinable public func vertexAttribIPointer( + index: GLuint, + size: GLint, + type: GLenum, + stride: GLsizei, + offset: GLintptr + ) { let this = jsObject - _ = this[Strings.vertexAttribIPointer].function!(this: this, arguments: [_toJSValue(index), _toJSValue(size), _toJSValue(type), _toJSValue(stride), _toJSValue(offset)]) + _ = this[Strings.vertexAttribIPointer].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(size), _toJSValue(type), _toJSValue(stride), _toJSValue(offset)] + ) } - @inlinable func vertexAttribDivisor(index: GLuint, divisor: GLuint) { + @inlinable public func vertexAttribDivisor(index: GLuint, divisor: GLuint) { let this = jsObject - _ = this[Strings.vertexAttribDivisor].function!(this: this, arguments: [_toJSValue(index), _toJSValue(divisor)]) + _ = this[Strings.vertexAttribDivisor].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(divisor)] + ) } - @inlinable func drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) { + @inlinable public func drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) { let this = jsObject - _ = this[Strings.drawArraysInstanced].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(first), _toJSValue(count), _toJSValue(instanceCount)]) + _ = this[Strings.drawArraysInstanced].function!( + this: this, + arguments: [_toJSValue(mode), _toJSValue(first), _toJSValue(count), _toJSValue(instanceCount)] + ) } - @inlinable func drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) { + @inlinable public func drawElementsInstanced( + mode: GLenum, + count: GLsizei, + type: GLenum, + offset: GLintptr, + instanceCount: GLsizei + ) { let this = jsObject - _ = this[Strings.drawElementsInstanced].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(count), _toJSValue(type), _toJSValue(offset), _toJSValue(instanceCount)]) + _ = this[Strings.drawElementsInstanced].function!( + this: this, + arguments: [ + _toJSValue(mode), _toJSValue(count), _toJSValue(type), _toJSValue(offset), _toJSValue(instanceCount), + ] + ) } - @inlinable func drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) { + @inlinable public func drawRangeElements( + mode: GLenum, + start: GLuint, + end: GLuint, + count: GLsizei, + type: GLenum, + offset: GLintptr + ) { let this = jsObject - _ = this[Strings.drawRangeElements].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(start), _toJSValue(end), _toJSValue(count), _toJSValue(type), _toJSValue(offset)]) + _ = this[Strings.drawRangeElements].function!( + this: this, + arguments: [ + _toJSValue(mode), _toJSValue(start), _toJSValue(end), _toJSValue(count), _toJSValue(type), + _toJSValue(offset), + ] + ) } - @inlinable func drawBuffers(buffers: [GLenum]) { + @inlinable public func drawBuffers(buffers: [GLenum]) { let this = jsObject _ = this[Strings.drawBuffers].function!(this: this, arguments: [_toJSValue(buffers)]) } - @inlinable func clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset: GLuint? = nil) { + @inlinable public func clearBufferfv( + buffer: GLenum, + drawbuffer: GLint, + values: Float32List, + srcOffset: UInt64? = nil + ) { let this = jsObject - _ = this[Strings.clearBufferfv].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)]) + _ = this[Strings.clearBufferfv].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)] + ) } - @inlinable func clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset: GLuint? = nil) { + @inlinable public func clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset: UInt64? = nil) + { let this = jsObject - _ = this[Strings.clearBufferiv].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)]) + _ = this[Strings.clearBufferiv].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)] + ) } - @inlinable func clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset: GLuint? = nil) { + @inlinable public func clearBufferuiv( + buffer: GLenum, + drawbuffer: GLint, + values: Uint32List, + srcOffset: UInt64? = nil + ) { let this = jsObject - _ = this[Strings.clearBufferuiv].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)]) + _ = this[Strings.clearBufferuiv].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(values), _toJSValue(srcOffset)] + ) } - @inlinable func clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) { + @inlinable public func clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) { let this = jsObject - _ = this[Strings.clearBufferfi].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(depth), _toJSValue(stencil)]) + _ = this[Strings.clearBufferfi].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(drawbuffer), _toJSValue(depth), _toJSValue(stencil)] + ) } - @inlinable func createQuery() -> WebGLQuery? { + @inlinable public func createQuery() -> WebGLQuery { let this = jsObject - return this[Strings.createQuery].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createQuery].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func deleteQuery(query: WebGLQuery?) { + @inlinable public func deleteQuery(query: WebGLQuery?) { let this = jsObject _ = this[Strings.deleteQuery].function!(this: this, arguments: [_toJSValue(query)]) } - @inlinable func isQuery(query: WebGLQuery?) -> GLboolean { + @inlinable public func isQuery(query: WebGLQuery?) -> GLboolean { let this = jsObject return this[Strings.isQuery].function!(this: this, arguments: [_toJSValue(query)]).fromJSValue()! } - @inlinable func beginQuery(target: GLenum, query: WebGLQuery) { + @inlinable public func beginQuery(target: GLenum, query: WebGLQuery) { let this = jsObject _ = this[Strings.beginQuery].function!(this: this, arguments: [_toJSValue(target), _toJSValue(query)]) } - @inlinable func endQuery(target: GLenum) { + @inlinable public func endQuery(target: GLenum) { let this = jsObject _ = this[Strings.endQuery].function!(this: this, arguments: [_toJSValue(target)]) } - @inlinable func getQuery(target: GLenum, pname: GLenum) -> WebGLQuery? { + @inlinable public func getQuery(target: GLenum, pname: GLenum) -> WebGLQuery? { let this = jsObject - return this[Strings.getQuery].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]).fromJSValue() + return this[Strings.getQuery].function!(this: this, arguments: [_toJSValue(target), _toJSValue(pname)]) + .fromJSValue() } - @inlinable func getQueryParameter(query: WebGLQuery, pname: GLenum) -> JSValue { + @inlinable public func getQueryParameter(query: WebGLQuery, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getQueryParameter].function!(this: this, arguments: [_toJSValue(query), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getQueryParameter].function!(this: this, arguments: [_toJSValue(query), _toJSValue(pname)]) + .fromJSValue()! } - @inlinable func createSampler() -> WebGLSampler? { + @inlinable public func createSampler() -> WebGLSampler { let this = jsObject - return this[Strings.createSampler].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createSampler].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func deleteSampler(sampler: WebGLSampler?) { + @inlinable public func deleteSampler(sampler: WebGLSampler?) { let this = jsObject _ = this[Strings.deleteSampler].function!(this: this, arguments: [_toJSValue(sampler)]) } - @inlinable func isSampler(sampler: WebGLSampler?) -> GLboolean { + @inlinable public func isSampler(sampler: WebGLSampler?) -> GLboolean { let this = jsObject return this[Strings.isSampler].function!(this: this, arguments: [_toJSValue(sampler)]).fromJSValue()! } - @inlinable func bindSampler(unit: GLuint, sampler: WebGLSampler?) { + @inlinable public func bindSampler(unit: GLuint, sampler: WebGLSampler?) { let this = jsObject _ = this[Strings.bindSampler].function!(this: this, arguments: [_toJSValue(unit), _toJSValue(sampler)]) } - @inlinable func samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) { + @inlinable public func samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) { let this = jsObject - _ = this[Strings.samplerParameteri].function!(this: this, arguments: [_toJSValue(sampler), _toJSValue(pname), _toJSValue(param)]) + _ = this[Strings.samplerParameteri].function!( + this: this, + arguments: [_toJSValue(sampler), _toJSValue(pname), _toJSValue(param)] + ) } - @inlinable func samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) { + @inlinable public func samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) { let this = jsObject - _ = this[Strings.samplerParameterf].function!(this: this, arguments: [_toJSValue(sampler), _toJSValue(pname), _toJSValue(param)]) + _ = this[Strings.samplerParameterf].function!( + this: this, + arguments: [_toJSValue(sampler), _toJSValue(pname), _toJSValue(param)] + ) } - @inlinable func getSamplerParameter(sampler: WebGLSampler, pname: GLenum) -> JSValue { + @inlinable public func getSamplerParameter(sampler: WebGLSampler, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getSamplerParameter].function!(this: this, arguments: [_toJSValue(sampler), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getSamplerParameter].function!( + this: this, + arguments: [_toJSValue(sampler), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func fenceSync(condition: GLenum, flags: GLbitfield) -> WebGLSync? { + @inlinable public func fenceSync(condition: GLenum, flags: GLbitfield) -> WebGLSync? { let this = jsObject - return this[Strings.fenceSync].function!(this: this, arguments: [_toJSValue(condition), _toJSValue(flags)]).fromJSValue() + return this[Strings.fenceSync].function!(this: this, arguments: [_toJSValue(condition), _toJSValue(flags)]) + .fromJSValue() } - @inlinable func isSync(sync: WebGLSync?) -> GLboolean { + @inlinable public func isSync(sync: WebGLSync?) -> GLboolean { let this = jsObject return this[Strings.isSync].function!(this: this, arguments: [_toJSValue(sync)]).fromJSValue()! } - @inlinable func deleteSync(sync: WebGLSync?) { + @inlinable public func deleteSync(sync: WebGLSync?) { let this = jsObject _ = this[Strings.deleteSync].function!(this: this, arguments: [_toJSValue(sync)]) } - @inlinable func clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) -> GLenum { + @inlinable public func clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) -> GLenum { let this = jsObject - return this[Strings.clientWaitSync].function!(this: this, arguments: [_toJSValue(sync), _toJSValue(flags), _toJSValue(timeout)]).fromJSValue()! + return this[Strings.clientWaitSync].function!( + this: this, + arguments: [_toJSValue(sync), _toJSValue(flags), _toJSValue(timeout)] + ).fromJSValue()! } - @inlinable func waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) { + @inlinable public func waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) { let this = jsObject - _ = this[Strings.waitSync].function!(this: this, arguments: [_toJSValue(sync), _toJSValue(flags), _toJSValue(timeout)]) + _ = this[Strings.waitSync].function!( + this: this, + arguments: [_toJSValue(sync), _toJSValue(flags), _toJSValue(timeout)] + ) } - @inlinable func getSyncParameter(sync: WebGLSync, pname: GLenum) -> JSValue { + @inlinable public func getSyncParameter(sync: WebGLSync, pname: GLenum) -> JSValue { let this = jsObject - return this[Strings.getSyncParameter].function!(this: this, arguments: [_toJSValue(sync), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getSyncParameter].function!(this: this, arguments: [_toJSValue(sync), _toJSValue(pname)]) + .fromJSValue()! } - @inlinable func createTransformFeedback() -> WebGLTransformFeedback? { + @inlinable public func createTransformFeedback() -> WebGLTransformFeedback { let this = jsObject - return this[Strings.createTransformFeedback].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createTransformFeedback].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func deleteTransformFeedback(tf: WebGLTransformFeedback?) { + @inlinable public func deleteTransformFeedback(tf: WebGLTransformFeedback?) { let this = jsObject _ = this[Strings.deleteTransformFeedback].function!(this: this, arguments: [_toJSValue(tf)]) } - @inlinable func isTransformFeedback(tf: WebGLTransformFeedback?) -> GLboolean { + @inlinable public func isTransformFeedback(tf: WebGLTransformFeedback?) -> GLboolean { let this = jsObject return this[Strings.isTransformFeedback].function!(this: this, arguments: [_toJSValue(tf)]).fromJSValue()! } - @inlinable func bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback?) { + @inlinable public func bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback?) { let this = jsObject _ = this[Strings.bindTransformFeedback].function!(this: this, arguments: [_toJSValue(target), _toJSValue(tf)]) } - @inlinable func beginTransformFeedback(primitiveMode: GLenum) { + @inlinable public func beginTransformFeedback(primitiveMode: GLenum) { let this = jsObject _ = this[Strings.beginTransformFeedback].function!(this: this, arguments: [_toJSValue(primitiveMode)]) } - @inlinable func endTransformFeedback() { + @inlinable public func endTransformFeedback() { let this = jsObject _ = this[Strings.endTransformFeedback].function!(this: this, arguments: []) } - @inlinable func transformFeedbackVaryings(program: WebGLProgram, varyings: [String], bufferMode: GLenum) { + @inlinable public func transformFeedbackVaryings(program: WebGLProgram, varyings: [String], bufferMode: GLenum) { let this = jsObject - _ = this[Strings.transformFeedbackVaryings].function!(this: this, arguments: [_toJSValue(program), _toJSValue(varyings), _toJSValue(bufferMode)]) + _ = this[Strings.transformFeedbackVaryings].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(varyings), _toJSValue(bufferMode)] + ) } - @inlinable func getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { + @inlinable public func getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? { let this = jsObject - return this[Strings.getTransformFeedbackVarying].function!(this: this, arguments: [_toJSValue(program), _toJSValue(index)]).fromJSValue() + return this[Strings.getTransformFeedbackVarying].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(index)] + ).fromJSValue() } - @inlinable func pauseTransformFeedback() { + @inlinable public func pauseTransformFeedback() { let this = jsObject _ = this[Strings.pauseTransformFeedback].function!(this: this, arguments: []) } - @inlinable func resumeTransformFeedback() { + @inlinable public func resumeTransformFeedback() { let this = jsObject _ = this[Strings.resumeTransformFeedback].function!(this: this, arguments: []) } - @inlinable func bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer?) { + @inlinable public func bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer?) { let this = jsObject - _ = this[Strings.bindBufferBase].function!(this: this, arguments: [_toJSValue(target), _toJSValue(index), _toJSValue(buffer)]) + _ = this[Strings.bindBufferBase].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(index), _toJSValue(buffer)] + ) } - @inlinable func bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer?, offset: GLintptr, size: GLsizeiptr) { + @inlinable public func bindBufferRange( + target: GLenum, + index: GLuint, + buffer: WebGLBuffer?, + offset: GLintptr, + size: GLsizeiptr + ) { let this = jsObject - _ = this[Strings.bindBufferRange].function!(this: this, arguments: [_toJSValue(target), _toJSValue(index), _toJSValue(buffer), _toJSValue(offset), _toJSValue(size)]) + _ = this[Strings.bindBufferRange].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(index), _toJSValue(buffer), _toJSValue(offset), _toJSValue(size), + ] + ) } - @inlinable func getIndexedParameter(target: GLenum, index: GLuint) -> JSValue { + @inlinable public func getIndexedParameter(target: GLenum, index: GLuint) -> JSValue { let this = jsObject - return this[Strings.getIndexedParameter].function!(this: this, arguments: [_toJSValue(target), _toJSValue(index)]).fromJSValue()! + return this[Strings.getIndexedParameter].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(index)] + ).fromJSValue()! } - @inlinable func getUniformIndices(program: WebGLProgram, uniformNames: [String]) -> [GLuint]? { + @inlinable public func getUniformIndices(program: WebGLProgram, uniformNames: [String]) -> [GLuint]? { let this = jsObject - return this[Strings.getUniformIndices].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformNames)]).fromJSValue() + return this[Strings.getUniformIndices].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformNames)] + ).fromJSValue() } - @inlinable func getActiveUniforms(program: WebGLProgram, uniformIndices: [GLuint], pname: GLenum) -> JSValue { + @inlinable public func getActiveUniforms(program: WebGLProgram, uniformIndices: [GLuint], pname: GLenum) -> JSValue + { let this = jsObject - return this[Strings.getActiveUniforms].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformIndices), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getActiveUniforms].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformIndices), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getUniformBlockIndex(program: WebGLProgram, uniformBlockName: String) -> GLuint { + @inlinable public func getUniformBlockIndex(program: WebGLProgram, uniformBlockName: String) -> GLuint { let this = jsObject - return this[Strings.getUniformBlockIndex].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformBlockName)]).fromJSValue()! + return this[Strings.getUniformBlockIndex].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformBlockName)] + ).fromJSValue()! } - @inlinable func getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) -> JSValue { + @inlinable public func getActiveUniformBlockParameter( + program: WebGLProgram, + uniformBlockIndex: GLuint, + pname: GLenum + ) -> JSValue { let this = jsObject - return this[Strings.getActiveUniformBlockParameter].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex), _toJSValue(pname)]).fromJSValue()! + return this[Strings.getActiveUniformBlockParameter].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex), _toJSValue(pname)] + ).fromJSValue()! } - @inlinable func getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) -> String? { + @inlinable public func getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) -> String? { let this = jsObject - return this[Strings.getActiveUniformBlockName].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex)]).fromJSValue() + return this[Strings.getActiveUniformBlockName].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex)] + ).fromJSValue() } - @inlinable func uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) { + @inlinable public func uniformBlockBinding( + program: WebGLProgram, + uniformBlockIndex: GLuint, + uniformBlockBinding: GLuint + ) { let this = jsObject - _ = this[Strings.uniformBlockBinding].function!(this: this, arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex), _toJSValue(uniformBlockBinding)]) + _ = this[Strings.uniformBlockBinding].function!( + this: this, + arguments: [_toJSValue(program), _toJSValue(uniformBlockIndex), _toJSValue(uniformBlockBinding)] + ) } - @inlinable func createVertexArray() -> WebGLVertexArrayObject? { + @inlinable public func createVertexArray() -> WebGLVertexArrayObject { let this = jsObject - return this[Strings.createVertexArray].function!(this: this, arguments: []).fromJSValue() + return this[Strings.createVertexArray].function!(this: this, arguments: []).fromJSValue()! } - @inlinable func deleteVertexArray(vertexArray: WebGLVertexArrayObject?) { + @inlinable public func deleteVertexArray(vertexArray: WebGLVertexArrayObject?) { let this = jsObject _ = this[Strings.deleteVertexArray].function!(this: this, arguments: [_toJSValue(vertexArray)]) } - @inlinable func isVertexArray(vertexArray: WebGLVertexArrayObject?) -> GLboolean { + @inlinable public func isVertexArray(vertexArray: WebGLVertexArrayObject?) -> GLboolean { let this = jsObject return this[Strings.isVertexArray].function!(this: this, arguments: [_toJSValue(vertexArray)]).fromJSValue()! } - @inlinable func bindVertexArray(array: WebGLVertexArrayObject?) { + @inlinable public func bindVertexArray(array: WebGLVertexArrayObject?) { let this = jsObject _ = this[Strings.bindVertexArray].function!(this: this, arguments: [_toJSValue(array)]) } } - public protocol WebGL2RenderingContextOverloads: JSBridgedClass {} -public extension WebGL2RenderingContextOverloads { - @inlinable func bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) { - let this = jsObject - _ = this[Strings.bufferData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(size), _toJSValue(usage)]) - } - - @inlinable func bufferData(target: GLenum, srcData: AllowSharedBufferSource?, usage: GLenum) { - let this = jsObject - _ = this[Strings.bufferData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(srcData), _toJSValue(usage)]) - } - - @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource) { - let this = jsObject - _ = this[Strings.bufferSubData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(dstByteOffset), _toJSValue(srcData)]) - } - - @inlinable func bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length: GLuint? = nil) { - let this = jsObject - _ = this[Strings.bufferData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(srcData), _toJSValue(usage), _toJSValue(srcOffset), _toJSValue(length)]) - } - - @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length: GLuint? = nil) { - let this = jsObject - _ = this[Strings.bufferSubData].function!(this: this, arguments: [_toJSValue(target), _toJSValue(dstByteOffset), _toJSValue(srcData), _toJSValue(srcOffset), _toJSValue(length)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pixels)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pixels)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) { - let this = jsObject - _ = this[Strings.texImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), _toJSValue(srcOffset)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(source)]) - } - - @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) { - let this = jsObject - _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), _toJSValue(srcOffset)]) - } - - @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) { - let this = jsObject - _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(imageSize), _toJSValue(offset)]) - } - - @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) { - let this = jsObject - _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), _toJSValue(height), _toJSValue(border), _toJSValue(srcData), _toJSValue(srcOffset), _toJSValue(srcLengthOverride)]) - } - - @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) { - let this = jsObject - _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(imageSize), _toJSValue(offset)]) - } - - @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) { - let this = jsObject - _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(srcData), _toJSValue(srcOffset), _toJSValue(srcLengthOverride)]) - } - - @inlinable func uniform1fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform1fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform2fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform3fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform4fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform1iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform1iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform2iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform2iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform3iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform3iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniform4iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniform4iv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix2fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix3fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) { - let this = jsObject - _ = this[Strings.uniformMatrix4fv].function!(this: this, arguments: [_toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)]) - } - - @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView?) { - let this = jsObject - _ = this[Strings.readPixels].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(dstData)]) - } - - @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) { - let this = jsObject - _ = this[Strings.readPixels].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(offset)]) - } - - @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) { - let this = jsObject - _ = this[Strings.readPixels].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(dstData), _toJSValue(dstOffset)]) +extension WebGL2RenderingContextOverloads { + @inlinable public func bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) { + let this = jsObject + _ = this[Strings.bufferData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(size), _toJSValue(usage)] + ) + } + + @inlinable public func bufferData(target: GLenum, srcData: AllowSharedBufferSource?, usage: GLenum) { + let this = jsObject + _ = this[Strings.bufferData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(srcData), _toJSValue(usage)] + ) + } + + @inlinable public func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: AllowSharedBufferSource) { + let this = jsObject + _ = this[Strings.bufferSubData].function!( + this: this, + arguments: [_toJSValue(target), _toJSValue(dstByteOffset), _toJSValue(srcData)] + ) + } + + @inlinable public func bufferData( + target: GLenum, + srcData: ArrayBufferView, + usage: GLenum, + srcOffset: UInt64, + length: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.bufferData].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(srcData), _toJSValue(usage), _toJSValue(srcOffset), _toJSValue(length), + ] + ) + } + + @inlinable public func bufferSubData( + target: GLenum, + dstByteOffset: GLintptr, + srcData: ArrayBufferView, + srcOffset: UInt64, + length: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.bufferSubData].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(dstByteOffset), _toJSValue(srcData), _toJSValue(srcOffset), + _toJSValue(length), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + pixels: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pixels), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(format), _toJSValue(type), + _toJSValue(source), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + pixels: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pixels), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(format), + _toJSValue(type), _toJSValue(source), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + pboOffset: GLintptr + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(source), + ] + ) + } + + @inlinable public func texImage2D( + target: GLenum, + level: GLint, + internalformat: GLint, + width: GLsizei, + height: GLsizei, + border: GLint, + format: GLenum, + type: GLenum, + srcData: ArrayBufferView, + srcOffset: UInt64 + ) { + let this = jsObject + _ = this[Strings.texImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), + _toJSValue(srcOffset), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + pboOffset: GLintptr + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(pboOffset), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + source: TexImageSource + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(source), + ] + ) + } + + @inlinable public func texSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + srcData: ArrayBufferView, + srcOffset: UInt64 + ) { + let this = jsObject + _ = this[Strings.texSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(type), _toJSValue(srcData), _toJSValue(srcOffset), + ] + ) + } + + @inlinable public func compressedTexImage2D( + target: GLenum, + level: GLint, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + border: GLint, + imageSize: GLsizei, + offset: GLintptr + ) { + let this = jsObject + _ = this[Strings.compressedTexImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(imageSize), _toJSValue(offset), + ] + ) + } + + @inlinable public func compressedTexImage2D( + target: GLenum, + level: GLint, + internalformat: GLenum, + width: GLsizei, + height: GLsizei, + border: GLint, + srcData: ArrayBufferView, + srcOffset: UInt64? = nil, + srcLengthOverride: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.compressedTexImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(internalformat), _toJSValue(width), + _toJSValue(height), _toJSValue(border), _toJSValue(srcData), _toJSValue(srcOffset), + _toJSValue(srcLengthOverride), + ] + ) + } + + @inlinable public func compressedTexSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + imageSize: GLsizei, + offset: GLintptr + ) { + let this = jsObject + _ = this[Strings.compressedTexSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(imageSize), _toJSValue(offset), + ] + ) + } + + @inlinable public func compressedTexSubImage2D( + target: GLenum, + level: GLint, + xoffset: GLint, + yoffset: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + srcData: ArrayBufferView, + srcOffset: UInt64? = nil, + srcLengthOverride: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.compressedTexSubImage2D].function!( + this: this, + arguments: [ + _toJSValue(target), _toJSValue(level), _toJSValue(xoffset), _toJSValue(yoffset), _toJSValue(width), + _toJSValue(height), _toJSValue(format), _toJSValue(srcData), _toJSValue(srcOffset), + _toJSValue(srcLengthOverride), + ] + ) + } + + @inlinable public func uniform1fv( + location: WebGLUniformLocation?, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform1fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform2fv( + location: WebGLUniformLocation?, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform2fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform3fv( + location: WebGLUniformLocation?, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform3fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform4fv( + location: WebGLUniformLocation?, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform4fv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform1iv( + location: WebGLUniformLocation?, + data: Int32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform1iv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform2iv( + location: WebGLUniformLocation?, + data: Int32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform2iv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform3iv( + location: WebGLUniformLocation?, + data: Int32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform3iv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniform4iv( + location: WebGLUniformLocation?, + data: Int32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniform4iv].function!( + this: this, + arguments: [_toJSValue(location), _toJSValue(data), _toJSValue(srcOffset), _toJSValue(srcLength)] + ) + } + + @inlinable public func uniformMatrix2fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix2fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix3fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix3fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func uniformMatrix4fv( + location: WebGLUniformLocation?, + transpose: GLboolean, + data: Float32List, + srcOffset: UInt64? = nil, + srcLength: GLuint? = nil + ) { + let this = jsObject + _ = this[Strings.uniformMatrix4fv].function!( + this: this, + arguments: [ + _toJSValue(location), _toJSValue(transpose), _toJSValue(data), _toJSValue(srcOffset), + _toJSValue(srcLength), + ] + ) + } + + @inlinable public func readPixels( + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + dstData: ArrayBufferView? + ) { + let this = jsObject + _ = this[Strings.readPixels].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), + _toJSValue(type), _toJSValue(dstData), + ] + ) + } + + @inlinable public func readPixels( + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + offset: GLintptr + ) { + let this = jsObject + _ = this[Strings.readPixels].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), + _toJSValue(type), _toJSValue(offset), + ] + ) + } + + @inlinable public func readPixels( + x: GLint, + y: GLint, + width: GLsizei, + height: GLsizei, + format: GLenum, + type: GLenum, + dstData: ArrayBufferView, + dstOffset: UInt64 + ) { + let this = jsObject + _ = this[Strings.readPixels].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(format), + _toJSValue(type), _toJSValue(dstData), _toJSValue(dstOffset), + ] + ) } } - public class WebGLQuery: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLQuery].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLQuery].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLSampler: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLSampler].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLSampler].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLSync: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLSync].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebGLSync].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } } public class WebGLTransformFeedback: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLTransformFeedback].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.WebGLTransformFeedback].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } public class WebGLVertexArrayObject: WebGLObject { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLVertexArrayObject].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.WebGLVertexArrayObject].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext" - @usableFromInline static let WebGLQuery: JSString = "WebGLQuery" - @usableFromInline static let WebGLSampler: JSString = "WebGLSampler" - @usableFromInline static let WebGLSync: JSString = "WebGLSync" - @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback" - @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject" - @usableFromInline static let beginQuery: JSString = "beginQuery" - @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback" - @usableFromInline static let bindBufferBase: JSString = "bindBufferBase" - @usableFromInline static let bindBufferRange: JSString = "bindBufferRange" - @usableFromInline static let bindSampler: JSString = "bindSampler" - @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback" - @usableFromInline static let bindVertexArray: JSString = "bindVertexArray" - @usableFromInline static let blitFramebuffer: JSString = "blitFramebuffer" - @usableFromInline static let bufferData: JSString = "bufferData" - @usableFromInline static let bufferSubData: JSString = "bufferSubData" - @usableFromInline static let clearBufferfi: JSString = "clearBufferfi" - @usableFromInline static let clearBufferfv: JSString = "clearBufferfv" - @usableFromInline static let clearBufferiv: JSString = "clearBufferiv" - @usableFromInline static let clearBufferuiv: JSString = "clearBufferuiv" - @usableFromInline static let clientWaitSync: JSString = "clientWaitSync" - @usableFromInline static let compressedTexImage2D: JSString = "compressedTexImage2D" - @usableFromInline static let compressedTexImage3D: JSString = "compressedTexImage3D" - @usableFromInline static let compressedTexSubImage2D: JSString = "compressedTexSubImage2D" - @usableFromInline static let compressedTexSubImage3D: JSString = "compressedTexSubImage3D" - @usableFromInline static let copyBufferSubData: JSString = "copyBufferSubData" - @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D" - @usableFromInline static let createQuery: JSString = "createQuery" - @usableFromInline static let createSampler: JSString = "createSampler" - @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback" - @usableFromInline static let createVertexArray: JSString = "createVertexArray" - @usableFromInline static let deleteQuery: JSString = "deleteQuery" - @usableFromInline static let deleteSampler: JSString = "deleteSampler" - @usableFromInline static let deleteSync: JSString = "deleteSync" - @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback" - @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray" - @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced" - @usableFromInline static let drawBuffers: JSString = "drawBuffers" - @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced" - @usableFromInline static let drawRangeElements: JSString = "drawRangeElements" - @usableFromInline static let endQuery: JSString = "endQuery" - @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback" - @usableFromInline static let fenceSync: JSString = "fenceSync" - @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer" - @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName" - @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter" - @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms" - @usableFromInline static let getBufferSubData: JSString = "getBufferSubData" - @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation" - @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter" - @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter" - @usableFromInline static let getQuery: JSString = "getQuery" - @usableFromInline static let getQueryParameter: JSString = "getQueryParameter" - @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter" - @usableFromInline static let getSyncParameter: JSString = "getSyncParameter" - @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying" - @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex" - @usableFromInline static let getUniformIndices: JSString = "getUniformIndices" - @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer" - @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer" - @usableFromInline static let isQuery: JSString = "isQuery" - @usableFromInline static let isSampler: JSString = "isSampler" - @usableFromInline static let isSync: JSString = "isSync" - @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback" - @usableFromInline static let isVertexArray: JSString = "isVertexArray" - @usableFromInline static let pauseTransformFeedback: JSString = "pauseTransformFeedback" - @usableFromInline static let readBuffer: JSString = "readBuffer" - @usableFromInline static let readPixels: JSString = "readPixels" - @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample" - @usableFromInline static let resumeTransformFeedback: JSString = "resumeTransformFeedback" - @usableFromInline static let samplerParameterf: JSString = "samplerParameterf" - @usableFromInline static let samplerParameteri: JSString = "samplerParameteri" - @usableFromInline static let texImage2D: JSString = "texImage2D" - @usableFromInline static let texImage3D: JSString = "texImage3D" - @usableFromInline static let texStorage2D: JSString = "texStorage2D" - @usableFromInline static let texStorage3D: JSString = "texStorage3D" - @usableFromInline static let texSubImage2D: JSString = "texSubImage2D" - @usableFromInline static let texSubImage3D: JSString = "texSubImage3D" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let transformFeedbackVaryings: JSString = "transformFeedbackVaryings" - @usableFromInline static let uniform1fv: JSString = "uniform1fv" - @usableFromInline static let uniform1iv: JSString = "uniform1iv" - @usableFromInline static let uniform1ui: JSString = "uniform1ui" - @usableFromInline static let uniform1uiv: JSString = "uniform1uiv" - @usableFromInline static let uniform2fv: JSString = "uniform2fv" - @usableFromInline static let uniform2iv: JSString = "uniform2iv" - @usableFromInline static let uniform2ui: JSString = "uniform2ui" - @usableFromInline static let uniform2uiv: JSString = "uniform2uiv" - @usableFromInline static let uniform3fv: JSString = "uniform3fv" - @usableFromInline static let uniform3iv: JSString = "uniform3iv" - @usableFromInline static let uniform3ui: JSString = "uniform3ui" - @usableFromInline static let uniform3uiv: JSString = "uniform3uiv" - @usableFromInline static let uniform4fv: JSString = "uniform4fv" - @usableFromInline static let uniform4iv: JSString = "uniform4iv" - @usableFromInline static let uniform4ui: JSString = "uniform4ui" - @usableFromInline static let uniform4uiv: JSString = "uniform4uiv" - @usableFromInline static let uniformBlockBinding: JSString = "uniformBlockBinding" - @usableFromInline static let uniformMatrix2fv: JSString = "uniformMatrix2fv" - @usableFromInline static let uniformMatrix2x3fv: JSString = "uniformMatrix2x3fv" - @usableFromInline static let uniformMatrix2x4fv: JSString = "uniformMatrix2x4fv" - @usableFromInline static let uniformMatrix3fv: JSString = "uniformMatrix3fv" - @usableFromInline static let uniformMatrix3x2fv: JSString = "uniformMatrix3x2fv" - @usableFromInline static let uniformMatrix3x4fv: JSString = "uniformMatrix3x4fv" - @usableFromInline static let uniformMatrix4fv: JSString = "uniformMatrix4fv" - @usableFromInline static let uniformMatrix4x2fv: JSString = "uniformMatrix4x2fv" - @usableFromInline static let uniformMatrix4x3fv: JSString = "uniformMatrix4x3fv" - @usableFromInline static let vertexAttribDivisor: JSString = "vertexAttribDivisor" - @usableFromInline static let vertexAttribI4i: JSString = "vertexAttribI4i" - @usableFromInline static let vertexAttribI4iv: JSString = "vertexAttribI4iv" - @usableFromInline static let vertexAttribI4ui: JSString = "vertexAttribI4ui" - @usableFromInline static let vertexAttribI4uiv: JSString = "vertexAttribI4uiv" - @usableFromInline static let vertexAttribIPointer: JSString = "vertexAttribIPointer" - @usableFromInline static let waitSync: JSString = "waitSync" + @usableFromInline static let `WebGL2RenderingContext`: JSString = "WebGL2RenderingContext" + @usableFromInline static let `WebGLQuery`: JSString = "WebGLQuery" + @usableFromInline static let `WebGLSampler`: JSString = "WebGLSampler" + @usableFromInline static let `WebGLSync`: JSString = "WebGLSync" + @usableFromInline static let `WebGLTransformFeedback`: JSString = "WebGLTransformFeedback" + @usableFromInline static let `WebGLVertexArrayObject`: JSString = "WebGLVertexArrayObject" + @usableFromInline static let `beginQuery`: JSString = "beginQuery" + @usableFromInline static let `beginTransformFeedback`: JSString = "beginTransformFeedback" + @usableFromInline static let `bindBufferBase`: JSString = "bindBufferBase" + @usableFromInline static let `bindBufferRange`: JSString = "bindBufferRange" + @usableFromInline static let `bindSampler`: JSString = "bindSampler" + @usableFromInline static let `bindTransformFeedback`: JSString = "bindTransformFeedback" + @usableFromInline static let `bindVertexArray`: JSString = "bindVertexArray" + @usableFromInline static let `blitFramebuffer`: JSString = "blitFramebuffer" + @usableFromInline static let `bufferData`: JSString = "bufferData" + @usableFromInline static let `bufferSubData`: JSString = "bufferSubData" + @usableFromInline static let `clearBufferfi`: JSString = "clearBufferfi" + @usableFromInline static let `clearBufferfv`: JSString = "clearBufferfv" + @usableFromInline static let `clearBufferiv`: JSString = "clearBufferiv" + @usableFromInline static let `clearBufferuiv`: JSString = "clearBufferuiv" + @usableFromInline static let `clientWaitSync`: JSString = "clientWaitSync" + @usableFromInline static let `compressedTexImage2D`: JSString = "compressedTexImage2D" + @usableFromInline static let `compressedTexImage3D`: JSString = "compressedTexImage3D" + @usableFromInline static let `compressedTexSubImage2D`: JSString = "compressedTexSubImage2D" + @usableFromInline static let `compressedTexSubImage3D`: JSString = "compressedTexSubImage3D" + @usableFromInline static let `copyBufferSubData`: JSString = "copyBufferSubData" + @usableFromInline static let `copyTexSubImage3D`: JSString = "copyTexSubImage3D" + @usableFromInline static let `createQuery`: JSString = "createQuery" + @usableFromInline static let `createSampler`: JSString = "createSampler" + @usableFromInline static let `createTransformFeedback`: JSString = "createTransformFeedback" + @usableFromInline static let `createVertexArray`: JSString = "createVertexArray" + @usableFromInline static let `deleteQuery`: JSString = "deleteQuery" + @usableFromInline static let `deleteSampler`: JSString = "deleteSampler" + @usableFromInline static let `deleteSync`: JSString = "deleteSync" + @usableFromInline static let `deleteTransformFeedback`: JSString = "deleteTransformFeedback" + @usableFromInline static let `deleteVertexArray`: JSString = "deleteVertexArray" + @usableFromInline static let `drawArraysInstanced`: JSString = "drawArraysInstanced" + @usableFromInline static let `drawBuffers`: JSString = "drawBuffers" + @usableFromInline static let `drawElementsInstanced`: JSString = "drawElementsInstanced" + @usableFromInline static let `drawRangeElements`: JSString = "drawRangeElements" + @usableFromInline static let `endQuery`: JSString = "endQuery" + @usableFromInline static let `endTransformFeedback`: JSString = "endTransformFeedback" + @usableFromInline static let `fenceSync`: JSString = "fenceSync" + @usableFromInline static let `framebufferTextureLayer`: JSString = "framebufferTextureLayer" + @usableFromInline static let `getActiveUniformBlockName`: JSString = "getActiveUniformBlockName" + @usableFromInline static let `getActiveUniformBlockParameter`: JSString = "getActiveUniformBlockParameter" + @usableFromInline static let `getActiveUniforms`: JSString = "getActiveUniforms" + @usableFromInline static let `getBufferSubData`: JSString = "getBufferSubData" + @usableFromInline static let `getFragDataLocation`: JSString = "getFragDataLocation" + @usableFromInline static let `getIndexedParameter`: JSString = "getIndexedParameter" + @usableFromInline static let `getInternalformatParameter`: JSString = "getInternalformatParameter" + @usableFromInline static let `getQuery`: JSString = "getQuery" + @usableFromInline static let `getQueryParameter`: JSString = "getQueryParameter" + @usableFromInline static let `getSamplerParameter`: JSString = "getSamplerParameter" + @usableFromInline static let `getSyncParameter`: JSString = "getSyncParameter" + @usableFromInline static let `getTransformFeedbackVarying`: JSString = "getTransformFeedbackVarying" + @usableFromInline static let `getUniformBlockIndex`: JSString = "getUniformBlockIndex" + @usableFromInline static let `getUniformIndices`: JSString = "getUniformIndices" + @usableFromInline static let `invalidateFramebuffer`: JSString = "invalidateFramebuffer" + @usableFromInline static let `invalidateSubFramebuffer`: JSString = "invalidateSubFramebuffer" + @usableFromInline static let `isQuery`: JSString = "isQuery" + @usableFromInline static let `isSampler`: JSString = "isSampler" + @usableFromInline static let `isSync`: JSString = "isSync" + @usableFromInline static let `isTransformFeedback`: JSString = "isTransformFeedback" + @usableFromInline static let `isVertexArray`: JSString = "isVertexArray" + @usableFromInline static let `pauseTransformFeedback`: JSString = "pauseTransformFeedback" + @usableFromInline static let `readBuffer`: JSString = "readBuffer" + @usableFromInline static let `readPixels`: JSString = "readPixels" + @usableFromInline static let `renderbufferStorageMultisample`: JSString = "renderbufferStorageMultisample" + @usableFromInline static let `resumeTransformFeedback`: JSString = "resumeTransformFeedback" + @usableFromInline static let `samplerParameterf`: JSString = "samplerParameterf" + @usableFromInline static let `samplerParameteri`: JSString = "samplerParameteri" + @usableFromInline static let `texImage2D`: JSString = "texImage2D" + @usableFromInline static let `texImage3D`: JSString = "texImage3D" + @usableFromInline static let `texStorage2D`: JSString = "texStorage2D" + @usableFromInline static let `texStorage3D`: JSString = "texStorage3D" + @usableFromInline static let `texSubImage2D`: JSString = "texSubImage2D" + @usableFromInline static let `texSubImage3D`: JSString = "texSubImage3D" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `transformFeedbackVaryings`: JSString = "transformFeedbackVaryings" + @usableFromInline static let `uniform1fv`: JSString = "uniform1fv" + @usableFromInline static let `uniform1iv`: JSString = "uniform1iv" + @usableFromInline static let `uniform1ui`: JSString = "uniform1ui" + @usableFromInline static let `uniform1uiv`: JSString = "uniform1uiv" + @usableFromInline static let `uniform2fv`: JSString = "uniform2fv" + @usableFromInline static let `uniform2iv`: JSString = "uniform2iv" + @usableFromInline static let `uniform2ui`: JSString = "uniform2ui" + @usableFromInline static let `uniform2uiv`: JSString = "uniform2uiv" + @usableFromInline static let `uniform3fv`: JSString = "uniform3fv" + @usableFromInline static let `uniform3iv`: JSString = "uniform3iv" + @usableFromInline static let `uniform3ui`: JSString = "uniform3ui" + @usableFromInline static let `uniform3uiv`: JSString = "uniform3uiv" + @usableFromInline static let `uniform4fv`: JSString = "uniform4fv" + @usableFromInline static let `uniform4iv`: JSString = "uniform4iv" + @usableFromInline static let `uniform4ui`: JSString = "uniform4ui" + @usableFromInline static let `uniform4uiv`: JSString = "uniform4uiv" + @usableFromInline static let `uniformBlockBinding`: JSString = "uniformBlockBinding" + @usableFromInline static let `uniformMatrix2fv`: JSString = "uniformMatrix2fv" + @usableFromInline static let `uniformMatrix2x3fv`: JSString = "uniformMatrix2x3fv" + @usableFromInline static let `uniformMatrix2x4fv`: JSString = "uniformMatrix2x4fv" + @usableFromInline static let `uniformMatrix3fv`: JSString = "uniformMatrix3fv" + @usableFromInline static let `uniformMatrix3x2fv`: JSString = "uniformMatrix3x2fv" + @usableFromInline static let `uniformMatrix3x4fv`: JSString = "uniformMatrix3x4fv" + @usableFromInline static let `uniformMatrix4fv`: JSString = "uniformMatrix4fv" + @usableFromInline static let `uniformMatrix4x2fv`: JSString = "uniformMatrix4x2fv" + @usableFromInline static let `uniformMatrix4x3fv`: JSString = "uniformMatrix4x3fv" + @usableFromInline static let `vertexAttribDivisor`: JSString = "vertexAttribDivisor" + @usableFromInline static let `vertexAttribI4i`: JSString = "vertexAttribI4i" + @usableFromInline static let `vertexAttribI4iv`: JSString = "vertexAttribI4iv" + @usableFromInline static let `vertexAttribI4ui`: JSString = "vertexAttribI4ui" + @usableFromInline static let `vertexAttribI4uiv`: JSString = "vertexAttribI4uiv" + @usableFromInline static let `vertexAttribIPointer`: JSString = "vertexAttribIPointer" + @usableFromInline static let `waitSync`: JSString = "waitSync" } - public protocol Any_Uint32List: ConvertibleToJSValue {} extension Uint32Array: Any_Uint32List {} extension Array: Any_Uint32List where Element == GLuint {} @@ -1360,12 +2342,11 @@ public enum Uint32List: JSValueCompatible, Any_Uint32List { case uint32Array(Uint32Array) case seq_of_GLuint([GLuint]) - init(_ uint32Array: Uint32Array) { + public init(_ uint32Array: Uint32Array) { let val: Uint32List = .uint32Array(uint32Array) self = val } - - init(_ seq_of_GLuint: [GLuint]) { + public init(_ seq_of_GLuint: [GLuint]) { let val: Uint32List = .seq_of_GLuint(seq_of_GLuint) self = val } @@ -1376,7 +2357,6 @@ public enum Uint32List: JSValueCompatible, Any_Uint32List { default: return nil } } - public var seq_of_GLuint: [GLuint]? { switch self { case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint @@ -1385,21 +2365,15 @@ public enum Uint32List: JSValueCompatible, Any_Uint32List { } public static func construct(from value: JSValue) -> Self? { - if let uint32Array: Uint32Array = value.fromJSValue() { - return .uint32Array(uint32Array) - } - if let seq_of_GLuint: [GLuint] = value.fromJSValue() { - return .seq_of_GLuint(seq_of_GLuint) - } + if let uint32Array: Uint32Array = value.fromJSValue() { return .uint32Array(uint32Array) } + if let seq_of_GLuint: [GLuint] = value.fromJSValue() { return .seq_of_GLuint(seq_of_GLuint) } return nil } public var jsValue: JSValue { switch self { - case let .uint32Array(uint32Array): - return uint32Array.jsValue - case let .seq_of_GLuint(seq_of_GLuint): - return seq_of_GLuint.jsValue + case let .uint32Array(uint32Array): return uint32Array.jsValue + case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint.jsValue } } } diff --git a/Sources/WebGPU/Generated.swift b/Sources/WebGPU/Generated.swift index 7b9be4f3..66868e0f 100644 --- a/Sources/WebGPU/Generated.swift +++ b/Sources/WebGPU/Generated.swift @@ -3,42 +3,52 @@ import DOM import ECMAScript import JavaScriptBigIntSupport -import JavaScriptEventLoop import JavaScriptKit -import WebAnimations import WebAPIBase +import WebAnimations import WebAudio import WebGL1 +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public class GPU: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPU].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _wgslLanguageFeatures = ReadonlyAttribute(jsObject: jsObject, name: Strings.wgslLanguageFeatures) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func requestAdapter(options: GPURequestAdapterOptions? = nil) -> JSPromise { + @inlinable final public func requestAdapter(options: GPURequestAdapterOptions? = nil) -> JSPromise { let this = jsObject return this[Strings.requestAdapter].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func requestAdapter(options: GPURequestAdapterOptions? = nil) async throws -> GPUAdapter? { - let this = jsObject - let _promise: JSPromise = this[Strings.requestAdapter].function!(this: this, arguments: [_toJSValue(options)]).fromJSValue()! - return try await _promise.value.fromJSValue() - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func requestAdapter( + options: GPURequestAdapterOptions? = nil + ) async throws(JSException) -> GPUAdapter? { + let this = jsObject + let _promise: JSPromise = this[Strings.requestAdapter].function!( + this: this, + arguments: [_toJSValue(options)] + ).fromJSValue()! + return try await _promise.value.fromJSValue() + } + #endif - @inlinable public func getPreferredCanvasFormat() -> GPUTextureFormat { + @inlinable final public func getPreferredCanvasFormat() -> GPUTextureFormat { let this = jsObject return this[Strings.getPreferredCanvasFormat].function!(this: this, arguments: []).fromJSValue()! } - @ReadonlyAttribute - public var wgslLanguageFeatures: WGSLLanguageFeatures + @inlinable public var wgslLanguageFeatures: WGSLLanguageFeatures { + jsObject[Strings.wgslLanguageFeatures].fromJSValue()! + } } public class GPUAdapter: JSBridgedClass { @@ -46,45 +56,33 @@ public class GPUAdapter: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _features = ReadonlyAttribute(jsObject: jsObject, name: Strings.features) - _limits = ReadonlyAttribute(jsObject: jsObject, name: Strings.limits) - _isFallbackAdapter = ReadonlyAttribute(jsObject: jsObject, name: Strings.isFallbackAdapter) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var features: GPUSupportedFeatures + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var limits: GPUSupportedLimits + @inlinable public var features: GPUSupportedFeatures { jsObject[Strings.features].fromJSValue()! } - @ReadonlyAttribute - public var isFallbackAdapter: Bool + @inlinable public var limits: GPUSupportedLimits { jsObject[Strings.limits].fromJSValue()! } - @inlinable public func requestDevice(descriptor: GPUDeviceDescriptor? = nil) -> JSPromise { - let this = jsObject - return this[Strings.requestDevice].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - } + @inlinable public var info: GPUAdapterInfo { jsObject[Strings.info].fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func requestDevice(descriptor: GPUDeviceDescriptor? = nil) async throws -> GPUDevice { - let this = jsObject - let _promise: JSPromise = this[Strings.requestDevice].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + @inlinable public var isFallbackAdapter: Bool { jsObject[Strings.isFallbackAdapter].fromJSValue()! } - @inlinable public func requestAdapterInfo(unmaskHints: [String]? = nil) -> JSPromise { + @inlinable final public func requestDevice(descriptor: GPUDeviceDescriptor? = nil) -> JSPromise { let this = jsObject - return this[Strings.requestAdapterInfo].function!(this: this, arguments: [_toJSValue(unmaskHints)]).fromJSValue()! + return this[Strings.requestDevice].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func requestAdapterInfo(unmaskHints: [String]? = nil) async throws -> GPUAdapterInfo { - let this = jsObject - let _promise: JSPromise = this[Strings.requestAdapterInfo].function!(this: this, arguments: [_toJSValue(unmaskHints)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func requestDevice( + descriptor: GPUDeviceDescriptor? = nil + ) async throws(JSException) -> GPUDevice { + let this = jsObject + let _promise: JSPromise = this[Strings.requestDevice].function!( + this: this, + arguments: [_toJSValue(descriptor)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } public class GPUAdapterInfo: JSBridgedClass { @@ -92,25 +90,19 @@ public class GPUAdapterInfo: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _vendor = ReadonlyAttribute(jsObject: jsObject, name: Strings.vendor) - _architecture = ReadonlyAttribute(jsObject: jsObject, name: Strings.architecture) - _device = ReadonlyAttribute(jsObject: jsObject, name: Strings.device) - _description = ReadonlyAttribute(jsObject: jsObject, name: Strings.description) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var vendor: String + @inlinable public var vendor: String { jsObject[Strings.vendor].fromJSValue()! } - @ReadonlyAttribute - public var architecture: String + @inlinable public var architecture: String { jsObject[Strings.architecture].fromJSValue()! } - @ReadonlyAttribute - public var device: String + @inlinable public var device: String { jsObject[Strings.device].fromJSValue()! } - @ReadonlyAttribute - public var description: String + @inlinable public var description: String { jsObject[Strings.description].fromJSValue()! } + + @inlinable public var subgroupMinSize: UInt32 { jsObject[Strings.subgroupMinSize].fromJSValue()! } + + @inlinable public var subgroupMaxSize: UInt32 { jsObject[Strings.subgroupMaxSize].fromJSValue()! } } public enum GPUAddressMode: JSString, JSValueCompatible { @@ -119,116 +111,117 @@ public enum GPUAddressMode: JSString, JSValueCompatible { case mirrorRepeat = "mirror-repeat" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUAutoLayoutMode: JSString, JSValueCompatible { case auto = "auto" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUBindGroup: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUBindGroup].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUBindGroupDescriptor: BridgedDictionary { - public convenience init(layout: GPUBindGroupLayout, entries: [GPUBindGroupEntry]) { +open class GPUBindGroupDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil, layout: GPUBindGroupLayout, entries: [GPUBindGroupEntry]) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.layout] = _toJSValue(layout) object[Strings.entries] = _toJSValue(entries) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) - _entries = ReadWriteAttribute(jsObject: object, name: Strings.entries) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var layout: GPUBindGroupLayout + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var entries: [GPUBindGroupEntry] + @inlinable public var layout: GPUBindGroupLayout { + get { jsObject[Strings.layout].fromJSValue()! } + set { jsObject[Strings.layout] = _toJSValue(newValue) } + } + @inlinable public var entries: [GPUBindGroupEntry] { + get { jsObject[Strings.entries].fromJSValue()! } + set { jsObject[Strings.entries] = _toJSValue(newValue) } + } } +open class GPUBindGroupEntry: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUBindGroupEntry: BridgedDictionary { public convenience init(binding: GPUIndex32, resource: GPUBindingResource) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.binding] = _toJSValue(binding) object[Strings.resource] = _toJSValue(resource) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _binding = ReadWriteAttribute(jsObject: object, name: Strings.binding) - _resource = ReadWriteAttribute(jsObject: object, name: Strings.resource) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var binding: GPUIndex32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var resource: GPUBindingResource + @inlinable public var binding: GPUIndex32 { + get { jsObject[Strings.binding].fromJSValue()! } + set { jsObject[Strings.binding] = _toJSValue(newValue) } + } + @inlinable public var resource: GPUBindingResource { + get { jsObject[Strings.resource].fromJSValue()! } + set { jsObject[Strings.resource] = _toJSValue(newValue) } + } } - public class GPUBindGroupLayout: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUBindGroupLayout].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUBindGroupLayoutDescriptor: BridgedDictionary { - public convenience init(entries: [GPUBindGroupLayoutEntry]) { +open class GPUBindGroupLayoutDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil, entries: [GPUBindGroupLayoutEntry]) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.entries] = _toJSValue(entries) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _entries = ReadWriteAttribute(jsObject: object, name: Strings.entries) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var entries: [GPUBindGroupLayoutEntry] + @inlinable public var entries: [GPUBindGroupLayoutEntry] { + get { jsObject[Strings.entries].fromJSValue()! } + set { jsObject[Strings.entries] = _toJSValue(newValue) } + } } +open class GPUBindGroupLayoutEntry: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUBindGroupLayoutEntry: BridgedDictionary { - public convenience init(binding: GPUIndex32, visibility: GPUShaderStageFlags, buffer: GPUBufferBindingLayout, sampler: GPUSamplerBindingLayout, texture: GPUTextureBindingLayout, storageTexture: GPUStorageTextureBindingLayout, externalTexture: GPUExternalTextureBindingLayout) { + public convenience init( + binding: GPUIndex32, + visibility: GPUShaderStageFlags, + buffer: GPUBufferBindingLayout? = nil, + sampler: GPUSamplerBindingLayout? = nil, + texture: GPUTextureBindingLayout? = nil, + storageTexture: GPUStorageTextureBindingLayout? = nil, + externalTexture: GPUExternalTextureBindingLayout? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.binding] = _toJSValue(binding) object[Strings.visibility] = _toJSValue(visibility) @@ -237,81 +230,103 @@ public class GPUBindGroupLayoutEntry: BridgedDictionary { object[Strings.texture] = _toJSValue(texture) object[Strings.storageTexture] = _toJSValue(storageTexture) object[Strings.externalTexture] = _toJSValue(externalTexture) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _binding = ReadWriteAttribute(jsObject: object, name: Strings.binding) - _visibility = ReadWriteAttribute(jsObject: object, name: Strings.visibility) - _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) - _sampler = ReadWriteAttribute(jsObject: object, name: Strings.sampler) - _texture = ReadWriteAttribute(jsObject: object, name: Strings.texture) - _storageTexture = ReadWriteAttribute(jsObject: object, name: Strings.storageTexture) - _externalTexture = ReadWriteAttribute(jsObject: object, name: Strings.externalTexture) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var binding: GPUIndex32 - - @ReadWriteAttribute - public var visibility: GPUShaderStageFlags + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var buffer: GPUBufferBindingLayout - - @ReadWriteAttribute - public var sampler: GPUSamplerBindingLayout - - @ReadWriteAttribute - public var texture: GPUTextureBindingLayout - - @ReadWriteAttribute - public var storageTexture: GPUStorageTextureBindingLayout - - @ReadWriteAttribute - public var externalTexture: GPUExternalTextureBindingLayout + @inlinable public var binding: GPUIndex32 { + get { jsObject[Strings.binding].fromJSValue()! } + set { jsObject[Strings.binding] = _toJSValue(newValue) } + } + @inlinable public var visibility: GPUShaderStageFlags { + get { jsObject[Strings.visibility].fromJSValue()! } + set { jsObject[Strings.visibility] = _toJSValue(newValue) } + } + @inlinable public var buffer: GPUBufferBindingLayout { + get { jsObject[Strings.buffer].fromJSValue()! } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } + @inlinable public var sampler: GPUSamplerBindingLayout { + get { jsObject[Strings.sampler].fromJSValue()! } + set { jsObject[Strings.sampler] = _toJSValue(newValue) } + } + @inlinable public var texture: GPUTextureBindingLayout { + get { jsObject[Strings.texture].fromJSValue()! } + set { jsObject[Strings.texture] = _toJSValue(newValue) } + } + @inlinable public var storageTexture: GPUStorageTextureBindingLayout { + get { jsObject[Strings.storageTexture].fromJSValue()! } + set { jsObject[Strings.storageTexture] = _toJSValue(newValue) } + } + @inlinable public var externalTexture: GPUExternalTextureBindingLayout { + get { jsObject[Strings.externalTexture].fromJSValue()! } + set { jsObject[Strings.externalTexture] = _toJSValue(newValue) } + } } - public protocol GPUBindingCommandsMixin: JSBridgedClass {} -public extension GPUBindingCommandsMixin { - @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup?, dynamicOffsets: [GPUBufferDynamicOffset]? = nil) { +extension GPUBindingCommandsMixin { + @inlinable public func setBindGroup( + index: GPUIndex32, + bindGroup: GPUBindGroup?, + dynamicOffsets: [GPUBufferDynamicOffset]? = nil + ) { let this = jsObject - _ = this[Strings.setBindGroup].function!(this: this, arguments: [_toJSValue(index), _toJSValue(bindGroup), _toJSValue(dynamicOffsets)]) - } - - @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup?, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32) { + _ = this[Strings.setBindGroup].function!( + this: this, + arguments: [_toJSValue(index), _toJSValue(bindGroup), _toJSValue(dynamicOffsets)] + ) + } + + @inlinable public func setBindGroup( + index: GPUIndex32, + bindGroup: GPUBindGroup?, + dynamicOffsetsData: Uint32Array, + dynamicOffsetsDataStart: GPUSize64, + dynamicOffsetsDataLength: GPUSize32 + ) { let this = jsObject - _ = this[Strings.setBindGroup].function!(this: this, arguments: [_toJSValue(index), _toJSValue(bindGroup), _toJSValue(dynamicOffsetsData), _toJSValue(dynamicOffsetsDataStart), _toJSValue(dynamicOffsetsDataLength)]) + _ = this[Strings.setBindGroup].function!( + this: this, + arguments: [ + _toJSValue(index), _toJSValue(bindGroup), _toJSValue(dynamicOffsetsData), + _toJSValue(dynamicOffsetsDataStart), _toJSValue(dynamicOffsetsDataLength), + ] + ) } } +open class GPUBlendComponent: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUBlendComponent: BridgedDictionary { - public convenience init(operation: GPUBlendOperation, srcFactor: GPUBlendFactor, dstFactor: GPUBlendFactor) { + public convenience init( + operation: GPUBlendOperation? = nil, + srcFactor: GPUBlendFactor? = nil, + dstFactor: GPUBlendFactor? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.operation] = _toJSValue(operation) object[Strings.srcFactor] = _toJSValue(srcFactor) object[Strings.dstFactor] = _toJSValue(dstFactor) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _operation = ReadWriteAttribute(jsObject: object, name: Strings.operation) - _srcFactor = ReadWriteAttribute(jsObject: object, name: Strings.srcFactor) - _dstFactor = ReadWriteAttribute(jsObject: object, name: Strings.dstFactor) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var operation: GPUBlendOperation + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var srcFactor: GPUBlendFactor - - @ReadWriteAttribute - public var dstFactor: GPUBlendFactor + @inlinable public var operation: GPUBlendOperation { + get { jsObject[Strings.operation].fromJSValue()! } + set { jsObject[Strings.operation] = _toJSValue(newValue) } + } + @inlinable public var srcFactor: GPUBlendFactor { + get { jsObject[Strings.srcFactor].fromJSValue()! } + set { jsObject[Strings.srcFactor] = _toJSValue(newValue) } + } + @inlinable public var dstFactor: GPUBlendFactor { + get { jsObject[Strings.dstFactor].fromJSValue()! } + set { jsObject[Strings.dstFactor] = _toJSValue(newValue) } + } } - public enum GPUBlendFactor: JSString, JSValueCompatible { case zero = "zero" case one = "one" @@ -326,21 +341,20 @@ public enum GPUBlendFactor: JSString, JSValueCompatible { case srcAlphaSaturated = "src-alpha-saturated" case constant = "constant" case oneMinusConstant = "one-minus-constant" + case src1 = "src1" + case oneMinusSrc1 = "one-minus-src1" + case src1Alpha = "src1-alpha" + case oneMinusSrc1Alpha = "one-minus-src1-alpha" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUBlendOperation: JSString, JSValueCompatible { case add = "add" case subtract = "subtract" @@ -349,209 +363,213 @@ public enum GPUBlendOperation: JSString, JSValueCompatible { case max = "max" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUBlendState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUBlendState: BridgedDictionary { public convenience init(color: GPUBlendComponent, alpha: GPUBlendComponent) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.color] = _toJSValue(color) object[Strings.alpha] = _toJSValue(alpha) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _color = ReadWriteAttribute(jsObject: object, name: Strings.color) - _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var color: GPUBlendComponent + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var alpha: GPUBlendComponent + @inlinable public var color: GPUBlendComponent { + get { jsObject[Strings.color].fromJSValue()! } + set { jsObject[Strings.color] = _toJSValue(newValue) } + } + @inlinable public var alpha: GPUBlendComponent { + get { jsObject[Strings.alpha].fromJSValue()! } + set { jsObject[Strings.alpha] = _toJSValue(newValue) } + } } - public class GPUBuffer: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUBuffer].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size) - _usage = ReadonlyAttribute(jsObject: jsObject, name: Strings.usage) - _mapState = ReadonlyAttribute(jsObject: jsObject, name: Strings.mapState) - self.jsObject = jsObject - } - - @ReadonlyAttribute - public var size: GPUSize64Out + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var usage: GPUFlagsConstant + @inlinable public var size: GPUSize64Out { jsObject[Strings.size].fromJSValue()! } - @ReadonlyAttribute - public var mapState: GPUBufferMapState + @inlinable public var usage: GPUFlagsConstant { jsObject[Strings.usage].fromJSValue()! } - @inlinable public func mapAsync(mode: GPUMapModeFlags, offset: GPUSize64? = nil, size: GPUSize64? = nil) -> JSPromise { - let this = jsObject - return this[Strings.mapAsync].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(offset), _toJSValue(size)]).fromJSValue()! - } + @inlinable public var mapState: GPUBufferMapState { jsObject[Strings.mapState].fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func mapAsync(mode: GPUMapModeFlags, offset: GPUSize64? = nil, size: GPUSize64? = nil) async throws { + @inlinable final public func mapAsync( + mode: GPUMapModeFlags, + offset: GPUSize64? = nil, + size: GPUSize64? = nil + ) -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.mapAsync].function!(this: this, arguments: [_toJSValue(mode), _toJSValue(offset), _toJSValue(size)]).fromJSValue()! - _ = try await _promise.value - } + return this[Strings.mapAsync].function!( + this: this, + arguments: [_toJSValue(mode), _toJSValue(offset), _toJSValue(size)] + ).fromJSValue()! + } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func mapAsync( + mode: GPUMapModeFlags, + offset: GPUSize64? = nil, + size: GPUSize64? = nil + ) async throws(JSException) { + let this = jsObject + let _promise: JSPromise = this[Strings.mapAsync].function!( + this: this, + arguments: [_toJSValue(mode), _toJSValue(offset), _toJSValue(size)] + ).fromJSValue()! + _ = try await _promise.value + } + #endif - @inlinable public func getMappedRange(offset: GPUSize64? = nil, size: GPUSize64? = nil) -> ArrayBuffer { + @inlinable final public func getMappedRange(offset: GPUSize64? = nil, size: GPUSize64? = nil) -> ArrayBuffer { let this = jsObject - return this[Strings.getMappedRange].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(size)]).fromJSValue()! + return this[Strings.getMappedRange].function!(this: this, arguments: [_toJSValue(offset), _toJSValue(size)]) + .fromJSValue()! } - @inlinable public func unmap() { + @inlinable final public func unmap() { let this = jsObject _ = this[Strings.unmap].function!(this: this, arguments: []) } - @inlinable public func destroy() { + @inlinable final public func destroy() { let this = jsObject _ = this[Strings.destroy].function!(this: this, arguments: []) } } -public class GPUBufferBinding: BridgedDictionary { - public convenience init(buffer: GPUBuffer, offset: GPUSize64, size: GPUSize64) { +open class GPUBufferBinding: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.buffer] = _toJSValue(buffer) object[Strings.offset] = _toJSValue(offset) object[Strings.size] = _toJSValue(size) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _size = ReadWriteAttribute(jsObject: object, name: Strings.size) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var buffer: GPUBuffer + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var offset: GPUSize64 - - @ReadWriteAttribute - public var size: GPUSize64 + @inlinable public var buffer: GPUBuffer { + get { jsObject[Strings.buffer].fromJSValue()! } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } + @inlinable public var offset: GPUSize64 { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var size: GPUSize64 { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } } +open class GPUBufferBindingLayout: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUBufferBindingLayout: BridgedDictionary { - public convenience init(type: GPUBufferBindingType, hasDynamicOffset: Bool, minBindingSize: GPUSize64) { + public convenience init( + type: GPUBufferBindingType? = nil, + hasDynamicOffset: Bool? = nil, + minBindingSize: GPUSize64? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) object[Strings.hasDynamicOffset] = _toJSValue(hasDynamicOffset) object[Strings.minBindingSize] = _toJSValue(minBindingSize) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _hasDynamicOffset = ReadWriteAttribute(jsObject: object, name: Strings.hasDynamicOffset) - _minBindingSize = ReadWriteAttribute(jsObject: object, name: Strings.minBindingSize) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: GPUBufferBindingType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var hasDynamicOffset: Bool - - @ReadWriteAttribute - public var minBindingSize: GPUSize64 + @inlinable public var type: GPUBufferBindingType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var hasDynamicOffset: Bool { + get { jsObject[Strings.hasDynamicOffset].fromJSValue()! } + set { jsObject[Strings.hasDynamicOffset] = _toJSValue(newValue) } + } + @inlinable public var minBindingSize: GPUSize64 { + get { jsObject[Strings.minBindingSize].fromJSValue()! } + set { jsObject[Strings.minBindingSize] = _toJSValue(newValue) } + } } - public enum GPUBufferBindingType: JSString, JSValueCompatible { case uniform = "uniform" case storage = "storage" case readOnlyStorage = "read-only-storage" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUBufferDescriptor: GPUObjectDescriptorBase { -public class GPUBufferDescriptor: BridgedDictionary { - public convenience init(size: GPUSize64, usage: GPUBufferUsageFlags, mappedAtCreation: Bool) { + public convenience init( + label: String? = nil, + size: GPUSize64, + usage: GPUBufferUsageFlags, + mappedAtCreation: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.size] = _toJSValue(size) object[Strings.usage] = _toJSValue(usage) object[Strings.mappedAtCreation] = _toJSValue(mappedAtCreation) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _size = ReadWriteAttribute(jsObject: object, name: Strings.size) - _usage = ReadWriteAttribute(jsObject: object, name: Strings.usage) - _mappedAtCreation = ReadWriteAttribute(jsObject: object, name: Strings.mappedAtCreation) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var size: GPUSize64 - - @ReadWriteAttribute - public var usage: GPUBufferUsageFlags + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var mappedAtCreation: Bool + @inlinable public var size: GPUSize64 { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } + @inlinable public var usage: GPUBufferUsageFlags { + get { jsObject[Strings.usage].fromJSValue()! } + set { jsObject[Strings.usage] = _toJSValue(newValue) } + } + @inlinable public var mappedAtCreation: Bool { + get { jsObject[Strings.mappedAtCreation].fromJSValue()! } + set { jsObject[Strings.mappedAtCreation] = _toJSValue(newValue) } + } } - public enum GPUBufferMapState: JSString, JSValueCompatible { case unmapped = "unmapped" case pending = "pending" case mapped = "mapped" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUBufferUsage { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.GPUBufferUsage].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.GPUBufferUsage].object! } public static let MAP_READ: GPUFlagsConstant = 0x0001 @@ -573,156 +591,196 @@ public enum GPUBufferUsage { public static let QUERY_RESOLVE: GPUFlagsConstant = 0x0200 } - public enum GPUCanvasAlphaMode: JSString, JSValueCompatible { case opaque = "opaque" case premultiplied = "premultiplied" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUCanvasConfiguration: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUCanvasConfiguration: BridgedDictionary { - public convenience init(device: GPUDevice, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat], colorSpace: PredefinedColorSpace, alphaMode: GPUCanvasAlphaMode) { + public convenience init( + device: GPUDevice, + format: GPUTextureFormat, + usage: GPUTextureUsageFlags? = nil, + viewFormats: [GPUTextureFormat]? = nil, + colorSpace: PredefinedColorSpace? = nil, + toneMapping: GPUCanvasToneMapping? = nil, + alphaMode: GPUCanvasAlphaMode? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.device] = _toJSValue(device) object[Strings.format] = _toJSValue(format) object[Strings.usage] = _toJSValue(usage) object[Strings.viewFormats] = _toJSValue(viewFormats) object[Strings.colorSpace] = _toJSValue(colorSpace) + object[Strings.toneMapping] = _toJSValue(toneMapping) object[Strings.alphaMode] = _toJSValue(alphaMode) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _device = ReadWriteAttribute(jsObject: object, name: Strings.device) - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _usage = ReadWriteAttribute(jsObject: object, name: Strings.usage) - _viewFormats = ReadWriteAttribute(jsObject: object, name: Strings.viewFormats) - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - _alphaMode = ReadWriteAttribute(jsObject: object, name: Strings.alphaMode) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var device: GPUDevice - - @ReadWriteAttribute - public var format: GPUTextureFormat - - @ReadWriteAttribute - public var usage: GPUTextureUsageFlags - - @ReadWriteAttribute - public var viewFormats: [GPUTextureFormat] + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var colorSpace: PredefinedColorSpace - - @ReadWriteAttribute - public var alphaMode: GPUCanvasAlphaMode + @inlinable public var device: GPUDevice { + get { jsObject[Strings.device].fromJSValue()! } + set { jsObject[Strings.device] = _toJSValue(newValue) } + } + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var usage: GPUTextureUsageFlags { + get { jsObject[Strings.usage].fromJSValue()! } + set { jsObject[Strings.usage] = _toJSValue(newValue) } + } + @inlinable public var viewFormats: [GPUTextureFormat] { + get { jsObject[Strings.viewFormats].fromJSValue()! } + set { jsObject[Strings.viewFormats] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } + @inlinable public var toneMapping: GPUCanvasToneMapping { + get { jsObject[Strings.toneMapping].fromJSValue()! } + set { jsObject[Strings.toneMapping] = _toJSValue(newValue) } + } + @inlinable public var alphaMode: GPUCanvasAlphaMode { + get { jsObject[Strings.alphaMode].fromJSValue()! } + set { jsObject[Strings.alphaMode] = _toJSValue(newValue) } + } } - public class GPUCanvasContext: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCanvasContext].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var canvas: HTMLCanvasElement_or_OffscreenCanvas + @inlinable public var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! } - @inlinable public func configure(configuration: GPUCanvasConfiguration) { + @inlinable final public func configure(configuration: GPUCanvasConfiguration) { let this = jsObject _ = this[Strings.configure].function!(this: this, arguments: [_toJSValue(configuration)]) } - @inlinable public func unconfigure() { + @inlinable final public func unconfigure() { let this = jsObject _ = this[Strings.unconfigure].function!(this: this, arguments: []) } - @inlinable public func getCurrentTexture() -> GPUTexture { + @inlinable final public func getConfiguration() -> GPUCanvasConfiguration? { + let this = jsObject + return this[Strings.getConfiguration].function!(this: this, arguments: []).fromJSValue() + } + + @inlinable final public func getCurrentTexture() -> GPUTexture { let this = jsObject return this[Strings.getCurrentTexture].function!(this: this, arguments: []).fromJSValue()! } } -public class GPUColorDict: BridgedDictionary { +open class GPUCanvasToneMapping: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(mode: GPUCanvasToneMappingMode? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.mode] = _toJSValue(mode) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var mode: GPUCanvasToneMappingMode { + get { jsObject[Strings.mode].fromJSValue()! } + set { jsObject[Strings.mode] = _toJSValue(newValue) } + } +} +public enum GPUCanvasToneMappingMode: JSString, JSValueCompatible { + case standard = "standard" + case extended = "extended" + + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } + + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} +open class GPUColorDict: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(r: Double, g: Double, b: Double, a: Double) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.r] = _toJSValue(r) object[Strings.g] = _toJSValue(g) object[Strings.b] = _toJSValue(b) object[Strings.a] = _toJSValue(a) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _r = ReadWriteAttribute(jsObject: object, name: Strings.r) - _g = ReadWriteAttribute(jsObject: object, name: Strings.g) - _b = ReadWriteAttribute(jsObject: object, name: Strings.b) - _a = ReadWriteAttribute(jsObject: object, name: Strings.a) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var r: Double + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var g: Double - - @ReadWriteAttribute - public var b: Double - - @ReadWriteAttribute - public var a: Double + @inlinable public var r: Double { + get { jsObject[Strings.r].fromJSValue()! } + set { jsObject[Strings.r] = _toJSValue(newValue) } + } + @inlinable public var g: Double { + get { jsObject[Strings.g].fromJSValue()! } + set { jsObject[Strings.g] = _toJSValue(newValue) } + } + @inlinable public var b: Double { + get { jsObject[Strings.b].fromJSValue()! } + set { jsObject[Strings.b] = _toJSValue(newValue) } + } + @inlinable public var a: Double { + get { jsObject[Strings.a].fromJSValue()! } + set { jsObject[Strings.a] = _toJSValue(newValue) } + } } +open class GPUColorTargetState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUColorTargetState: BridgedDictionary { - public convenience init(format: GPUTextureFormat, blend: GPUBlendState, writeMask: GPUColorWriteFlags) { + public convenience init(format: GPUTextureFormat, blend: GPUBlendState? = nil, writeMask: GPUColorWriteFlags? = nil) + { let object = JSObject.global[Strings.Object].function!.new() object[Strings.format] = _toJSValue(format) object[Strings.blend] = _toJSValue(blend) object[Strings.writeMask] = _toJSValue(writeMask) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _blend = ReadWriteAttribute(jsObject: object, name: Strings.blend) - _writeMask = ReadWriteAttribute(jsObject: object, name: Strings.writeMask) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: GPUTextureFormat + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var blend: GPUBlendState - - @ReadWriteAttribute - public var writeMask: GPUColorWriteFlags + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var blend: GPUBlendState { + get { jsObject[Strings.blend].fromJSValue()! } + set { jsObject[Strings.blend] = _toJSValue(newValue) } + } + @inlinable public var writeMask: GPUColorWriteFlags { + get { jsObject[Strings.writeMask].fromJSValue()! } + set { jsObject[Strings.writeMask] = _toJSValue(newValue) } + } } - public enum GPUColorWrite { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.GPUColorWrite].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.GPUColorWrite].object! } public static let RED: GPUFlagsConstant = 0x1 @@ -734,104 +792,143 @@ public enum GPUColorWrite { public static let ALL: GPUFlagsConstant = 0xF } - public class GPUCommandBuffer: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCommandBuffer].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUCommandBufferDescriptor: BridgedDictionary { - public convenience init() { +open class GPUCommandBufferDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } +} public class GPUCommandEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCommandEncoder].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func beginRenderPass(descriptor: GPURenderPassDescriptor) -> GPURenderPassEncoder { + @inlinable final public func beginRenderPass(descriptor: GPURenderPassDescriptor) -> GPURenderPassEncoder { let this = jsObject return this[Strings.beginRenderPass].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func beginComputePass(descriptor: GPUComputePassDescriptor? = nil) -> GPUComputePassEncoder { + @inlinable final public func beginComputePass(descriptor: GPUComputePassDescriptor? = nil) -> GPUComputePassEncoder + { let this = jsObject return this[Strings.beginComputePass].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func copyBufferToBuffer(source: GPUBuffer, sourceOffset: GPUSize64, destination: GPUBuffer, destinationOffset: GPUSize64, size: GPUSize64) { - let this = jsObject - _ = this[Strings.copyBufferToBuffer].function!(this: this, arguments: [_toJSValue(source), _toJSValue(sourceOffset), _toJSValue(destination), _toJSValue(destinationOffset), _toJSValue(size)]) - } - - @inlinable public func copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D) { + @inlinable final public func copyBufferToBuffer( + source: GPUBuffer, + sourceOffset: GPUSize64, + destination: GPUBuffer, + destinationOffset: GPUSize64, + size: GPUSize64 + ) { let this = jsObject - _ = this[Strings.copyBufferToTexture].function!(this: this, arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)]) - } - - @inlinable public func copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D) { + _ = this[Strings.copyBufferToBuffer].function!( + this: this, + arguments: [ + _toJSValue(source), _toJSValue(sourceOffset), _toJSValue(destination), _toJSValue(destinationOffset), + _toJSValue(size), + ] + ) + } + + @inlinable final public func copyBufferToTexture( + source: GPUTexelCopyBufferInfo, + destination: GPUTexelCopyTextureInfo, + copySize: GPUExtent3D + ) { let this = jsObject - _ = this[Strings.copyTextureToBuffer].function!(this: this, arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)]) + _ = this[Strings.copyBufferToTexture].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)] + ) } - @inlinable public func copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D) { + @inlinable final public func copyTextureToBuffer( + source: GPUTexelCopyTextureInfo, + destination: GPUTexelCopyBufferInfo, + copySize: GPUExtent3D + ) { let this = jsObject - _ = this[Strings.copyTextureToTexture].function!(this: this, arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)]) + _ = this[Strings.copyTextureToBuffer].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)] + ) } - @inlinable public func clearBuffer(buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) { + @inlinable final public func copyTextureToTexture( + source: GPUTexelCopyTextureInfo, + destination: GPUTexelCopyTextureInfo, + copySize: GPUExtent3D + ) { let this = jsObject - _ = this[Strings.clearBuffer].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(offset), _toJSValue(size)]) + _ = this[Strings.copyTextureToTexture].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)] + ) } - @inlinable public func writeTimestamp(querySet: GPUQuerySet, queryIndex: GPUSize32) { + @inlinable final public func clearBuffer(buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) { let this = jsObject - _ = this[Strings.writeTimestamp].function!(this: this, arguments: [_toJSValue(querySet), _toJSValue(queryIndex)]) - } - - @inlinable public func resolveQuerySet(querySet: GPUQuerySet, firstQuery: GPUSize32, queryCount: GPUSize32, destination: GPUBuffer, destinationOffset: GPUSize64) { + _ = this[Strings.clearBuffer].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(offset), _toJSValue(size)] + ) + } + + @inlinable final public func resolveQuerySet( + querySet: GPUQuerySet, + firstQuery: GPUSize32, + queryCount: GPUSize32, + destination: GPUBuffer, + destinationOffset: GPUSize64 + ) { let this = jsObject - _ = this[Strings.resolveQuerySet].function!(this: this, arguments: [_toJSValue(querySet), _toJSValue(firstQuery), _toJSValue(queryCount), _toJSValue(destination), _toJSValue(destinationOffset)]) + _ = this[Strings.resolveQuerySet].function!( + this: this, + arguments: [ + _toJSValue(querySet), _toJSValue(firstQuery), _toJSValue(queryCount), _toJSValue(destination), + _toJSValue(destinationOffset), + ] + ) } - @inlinable public func finish(descriptor: GPUCommandBufferDescriptor? = nil) -> GPUCommandBuffer { + @inlinable final public func finish(descriptor: GPUCommandBufferDescriptor? = nil) -> GPUCommandBuffer { let this = jsObject return this[Strings.finish].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } } -public class GPUCommandEncoderDescriptor: BridgedDictionary { - public convenience init() { +open class GPUCommandEncoderDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } +} public protocol GPUCommandsMixin: JSBridgedClass {} -public extension GPUCommandsMixin {} - +extension GPUCommandsMixin {} public enum GPUCompareFunction: JSString, JSValueCompatible { case never = "never" case less = "less" @@ -843,31 +940,22 @@ public enum GPUCompareFunction: JSString, JSValueCompatible { case always = "always" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUCompilationInfo: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCompilationInfo].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _messages = ReadonlyAttribute(jsObject: jsObject, name: Strings.messages) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var messages: [GPUCompilationMessage] + @inlinable public var messages: [GPUCompilationMessage] { jsObject[Strings.messages].fromJSValue()! } } public class GPUCompilationMessage: JSBridgedClass { @@ -875,33 +963,19 @@ public class GPUCompilationMessage: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _lineNum = ReadonlyAttribute(jsObject: jsObject, name: Strings.lineNum) - _linePos = ReadonlyAttribute(jsObject: jsObject, name: Strings.linePos) - _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset) - _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } - @ReadonlyAttribute - public var type: GPUCompilationMessageType + @inlinable public var type: GPUCompilationMessageType { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var lineNum: UInt64 + @inlinable public var lineNum: UInt64 { jsObject[Strings.lineNum].fromJSValue()! } - @ReadonlyAttribute - public var linePos: UInt64 + @inlinable public var linePos: UInt64 { jsObject[Strings.linePos].fromJSValue()! } - @ReadonlyAttribute - public var offset: UInt64 + @inlinable public var offset: UInt64 { jsObject[Strings.offset].fromJSValue()! } - @ReadonlyAttribute - public var length: UInt64 + @inlinable public var length: UInt64 { jsObject[Strings.length].fromJSValue()! } } public enum GPUCompilationMessageType: JSString, JSValueCompatible { @@ -910,156 +984,233 @@ public enum GPUCompilationMessageType: JSString, JSValueCompatible { case info = "info" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUComputePassDescriptor: GPUObjectDescriptorBase { -public class GPUComputePassDescriptor: BridgedDictionary { - public convenience init(timestampWrites: GPUComputePassTimestampWrites) { + public convenience init(label: String? = nil, timestampWrites: GPUComputePassTimestampWrites? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.timestampWrites] = _toJSValue(timestampWrites) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _timestampWrites = ReadWriteAttribute(jsObject: object, name: Strings.timestampWrites) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var timestampWrites: GPUComputePassTimestampWrites + @inlinable public var timestampWrites: GPUComputePassTimestampWrites { + get { jsObject[Strings.timestampWrites].fromJSValue()! } + set { jsObject[Strings.timestampWrites] = _toJSValue(newValue) } + } } - -public class GPUComputePassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin { +public class GPUComputePassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, + GPUBindingCommandsMixin +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUComputePassEncoder].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func setPipeline(pipeline: GPUComputePipeline) { + @inlinable final public func setPipeline(pipeline: GPUComputePipeline) { let this = jsObject _ = this[Strings.setPipeline].function!(this: this, arguments: [_toJSValue(pipeline)]) } - @inlinable public func dispatchWorkgroups(workgroupCountX: GPUSize32, workgroupCountY: GPUSize32? = nil, workgroupCountZ: GPUSize32? = nil) { + @inlinable final public func dispatchWorkgroups( + workgroupCountX: GPUSize32, + workgroupCountY: GPUSize32? = nil, + workgroupCountZ: GPUSize32? = nil + ) { let this = jsObject - _ = this[Strings.dispatchWorkgroups].function!(this: this, arguments: [_toJSValue(workgroupCountX), _toJSValue(workgroupCountY), _toJSValue(workgroupCountZ)]) + _ = this[Strings.dispatchWorkgroups].function!( + this: this, + arguments: [_toJSValue(workgroupCountX), _toJSValue(workgroupCountY), _toJSValue(workgroupCountZ)] + ) } - @inlinable public func dispatchWorkgroupsIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { + @inlinable final public func dispatchWorkgroupsIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { let this = jsObject - _ = this[Strings.dispatchWorkgroupsIndirect].function!(this: this, arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)]) + _ = this[Strings.dispatchWorkgroupsIndirect].function!( + this: this, + arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)] + ) } - @inlinable public func end() { + @inlinable final public func end() { let this = jsObject _ = this[Strings.end].function!(this: this, arguments: []) } } -public class GPUComputePassTimestampWrites: BridgedDictionary { - public convenience init(querySet: GPUQuerySet, beginningOfPassWriteIndex: GPUSize32, endOfPassWriteIndex: GPUSize32) { +open class GPUComputePassTimestampWrites: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init( + querySet: GPUQuerySet, + beginningOfPassWriteIndex: GPUSize32? = nil, + endOfPassWriteIndex: GPUSize32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.querySet] = _toJSValue(querySet) object[Strings.beginningOfPassWriteIndex] = _toJSValue(beginningOfPassWriteIndex) object[Strings.endOfPassWriteIndex] = _toJSValue(endOfPassWriteIndex) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet) - _beginningOfPassWriteIndex = ReadWriteAttribute(jsObject: object, name: Strings.beginningOfPassWriteIndex) - _endOfPassWriteIndex = ReadWriteAttribute(jsObject: object, name: Strings.endOfPassWriteIndex) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var querySet: GPUQuerySet + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var beginningOfPassWriteIndex: GPUSize32 - - @ReadWriteAttribute - public var endOfPassWriteIndex: GPUSize32 + @inlinable public var querySet: GPUQuerySet { + get { jsObject[Strings.querySet].fromJSValue()! } + set { jsObject[Strings.querySet] = _toJSValue(newValue) } + } + @inlinable public var beginningOfPassWriteIndex: GPUSize32 { + get { jsObject[Strings.beginningOfPassWriteIndex].fromJSValue()! } + set { jsObject[Strings.beginningOfPassWriteIndex] = _toJSValue(newValue) } + } + @inlinable public var endOfPassWriteIndex: GPUSize32 { + get { jsObject[Strings.endOfPassWriteIndex].fromJSValue()! } + set { jsObject[Strings.endOfPassWriteIndex] = _toJSValue(newValue) } + } } - public class GPUComputePipeline: JSBridgedClass, GPUObjectBase, GPUPipelineBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUComputePipeline].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUComputePipelineDescriptor: BridgedDictionary { - public convenience init(compute: GPUProgrammableStage) { +open class GPUComputePipelineDescriptor: GPUPipelineDescriptorBase { + + public convenience init(layout: GPUAutoLayoutMode_or_GPUPipelineLayout, compute: GPUProgrammableStage) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.layout] = _toJSValue(layout) object[Strings.compute] = _toJSValue(compute) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _compute = ReadWriteAttribute(jsObject: object, name: Strings.compute) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var compute: GPUProgrammableStage -} - -public enum GPUCullMode: JSString, JSValueCompatible { - case none = "none" - case front = "front" - case back = "back" + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } - return nil + @inlinable public var compute: GPUProgrammableStage { + get { jsObject[Strings.compute].fromJSValue()! } + set { jsObject[Strings.compute] = _toJSValue(newValue) } } +} +open class GPUCopyExternalImageDestInfo: GPUTexelCopyTextureInfo { - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) + public convenience init( + texture: GPUTexture, + mipLevel: GPUIntegerCoordinate? = nil, + origin: GPUOrigin3D? = nil, + aspect: GPUTextureAspect? = nil, + colorSpace: PredefinedColorSpace? = nil, + premultipliedAlpha: Bool? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.texture] = _toJSValue(texture) + object[Strings.mipLevel] = _toJSValue(mipLevel) + object[Strings.origin] = _toJSValue(origin) + object[Strings.aspect] = _toJSValue(aspect) + object[Strings.colorSpace] = _toJSValue(colorSpace) + object[Strings.premultipliedAlpha] = _toJSValue(premultipliedAlpha) + + self.init(unsafelyWrapping: object) } - @inlinable public var jsValue: JSValue { rawValue.jsValue } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } + + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } + @inlinable public var premultipliedAlpha: Bool { + get { jsObject[Strings.premultipliedAlpha].fromJSValue()! } + set { jsObject[Strings.premultipliedAlpha] = _toJSValue(newValue) } + } +} +open class GPUCopyExternalImageSourceInfo: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(source: GPUCopyExternalImageSource, origin: GPUOrigin2D? = nil, flipY: Bool? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.source] = _toJSValue(source) + object[Strings.origin] = _toJSValue(origin) + object[Strings.flipY] = _toJSValue(flipY) + + self.init(unsafelyWrapping: object) + } + + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + + @inlinable public var source: GPUCopyExternalImageSource { + get { jsObject[Strings.source].fromJSValue()! } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } + @inlinable public var origin: GPUOrigin2D { + get { jsObject[Strings.origin].fromJSValue()! } + set { jsObject[Strings.origin] = _toJSValue(newValue) } + } + @inlinable public var flipY: Bool { + get { jsObject[Strings.flipY].fromJSValue()! } + set { jsObject[Strings.flipY] = _toJSValue(newValue) } + } } +public enum GPUCullMode: JSString, JSValueCompatible { + case none = "none" + case front = "front" + case back = "back" + @inlinable public static func construct(from jsValue: JSValue) -> Self? { + if let string = jsValue.jsString { return Self(rawValue: string) } + return nil + } + + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } + + @inlinable public var jsValue: JSValue { rawValue.jsValue } +} public protocol GPUDebugCommandsMixin: JSBridgedClass {} -public extension GPUDebugCommandsMixin { - @inlinable func pushDebugGroup(groupLabel: String) { +extension GPUDebugCommandsMixin { + @inlinable public func pushDebugGroup(groupLabel: String) { let this = jsObject _ = this[Strings.pushDebugGroup].function!(this: this, arguments: [_toJSValue(groupLabel)]) } - @inlinable func popDebugGroup() { + @inlinable public func popDebugGroup() { let this = jsObject _ = this[Strings.popDebugGroup].function!(this: this, arguments: []) } - @inlinable func insertDebugMarker(markerLabel: String) { + @inlinable public func insertDebugMarker(markerLabel: String) { let this = jsObject _ = this[Strings.insertDebugMarker].function!(this: this, arguments: [_toJSValue(markerLabel)]) } } +open class GPUDepthStencilState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUDepthStencilState: BridgedDictionary { - public convenience init(format: GPUTextureFormat, depthWriteEnabled: Bool, depthCompare: GPUCompareFunction, stencilFront: GPUStencilFaceState, stencilBack: GPUStencilFaceState, stencilReadMask: GPUStencilValue, stencilWriteMask: GPUStencilValue, depthBias: GPUDepthBias, depthBiasSlopeScale: Float, depthBiasClamp: Float) { + public convenience init( + format: GPUTextureFormat, + depthWriteEnabled: Bool? = nil, + depthCompare: GPUCompareFunction? = nil, + stencilFront: GPUStencilFaceState? = nil, + stencilBack: GPUStencilFaceState? = nil, + stencilReadMask: GPUStencilValue? = nil, + stencilWriteMask: GPUStencilValue? = nil, + depthBias: GPUDepthBias? = nil, + depthBiasSlopeScale: Float? = nil, + depthBiasClamp: Float? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.format] = _toJSValue(format) object[Strings.depthWriteEnabled] = _toJSValue(depthWriteEnabled) @@ -1071,235 +1222,267 @@ public class GPUDepthStencilState: BridgedDictionary { object[Strings.depthBias] = _toJSValue(depthBias) object[Strings.depthBiasSlopeScale] = _toJSValue(depthBiasSlopeScale) object[Strings.depthBiasClamp] = _toJSValue(depthBiasClamp) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _depthWriteEnabled = ReadWriteAttribute(jsObject: object, name: Strings.depthWriteEnabled) - _depthCompare = ReadWriteAttribute(jsObject: object, name: Strings.depthCompare) - _stencilFront = ReadWriteAttribute(jsObject: object, name: Strings.stencilFront) - _stencilBack = ReadWriteAttribute(jsObject: object, name: Strings.stencilBack) - _stencilReadMask = ReadWriteAttribute(jsObject: object, name: Strings.stencilReadMask) - _stencilWriteMask = ReadWriteAttribute(jsObject: object, name: Strings.stencilWriteMask) - _depthBias = ReadWriteAttribute(jsObject: object, name: Strings.depthBias) - _depthBiasSlopeScale = ReadWriteAttribute(jsObject: object, name: Strings.depthBiasSlopeScale) - _depthBiasClamp = ReadWriteAttribute(jsObject: object, name: Strings.depthBiasClamp) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: GPUTextureFormat - - @ReadWriteAttribute - public var depthWriteEnabled: Bool - - @ReadWriteAttribute - public var depthCompare: GPUCompareFunction - - @ReadWriteAttribute - public var stencilFront: GPUStencilFaceState - - @ReadWriteAttribute - public var stencilBack: GPUStencilFaceState - - @ReadWriteAttribute - public var stencilReadMask: GPUStencilValue + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var stencilWriteMask: GPUStencilValue - - @ReadWriteAttribute - public var depthBias: GPUDepthBias - - @ReadWriteAttribute - public var depthBiasSlopeScale: Float - - @ReadWriteAttribute - public var depthBiasClamp: Float + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var depthWriteEnabled: Bool { + get { jsObject[Strings.depthWriteEnabled].fromJSValue()! } + set { jsObject[Strings.depthWriteEnabled] = _toJSValue(newValue) } + } + @inlinable public var depthCompare: GPUCompareFunction { + get { jsObject[Strings.depthCompare].fromJSValue()! } + set { jsObject[Strings.depthCompare] = _toJSValue(newValue) } + } + @inlinable public var stencilFront: GPUStencilFaceState { + get { jsObject[Strings.stencilFront].fromJSValue()! } + set { jsObject[Strings.stencilFront] = _toJSValue(newValue) } + } + @inlinable public var stencilBack: GPUStencilFaceState { + get { jsObject[Strings.stencilBack].fromJSValue()! } + set { jsObject[Strings.stencilBack] = _toJSValue(newValue) } + } + @inlinable public var stencilReadMask: GPUStencilValue { + get { jsObject[Strings.stencilReadMask].fromJSValue()! } + set { jsObject[Strings.stencilReadMask] = _toJSValue(newValue) } + } + @inlinable public var stencilWriteMask: GPUStencilValue { + get { jsObject[Strings.stencilWriteMask].fromJSValue()! } + set { jsObject[Strings.stencilWriteMask] = _toJSValue(newValue) } + } + @inlinable public var depthBias: GPUDepthBias { + get { jsObject[Strings.depthBias].fromJSValue()! } + set { jsObject[Strings.depthBias] = _toJSValue(newValue) } + } + @inlinable public var depthBiasSlopeScale: Float { + get { jsObject[Strings.depthBiasSlopeScale].fromJSValue()! } + set { jsObject[Strings.depthBiasSlopeScale] = _toJSValue(newValue) } + } + @inlinable public var depthBiasClamp: Float { + get { jsObject[Strings.depthBiasClamp].fromJSValue()! } + set { jsObject[Strings.depthBiasClamp] = _toJSValue(newValue) } + } } - public class GPUDevice: EventTarget, GPUObjectBase { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUDevice].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.GPUDevice].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _features = ReadonlyAttribute(jsObject: jsObject, name: Strings.features) - _limits = ReadonlyAttribute(jsObject: jsObject, name: Strings.limits) - _queue = ReadonlyAttribute(jsObject: jsObject, name: Strings.queue) - _lost = ReadonlyAttribute(jsObject: jsObject, name: Strings.lost) - _onuncapturederror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onuncapturederror) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + + @inlinable public var features: GPUSupportedFeatures { jsObject[Strings.features].fromJSValue()! } - @ReadonlyAttribute - public var features: GPUSupportedFeatures + @inlinable public var limits: GPUSupportedLimits { jsObject[Strings.limits].fromJSValue()! } - @ReadonlyAttribute - public var limits: GPUSupportedLimits + @inlinable public var adapterInfo: GPUAdapterInfo { jsObject[Strings.adapterInfo].fromJSValue()! } - @ReadonlyAttribute - public var queue: GPUQueue + @inlinable public var queue: GPUQueue { jsObject[Strings.queue].fromJSValue()! } - @inlinable public func destroy() { + @inlinable final public func destroy() { let this = jsObject _ = this[Strings.destroy].function!(this: this, arguments: []) } - @inlinable public func createBuffer(descriptor: GPUBufferDescriptor) -> GPUBuffer { + @inlinable final public func createBuffer(descriptor: GPUBufferDescriptor) -> GPUBuffer { let this = jsObject return this[Strings.createBuffer].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func createTexture(descriptor: GPUTextureDescriptor) -> GPUTexture { + @inlinable final public func createTexture(descriptor: GPUTextureDescriptor) -> GPUTexture { let this = jsObject return this[Strings.createTexture].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func createSampler(descriptor: GPUSamplerDescriptor? = nil) -> GPUSampler { + @inlinable final public func createSampler(descriptor: GPUSamplerDescriptor? = nil) -> GPUSampler { let this = jsObject return this[Strings.createSampler].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func importExternalTexture(descriptor: GPUExternalTextureDescriptor) -> GPUExternalTexture { + @inlinable final public func importExternalTexture(descriptor: GPUExternalTextureDescriptor) -> GPUExternalTexture { let this = jsObject - return this[Strings.importExternalTexture].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.importExternalTexture].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor) -> GPUBindGroupLayout { + @inlinable final public func createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor) -> GPUBindGroupLayout { let this = jsObject - return this[Strings.createBindGroupLayout].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createBindGroupLayout].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor) -> GPUPipelineLayout { + @inlinable final public func createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor) -> GPUPipelineLayout { let this = jsObject - return this[Strings.createPipelineLayout].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createPipelineLayout].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createBindGroup(descriptor: GPUBindGroupDescriptor) -> GPUBindGroup { + @inlinable final public func createBindGroup(descriptor: GPUBindGroupDescriptor) -> GPUBindGroup { let this = jsObject return this[Strings.createBindGroup].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func createShaderModule(descriptor: GPUShaderModuleDescriptor) -> GPUShaderModule { + @inlinable final public func createShaderModule(descriptor: GPUShaderModuleDescriptor) -> GPUShaderModule { let this = jsObject - return this[Strings.createShaderModule].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createShaderModule].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createComputePipeline(descriptor: GPUComputePipelineDescriptor) -> GPUComputePipeline { + @inlinable final public func createComputePipeline(descriptor: GPUComputePipelineDescriptor) -> GPUComputePipeline { let this = jsObject - return this[Strings.createComputePipeline].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createComputePipeline].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createRenderPipeline(descriptor: GPURenderPipelineDescriptor) -> GPURenderPipeline { + @inlinable final public func createRenderPipeline(descriptor: GPURenderPipelineDescriptor) -> GPURenderPipeline { let this = jsObject - return this[Strings.createRenderPipeline].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createRenderPipeline].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor) -> JSPromise { + @inlinable final public func createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor) -> JSPromise { let this = jsObject - return this[Strings.createComputePipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - } - - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor) async throws -> GPUComputePipeline { - let this = jsObject - let _promise: JSPromise = this[Strings.createComputePipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } - - @inlinable public func createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor) -> JSPromise { - let this = jsObject - return this[Strings.createRenderPipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - } + return this[Strings.createComputePipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! + } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable + final public func createComputePipelineAsync( + descriptor: GPUComputePipelineDescriptor + ) async throws(JSException) -> GPUComputePipeline { + let this = jsObject + let _promise: JSPromise = this[Strings.createComputePipelineAsync].function!( + this: this, + arguments: [_toJSValue(descriptor)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor) async throws -> GPURenderPipeline { + @inlinable final public func createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor) -> JSPromise { let this = jsObject - let _promise: JSPromise = this[Strings.createRenderPipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + return this[Strings.createRenderPipelineAsync].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! + } + + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable + final public func createRenderPipelineAsync( + descriptor: GPURenderPipelineDescriptor + ) async throws(JSException) -> GPURenderPipeline { + let this = jsObject + let _promise: JSPromise = this[Strings.createRenderPipelineAsync].function!( + this: this, + arguments: [_toJSValue(descriptor)] + ).fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif - @inlinable public func createCommandEncoder(descriptor: GPUCommandEncoderDescriptor? = nil) -> GPUCommandEncoder { + @inlinable final public func createCommandEncoder( + descriptor: GPUCommandEncoderDescriptor? = nil + ) -> GPUCommandEncoder { let this = jsObject - return this[Strings.createCommandEncoder].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createCommandEncoder].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor) -> GPURenderBundleEncoder { + @inlinable final public func createRenderBundleEncoder( + descriptor: GPURenderBundleEncoderDescriptor + ) -> GPURenderBundleEncoder { let this = jsObject - return this[Strings.createRenderBundleEncoder].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! + return this[Strings.createRenderBundleEncoder].function!(this: this, arguments: [_toJSValue(descriptor)]) + .fromJSValue()! } - @inlinable public func createQuerySet(descriptor: GPUQuerySetDescriptor) -> GPUQuerySet { + @inlinable final public func createQuerySet(descriptor: GPUQuerySetDescriptor) -> GPUQuerySet { let this = jsObject return this[Strings.createQuerySet].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @ReadonlyAttribute - public var lost: JSPromise + @inlinable public var lost: JSPromise { jsObject[Strings.lost].fromJSValue()! } - @inlinable public func pushErrorScope(filter: GPUErrorFilter) { + @inlinable final public func pushErrorScope(filter: GPUErrorFilter) { let this = jsObject _ = this[Strings.pushErrorScope].function!(this: this, arguments: [_toJSValue(filter)]) } - @inlinable public func popErrorScope() -> JSPromise { + @inlinable final public func popErrorScope() -> JSPromise { let this = jsObject return this[Strings.popErrorScope].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func popErrorScope() async throws -> GPUError? { - let this = jsObject - let _promise: JSPromise = this[Strings.popErrorScope].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue() - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func popErrorScope() + async throws(JSException) -> GPUError? + { + let this = jsObject + let _promise: JSPromise = this[Strings.popErrorScope].function!(this: this, arguments: []).fromJSValue()! + return try await _promise.value.fromJSValue() + } + #endif - @ClosureAttribute1Optional - public var onuncapturederror: EventHandler + @inlinable public var onuncapturederror: EventHandler { + get { + guard let function = jsObject[Strings.onuncapturederror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onuncapturederror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onuncapturederror] = .null + } + } + } } -public class GPUDeviceDescriptor: BridgedDictionary { - public convenience init(requiredFeatures: [GPUFeatureName], requiredLimits: [String: GPUSize64], defaultQueue: GPUQueueDescriptor) { +open class GPUDeviceDescriptor: GPUObjectDescriptorBase { + + public convenience init( + label: String? = nil, + requiredFeatures: [GPUFeatureName]? = nil, + requiredLimits: JSObject? = nil, + defaultQueue: GPUQueueDescriptor? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.requiredFeatures] = _toJSValue(requiredFeatures) object[Strings.requiredLimits] = _toJSValue(requiredLimits) object[Strings.defaultQueue] = _toJSValue(defaultQueue) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _requiredFeatures = ReadWriteAttribute(jsObject: object, name: Strings.requiredFeatures) - _requiredLimits = ReadWriteAttribute(jsObject: object, name: Strings.requiredLimits) - _defaultQueue = ReadWriteAttribute(jsObject: object, name: Strings.defaultQueue) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var requiredFeatures: [GPUFeatureName] - - @ReadWriteAttribute - public var requiredLimits: [String: GPUSize64] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var defaultQueue: GPUQueueDescriptor + @inlinable public var requiredFeatures: [GPUFeatureName] { + get { jsObject[Strings.requiredFeatures].fromJSValue()! } + set { jsObject[Strings.requiredFeatures] = _toJSValue(newValue) } + } + @inlinable public var requiredLimits: JSObject { + get { jsObject[Strings.requiredLimits].fromJSValue()! } + set { jsObject[Strings.requiredLimits] = _toJSValue(newValue) } + } + @inlinable public var defaultQueue: GPUQueueDescriptor { + get { jsObject[Strings.defaultQueue].fromJSValue()! } + set { jsObject[Strings.defaultQueue] = _toJSValue(newValue) } + } } - public class GPUDeviceLostInfo: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUDeviceLostInfo].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _reason = ReadonlyAttribute(jsObject: jsObject, name: Strings.reason) - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var reason: GPUDeviceLostReason + @inlinable public var reason: GPUDeviceLostReason { jsObject[Strings.reason].fromJSValue()! } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } } public enum GPUDeviceLostReason: JSString, JSValueCompatible { @@ -1307,31 +1490,22 @@ public enum GPUDeviceLostReason: JSString, JSValueCompatible { case destroyed = "destroyed" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUError: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUError].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @ReadonlyAttribute - public var message: String + @inlinable public var message: String { jsObject[Strings.message].fromJSValue()! } } public enum GPUErrorFilter: JSString, JSValueCompatible { @@ -1340,311 +1514,187 @@ public enum GPUErrorFilter: JSString, JSValueCompatible { case `internal` = "internal" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUExtent3DDict: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUExtent3DDict: BridgedDictionary { - public convenience init(width: GPUIntegerCoordinate, height: GPUIntegerCoordinate, depthOrArrayLayers: GPUIntegerCoordinate) { + public convenience init( + width: GPUIntegerCoordinate, + height: GPUIntegerCoordinate? = nil, + depthOrArrayLayers: GPUIntegerCoordinate? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.width] = _toJSValue(width) object[Strings.height] = _toJSValue(height) object[Strings.depthOrArrayLayers] = _toJSValue(depthOrArrayLayers) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _width = ReadWriteAttribute(jsObject: object, name: Strings.width) - _height = ReadWriteAttribute(jsObject: object, name: Strings.height) - _depthOrArrayLayers = ReadWriteAttribute(jsObject: object, name: Strings.depthOrArrayLayers) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var width: GPUIntegerCoordinate - - @ReadWriteAttribute - public var height: GPUIntegerCoordinate + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var depthOrArrayLayers: GPUIntegerCoordinate + @inlinable public var width: GPUIntegerCoordinate { + get { jsObject[Strings.width].fromJSValue()! } + set { jsObject[Strings.width] = _toJSValue(newValue) } + } + @inlinable public var height: GPUIntegerCoordinate { + get { jsObject[Strings.height].fromJSValue()! } + set { jsObject[Strings.height] = _toJSValue(newValue) } + } + @inlinable public var depthOrArrayLayers: GPUIntegerCoordinate { + get { jsObject[Strings.depthOrArrayLayers].fromJSValue()! } + set { jsObject[Strings.depthOrArrayLayers] = _toJSValue(newValue) } + } } - public class GPUExternalTexture: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUExternalTexture].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUExternalTextureBindingLayout: BridgedDictionary { +open class GPUExternalTextureBindingLayout: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init() { let object = JSObject.global[Strings.Object].function!.new() self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } + } +open class GPUExternalTextureDescriptor: GPUObjectDescriptorBase { -public class GPUExternalTextureDescriptor: BridgedDictionary { - public convenience init(source: HTMLVideoElement_or_VideoFrame, colorSpace: PredefinedColorSpace) { + public convenience init( + label: String? = nil, + source: HTMLVideoElement_or_VideoFrame, + colorSpace: PredefinedColorSpace? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.source] = _toJSValue(source) object[Strings.colorSpace] = _toJSValue(colorSpace) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _source = ReadWriteAttribute(jsObject: object, name: Strings.source) - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var source: HTMLVideoElement_or_VideoFrame + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var colorSpace: PredefinedColorSpace + @inlinable public var source: HTMLVideoElement_or_VideoFrame { + get { jsObject[Strings.source].fromJSValue()! } + set { jsObject[Strings.source] = _toJSValue(newValue) } + } + @inlinable public var colorSpace: PredefinedColorSpace { + get { jsObject[Strings.colorSpace].fromJSValue()! } + set { jsObject[Strings.colorSpace] = _toJSValue(newValue) } + } } - public enum GPUFeatureName: JSString, JSValueCompatible { case depthClipControl = "depth-clip-control" case depth32floatStencil8 = "depth32float-stencil8" case textureCompressionBc = "texture-compression-bc" + case textureCompressionBcSliced3d = "texture-compression-bc-sliced-3d" case textureCompressionEtc2 = "texture-compression-etc2" case textureCompressionAstc = "texture-compression-astc" + case textureCompressionAstcSliced3d = "texture-compression-astc-sliced-3d" case timestampQuery = "timestamp-query" case indirectFirstInstance = "indirect-first-instance" case shaderF16 = "shader-f16" case rg11b10ufloatRenderable = "rg11b10ufloat-renderable" case bgra8unormStorage = "bgra8unorm-storage" case float32Filterable = "float32-filterable" + case float32Blendable = "float32-blendable" + case clipDistances = "clip-distances" + case dualSourceBlending = "dual-source-blending" + case subgroups = "subgroups" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUFilterMode: JSString, JSValueCompatible { case nearest = "nearest" case linear = "linear" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUFragmentState: GPUProgrammableStage { -public class GPUFragmentState: BridgedDictionary { - public convenience init(targets: [GPUColorTargetState?]) { + public convenience init( + module: GPUShaderModule, + entryPoint: String? = nil, + constants: JSObject? = nil, + targets: [GPUColorTargetState?] + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.module] = _toJSValue(module) + object[Strings.entryPoint] = _toJSValue(entryPoint) + object[Strings.constants] = _toJSValue(constants) object[Strings.targets] = _toJSValue(targets) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _targets = ReadWriteAttribute(jsObject: object, name: Strings.targets) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var targets: [GPUColorTargetState?] + @inlinable public var targets: [GPUColorTargetState?] { + get { jsObject[Strings.targets].fromJSValue()! } + set { jsObject[Strings.targets] = _toJSValue(newValue) } + } } - public enum GPUFrontFace: JSString, JSValueCompatible { case ccw = "ccw" case cw = "cw" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - -public class GPUImageCopyBuffer: BridgedDictionary { - public convenience init(buffer: GPUBuffer) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.buffer] = _toJSValue(buffer) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var buffer: GPUBuffer -} - -public class GPUImageCopyExternalImage: BridgedDictionary { - public convenience init(source: GPUImageCopyExternalImageSource, origin: GPUOrigin2D, flipY: Bool) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.source] = _toJSValue(source) - object[Strings.origin] = _toJSValue(origin) - object[Strings.flipY] = _toJSValue(flipY) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _source = ReadWriteAttribute(jsObject: object, name: Strings.source) - _origin = ReadWriteAttribute(jsObject: object, name: Strings.origin) - _flipY = ReadWriteAttribute(jsObject: object, name: Strings.flipY) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var source: GPUImageCopyExternalImageSource - - @ReadWriteAttribute - public var origin: GPUOrigin2D - - @ReadWriteAttribute - public var flipY: Bool -} - -public class GPUImageCopyTexture: BridgedDictionary { - public convenience init(texture: GPUTexture, mipLevel: GPUIntegerCoordinate, origin: GPUOrigin3D, aspect: GPUTextureAspect) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.texture] = _toJSValue(texture) - object[Strings.mipLevel] = _toJSValue(mipLevel) - object[Strings.origin] = _toJSValue(origin) - object[Strings.aspect] = _toJSValue(aspect) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _texture = ReadWriteAttribute(jsObject: object, name: Strings.texture) - _mipLevel = ReadWriteAttribute(jsObject: object, name: Strings.mipLevel) - _origin = ReadWriteAttribute(jsObject: object, name: Strings.origin) - _aspect = ReadWriteAttribute(jsObject: object, name: Strings.aspect) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var texture: GPUTexture - - @ReadWriteAttribute - public var mipLevel: GPUIntegerCoordinate - - @ReadWriteAttribute - public var origin: GPUOrigin3D - - @ReadWriteAttribute - public var aspect: GPUTextureAspect -} - -public class GPUImageCopyTextureTagged: BridgedDictionary { - public convenience init(colorSpace: PredefinedColorSpace, premultipliedAlpha: Bool) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.colorSpace] = _toJSValue(colorSpace) - object[Strings.premultipliedAlpha] = _toJSValue(premultipliedAlpha) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace) - _premultipliedAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultipliedAlpha) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var colorSpace: PredefinedColorSpace - - @ReadWriteAttribute - public var premultipliedAlpha: Bool -} - -public class GPUImageDataLayout: BridgedDictionary { - public convenience init(offset: GPUSize64, bytesPerRow: GPUSize32, rowsPerImage: GPUSize32) { - let object = JSObject.global[Strings.Object].function!.new() - object[Strings.offset] = _toJSValue(offset) - object[Strings.bytesPerRow] = _toJSValue(bytesPerRow) - object[Strings.rowsPerImage] = _toJSValue(rowsPerImage) - self.init(unsafelyWrapping: object) - } - - public required init(unsafelyWrapping object: JSObject) { - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _bytesPerRow = ReadWriteAttribute(jsObject: object, name: Strings.bytesPerRow) - _rowsPerImage = ReadWriteAttribute(jsObject: object, name: Strings.rowsPerImage) - super.init(unsafelyWrapping: object) - } - - @ReadWriteAttribute - public var offset: GPUSize64 - - @ReadWriteAttribute - public var bytesPerRow: GPUSize32 - - @ReadWriteAttribute - public var rowsPerImage: GPUSize32 -} - public enum GPUIndexFormat: JSString, JSValueCompatible { case uint16 = "uint16" case uint32 = "uint32" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUInternalError: GPUError { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUInternalError].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.GPUInternalError].function } - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(message: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(message)])) @@ -1656,310 +1706,298 @@ public enum GPULoadOp: JSString, JSValueCompatible { case clear = "clear" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUMapMode { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.GPUMapMode].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.GPUMapMode].object! } public static let READ: GPUFlagsConstant = 0x0001 public static let WRITE: GPUFlagsConstant = 0x0002 } - public enum GPUMipmapFilterMode: JSString, JSValueCompatible { case nearest = "nearest" case linear = "linear" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUMultisampleState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUMultisampleState: BridgedDictionary { - public convenience init(count: GPUSize32, mask: GPUSampleMask, alphaToCoverageEnabled: Bool) { + public convenience init(count: GPUSize32? = nil, mask: GPUSampleMask? = nil, alphaToCoverageEnabled: Bool? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.count] = _toJSValue(count) object[Strings.mask] = _toJSValue(mask) object[Strings.alphaToCoverageEnabled] = _toJSValue(alphaToCoverageEnabled) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _count = ReadWriteAttribute(jsObject: object, name: Strings.count) - _mask = ReadWriteAttribute(jsObject: object, name: Strings.mask) - _alphaToCoverageEnabled = ReadWriteAttribute(jsObject: object, name: Strings.alphaToCoverageEnabled) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var count: GPUSize32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var mask: GPUSampleMask - - @ReadWriteAttribute - public var alphaToCoverageEnabled: Bool + @inlinable public var count: GPUSize32 { + get { jsObject[Strings.count].fromJSValue()! } + set { jsObject[Strings.count] = _toJSValue(newValue) } + } + @inlinable public var mask: GPUSampleMask { + get { jsObject[Strings.mask].fromJSValue()! } + set { jsObject[Strings.mask] = _toJSValue(newValue) } + } + @inlinable public var alphaToCoverageEnabled: Bool { + get { jsObject[Strings.alphaToCoverageEnabled].fromJSValue()! } + set { jsObject[Strings.alphaToCoverageEnabled] = _toJSValue(newValue) } + } } - public protocol GPUObjectBase: JSBridgedClass {} -public extension GPUObjectBase { - @inlinable var label: String { +extension GPUObjectBase { + @inlinable public var label: String { get { jsObject[Strings.label].fromJSValue()! } - nonmutating set { jsObject[Strings.label] = _toJSValue(newValue) } + set { jsObject[Strings.label] = _toJSValue(newValue) } } } +open class GPUObjectDescriptorBase: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUObjectDescriptorBase: BridgedDictionary { - public convenience init(label: String) { + public convenience init(label: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.label] = _toJSValue(label) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _label = ReadWriteAttribute(jsObject: object, name: Strings.label) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var label: String + @inlinable public var label: String { + get { jsObject[Strings.label].fromJSValue()! } + set { jsObject[Strings.label] = _toJSValue(newValue) } + } } +open class GPUOrigin2DDict: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUOrigin2DDict: BridgedDictionary { - public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate) { + public convenience init(x: GPUIntegerCoordinate? = nil, y: GPUIntegerCoordinate? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.x] = _toJSValue(x) object[Strings.y] = _toJSValue(y) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _x = ReadWriteAttribute(jsObject: object, name: Strings.x) - _y = ReadWriteAttribute(jsObject: object, name: Strings.y) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var x: GPUIntegerCoordinate + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var y: GPUIntegerCoordinate + @inlinable public var x: GPUIntegerCoordinate { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } + @inlinable public var y: GPUIntegerCoordinate { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } } +open class GPUOrigin3DDict: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUOrigin3DDict: BridgedDictionary { - public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, z: GPUIntegerCoordinate) { + public convenience init( + x: GPUIntegerCoordinate? = nil, + y: GPUIntegerCoordinate? = nil, + z: GPUIntegerCoordinate? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.x] = _toJSValue(x) object[Strings.y] = _toJSValue(y) object[Strings.z] = _toJSValue(z) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _x = ReadWriteAttribute(jsObject: object, name: Strings.x) - _y = ReadWriteAttribute(jsObject: object, name: Strings.y) - _z = ReadWriteAttribute(jsObject: object, name: Strings.z) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var x: GPUIntegerCoordinate + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var y: GPUIntegerCoordinate - - @ReadWriteAttribute - public var z: GPUIntegerCoordinate + @inlinable public var x: GPUIntegerCoordinate { + get { jsObject[Strings.x].fromJSValue()! } + set { jsObject[Strings.x] = _toJSValue(newValue) } + } + @inlinable public var y: GPUIntegerCoordinate { + get { jsObject[Strings.y].fromJSValue()! } + set { jsObject[Strings.y] = _toJSValue(newValue) } + } + @inlinable public var z: GPUIntegerCoordinate { + get { jsObject[Strings.z].fromJSValue()! } + set { jsObject[Strings.z] = _toJSValue(newValue) } + } } - public class GPUOutOfMemoryError: GPUError { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUOutOfMemoryError].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.GPUOutOfMemoryError].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(message: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(message)])) } } public protocol GPUPipelineBase: JSBridgedClass {} -public extension GPUPipelineBase { - @inlinable func getBindGroupLayout(index: UInt32) -> GPUBindGroupLayout { +extension GPUPipelineBase { + @inlinable public func getBindGroupLayout(index: UInt32) -> GPUBindGroupLayout { let this = jsObject return this[Strings.getBindGroupLayout].function!(this: this, arguments: [_toJSValue(index)]).fromJSValue()! } } +open class GPUPipelineDescriptorBase: GPUObjectDescriptorBase { -public class GPUPipelineDescriptorBase: BridgedDictionary { - public convenience init(layout: GPUAutoLayoutMode_or_GPUPipelineLayout) { + public convenience init(label: String? = nil, layout: GPUAutoLayoutMode_or_GPUPipelineLayout) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.layout] = _toJSValue(layout) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var layout: GPUAutoLayoutMode_or_GPUPipelineLayout + @inlinable public var layout: GPUAutoLayoutMode_or_GPUPipelineLayout { + get { jsObject[Strings.layout].fromJSValue()! } + set { jsObject[Strings.layout] = _toJSValue(newValue) } + } } - public class GPUPipelineError: DOMException { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUPipelineError].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.GPUPipelineError].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _reason = ReadonlyAttribute(jsObject: jsObject, name: Strings.reason) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(message: String? = nil, options: GPUPipelineErrorInit) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(message), _toJSValue(options)])) } - @ReadonlyAttribute - public var reason: GPUPipelineErrorReason + @inlinable public var reason: GPUPipelineErrorReason { jsObject[Strings.reason].fromJSValue()! } } -public class GPUPipelineErrorInit: BridgedDictionary { +open class GPUPipelineErrorInit: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(reason: GPUPipelineErrorReason) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.reason] = _toJSValue(reason) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _reason = ReadWriteAttribute(jsObject: object, name: Strings.reason) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var reason: GPUPipelineErrorReason + @inlinable public var reason: GPUPipelineErrorReason { + get { jsObject[Strings.reason].fromJSValue()! } + set { jsObject[Strings.reason] = _toJSValue(newValue) } + } } - public enum GPUPipelineErrorReason: JSString, JSValueCompatible { case validation = "validation" case `internal` = "internal" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUPipelineLayout: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUPipelineLayout].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUPipelineLayoutDescriptor: BridgedDictionary { - public convenience init(bindGroupLayouts: [GPUBindGroupLayout]) { +open class GPUPipelineLayoutDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil, bindGroupLayouts: [GPUBindGroupLayout?]) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.bindGroupLayouts] = _toJSValue(bindGroupLayouts) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _bindGroupLayouts = ReadWriteAttribute(jsObject: object, name: Strings.bindGroupLayouts) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var bindGroupLayouts: [GPUBindGroupLayout] + @inlinable public var bindGroupLayouts: [GPUBindGroupLayout?] { + get { jsObject[Strings.bindGroupLayouts].fromJSValue()! } + set { jsObject[Strings.bindGroupLayouts] = _toJSValue(newValue) } + } } - public enum GPUPowerPreference: JSString, JSValueCompatible { case lowPower = "low-power" case highPerformance = "high-performance" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUPrimitiveState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUPrimitiveState: BridgedDictionary { - public convenience init(topology: GPUPrimitiveTopology, stripIndexFormat: GPUIndexFormat, frontFace: GPUFrontFace, cullMode: GPUCullMode, unclippedDepth: Bool) { + public convenience init( + topology: GPUPrimitiveTopology? = nil, + stripIndexFormat: GPUIndexFormat? = nil, + frontFace: GPUFrontFace? = nil, + cullMode: GPUCullMode? = nil, + unclippedDepth: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.topology] = _toJSValue(topology) object[Strings.stripIndexFormat] = _toJSValue(stripIndexFormat) object[Strings.frontFace] = _toJSValue(frontFace) object[Strings.cullMode] = _toJSValue(cullMode) object[Strings.unclippedDepth] = _toJSValue(unclippedDepth) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _topology = ReadWriteAttribute(jsObject: object, name: Strings.topology) - _stripIndexFormat = ReadWriteAttribute(jsObject: object, name: Strings.stripIndexFormat) - _frontFace = ReadWriteAttribute(jsObject: object, name: Strings.frontFace) - _cullMode = ReadWriteAttribute(jsObject: object, name: Strings.cullMode) - _unclippedDepth = ReadWriteAttribute(jsObject: object, name: Strings.unclippedDepth) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var topology: GPUPrimitiveTopology + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var stripIndexFormat: GPUIndexFormat - - @ReadWriteAttribute - public var frontFace: GPUFrontFace - - @ReadWriteAttribute - public var cullMode: GPUCullMode - - @ReadWriteAttribute - public var unclippedDepth: Bool + @inlinable public var topology: GPUPrimitiveTopology { + get { jsObject[Strings.topology].fromJSValue()! } + set { jsObject[Strings.topology] = _toJSValue(newValue) } + } + @inlinable public var stripIndexFormat: GPUIndexFormat { + get { jsObject[Strings.stripIndexFormat].fromJSValue()! } + set { jsObject[Strings.stripIndexFormat] = _toJSValue(newValue) } + } + @inlinable public var frontFace: GPUFrontFace { + get { jsObject[Strings.frontFace].fromJSValue()! } + set { jsObject[Strings.frontFace] = _toJSValue(newValue) } + } + @inlinable public var cullMode: GPUCullMode { + get { jsObject[Strings.cullMode].fromJSValue()! } + set { jsObject[Strings.cullMode] = _toJSValue(newValue) } + } + @inlinable public var unclippedDepth: Bool { + get { jsObject[Strings.unclippedDepth].fromJSValue()! } + set { jsObject[Strings.unclippedDepth] = _toJSValue(newValue) } + } } - public enum GPUPrimitiveTopology: JSString, JSValueCompatible { case pointList = "point-list" case lineList = "line-list" @@ -1968,295 +2006,386 @@ public enum GPUPrimitiveTopology: JSString, JSValueCompatible { case triangleStrip = "triangle-strip" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUProgrammableStage: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUProgrammableStage: BridgedDictionary { - public convenience init(module: GPUShaderModule, entryPoint: String, constants: [String: GPUPipelineConstantValue]) { + public convenience init(module: GPUShaderModule, entryPoint: String? = nil, constants: JSObject? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.module] = _toJSValue(module) object[Strings.entryPoint] = _toJSValue(entryPoint) object[Strings.constants] = _toJSValue(constants) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _module = ReadWriteAttribute(jsObject: object, name: Strings.module) - _entryPoint = ReadWriteAttribute(jsObject: object, name: Strings.entryPoint) - _constants = ReadWriteAttribute(jsObject: object, name: Strings.constants) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var module: GPUShaderModule + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var entryPoint: String - - @ReadWriteAttribute - public var constants: [String: GPUPipelineConstantValue] + @inlinable public var module: GPUShaderModule { + get { jsObject[Strings.module].fromJSValue()! } + set { jsObject[Strings.module] = _toJSValue(newValue) } + } + @inlinable public var entryPoint: String { + get { jsObject[Strings.entryPoint].fromJSValue()! } + set { jsObject[Strings.entryPoint] = _toJSValue(newValue) } + } + @inlinable public var constants: JSObject { + get { jsObject[Strings.constants].fromJSValue()! } + set { jsObject[Strings.constants] = _toJSValue(newValue) } + } } - public class GPUQuerySet: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUQuerySet].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type) - _count = ReadonlyAttribute(jsObject: jsObject, name: Strings.count) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func destroy() { + @inlinable final public func destroy() { let this = jsObject _ = this[Strings.destroy].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var type: GPUQueryType + @inlinable public var type: GPUQueryType { jsObject[Strings.type].fromJSValue()! } - @ReadonlyAttribute - public var count: GPUSize32Out + @inlinable public var count: GPUSize32Out { jsObject[Strings.count].fromJSValue()! } } -public class GPUQuerySetDescriptor: BridgedDictionary { - public convenience init(type: GPUQueryType, count: GPUSize32) { +open class GPUQuerySetDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil, type: GPUQueryType, count: GPUSize32) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.type] = _toJSValue(type) object[Strings.count] = _toJSValue(count) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - _count = ReadWriteAttribute(jsObject: object, name: Strings.count) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var type: GPUQueryType + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var count: GPUSize32 + @inlinable public var type: GPUQueryType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } + @inlinable public var count: GPUSize32 { + get { jsObject[Strings.count].fromJSValue()! } + set { jsObject[Strings.count] = _toJSValue(newValue) } + } } - public enum GPUQueryType: JSString, JSValueCompatible { case occlusion = "occlusion" case timestamp = "timestamp" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUQueue: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUQueue].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func submit(commandBuffers: [GPUCommandBuffer]) { + @inlinable final public func submit(commandBuffers: [GPUCommandBuffer]) { let this = jsObject _ = this[Strings.submit].function!(this: this, arguments: [_toJSValue(commandBuffers)]) } - @inlinable public func onSubmittedWorkDone() -> JSPromise { + @inlinable final public func onSubmittedWorkDone() -> JSPromise { let this = jsObject return this[Strings.onSubmittedWorkDone].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func onSubmittedWorkDone() async throws { - let this = jsObject - let _promise: JSPromise = this[Strings.onSubmittedWorkDone].function!(this: this, arguments: []).fromJSValue()! - _ = try await _promise.value - } - - @inlinable public func writeBuffer(buffer: GPUBuffer, bufferOffset: GPUSize64, data: AllowSharedBufferSource, dataOffset: GPUSize64? = nil, size: GPUSize64? = nil) { + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func onSubmittedWorkDone() + async throws(JSException) + { + let this = jsObject + let _promise: JSPromise = this[Strings.onSubmittedWorkDone].function!(this: this, arguments: []) + .fromJSValue()! + _ = try await _promise.value + } + #endif + + @inlinable final public func writeBuffer( + buffer: GPUBuffer, + bufferOffset: GPUSize64, + data: AllowSharedBufferSource, + dataOffset: GPUSize64? = nil, + size: GPUSize64? = nil + ) { let this = jsObject - _ = this[Strings.writeBuffer].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(bufferOffset), _toJSValue(data), _toJSValue(dataOffset), _toJSValue(size)]) - } - - @inlinable public func writeTexture(destination: GPUImageCopyTexture, data: AllowSharedBufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D) { + _ = this[Strings.writeBuffer].function!( + this: this, + arguments: [ + _toJSValue(buffer), _toJSValue(bufferOffset), _toJSValue(data), _toJSValue(dataOffset), + _toJSValue(size), + ] + ) + } + + @inlinable final public func writeTexture( + destination: GPUTexelCopyTextureInfo, + data: AllowSharedBufferSource, + dataLayout: GPUTexelCopyBufferLayout, + size: GPUExtent3D + ) { let this = jsObject - _ = this[Strings.writeTexture].function!(this: this, arguments: [_toJSValue(destination), _toJSValue(data), _toJSValue(dataLayout), _toJSValue(size)]) + _ = this[Strings.writeTexture].function!( + this: this, + arguments: [_toJSValue(destination), _toJSValue(data), _toJSValue(dataLayout), _toJSValue(size)] + ) } - @inlinable public func copyExternalImageToTexture(source: GPUImageCopyExternalImage, destination: GPUImageCopyTextureTagged, copySize: GPUExtent3D) { + @inlinable final public func copyExternalImageToTexture( + source: GPUCopyExternalImageSourceInfo, + destination: GPUCopyExternalImageDestInfo, + copySize: GPUExtent3D + ) { let this = jsObject - _ = this[Strings.copyExternalImageToTexture].function!(this: this, arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)]) + _ = this[Strings.copyExternalImageToTexture].function!( + this: this, + arguments: [_toJSValue(source), _toJSValue(destination), _toJSValue(copySize)] + ) } } -public class GPUQueueDescriptor: BridgedDictionary { - public convenience init() { +open class GPUQueueDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } +} public class GPURenderBundle: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderBundle].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPURenderBundleDescriptor: BridgedDictionary { - public convenience init() { +open class GPURenderBundleDescriptor: GPUObjectDescriptorBase { + + public convenience init(label: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - super.init(unsafelyWrapping: object) - } -} + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } -public class GPURenderBundleEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin, GPURenderCommandsMixin { +} +public class GPURenderBundleEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, + GPUBindingCommandsMixin, GPURenderCommandsMixin +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderBundleEncoder].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func finish(descriptor: GPURenderBundleDescriptor? = nil) -> GPURenderBundle { + @inlinable final public func finish(descriptor: GPURenderBundleDescriptor? = nil) -> GPURenderBundle { let this = jsObject return this[Strings.finish].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } } -public class GPURenderBundleEncoderDescriptor: BridgedDictionary { - public convenience init(depthReadOnly: Bool, stencilReadOnly: Bool) { +open class GPURenderBundleEncoderDescriptor: GPURenderPassLayout { + + public convenience init( + colorFormats: [GPUTextureFormat?], + depthStencilFormat: GPUTextureFormat? = nil, + sampleCount: GPUSize32? = nil, + depthReadOnly: Bool? = nil, + stencilReadOnly: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.colorFormats] = _toJSValue(colorFormats) + object[Strings.depthStencilFormat] = _toJSValue(depthStencilFormat) + object[Strings.sampleCount] = _toJSValue(sampleCount) object[Strings.depthReadOnly] = _toJSValue(depthReadOnly) object[Strings.stencilReadOnly] = _toJSValue(stencilReadOnly) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _depthReadOnly = ReadWriteAttribute(jsObject: object, name: Strings.depthReadOnly) - _stencilReadOnly = ReadWriteAttribute(jsObject: object, name: Strings.stencilReadOnly) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var depthReadOnly: Bool + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var stencilReadOnly: Bool + @inlinable public var depthReadOnly: Bool { + get { jsObject[Strings.depthReadOnly].fromJSValue()! } + set { jsObject[Strings.depthReadOnly] = _toJSValue(newValue) } + } + @inlinable public var stencilReadOnly: Bool { + get { jsObject[Strings.stencilReadOnly].fromJSValue()! } + set { jsObject[Strings.stencilReadOnly] = _toJSValue(newValue) } + } } - public protocol GPURenderCommandsMixin: JSBridgedClass {} -public extension GPURenderCommandsMixin { - @inlinable func setPipeline(pipeline: GPURenderPipeline) { +extension GPURenderCommandsMixin { + @inlinable public func setPipeline(pipeline: GPURenderPipeline) { let this = jsObject _ = this[Strings.setPipeline].function!(this: this, arguments: [_toJSValue(pipeline)]) } - @inlinable func setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset: GPUSize64? = nil, size: GPUSize64? = nil) { + @inlinable public func setIndexBuffer( + buffer: GPUBuffer, + indexFormat: GPUIndexFormat, + offset: GPUSize64? = nil, + size: GPUSize64? = nil + ) { let this = jsObject - _ = this[Strings.setIndexBuffer].function!(this: this, arguments: [_toJSValue(buffer), _toJSValue(indexFormat), _toJSValue(offset), _toJSValue(size)]) - } - - @inlinable func setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer?, offset: GPUSize64? = nil, size: GPUSize64? = nil) { + _ = this[Strings.setIndexBuffer].function!( + this: this, + arguments: [_toJSValue(buffer), _toJSValue(indexFormat), _toJSValue(offset), _toJSValue(size)] + ) + } + + @inlinable public func setVertexBuffer( + slot: GPUIndex32, + buffer: GPUBuffer?, + offset: GPUSize64? = nil, + size: GPUSize64? = nil + ) { let this = jsObject - _ = this[Strings.setVertexBuffer].function!(this: this, arguments: [_toJSValue(slot), _toJSValue(buffer), _toJSValue(offset), _toJSValue(size)]) - } - - @inlinable func draw(vertexCount: GPUSize32, instanceCount: GPUSize32? = nil, firstVertex: GPUSize32? = nil, firstInstance: GPUSize32? = nil) { + _ = this[Strings.setVertexBuffer].function!( + this: this, + arguments: [_toJSValue(slot), _toJSValue(buffer), _toJSValue(offset), _toJSValue(size)] + ) + } + + @inlinable public func draw( + vertexCount: GPUSize32, + instanceCount: GPUSize32? = nil, + firstVertex: GPUSize32? = nil, + firstInstance: GPUSize32? = nil + ) { let this = jsObject - _ = this[Strings.draw].function!(this: this, arguments: [_toJSValue(vertexCount), _toJSValue(instanceCount), _toJSValue(firstVertex), _toJSValue(firstInstance)]) - } - - @inlinable func drawIndexed(indexCount: GPUSize32, instanceCount: GPUSize32? = nil, firstIndex: GPUSize32? = nil, baseVertex: GPUSignedOffset32? = nil, firstInstance: GPUSize32? = nil) { + _ = this[Strings.draw].function!( + this: this, + arguments: [ + _toJSValue(vertexCount), _toJSValue(instanceCount), _toJSValue(firstVertex), _toJSValue(firstInstance), + ] + ) + } + + @inlinable public func drawIndexed( + indexCount: GPUSize32, + instanceCount: GPUSize32? = nil, + firstIndex: GPUSize32? = nil, + baseVertex: GPUSignedOffset32? = nil, + firstInstance: GPUSize32? = nil + ) { let this = jsObject - _ = this[Strings.drawIndexed].function!(this: this, arguments: [_toJSValue(indexCount), _toJSValue(instanceCount), _toJSValue(firstIndex), _toJSValue(baseVertex), _toJSValue(firstInstance)]) + _ = this[Strings.drawIndexed].function!( + this: this, + arguments: [ + _toJSValue(indexCount), _toJSValue(instanceCount), _toJSValue(firstIndex), _toJSValue(baseVertex), + _toJSValue(firstInstance), + ] + ) } - @inlinable func drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { + @inlinable public func drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { let this = jsObject - _ = this[Strings.drawIndirect].function!(this: this, arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)]) + _ = this[Strings.drawIndirect].function!( + this: this, + arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)] + ) } - @inlinable func drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { + @inlinable public func drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) { let this = jsObject - _ = this[Strings.drawIndexedIndirect].function!(this: this, arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)]) + _ = this[Strings.drawIndexedIndirect].function!( + this: this, + arguments: [_toJSValue(indirectBuffer), _toJSValue(indirectOffset)] + ) } } +open class GPURenderPassColorAttachment: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPURenderPassColorAttachment: BridgedDictionary { - public convenience init(view: GPUTextureView, resolveTarget: GPUTextureView, clearValue: GPUColor, loadOp: GPULoadOp, storeOp: GPUStoreOp) { + public convenience init( + view: GPUTextureView, + depthSlice: GPUIntegerCoordinate? = nil, + resolveTarget: GPUTextureView? = nil, + clearValue: GPUColor? = nil, + loadOp: GPULoadOp, + storeOp: GPUStoreOp + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.view] = _toJSValue(view) + object[Strings.depthSlice] = _toJSValue(depthSlice) object[Strings.resolveTarget] = _toJSValue(resolveTarget) object[Strings.clearValue] = _toJSValue(clearValue) object[Strings.loadOp] = _toJSValue(loadOp) object[Strings.storeOp] = _toJSValue(storeOp) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _view = ReadWriteAttribute(jsObject: object, name: Strings.view) - _resolveTarget = ReadWriteAttribute(jsObject: object, name: Strings.resolveTarget) - _clearValue = ReadWriteAttribute(jsObject: object, name: Strings.clearValue) - _loadOp = ReadWriteAttribute(jsObject: object, name: Strings.loadOp) - _storeOp = ReadWriteAttribute(jsObject: object, name: Strings.storeOp) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var view: GPUTextureView - - @ReadWriteAttribute - public var resolveTarget: GPUTextureView - - @ReadWriteAttribute - public var clearValue: GPUColor - - @ReadWriteAttribute - public var loadOp: GPULoadOp + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var storeOp: GPUStoreOp + @inlinable public var view: GPUTextureView { + get { jsObject[Strings.view].fromJSValue()! } + set { jsObject[Strings.view] = _toJSValue(newValue) } + } + @inlinable public var depthSlice: GPUIntegerCoordinate { + get { jsObject[Strings.depthSlice].fromJSValue()! } + set { jsObject[Strings.depthSlice] = _toJSValue(newValue) } + } + @inlinable public var resolveTarget: GPUTextureView { + get { jsObject[Strings.resolveTarget].fromJSValue()! } + set { jsObject[Strings.resolveTarget] = _toJSValue(newValue) } + } + @inlinable public var clearValue: GPUColor { + get { jsObject[Strings.clearValue].fromJSValue()! } + set { jsObject[Strings.clearValue] = _toJSValue(newValue) } + } + @inlinable public var loadOp: GPULoadOp { + get { jsObject[Strings.loadOp].fromJSValue()! } + set { jsObject[Strings.loadOp] = _toJSValue(newValue) } + } + @inlinable public var storeOp: GPUStoreOp { + get { jsObject[Strings.storeOp].fromJSValue()! } + set { jsObject[Strings.storeOp] = _toJSValue(newValue) } + } } +open class GPURenderPassDepthStencilAttachment: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPURenderPassDepthStencilAttachment: BridgedDictionary { - public convenience init(view: GPUTextureView, depthClearValue: Float, depthLoadOp: GPULoadOp, depthStoreOp: GPUStoreOp, depthReadOnly: Bool, stencilClearValue: GPUStencilValue, stencilLoadOp: GPULoadOp, stencilStoreOp: GPUStoreOp, stencilReadOnly: Bool) { + public convenience init( + view: GPUTextureView, + depthClearValue: Float? = nil, + depthLoadOp: GPULoadOp? = nil, + depthStoreOp: GPUStoreOp? = nil, + depthReadOnly: Bool? = nil, + stencilClearValue: GPUStencilValue? = nil, + stencilLoadOp: GPULoadOp? = nil, + stencilStoreOp: GPUStoreOp? = nil, + stencilReadOnly: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.view] = _toJSValue(view) object[Strings.depthClearValue] = _toJSValue(depthClearValue) @@ -2267,303 +2396,374 @@ public class GPURenderPassDepthStencilAttachment: BridgedDictionary { object[Strings.stencilLoadOp] = _toJSValue(stencilLoadOp) object[Strings.stencilStoreOp] = _toJSValue(stencilStoreOp) object[Strings.stencilReadOnly] = _toJSValue(stencilReadOnly) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _view = ReadWriteAttribute(jsObject: object, name: Strings.view) - _depthClearValue = ReadWriteAttribute(jsObject: object, name: Strings.depthClearValue) - _depthLoadOp = ReadWriteAttribute(jsObject: object, name: Strings.depthLoadOp) - _depthStoreOp = ReadWriteAttribute(jsObject: object, name: Strings.depthStoreOp) - _depthReadOnly = ReadWriteAttribute(jsObject: object, name: Strings.depthReadOnly) - _stencilClearValue = ReadWriteAttribute(jsObject: object, name: Strings.stencilClearValue) - _stencilLoadOp = ReadWriteAttribute(jsObject: object, name: Strings.stencilLoadOp) - _stencilStoreOp = ReadWriteAttribute(jsObject: object, name: Strings.stencilStoreOp) - _stencilReadOnly = ReadWriteAttribute(jsObject: object, name: Strings.stencilReadOnly) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var view: GPUTextureView - - @ReadWriteAttribute - public var depthClearValue: Float - - @ReadWriteAttribute - public var depthLoadOp: GPULoadOp - - @ReadWriteAttribute - public var depthStoreOp: GPUStoreOp - - @ReadWriteAttribute - public var depthReadOnly: Bool + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var stencilClearValue: GPUStencilValue - - @ReadWriteAttribute - public var stencilLoadOp: GPULoadOp - - @ReadWriteAttribute - public var stencilStoreOp: GPUStoreOp - - @ReadWriteAttribute - public var stencilReadOnly: Bool + @inlinable public var view: GPUTextureView { + get { jsObject[Strings.view].fromJSValue()! } + set { jsObject[Strings.view] = _toJSValue(newValue) } + } + @inlinable public var depthClearValue: Float { + get { jsObject[Strings.depthClearValue].fromJSValue()! } + set { jsObject[Strings.depthClearValue] = _toJSValue(newValue) } + } + @inlinable public var depthLoadOp: GPULoadOp { + get { jsObject[Strings.depthLoadOp].fromJSValue()! } + set { jsObject[Strings.depthLoadOp] = _toJSValue(newValue) } + } + @inlinable public var depthStoreOp: GPUStoreOp { + get { jsObject[Strings.depthStoreOp].fromJSValue()! } + set { jsObject[Strings.depthStoreOp] = _toJSValue(newValue) } + } + @inlinable public var depthReadOnly: Bool { + get { jsObject[Strings.depthReadOnly].fromJSValue()! } + set { jsObject[Strings.depthReadOnly] = _toJSValue(newValue) } + } + @inlinable public var stencilClearValue: GPUStencilValue { + get { jsObject[Strings.stencilClearValue].fromJSValue()! } + set { jsObject[Strings.stencilClearValue] = _toJSValue(newValue) } + } + @inlinable public var stencilLoadOp: GPULoadOp { + get { jsObject[Strings.stencilLoadOp].fromJSValue()! } + set { jsObject[Strings.stencilLoadOp] = _toJSValue(newValue) } + } + @inlinable public var stencilStoreOp: GPUStoreOp { + get { jsObject[Strings.stencilStoreOp].fromJSValue()! } + set { jsObject[Strings.stencilStoreOp] = _toJSValue(newValue) } + } + @inlinable public var stencilReadOnly: Bool { + get { jsObject[Strings.stencilReadOnly].fromJSValue()! } + set { jsObject[Strings.stencilReadOnly] = _toJSValue(newValue) } + } } +open class GPURenderPassDescriptor: GPUObjectDescriptorBase { -public class GPURenderPassDescriptor: BridgedDictionary { - public convenience init(colorAttachments: [GPURenderPassColorAttachment?], depthStencilAttachment: GPURenderPassDepthStencilAttachment, occlusionQuerySet: GPUQuerySet, timestampWrites: GPURenderPassTimestampWrites, maxDrawCount: GPUSize64) { + public convenience init( + label: String? = nil, + colorAttachments: [GPURenderPassColorAttachment?], + depthStencilAttachment: GPURenderPassDepthStencilAttachment? = nil, + occlusionQuerySet: GPUQuerySet? = nil, + timestampWrites: GPURenderPassTimestampWrites? = nil, + maxDrawCount: GPUSize64? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.colorAttachments] = _toJSValue(colorAttachments) object[Strings.depthStencilAttachment] = _toJSValue(depthStencilAttachment) object[Strings.occlusionQuerySet] = _toJSValue(occlusionQuerySet) object[Strings.timestampWrites] = _toJSValue(timestampWrites) object[Strings.maxDrawCount] = _toJSValue(maxDrawCount) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _colorAttachments = ReadWriteAttribute(jsObject: object, name: Strings.colorAttachments) - _depthStencilAttachment = ReadWriteAttribute(jsObject: object, name: Strings.depthStencilAttachment) - _occlusionQuerySet = ReadWriteAttribute(jsObject: object, name: Strings.occlusionQuerySet) - _timestampWrites = ReadWriteAttribute(jsObject: object, name: Strings.timestampWrites) - _maxDrawCount = ReadWriteAttribute(jsObject: object, name: Strings.maxDrawCount) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var colorAttachments: [GPURenderPassColorAttachment?] - - @ReadWriteAttribute - public var depthStencilAttachment: GPURenderPassDepthStencilAttachment - - @ReadWriteAttribute - public var occlusionQuerySet: GPUQuerySet - - @ReadWriteAttribute - public var timestampWrites: GPURenderPassTimestampWrites + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var maxDrawCount: GPUSize64 + @inlinable public var colorAttachments: [GPURenderPassColorAttachment?] { + get { jsObject[Strings.colorAttachments].fromJSValue()! } + set { jsObject[Strings.colorAttachments] = _toJSValue(newValue) } + } + @inlinable public var depthStencilAttachment: GPURenderPassDepthStencilAttachment { + get { jsObject[Strings.depthStencilAttachment].fromJSValue()! } + set { jsObject[Strings.depthStencilAttachment] = _toJSValue(newValue) } + } + @inlinable public var occlusionQuerySet: GPUQuerySet { + get { jsObject[Strings.occlusionQuerySet].fromJSValue()! } + set { jsObject[Strings.occlusionQuerySet] = _toJSValue(newValue) } + } + @inlinable public var timestampWrites: GPURenderPassTimestampWrites { + get { jsObject[Strings.timestampWrites].fromJSValue()! } + set { jsObject[Strings.timestampWrites] = _toJSValue(newValue) } + } + @inlinable public var maxDrawCount: GPUSize64 { + get { jsObject[Strings.maxDrawCount].fromJSValue()! } + set { jsObject[Strings.maxDrawCount] = _toJSValue(newValue) } + } } - -public class GPURenderPassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUBindingCommandsMixin, GPURenderCommandsMixin { +public class GPURenderPassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, + GPUBindingCommandsMixin, GPURenderCommandsMixin +{ @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderPassEncoder].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func setViewport(x: Float, y: Float, width: Float, height: Float, minDepth: Float, maxDepth: Float) { + @inlinable final public func setViewport( + x: Float, + y: Float, + width: Float, + height: Float, + minDepth: Float, + maxDepth: Float + ) { let this = jsObject - _ = this[Strings.setViewport].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(minDepth), _toJSValue(maxDepth)]) - } - - @inlinable public func setScissorRect(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, width: GPUIntegerCoordinate, height: GPUIntegerCoordinate) { + _ = this[Strings.setViewport].function!( + this: this, + arguments: [ + _toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height), _toJSValue(minDepth), + _toJSValue(maxDepth), + ] + ) + } + + @inlinable final public func setScissorRect( + x: GPUIntegerCoordinate, + y: GPUIntegerCoordinate, + width: GPUIntegerCoordinate, + height: GPUIntegerCoordinate + ) { let this = jsObject - _ = this[Strings.setScissorRect].function!(this: this, arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)]) + _ = this[Strings.setScissorRect].function!( + this: this, + arguments: [_toJSValue(x), _toJSValue(y), _toJSValue(width), _toJSValue(height)] + ) } - @inlinable public func setBlendConstant(color: GPUColor) { + @inlinable final public func setBlendConstant(color: GPUColor) { let this = jsObject _ = this[Strings.setBlendConstant].function!(this: this, arguments: [_toJSValue(color)]) } - @inlinable public func setStencilReference(reference: GPUStencilValue) { + @inlinable final public func setStencilReference(reference: GPUStencilValue) { let this = jsObject _ = this[Strings.setStencilReference].function!(this: this, arguments: [_toJSValue(reference)]) } - @inlinable public func beginOcclusionQuery(queryIndex: GPUSize32) { + @inlinable final public func beginOcclusionQuery(queryIndex: GPUSize32) { let this = jsObject _ = this[Strings.beginOcclusionQuery].function!(this: this, arguments: [_toJSValue(queryIndex)]) } - @inlinable public func endOcclusionQuery() { + @inlinable final public func endOcclusionQuery() { let this = jsObject _ = this[Strings.endOcclusionQuery].function!(this: this, arguments: []) } - @inlinable public func executeBundles(bundles: [GPURenderBundle]) { + @inlinable final public func executeBundles(bundles: [GPURenderBundle]) { let this = jsObject _ = this[Strings.executeBundles].function!(this: this, arguments: [_toJSValue(bundles)]) } - @inlinable public func end() { + @inlinable final public func end() { let this = jsObject _ = this[Strings.end].function!(this: this, arguments: []) } } -public class GPURenderPassLayout: BridgedDictionary { - public convenience init(colorFormats: [GPUTextureFormat?], depthStencilFormat: GPUTextureFormat, sampleCount: GPUSize32) { +open class GPURenderPassLayout: GPUObjectDescriptorBase { + + public convenience init( + label: String? = nil, + colorFormats: [GPUTextureFormat?], + depthStencilFormat: GPUTextureFormat? = nil, + sampleCount: GPUSize32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.colorFormats] = _toJSValue(colorFormats) object[Strings.depthStencilFormat] = _toJSValue(depthStencilFormat) object[Strings.sampleCount] = _toJSValue(sampleCount) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _colorFormats = ReadWriteAttribute(jsObject: object, name: Strings.colorFormats) - _depthStencilFormat = ReadWriteAttribute(jsObject: object, name: Strings.depthStencilFormat) - _sampleCount = ReadWriteAttribute(jsObject: object, name: Strings.sampleCount) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var colorFormats: [GPUTextureFormat?] + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var depthStencilFormat: GPUTextureFormat - - @ReadWriteAttribute - public var sampleCount: GPUSize32 + @inlinable public var colorFormats: [GPUTextureFormat?] { + get { jsObject[Strings.colorFormats].fromJSValue()! } + set { jsObject[Strings.colorFormats] = _toJSValue(newValue) } + } + @inlinable public var depthStencilFormat: GPUTextureFormat { + get { jsObject[Strings.depthStencilFormat].fromJSValue()! } + set { jsObject[Strings.depthStencilFormat] = _toJSValue(newValue) } + } + @inlinable public var sampleCount: GPUSize32 { + get { jsObject[Strings.sampleCount].fromJSValue()! } + set { jsObject[Strings.sampleCount] = _toJSValue(newValue) } + } } +open class GPURenderPassTimestampWrites: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPURenderPassTimestampWrites: BridgedDictionary { - public convenience init(querySet: GPUQuerySet, beginningOfPassWriteIndex: GPUSize32, endOfPassWriteIndex: GPUSize32) { + public convenience init( + querySet: GPUQuerySet, + beginningOfPassWriteIndex: GPUSize32? = nil, + endOfPassWriteIndex: GPUSize32? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.querySet] = _toJSValue(querySet) object[Strings.beginningOfPassWriteIndex] = _toJSValue(beginningOfPassWriteIndex) object[Strings.endOfPassWriteIndex] = _toJSValue(endOfPassWriteIndex) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet) - _beginningOfPassWriteIndex = ReadWriteAttribute(jsObject: object, name: Strings.beginningOfPassWriteIndex) - _endOfPassWriteIndex = ReadWriteAttribute(jsObject: object, name: Strings.endOfPassWriteIndex) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var querySet: GPUQuerySet + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var beginningOfPassWriteIndex: GPUSize32 - - @ReadWriteAttribute - public var endOfPassWriteIndex: GPUSize32 + @inlinable public var querySet: GPUQuerySet { + get { jsObject[Strings.querySet].fromJSValue()! } + set { jsObject[Strings.querySet] = _toJSValue(newValue) } + } + @inlinable public var beginningOfPassWriteIndex: GPUSize32 { + get { jsObject[Strings.beginningOfPassWriteIndex].fromJSValue()! } + set { jsObject[Strings.beginningOfPassWriteIndex] = _toJSValue(newValue) } + } + @inlinable public var endOfPassWriteIndex: GPUSize32 { + get { jsObject[Strings.endOfPassWriteIndex].fromJSValue()! } + set { jsObject[Strings.endOfPassWriteIndex] = _toJSValue(newValue) } + } } - public class GPURenderPipeline: JSBridgedClass, GPUObjectBase, GPUPipelineBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderPipeline].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPURenderPipelineDescriptor: BridgedDictionary { - public convenience init(vertex: GPUVertexState, primitive: GPUPrimitiveState, depthStencil: GPUDepthStencilState, multisample: GPUMultisampleState, fragment: GPUFragmentState) { +open class GPURenderPipelineDescriptor: GPUPipelineDescriptorBase { + + public convenience init( + layout: GPUAutoLayoutMode_or_GPUPipelineLayout, + vertex: GPUVertexState, + primitive: GPUPrimitiveState? = nil, + depthStencil: GPUDepthStencilState? = nil, + multisample: GPUMultisampleState? = nil, + fragment: GPUFragmentState? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.layout] = _toJSValue(layout) object[Strings.vertex] = _toJSValue(vertex) object[Strings.primitive] = _toJSValue(primitive) object[Strings.depthStencil] = _toJSValue(depthStencil) object[Strings.multisample] = _toJSValue(multisample) object[Strings.fragment] = _toJSValue(fragment) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _vertex = ReadWriteAttribute(jsObject: object, name: Strings.vertex) - _primitive = ReadWriteAttribute(jsObject: object, name: Strings.primitive) - _depthStencil = ReadWriteAttribute(jsObject: object, name: Strings.depthStencil) - _multisample = ReadWriteAttribute(jsObject: object, name: Strings.multisample) - _fragment = ReadWriteAttribute(jsObject: object, name: Strings.fragment) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var vertex: GPUVertexState - - @ReadWriteAttribute - public var primitive: GPUPrimitiveState - - @ReadWriteAttribute - public var depthStencil: GPUDepthStencilState + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var multisample: GPUMultisampleState - - @ReadWriteAttribute - public var fragment: GPUFragmentState + @inlinable public var vertex: GPUVertexState { + get { jsObject[Strings.vertex].fromJSValue()! } + set { jsObject[Strings.vertex] = _toJSValue(newValue) } + } + @inlinable public var primitive: GPUPrimitiveState { + get { jsObject[Strings.primitive].fromJSValue()! } + set { jsObject[Strings.primitive] = _toJSValue(newValue) } + } + @inlinable public var depthStencil: GPUDepthStencilState { + get { jsObject[Strings.depthStencil].fromJSValue()! } + set { jsObject[Strings.depthStencil] = _toJSValue(newValue) } + } + @inlinable public var multisample: GPUMultisampleState { + get { jsObject[Strings.multisample].fromJSValue()! } + set { jsObject[Strings.multisample] = _toJSValue(newValue) } + } + @inlinable public var fragment: GPUFragmentState { + get { jsObject[Strings.fragment].fromJSValue()! } + set { jsObject[Strings.fragment] = _toJSValue(newValue) } + } } +open class GPURequestAdapterOptions: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPURequestAdapterOptions: BridgedDictionary { - public convenience init(powerPreference: GPUPowerPreference, forceFallbackAdapter: Bool) { + public convenience init( + featureLevel: String? = nil, + powerPreference: GPUPowerPreference? = nil, + forceFallbackAdapter: Bool? = nil, + xrCompatible: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.featureLevel] = _toJSValue(featureLevel) object[Strings.powerPreference] = _toJSValue(powerPreference) object[Strings.forceFallbackAdapter] = _toJSValue(forceFallbackAdapter) - self.init(unsafelyWrapping: object) - } + object[Strings.xrCompatible] = _toJSValue(xrCompatible) - public required init(unsafelyWrapping object: JSObject) { - _powerPreference = ReadWriteAttribute(jsObject: object, name: Strings.powerPreference) - _forceFallbackAdapter = ReadWriteAttribute(jsObject: object, name: Strings.forceFallbackAdapter) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var powerPreference: GPUPowerPreference + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var forceFallbackAdapter: Bool + @inlinable public var featureLevel: String { + get { jsObject[Strings.featureLevel].fromJSValue()! } + set { jsObject[Strings.featureLevel] = _toJSValue(newValue) } + } + @inlinable public var powerPreference: GPUPowerPreference { + get { jsObject[Strings.powerPreference].fromJSValue()! } + set { jsObject[Strings.powerPreference] = _toJSValue(newValue) } + } + @inlinable public var forceFallbackAdapter: Bool { + get { jsObject[Strings.forceFallbackAdapter].fromJSValue()! } + set { jsObject[Strings.forceFallbackAdapter] = _toJSValue(newValue) } + } + @inlinable public var xrCompatible: Bool { + get { jsObject[Strings.xrCompatible].fromJSValue()! } + set { jsObject[Strings.xrCompatible] = _toJSValue(newValue) } + } } - public class GPUSampler: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUSampler].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUSamplerBindingLayout: BridgedDictionary { - public convenience init(type: GPUSamplerBindingType) { +open class GPUSamplerBindingLayout: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(type: GPUSamplerBindingType? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.type] = _toJSValue(type) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _type = ReadWriteAttribute(jsObject: object, name: Strings.type) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var type: GPUSamplerBindingType + @inlinable public var type: GPUSamplerBindingType { + get { jsObject[Strings.type].fromJSValue()! } + set { jsObject[Strings.type] = _toJSValue(newValue) } + } } - public enum GPUSamplerBindingType: JSString, JSValueCompatible { case filtering = "filtering" case nonFiltering = "non-filtering" case comparison = "comparison" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - -public class GPUSamplerDescriptor: BridgedDictionary { - public convenience init(addressModeU: GPUAddressMode, addressModeV: GPUAddressMode, addressModeW: GPUAddressMode, magFilter: GPUFilterMode, minFilter: GPUFilterMode, mipmapFilter: GPUMipmapFilterMode, lodMinClamp: Float, lodMaxClamp: Float, compare: GPUCompareFunction, maxAnisotropy: UInt16) { +open class GPUSamplerDescriptor: GPUObjectDescriptorBase { + + public convenience init( + label: String? = nil, + addressModeU: GPUAddressMode? = nil, + addressModeV: GPUAddressMode? = nil, + addressModeW: GPUAddressMode? = nil, + magFilter: GPUFilterMode? = nil, + minFilter: GPUFilterMode? = nil, + mipmapFilter: GPUMipmapFilterMode? = nil, + lodMinClamp: Float? = nil, + lodMaxClamp: Float? = nil, + compare: GPUCompareFunction? = nil, + maxAnisotropy: UInt16? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.addressModeU] = _toJSValue(addressModeU) object[Strings.addressModeV] = _toJSValue(addressModeV) object[Strings.addressModeW] = _toJSValue(addressModeW) @@ -2574,122 +2774,127 @@ public class GPUSamplerDescriptor: BridgedDictionary { object[Strings.lodMaxClamp] = _toJSValue(lodMaxClamp) object[Strings.compare] = _toJSValue(compare) object[Strings.maxAnisotropy] = _toJSValue(maxAnisotropy) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _addressModeU = ReadWriteAttribute(jsObject: object, name: Strings.addressModeU) - _addressModeV = ReadWriteAttribute(jsObject: object, name: Strings.addressModeV) - _addressModeW = ReadWriteAttribute(jsObject: object, name: Strings.addressModeW) - _magFilter = ReadWriteAttribute(jsObject: object, name: Strings.magFilter) - _minFilter = ReadWriteAttribute(jsObject: object, name: Strings.minFilter) - _mipmapFilter = ReadWriteAttribute(jsObject: object, name: Strings.mipmapFilter) - _lodMinClamp = ReadWriteAttribute(jsObject: object, name: Strings.lodMinClamp) - _lodMaxClamp = ReadWriteAttribute(jsObject: object, name: Strings.lodMaxClamp) - _compare = ReadWriteAttribute(jsObject: object, name: Strings.compare) - _maxAnisotropy = ReadWriteAttribute(jsObject: object, name: Strings.maxAnisotropy) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var addressModeU: GPUAddressMode - - @ReadWriteAttribute - public var addressModeV: GPUAddressMode - - @ReadWriteAttribute - public var addressModeW: GPUAddressMode - - @ReadWriteAttribute - public var magFilter: GPUFilterMode - - @ReadWriteAttribute - public var minFilter: GPUFilterMode - - @ReadWriteAttribute - public var mipmapFilter: GPUMipmapFilterMode + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var lodMinClamp: Float - - @ReadWriteAttribute - public var lodMaxClamp: Float - - @ReadWriteAttribute - public var compare: GPUCompareFunction - - @ReadWriteAttribute - public var maxAnisotropy: UInt16 + @inlinable public var addressModeU: GPUAddressMode { + get { jsObject[Strings.addressModeU].fromJSValue()! } + set { jsObject[Strings.addressModeU] = _toJSValue(newValue) } + } + @inlinable public var addressModeV: GPUAddressMode { + get { jsObject[Strings.addressModeV].fromJSValue()! } + set { jsObject[Strings.addressModeV] = _toJSValue(newValue) } + } + @inlinable public var addressModeW: GPUAddressMode { + get { jsObject[Strings.addressModeW].fromJSValue()! } + set { jsObject[Strings.addressModeW] = _toJSValue(newValue) } + } + @inlinable public var magFilter: GPUFilterMode { + get { jsObject[Strings.magFilter].fromJSValue()! } + set { jsObject[Strings.magFilter] = _toJSValue(newValue) } + } + @inlinable public var minFilter: GPUFilterMode { + get { jsObject[Strings.minFilter].fromJSValue()! } + set { jsObject[Strings.minFilter] = _toJSValue(newValue) } + } + @inlinable public var mipmapFilter: GPUMipmapFilterMode { + get { jsObject[Strings.mipmapFilter].fromJSValue()! } + set { jsObject[Strings.mipmapFilter] = _toJSValue(newValue) } + } + @inlinable public var lodMinClamp: Float { + get { jsObject[Strings.lodMinClamp].fromJSValue()! } + set { jsObject[Strings.lodMinClamp] = _toJSValue(newValue) } + } + @inlinable public var lodMaxClamp: Float { + get { jsObject[Strings.lodMaxClamp].fromJSValue()! } + set { jsObject[Strings.lodMaxClamp] = _toJSValue(newValue) } + } + @inlinable public var compare: GPUCompareFunction { + get { jsObject[Strings.compare].fromJSValue()! } + set { jsObject[Strings.compare] = _toJSValue(newValue) } + } + @inlinable public var maxAnisotropy: UInt16 { + get { jsObject[Strings.maxAnisotropy].fromJSValue()! } + set { jsObject[Strings.maxAnisotropy] = _toJSValue(newValue) } + } } - public class GPUShaderModule: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUShaderModule].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func getCompilationInfo() -> JSPromise { + @inlinable final public func getCompilationInfo() -> JSPromise { let this = jsObject return this[Strings.getCompilationInfo].function!(this: this, arguments: []).fromJSValue()! } - @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable public func getCompilationInfo() async throws -> GPUCompilationInfo { - let this = jsObject - let _promise: JSPromise = this[Strings.getCompilationInfo].function!(this: this, arguments: []).fromJSValue()! - return try await _promise.value.fromJSValue()! - } + #if canImport(JavaScriptEventLoop) + @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) @inlinable final public func getCompilationInfo() + async throws(JSException) -> GPUCompilationInfo + { + let this = jsObject + let _promise: JSPromise = this[Strings.getCompilationInfo].function!(this: this, arguments: []) + .fromJSValue()! + return try await _promise.value.fromJSValue()! + } + #endif } -public class GPUShaderModuleCompilationHint: BridgedDictionary { - public convenience init(layout: GPUAutoLayoutMode_or_GPUPipelineLayout) { +open class GPUShaderModuleCompilationHint: JSDictionaryCompatible { + public let jsObject: JSObject + + public convenience init(entryPoint: String, layout: GPUAutoLayoutMode_or_GPUPipelineLayout? = nil) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.entryPoint] = _toJSValue(entryPoint) object[Strings.layout] = _toJSValue(layout) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var layout: GPUAutoLayoutMode_or_GPUPipelineLayout + @inlinable public var entryPoint: String { + get { jsObject[Strings.entryPoint].fromJSValue()! } + set { jsObject[Strings.entryPoint] = _toJSValue(newValue) } + } + @inlinable public var layout: GPUAutoLayoutMode_or_GPUPipelineLayout { + get { jsObject[Strings.layout].fromJSValue()! } + set { jsObject[Strings.layout] = _toJSValue(newValue) } + } } +open class GPUShaderModuleDescriptor: GPUObjectDescriptorBase { -public class GPUShaderModuleDescriptor: BridgedDictionary { - public convenience init(code: String, sourceMap: JSObject, hints: [String: GPUShaderModuleCompilationHint]) { + public convenience init( + label: String? = nil, + code: String, + compilationHints: [GPUShaderModuleCompilationHint]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.code] = _toJSValue(code) - object[Strings.sourceMap] = _toJSValue(sourceMap) - object[Strings.hints] = _toJSValue(hints) - self.init(unsafelyWrapping: object) - } + object[Strings.compilationHints] = _toJSValue(compilationHints) - public required init(unsafelyWrapping object: JSObject) { - _code = ReadWriteAttribute(jsObject: object, name: Strings.code) - _sourceMap = ReadWriteAttribute(jsObject: object, name: Strings.sourceMap) - _hints = ReadWriteAttribute(jsObject: object, name: Strings.hints) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var code: String + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var sourceMap: JSObject - - @ReadWriteAttribute - public var hints: [String: GPUShaderModuleCompilationHint] + @inlinable public var code: String { + get { jsObject[Strings.code].fromJSValue()! } + set { jsObject[Strings.code] = _toJSValue(newValue) } + } + @inlinable public var compilationHints: [GPUShaderModuleCompilationHint] { + get { jsObject[Strings.compilationHints].fromJSValue()! } + set { jsObject[Strings.compilationHints] = _toJSValue(newValue) } + } } - public enum GPUShaderStage { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.GPUShaderStage].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.GPUShaderStage].object! } public static let VERTEX: GPUFlagsConstant = 0x1 @@ -2697,38 +2902,43 @@ public enum GPUShaderStage { public static let COMPUTE: GPUFlagsConstant = 0x4 } +open class GPUStencilFaceState: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUStencilFaceState: BridgedDictionary { - public convenience init(compare: GPUCompareFunction, failOp: GPUStencilOperation, depthFailOp: GPUStencilOperation, passOp: GPUStencilOperation) { + public convenience init( + compare: GPUCompareFunction? = nil, + failOp: GPUStencilOperation? = nil, + depthFailOp: GPUStencilOperation? = nil, + passOp: GPUStencilOperation? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.compare] = _toJSValue(compare) object[Strings.failOp] = _toJSValue(failOp) object[Strings.depthFailOp] = _toJSValue(depthFailOp) object[Strings.passOp] = _toJSValue(passOp) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _compare = ReadWriteAttribute(jsObject: object, name: Strings.compare) - _failOp = ReadWriteAttribute(jsObject: object, name: Strings.failOp) - _depthFailOp = ReadWriteAttribute(jsObject: object, name: Strings.depthFailOp) - _passOp = ReadWriteAttribute(jsObject: object, name: Strings.passOp) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var compare: GPUCompareFunction + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var failOp: GPUStencilOperation - - @ReadWriteAttribute - public var depthFailOp: GPUStencilOperation - - @ReadWriteAttribute - public var passOp: GPUStencilOperation + @inlinable public var compare: GPUCompareFunction { + get { jsObject[Strings.compare].fromJSValue()! } + set { jsObject[Strings.compare] = _toJSValue(newValue) } + } + @inlinable public var failOp: GPUStencilOperation { + get { jsObject[Strings.failOp].fromJSValue()! } + set { jsObject[Strings.failOp] = _toJSValue(newValue) } + } + @inlinable public var depthFailOp: GPUStencilOperation { + get { jsObject[Strings.depthFailOp].fromJSValue()! } + set { jsObject[Strings.depthFailOp] = _toJSValue(newValue) } + } + @inlinable public var passOp: GPUStencilOperation { + get { jsObject[Strings.passOp].fromJSValue()! } + set { jsObject[Strings.passOp] = _toJSValue(newValue) } + } } - public enum GPUStencilOperation: JSString, JSValueCompatible { case keep = "keep" case zero = "zero" @@ -2740,88 +2950,78 @@ public enum GPUStencilOperation: JSString, JSValueCompatible { case decrementWrap = "decrement-wrap" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUStorageTextureAccess: JSString, JSValueCompatible { case writeOnly = "write-only" + case readOnly = "read-only" + case readWrite = "read-write" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUStorageTextureBindingLayout: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUStorageTextureBindingLayout: BridgedDictionary { - public convenience init(access: GPUStorageTextureAccess, format: GPUTextureFormat, viewDimension: GPUTextureViewDimension) { + public convenience init( + access: GPUStorageTextureAccess? = nil, + format: GPUTextureFormat, + viewDimension: GPUTextureViewDimension? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.access] = _toJSValue(access) object[Strings.format] = _toJSValue(format) object[Strings.viewDimension] = _toJSValue(viewDimension) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _access = ReadWriteAttribute(jsObject: object, name: Strings.access) - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _viewDimension = ReadWriteAttribute(jsObject: object, name: Strings.viewDimension) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var access: GPUStorageTextureAccess - - @ReadWriteAttribute - public var format: GPUTextureFormat + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var viewDimension: GPUTextureViewDimension + @inlinable public var access: GPUStorageTextureAccess { + get { jsObject[Strings.access].fromJSValue()! } + set { jsObject[Strings.access] = _toJSValue(newValue) } + } + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var viewDimension: GPUTextureViewDimension { + get { jsObject[Strings.viewDimension].fromJSValue()! } + set { jsObject[Strings.viewDimension] = _toJSValue(newValue) } + } } - public enum GPUStoreOp: JSString, JSValueCompatible { case store = "store" case discard = "discard" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUSupportedFeatures: JSBridgedClass { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUSupportedFeatures].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } // XXX: make me Set-like! } @@ -2831,189 +3031,229 @@ public class GPUSupportedLimits: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _maxTextureDimension1D = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxTextureDimension1D) - _maxTextureDimension2D = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxTextureDimension2D) - _maxTextureDimension3D = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxTextureDimension3D) - _maxTextureArrayLayers = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxTextureArrayLayers) - _maxBindGroups = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxBindGroups) - _maxBindGroupsPlusVertexBuffers = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxBindGroupsPlusVertexBuffers) - _maxBindingsPerBindGroup = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxBindingsPerBindGroup) - _maxDynamicUniformBuffersPerPipelineLayout = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxDynamicUniformBuffersPerPipelineLayout) - _maxDynamicStorageBuffersPerPipelineLayout = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxDynamicStorageBuffersPerPipelineLayout) - _maxSampledTexturesPerShaderStage = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxSampledTexturesPerShaderStage) - _maxSamplersPerShaderStage = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxSamplersPerShaderStage) - _maxStorageBuffersPerShaderStage = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxStorageBuffersPerShaderStage) - _maxStorageTexturesPerShaderStage = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxStorageTexturesPerShaderStage) - _maxUniformBuffersPerShaderStage = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxUniformBuffersPerShaderStage) - _maxUniformBufferBindingSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxUniformBufferBindingSize) - _maxStorageBufferBindingSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxStorageBufferBindingSize) - _minUniformBufferOffsetAlignment = ReadonlyAttribute(jsObject: jsObject, name: Strings.minUniformBufferOffsetAlignment) - _minStorageBufferOffsetAlignment = ReadonlyAttribute(jsObject: jsObject, name: Strings.minStorageBufferOffsetAlignment) - _maxVertexBuffers = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexBuffers) - _maxBufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxBufferSize) - _maxVertexAttributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexAttributes) - _maxVertexBufferArrayStride = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexBufferArrayStride) - _maxInterStageShaderComponents = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxInterStageShaderComponents) - _maxInterStageShaderVariables = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxInterStageShaderVariables) - _maxColorAttachments = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxColorAttachments) - _maxColorAttachmentBytesPerSample = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxColorAttachmentBytesPerSample) - _maxComputeWorkgroupStorageSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeWorkgroupStorageSize) - _maxComputeInvocationsPerWorkgroup = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeInvocationsPerWorkgroup) - _maxComputeWorkgroupSizeX = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeWorkgroupSizeX) - _maxComputeWorkgroupSizeY = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeWorkgroupSizeY) - _maxComputeWorkgroupSizeZ = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeWorkgroupSizeZ) - _maxComputeWorkgroupsPerDimension = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxComputeWorkgroupsPerDimension) - self.jsObject = jsObject + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + + @inlinable public var maxTextureDimension1D: UInt32 { jsObject[Strings.maxTextureDimension1D].fromJSValue()! } + + @inlinable public var maxTextureDimension2D: UInt32 { jsObject[Strings.maxTextureDimension2D].fromJSValue()! } + + @inlinable public var maxTextureDimension3D: UInt32 { jsObject[Strings.maxTextureDimension3D].fromJSValue()! } + + @inlinable public var maxTextureArrayLayers: UInt32 { jsObject[Strings.maxTextureArrayLayers].fromJSValue()! } + + @inlinable public var maxBindGroups: UInt32 { jsObject[Strings.maxBindGroups].fromJSValue()! } + + @inlinable public var maxBindGroupsPlusVertexBuffers: UInt32 { + jsObject[Strings.maxBindGroupsPlusVertexBuffers].fromJSValue()! + } + + @inlinable public var maxBindingsPerBindGroup: UInt32 { jsObject[Strings.maxBindingsPerBindGroup].fromJSValue()! } + + @inlinable public var maxDynamicUniformBuffersPerPipelineLayout: UInt32 { + jsObject[Strings.maxDynamicUniformBuffersPerPipelineLayout].fromJSValue()! + } + + @inlinable public var maxDynamicStorageBuffersPerPipelineLayout: UInt32 { + jsObject[Strings.maxDynamicStorageBuffersPerPipelineLayout].fromJSValue()! + } + + @inlinable public var maxSampledTexturesPerShaderStage: UInt32 { + jsObject[Strings.maxSampledTexturesPerShaderStage].fromJSValue()! } - @ReadonlyAttribute - public var maxTextureDimension1D: UInt32 + @inlinable public var maxSamplersPerShaderStage: UInt32 { + jsObject[Strings.maxSamplersPerShaderStage].fromJSValue()! + } - @ReadonlyAttribute - public var maxTextureDimension2D: UInt32 + @inlinable public var maxStorageBuffersPerShaderStage: UInt32 { + jsObject[Strings.maxStorageBuffersPerShaderStage].fromJSValue()! + } - @ReadonlyAttribute - public var maxTextureDimension3D: UInt32 + @inlinable public var maxStorageTexturesPerShaderStage: UInt32 { + jsObject[Strings.maxStorageTexturesPerShaderStage].fromJSValue()! + } - @ReadonlyAttribute - public var maxTextureArrayLayers: UInt32 + @inlinable public var maxUniformBuffersPerShaderStage: UInt32 { + jsObject[Strings.maxUniformBuffersPerShaderStage].fromJSValue()! + } - @ReadonlyAttribute - public var maxBindGroups: UInt32 + @inlinable public var maxUniformBufferBindingSize: UInt64 { + jsObject[Strings.maxUniformBufferBindingSize].fromJSValue()! + } - @ReadonlyAttribute - public var maxBindGroupsPlusVertexBuffers: UInt32 + @inlinable public var maxStorageBufferBindingSize: UInt64 { + jsObject[Strings.maxStorageBufferBindingSize].fromJSValue()! + } - @ReadonlyAttribute - public var maxBindingsPerBindGroup: UInt32 + @inlinable public var minUniformBufferOffsetAlignment: UInt32 { + jsObject[Strings.minUniformBufferOffsetAlignment].fromJSValue()! + } - @ReadonlyAttribute - public var maxDynamicUniformBuffersPerPipelineLayout: UInt32 + @inlinable public var minStorageBufferOffsetAlignment: UInt32 { + jsObject[Strings.minStorageBufferOffsetAlignment].fromJSValue()! + } - @ReadonlyAttribute - public var maxDynamicStorageBuffersPerPipelineLayout: UInt32 + @inlinable public var maxVertexBuffers: UInt32 { jsObject[Strings.maxVertexBuffers].fromJSValue()! } - @ReadonlyAttribute - public var maxSampledTexturesPerShaderStage: UInt32 + @inlinable public var maxBufferSize: UInt64 { jsObject[Strings.maxBufferSize].fromJSValue()! } - @ReadonlyAttribute - public var maxSamplersPerShaderStage: UInt32 + @inlinable public var maxVertexAttributes: UInt32 { jsObject[Strings.maxVertexAttributes].fromJSValue()! } - @ReadonlyAttribute - public var maxStorageBuffersPerShaderStage: UInt32 + @inlinable public var maxVertexBufferArrayStride: UInt32 { + jsObject[Strings.maxVertexBufferArrayStride].fromJSValue()! + } - @ReadonlyAttribute - public var maxStorageTexturesPerShaderStage: UInt32 + @inlinable public var maxInterStageShaderVariables: UInt32 { + jsObject[Strings.maxInterStageShaderVariables].fromJSValue()! + } - @ReadonlyAttribute - public var maxUniformBuffersPerShaderStage: UInt32 + @inlinable public var maxColorAttachments: UInt32 { jsObject[Strings.maxColorAttachments].fromJSValue()! } - @ReadonlyAttribute - public var maxUniformBufferBindingSize: UInt64 + @inlinable public var maxColorAttachmentBytesPerSample: UInt32 { + jsObject[Strings.maxColorAttachmentBytesPerSample].fromJSValue()! + } - @ReadonlyAttribute - public var maxStorageBufferBindingSize: UInt64 + @inlinable public var maxComputeWorkgroupStorageSize: UInt32 { + jsObject[Strings.maxComputeWorkgroupStorageSize].fromJSValue()! + } - @ReadonlyAttribute - public var minUniformBufferOffsetAlignment: UInt32 + @inlinable public var maxComputeInvocationsPerWorkgroup: UInt32 { + jsObject[Strings.maxComputeInvocationsPerWorkgroup].fromJSValue()! + } - @ReadonlyAttribute - public var minStorageBufferOffsetAlignment: UInt32 + @inlinable public var maxComputeWorkgroupSizeX: UInt32 { jsObject[Strings.maxComputeWorkgroupSizeX].fromJSValue()! } - @ReadonlyAttribute - public var maxVertexBuffers: UInt32 + @inlinable public var maxComputeWorkgroupSizeY: UInt32 { jsObject[Strings.maxComputeWorkgroupSizeY].fromJSValue()! } - @ReadonlyAttribute - public var maxBufferSize: UInt64 + @inlinable public var maxComputeWorkgroupSizeZ: UInt32 { jsObject[Strings.maxComputeWorkgroupSizeZ].fromJSValue()! } - @ReadonlyAttribute - public var maxVertexAttributes: UInt32 + @inlinable public var maxComputeWorkgroupsPerDimension: UInt32 { + jsObject[Strings.maxComputeWorkgroupsPerDimension].fromJSValue()! + } +} + +open class GPUTexelCopyBufferInfo: GPUTexelCopyBufferLayout { + + public convenience init( + offset: GPUSize64? = nil, + bytesPerRow: GPUSize32? = nil, + rowsPerImage: GPUSize32? = nil, + buffer: GPUBuffer + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = _toJSValue(offset) + object[Strings.bytesPerRow] = _toJSValue(bytesPerRow) + object[Strings.rowsPerImage] = _toJSValue(rowsPerImage) + object[Strings.buffer] = _toJSValue(buffer) - @ReadonlyAttribute - public var maxVertexBufferArrayStride: UInt32 + self.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var maxInterStageShaderComponents: UInt32 + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadonlyAttribute - public var maxInterStageShaderVariables: UInt32 + @inlinable public var buffer: GPUBuffer { + get { jsObject[Strings.buffer].fromJSValue()! } + set { jsObject[Strings.buffer] = _toJSValue(newValue) } + } +} +open class GPUTexelCopyBufferLayout: JSDictionaryCompatible { + public let jsObject: JSObject - @ReadonlyAttribute - public var maxColorAttachments: UInt32 + public convenience init(offset: GPUSize64? = nil, bytesPerRow: GPUSize32? = nil, rowsPerImage: GPUSize32? = nil) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.offset] = _toJSValue(offset) + object[Strings.bytesPerRow] = _toJSValue(bytesPerRow) + object[Strings.rowsPerImage] = _toJSValue(rowsPerImage) - @ReadonlyAttribute - public var maxColorAttachmentBytesPerSample: UInt32 + self.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var maxComputeWorkgroupStorageSize: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadonlyAttribute - public var maxComputeInvocationsPerWorkgroup: UInt32 + @inlinable public var offset: GPUSize64 { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var bytesPerRow: GPUSize32 { + get { jsObject[Strings.bytesPerRow].fromJSValue()! } + set { jsObject[Strings.bytesPerRow] = _toJSValue(newValue) } + } + @inlinable public var rowsPerImage: GPUSize32 { + get { jsObject[Strings.rowsPerImage].fromJSValue()! } + set { jsObject[Strings.rowsPerImage] = _toJSValue(newValue) } + } +} +open class GPUTexelCopyTextureInfo: JSDictionaryCompatible { + public let jsObject: JSObject - @ReadonlyAttribute - public var maxComputeWorkgroupSizeX: UInt32 + public convenience init( + texture: GPUTexture, + mipLevel: GPUIntegerCoordinate? = nil, + origin: GPUOrigin3D? = nil, + aspect: GPUTextureAspect? = nil + ) { + let object = JSObject.global[Strings.Object].function!.new() + object[Strings.texture] = _toJSValue(texture) + object[Strings.mipLevel] = _toJSValue(mipLevel) + object[Strings.origin] = _toJSValue(origin) + object[Strings.aspect] = _toJSValue(aspect) - @ReadonlyAttribute - public var maxComputeWorkgroupSizeY: UInt32 + self.init(unsafelyWrapping: object) + } - @ReadonlyAttribute - public var maxComputeWorkgroupSizeZ: UInt32 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadonlyAttribute - public var maxComputeWorkgroupsPerDimension: UInt32 + @inlinable public var texture: GPUTexture { + get { jsObject[Strings.texture].fromJSValue()! } + set { jsObject[Strings.texture] = _toJSValue(newValue) } + } + @inlinable public var mipLevel: GPUIntegerCoordinate { + get { jsObject[Strings.mipLevel].fromJSValue()! } + set { jsObject[Strings.mipLevel] = _toJSValue(newValue) } + } + @inlinable public var origin: GPUOrigin3D { + get { jsObject[Strings.origin].fromJSValue()! } + set { jsObject[Strings.origin] = _toJSValue(newValue) } + } + @inlinable public var aspect: GPUTextureAspect { + get { jsObject[Strings.aspect].fromJSValue()! } + set { jsObject[Strings.aspect] = _toJSValue(newValue) } + } } - public class GPUTexture: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUTexture].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - _width = ReadonlyAttribute(jsObject: jsObject, name: Strings.width) - _height = ReadonlyAttribute(jsObject: jsObject, name: Strings.height) - _depthOrArrayLayers = ReadonlyAttribute(jsObject: jsObject, name: Strings.depthOrArrayLayers) - _mipLevelCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.mipLevelCount) - _sampleCount = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleCount) - _dimension = ReadonlyAttribute(jsObject: jsObject, name: Strings.dimension) - _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format) - _usage = ReadonlyAttribute(jsObject: jsObject, name: Strings.usage) - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } - @inlinable public func createView(descriptor: GPUTextureViewDescriptor? = nil) -> GPUTextureView { + @inlinable final public func createView(descriptor: GPUTextureViewDescriptor? = nil) -> GPUTextureView { let this = jsObject return this[Strings.createView].function!(this: this, arguments: [_toJSValue(descriptor)]).fromJSValue()! } - @inlinable public func destroy() { + @inlinable final public func destroy() { let this = jsObject _ = this[Strings.destroy].function!(this: this, arguments: []) } - @ReadonlyAttribute - public var width: GPUIntegerCoordinateOut + @inlinable public var width: GPUIntegerCoordinateOut { jsObject[Strings.width].fromJSValue()! } - @ReadonlyAttribute - public var height: GPUIntegerCoordinateOut + @inlinable public var height: GPUIntegerCoordinateOut { jsObject[Strings.height].fromJSValue()! } - @ReadonlyAttribute - public var depthOrArrayLayers: GPUIntegerCoordinateOut + @inlinable public var depthOrArrayLayers: GPUIntegerCoordinateOut { + jsObject[Strings.depthOrArrayLayers].fromJSValue()! + } - @ReadonlyAttribute - public var mipLevelCount: GPUIntegerCoordinateOut + @inlinable public var mipLevelCount: GPUIntegerCoordinateOut { jsObject[Strings.mipLevelCount].fromJSValue()! } - @ReadonlyAttribute - public var sampleCount: GPUSize32Out + @inlinable public var sampleCount: GPUSize32Out { jsObject[Strings.sampleCount].fromJSValue()! } - @ReadonlyAttribute - public var dimension: GPUTextureDimension + @inlinable public var dimension: GPUTextureDimension { jsObject[Strings.dimension].fromJSValue()! } - @ReadonlyAttribute - public var format: GPUTextureFormat + @inlinable public var format: GPUTextureFormat { jsObject[Strings.format].fromJSValue()! } - @ReadonlyAttribute - public var usage: GPUFlagsConstant + @inlinable public var usage: GPUFlagsConstant { jsObject[Strings.usage].fromJSValue()! } } public enum GPUTextureAspect: JSString, JSValueCompatible { @@ -3022,48 +3262,59 @@ public enum GPUTextureAspect: JSString, JSValueCompatible { case depthOnly = "depth-only" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUTextureBindingLayout: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUTextureBindingLayout: BridgedDictionary { - public convenience init(sampleType: GPUTextureSampleType, viewDimension: GPUTextureViewDimension, multisampled: Bool) { + public convenience init( + sampleType: GPUTextureSampleType? = nil, + viewDimension: GPUTextureViewDimension? = nil, + multisampled: Bool? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.sampleType] = _toJSValue(sampleType) object[Strings.viewDimension] = _toJSValue(viewDimension) object[Strings.multisampled] = _toJSValue(multisampled) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _sampleType = ReadWriteAttribute(jsObject: object, name: Strings.sampleType) - _viewDimension = ReadWriteAttribute(jsObject: object, name: Strings.viewDimension) - _multisampled = ReadWriteAttribute(jsObject: object, name: Strings.multisampled) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var sampleType: GPUTextureSampleType + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var viewDimension: GPUTextureViewDimension - - @ReadWriteAttribute - public var multisampled: Bool + @inlinable public var sampleType: GPUTextureSampleType { + get { jsObject[Strings.sampleType].fromJSValue()! } + set { jsObject[Strings.sampleType] = _toJSValue(newValue) } + } + @inlinable public var viewDimension: GPUTextureViewDimension { + get { jsObject[Strings.viewDimension].fromJSValue()! } + set { jsObject[Strings.viewDimension] = _toJSValue(newValue) } + } + @inlinable public var multisampled: Bool { + get { jsObject[Strings.multisampled].fromJSValue()! } + set { jsObject[Strings.multisampled] = _toJSValue(newValue) } + } } +open class GPUTextureDescriptor: GPUObjectDescriptorBase { -public class GPUTextureDescriptor: BridgedDictionary { - public convenience init(size: GPUExtent3D, mipLevelCount: GPUIntegerCoordinate, sampleCount: GPUSize32, dimension: GPUTextureDimension, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat]) { + public convenience init( + label: String? = nil, + size: GPUExtent3D, + mipLevelCount: GPUIntegerCoordinate? = nil, + sampleCount: GPUSize32? = nil, + dimension: GPUTextureDimension? = nil, + format: GPUTextureFormat, + usage: GPUTextureUsageFlags, + viewFormats: [GPUTextureFormat]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.size] = _toJSValue(size) object[Strings.mipLevelCount] = _toJSValue(mipLevelCount) object[Strings.sampleCount] = _toJSValue(sampleCount) @@ -3071,61 +3322,55 @@ public class GPUTextureDescriptor: BridgedDictionary { object[Strings.format] = _toJSValue(format) object[Strings.usage] = _toJSValue(usage) object[Strings.viewFormats] = _toJSValue(viewFormats) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _size = ReadWriteAttribute(jsObject: object, name: Strings.size) - _mipLevelCount = ReadWriteAttribute(jsObject: object, name: Strings.mipLevelCount) - _sampleCount = ReadWriteAttribute(jsObject: object, name: Strings.sampleCount) - _dimension = ReadWriteAttribute(jsObject: object, name: Strings.dimension) - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _usage = ReadWriteAttribute(jsObject: object, name: Strings.usage) - _viewFormats = ReadWriteAttribute(jsObject: object, name: Strings.viewFormats) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var size: GPUExtent3D - - @ReadWriteAttribute - public var mipLevelCount: GPUIntegerCoordinate - - @ReadWriteAttribute - public var sampleCount: GPUSize32 - - @ReadWriteAttribute - public var dimension: GPUTextureDimension - - @ReadWriteAttribute - public var format: GPUTextureFormat + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var usage: GPUTextureUsageFlags - - @ReadWriteAttribute - public var viewFormats: [GPUTextureFormat] + @inlinable public var size: GPUExtent3D { + get { jsObject[Strings.size].fromJSValue()! } + set { jsObject[Strings.size] = _toJSValue(newValue) } + } + @inlinable public var mipLevelCount: GPUIntegerCoordinate { + get { jsObject[Strings.mipLevelCount].fromJSValue()! } + set { jsObject[Strings.mipLevelCount] = _toJSValue(newValue) } + } + @inlinable public var sampleCount: GPUSize32 { + get { jsObject[Strings.sampleCount].fromJSValue()! } + set { jsObject[Strings.sampleCount] = _toJSValue(newValue) } + } + @inlinable public var dimension: GPUTextureDimension { + get { jsObject[Strings.dimension].fromJSValue()! } + set { jsObject[Strings.dimension] = _toJSValue(newValue) } + } + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var usage: GPUTextureUsageFlags { + get { jsObject[Strings.usage].fromJSValue()! } + set { jsObject[Strings.usage] = _toJSValue(newValue) } + } + @inlinable public var viewFormats: [GPUTextureFormat] { + get { jsObject[Strings.viewFormats].fromJSValue()! } + set { jsObject[Strings.viewFormats] = _toJSValue(newValue) } + } } - public enum GPUTextureDimension: JSString, JSValueCompatible { case _1d = "1d" case _2d = "2d" case _3d = "3d" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUTextureFormat: JSString, JSValueCompatible { case r8unorm = "r8unorm" case r8snorm = "r8snorm" @@ -3152,6 +3397,7 @@ public enum GPUTextureFormat: JSString, JSValueCompatible { case bgra8unorm = "bgra8unorm" case bgra8unormSrgb = "bgra8unorm-srgb" case rgb9e5ufloat = "rgb9e5ufloat" + case rgb10a2uint = "rgb10a2uint" case rgb10a2unorm = "rgb10a2unorm" case rg11b10ufloat = "rg11b10ufloat" case rg32uint = "rg32uint" @@ -3223,19 +3469,14 @@ public enum GPUTextureFormat: JSString, JSValueCompatible { case astc12x12UnormSrgb = "astc-12x12-unorm-srgb" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUTextureSampleType: JSString, JSValueCompatible { case float = "float" case unfilterableFloat = "unfilterable-float" @@ -3244,23 +3485,16 @@ public enum GPUTextureSampleType: JSString, JSValueCompatible { case uint = "uint" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public enum GPUTextureUsage { - @inlinable public static var jsObject: JSObject { - JSObject.global[Strings.GPUTextureUsage].object! - } + @inlinable public static var jsObject: JSObject { JSObject.global[Strings.GPUTextureUsage].object! } public static let COPY_SRC: GPUFlagsConstant = 0x01 @@ -3272,63 +3506,77 @@ public enum GPUTextureUsage { public static let RENDER_ATTACHMENT: GPUFlagsConstant = 0x10 } - public class GPUTextureView: JSBridgedClass, GPUObjectBase { @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUTextureView].function } public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } + } -public class GPUTextureViewDescriptor: BridgedDictionary { - public convenience init(format: GPUTextureFormat, dimension: GPUTextureViewDimension, aspect: GPUTextureAspect, baseMipLevel: GPUIntegerCoordinate, mipLevelCount: GPUIntegerCoordinate, baseArrayLayer: GPUIntegerCoordinate, arrayLayerCount: GPUIntegerCoordinate) { +open class GPUTextureViewDescriptor: GPUObjectDescriptorBase { + + public convenience init( + label: String? = nil, + format: GPUTextureFormat? = nil, + dimension: GPUTextureViewDimension? = nil, + usage: GPUTextureUsageFlags? = nil, + aspect: GPUTextureAspect? = nil, + baseMipLevel: GPUIntegerCoordinate? = nil, + mipLevelCount: GPUIntegerCoordinate? = nil, + baseArrayLayer: GPUIntegerCoordinate? = nil, + arrayLayerCount: GPUIntegerCoordinate? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.label] = _toJSValue(label) object[Strings.format] = _toJSValue(format) object[Strings.dimension] = _toJSValue(dimension) + object[Strings.usage] = _toJSValue(usage) object[Strings.aspect] = _toJSValue(aspect) object[Strings.baseMipLevel] = _toJSValue(baseMipLevel) object[Strings.mipLevelCount] = _toJSValue(mipLevelCount) object[Strings.baseArrayLayer] = _toJSValue(baseArrayLayer) object[Strings.arrayLayerCount] = _toJSValue(arrayLayerCount) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _dimension = ReadWriteAttribute(jsObject: object, name: Strings.dimension) - _aspect = ReadWriteAttribute(jsObject: object, name: Strings.aspect) - _baseMipLevel = ReadWriteAttribute(jsObject: object, name: Strings.baseMipLevel) - _mipLevelCount = ReadWriteAttribute(jsObject: object, name: Strings.mipLevelCount) - _baseArrayLayer = ReadWriteAttribute(jsObject: object, name: Strings.baseArrayLayer) - _arrayLayerCount = ReadWriteAttribute(jsObject: object, name: Strings.arrayLayerCount) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: GPUTextureFormat - - @ReadWriteAttribute - public var dimension: GPUTextureViewDimension - - @ReadWriteAttribute - public var aspect: GPUTextureAspect - - @ReadWriteAttribute - public var baseMipLevel: GPUIntegerCoordinate - - @ReadWriteAttribute - public var mipLevelCount: GPUIntegerCoordinate + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var baseArrayLayer: GPUIntegerCoordinate - - @ReadWriteAttribute - public var arrayLayerCount: GPUIntegerCoordinate + @inlinable public var format: GPUTextureFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var dimension: GPUTextureViewDimension { + get { jsObject[Strings.dimension].fromJSValue()! } + set { jsObject[Strings.dimension] = _toJSValue(newValue) } + } + @inlinable public var usage: GPUTextureUsageFlags { + get { jsObject[Strings.usage].fromJSValue()! } + set { jsObject[Strings.usage] = _toJSValue(newValue) } + } + @inlinable public var aspect: GPUTextureAspect { + get { jsObject[Strings.aspect].fromJSValue()! } + set { jsObject[Strings.aspect] = _toJSValue(newValue) } + } + @inlinable public var baseMipLevel: GPUIntegerCoordinate { + get { jsObject[Strings.baseMipLevel].fromJSValue()! } + set { jsObject[Strings.baseMipLevel] = _toJSValue(newValue) } + } + @inlinable public var mipLevelCount: GPUIntegerCoordinate { + get { jsObject[Strings.mipLevelCount].fromJSValue()! } + set { jsObject[Strings.mipLevelCount] = _toJSValue(newValue) } + } + @inlinable public var baseArrayLayer: GPUIntegerCoordinate { + get { jsObject[Strings.baseArrayLayer].fromJSValue()! } + set { jsObject[Strings.baseArrayLayer] = _toJSValue(newValue) } + } + @inlinable public var arrayLayerCount: GPUIntegerCoordinate { + get { jsObject[Strings.arrayLayerCount].fromJSValue()! } + set { jsObject[Strings.arrayLayerCount] = _toJSValue(newValue) } + } } - public enum GPUTextureViewDimension: JSString, JSValueCompatible { case _1d = "1d" case _2d = "2d" @@ -3338,132 +3586,144 @@ public enum GPUTextureViewDimension: JSString, JSValueCompatible { case _3d = "3d" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class GPUUncapturedErrorEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUUncapturedErrorEvent].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error) - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.GPUUncapturedErrorEvent].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(type: String, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit) { - self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(gpuUncapturedErrorEventInitDict)])) + self.init( + unsafelyWrapping: Self.constructor!.new(arguments: [ + _toJSValue(type), _toJSValue(gpuUncapturedErrorEventInitDict), + ]) + ) } - @ReadonlyAttribute - public var error: GPUError + @inlinable public var error: GPUError { jsObject[Strings.error].fromJSValue()! } } -public class GPUUncapturedErrorEventInit: BridgedDictionary { +open class GPUUncapturedErrorEventInit: EventInit { + public convenience init(error: GPUError) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.error] = _toJSValue(error) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _error = ReadWriteAttribute(jsObject: object, name: Strings.error) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var error: GPUError + @inlinable public var error: GPUError { + get { jsObject[Strings.error].fromJSValue()! } + set { jsObject[Strings.error] = _toJSValue(newValue) } + } } - public class GPUValidationError: GPUError { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.GPUValidationError].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - super.init(unsafelyWrapping: jsObject) + @inlinable public override class var constructor: JSFunction? { + JSObject.global[Strings.GPUValidationError].function } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } + @inlinable public convenience init(message: String) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(message)])) } } -public class GPUVertexAttribute: BridgedDictionary { +open class GPUVertexAttribute: JSDictionaryCompatible { + public let jsObject: JSObject + public convenience init(format: GPUVertexFormat, offset: GPUSize64, shaderLocation: GPUIndex32) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.format] = _toJSValue(format) object[Strings.offset] = _toJSValue(offset) object[Strings.shaderLocation] = _toJSValue(shaderLocation) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _format = ReadWriteAttribute(jsObject: object, name: Strings.format) - _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset) - _shaderLocation = ReadWriteAttribute(jsObject: object, name: Strings.shaderLocation) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var format: GPUVertexFormat - - @ReadWriteAttribute - public var offset: GPUSize64 + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var shaderLocation: GPUIndex32 + @inlinable public var format: GPUVertexFormat { + get { jsObject[Strings.format].fromJSValue()! } + set { jsObject[Strings.format] = _toJSValue(newValue) } + } + @inlinable public var offset: GPUSize64 { + get { jsObject[Strings.offset].fromJSValue()! } + set { jsObject[Strings.offset] = _toJSValue(newValue) } + } + @inlinable public var shaderLocation: GPUIndex32 { + get { jsObject[Strings.shaderLocation].fromJSValue()! } + set { jsObject[Strings.shaderLocation] = _toJSValue(newValue) } + } } +open class GPUVertexBufferLayout: JSDictionaryCompatible { + public let jsObject: JSObject -public class GPUVertexBufferLayout: BridgedDictionary { - public convenience init(arrayStride: GPUSize64, stepMode: GPUVertexStepMode, attributes: [GPUVertexAttribute]) { + public convenience init( + arrayStride: GPUSize64, + stepMode: GPUVertexStepMode? = nil, + attributes: [GPUVertexAttribute] + ) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.arrayStride] = _toJSValue(arrayStride) object[Strings.stepMode] = _toJSValue(stepMode) object[Strings.attributes] = _toJSValue(attributes) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _arrayStride = ReadWriteAttribute(jsObject: object, name: Strings.arrayStride) - _stepMode = ReadWriteAttribute(jsObject: object, name: Strings.stepMode) - _attributes = ReadWriteAttribute(jsObject: object, name: Strings.attributes) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var arrayStride: GPUSize64 - - @ReadWriteAttribute - public var stepMode: GPUVertexStepMode + public required init(unsafelyWrapping object: JSObject) { self.jsObject = object } - @ReadWriteAttribute - public var attributes: [GPUVertexAttribute] + @inlinable public var arrayStride: GPUSize64 { + get { jsObject[Strings.arrayStride].fromJSValue()! } + set { jsObject[Strings.arrayStride] = _toJSValue(newValue) } + } + @inlinable public var stepMode: GPUVertexStepMode { + get { jsObject[Strings.stepMode].fromJSValue()! } + set { jsObject[Strings.stepMode] = _toJSValue(newValue) } + } + @inlinable public var attributes: [GPUVertexAttribute] { + get { jsObject[Strings.attributes].fromJSValue()! } + set { jsObject[Strings.attributes] = _toJSValue(newValue) } + } } - public enum GPUVertexFormat: JSString, JSValueCompatible { + case uint8 = "uint8" case uint8x2 = "uint8x2" case uint8x4 = "uint8x4" + case sint8 = "sint8" case sint8x2 = "sint8x2" case sint8x4 = "sint8x4" + case unorm8 = "unorm8" case unorm8x2 = "unorm8x2" case unorm8x4 = "unorm8x4" + case snorm8 = "snorm8" case snorm8x2 = "snorm8x2" case snorm8x4 = "snorm8x4" + case uint16 = "uint16" case uint16x2 = "uint16x2" case uint16x4 = "uint16x4" + case sint16 = "sint16" case sint16x2 = "sint16x2" case sint16x4 = "sint16x4" + case unorm16 = "unorm16" case unorm16x2 = "unorm16x2" case unorm16x4 = "unorm16x4" + case snorm16 = "snorm16" case snorm16x2 = "snorm16x2" case snorm16x4 = "snorm16x4" + case float16 = "float16" case float16x2 = "float16x2" case float16x4 = "float16x4" case float32 = "float32" @@ -3478,60 +3738,57 @@ public enum GPUVertexFormat: JSString, JSValueCompatible { case sint32x2 = "sint32x2" case sint32x3 = "sint32x3" case sint32x4 = "sint32x4" + case unorm1010102 = "unorm10-10-10-2" + case unorm8x4Bgra = "unorm8x4-bgra" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } +open class GPUVertexState: GPUProgrammableStage { -public class GPUVertexState: BridgedDictionary { - public convenience init(buffers: [GPUVertexBufferLayout?]) { + public convenience init( + module: GPUShaderModule, + entryPoint: String? = nil, + constants: JSObject? = nil, + buffers: [GPUVertexBufferLayout?]? = nil + ) { let object = JSObject.global[Strings.Object].function!.new() + object[Strings.module] = _toJSValue(module) + object[Strings.entryPoint] = _toJSValue(entryPoint) + object[Strings.constants] = _toJSValue(constants) object[Strings.buffers] = _toJSValue(buffers) + self.init(unsafelyWrapping: object) } - public required init(unsafelyWrapping object: JSObject) { - _buffers = ReadWriteAttribute(jsObject: object, name: Strings.buffers) - super.init(unsafelyWrapping: object) - } + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var buffers: [GPUVertexBufferLayout?] + @inlinable public var buffers: [GPUVertexBufferLayout?] { + get { jsObject[Strings.buffers].fromJSValue()! } + set { jsObject[Strings.buffers] = _toJSValue(newValue) } + } } - public enum GPUVertexStepMode: JSString, JSValueCompatible { case vertex = "vertex" case instance = "instance" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public protocol NavigatorGPU: JSBridgedClass {} -public extension NavigatorGPU { - @inlinable var gpu: GPU { jsObject[Strings.gpu].fromJSValue()! } -} - +extension NavigatorGPU { @inlinable public var gpu: GPU { jsObject[Strings.gpu].fromJSValue()! } } extension Navigator: NavigatorGPU {} public typealias GPUBufferUsageFlags = UInt32 @@ -3546,7 +3803,7 @@ public typealias GPUBufferDynamicOffset = UInt32 public typealias GPUStencilValue = UInt32 public typealias GPUSampleMask = UInt32 public typealias GPUDepthBias = Int32 -public typealias GPUSize64 = UInt64 +public typealias GPUSize64 = UInt32 public typealias GPUIntegerCoordinate = UInt32 public typealias GPUIndex32 = UInt32 public typealias GPUSize32 = UInt32 @@ -3561,314 +3818,319 @@ public class WGSLLanguageFeatures: JSBridgedClass { public let jsObject: JSObject - public required init(unsafelyWrapping jsObject: JSObject) { - self.jsObject = jsObject - } + public required init(unsafelyWrapping jsObject: JSObject) { self.jsObject = jsObject } // XXX: make me Set-like! } @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let GPU: JSString = "GPU" - @usableFromInline static let GPUAdapter: JSString = "GPUAdapter" - @usableFromInline static let GPUAdapterInfo: JSString = "GPUAdapterInfo" - @usableFromInline static let GPUBindGroup: JSString = "GPUBindGroup" - @usableFromInline static let GPUBindGroupLayout: JSString = "GPUBindGroupLayout" - @usableFromInline static let GPUBuffer: JSString = "GPUBuffer" - @usableFromInline static let GPUBufferUsage: JSString = "GPUBufferUsage" - @usableFromInline static let GPUCanvasContext: JSString = "GPUCanvasContext" - @usableFromInline static let GPUColorWrite: JSString = "GPUColorWrite" - @usableFromInline static let GPUCommandBuffer: JSString = "GPUCommandBuffer" - @usableFromInline static let GPUCommandEncoder: JSString = "GPUCommandEncoder" - @usableFromInline static let GPUCompilationInfo: JSString = "GPUCompilationInfo" - @usableFromInline static let GPUCompilationMessage: JSString = "GPUCompilationMessage" - @usableFromInline static let GPUComputePassEncoder: JSString = "GPUComputePassEncoder" - @usableFromInline static let GPUComputePipeline: JSString = "GPUComputePipeline" - @usableFromInline static let GPUDevice: JSString = "GPUDevice" - @usableFromInline static let GPUDeviceLostInfo: JSString = "GPUDeviceLostInfo" - @usableFromInline static let GPUError: JSString = "GPUError" - @usableFromInline static let GPUExternalTexture: JSString = "GPUExternalTexture" - @usableFromInline static let GPUInternalError: JSString = "GPUInternalError" - @usableFromInline static let GPUMapMode: JSString = "GPUMapMode" - @usableFromInline static let GPUOutOfMemoryError: JSString = "GPUOutOfMemoryError" - @usableFromInline static let GPUPipelineError: JSString = "GPUPipelineError" - @usableFromInline static let GPUPipelineLayout: JSString = "GPUPipelineLayout" - @usableFromInline static let GPUQuerySet: JSString = "GPUQuerySet" - @usableFromInline static let GPUQueue: JSString = "GPUQueue" - @usableFromInline static let GPURenderBundle: JSString = "GPURenderBundle" - @usableFromInline static let GPURenderBundleEncoder: JSString = "GPURenderBundleEncoder" - @usableFromInline static let GPURenderPassEncoder: JSString = "GPURenderPassEncoder" - @usableFromInline static let GPURenderPipeline: JSString = "GPURenderPipeline" - @usableFromInline static let GPUSampler: JSString = "GPUSampler" - @usableFromInline static let GPUShaderModule: JSString = "GPUShaderModule" - @usableFromInline static let GPUShaderStage: JSString = "GPUShaderStage" - @usableFromInline static let GPUSupportedFeatures: JSString = "GPUSupportedFeatures" - @usableFromInline static let GPUSupportedLimits: JSString = "GPUSupportedLimits" - @usableFromInline static let GPUTexture: JSString = "GPUTexture" - @usableFromInline static let GPUTextureUsage: JSString = "GPUTextureUsage" - @usableFromInline static let GPUTextureView: JSString = "GPUTextureView" - @usableFromInline static let GPUUncapturedErrorEvent: JSString = "GPUUncapturedErrorEvent" - @usableFromInline static let GPUValidationError: JSString = "GPUValidationError" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let WGSLLanguageFeatures: JSString = "WGSLLanguageFeatures" - @usableFromInline static let a: JSString = "a" - @usableFromInline static let access: JSString = "access" - @usableFromInline static let addressModeU: JSString = "addressModeU" - @usableFromInline static let addressModeV: JSString = "addressModeV" - @usableFromInline static let addressModeW: JSString = "addressModeW" - @usableFromInline static let alpha: JSString = "alpha" - @usableFromInline static let alphaMode: JSString = "alphaMode" - @usableFromInline static let alphaToCoverageEnabled: JSString = "alphaToCoverageEnabled" - @usableFromInline static let architecture: JSString = "architecture" - @usableFromInline static let arrayLayerCount: JSString = "arrayLayerCount" - @usableFromInline static let arrayStride: JSString = "arrayStride" - @usableFromInline static let aspect: JSString = "aspect" - @usableFromInline static let attributes: JSString = "attributes" - @usableFromInline static let b: JSString = "b" - @usableFromInline static let baseArrayLayer: JSString = "baseArrayLayer" - @usableFromInline static let baseMipLevel: JSString = "baseMipLevel" - @usableFromInline static let beginComputePass: JSString = "beginComputePass" - @usableFromInline static let beginOcclusionQuery: JSString = "beginOcclusionQuery" - @usableFromInline static let beginRenderPass: JSString = "beginRenderPass" - @usableFromInline static let beginningOfPassWriteIndex: JSString = "beginningOfPassWriteIndex" - @usableFromInline static let bindGroupLayouts: JSString = "bindGroupLayouts" - @usableFromInline static let binding: JSString = "binding" - @usableFromInline static let blend: JSString = "blend" - @usableFromInline static let buffer: JSString = "buffer" - @usableFromInline static let buffers: JSString = "buffers" - @usableFromInline static let bytesPerRow: JSString = "bytesPerRow" - @usableFromInline static let canvas: JSString = "canvas" - @usableFromInline static let clearBuffer: JSString = "clearBuffer" - @usableFromInline static let clearValue: JSString = "clearValue" - @usableFromInline static let code: JSString = "code" - @usableFromInline static let color: JSString = "color" - @usableFromInline static let colorAttachments: JSString = "colorAttachments" - @usableFromInline static let colorFormats: JSString = "colorFormats" - @usableFromInline static let colorSpace: JSString = "colorSpace" - @usableFromInline static let compare: JSString = "compare" - @usableFromInline static let compute: JSString = "compute" - @usableFromInline static let configure: JSString = "configure" - @usableFromInline static let constants: JSString = "constants" - @usableFromInline static let copyBufferToBuffer: JSString = "copyBufferToBuffer" - @usableFromInline static let copyBufferToTexture: JSString = "copyBufferToTexture" - @usableFromInline static let copyExternalImageToTexture: JSString = "copyExternalImageToTexture" - @usableFromInline static let copyTextureToBuffer: JSString = "copyTextureToBuffer" - @usableFromInline static let copyTextureToTexture: JSString = "copyTextureToTexture" - @usableFromInline static let count: JSString = "count" - @usableFromInline static let createBindGroup: JSString = "createBindGroup" - @usableFromInline static let createBindGroupLayout: JSString = "createBindGroupLayout" - @usableFromInline static let createBuffer: JSString = "createBuffer" - @usableFromInline static let createCommandEncoder: JSString = "createCommandEncoder" - @usableFromInline static let createComputePipeline: JSString = "createComputePipeline" - @usableFromInline static let createComputePipelineAsync: JSString = "createComputePipelineAsync" - @usableFromInline static let createPipelineLayout: JSString = "createPipelineLayout" - @usableFromInline static let createQuerySet: JSString = "createQuerySet" - @usableFromInline static let createRenderBundleEncoder: JSString = "createRenderBundleEncoder" - @usableFromInline static let createRenderPipeline: JSString = "createRenderPipeline" - @usableFromInline static let createRenderPipelineAsync: JSString = "createRenderPipelineAsync" - @usableFromInline static let createSampler: JSString = "createSampler" - @usableFromInline static let createShaderModule: JSString = "createShaderModule" - @usableFromInline static let createTexture: JSString = "createTexture" - @usableFromInline static let createView: JSString = "createView" - @usableFromInline static let cullMode: JSString = "cullMode" - @usableFromInline static let defaultQueue: JSString = "defaultQueue" - @usableFromInline static let depthBias: JSString = "depthBias" - @usableFromInline static let depthBiasClamp: JSString = "depthBiasClamp" - @usableFromInline static let depthBiasSlopeScale: JSString = "depthBiasSlopeScale" - @usableFromInline static let depthClearValue: JSString = "depthClearValue" - @usableFromInline static let depthCompare: JSString = "depthCompare" - @usableFromInline static let depthFailOp: JSString = "depthFailOp" - @usableFromInline static let depthLoadOp: JSString = "depthLoadOp" - @usableFromInline static let depthOrArrayLayers: JSString = "depthOrArrayLayers" - @usableFromInline static let depthReadOnly: JSString = "depthReadOnly" - @usableFromInline static let depthStencil: JSString = "depthStencil" - @usableFromInline static let depthStencilAttachment: JSString = "depthStencilAttachment" - @usableFromInline static let depthStencilFormat: JSString = "depthStencilFormat" - @usableFromInline static let depthStoreOp: JSString = "depthStoreOp" - @usableFromInline static let depthWriteEnabled: JSString = "depthWriteEnabled" - @usableFromInline static let description: JSString = "description" - @usableFromInline static let destroy: JSString = "destroy" - @usableFromInline static let device: JSString = "device" - @usableFromInline static let dimension: JSString = "dimension" - @usableFromInline static let dispatchWorkgroups: JSString = "dispatchWorkgroups" - @usableFromInline static let dispatchWorkgroupsIndirect: JSString = "dispatchWorkgroupsIndirect" - @usableFromInline static let draw: JSString = "draw" - @usableFromInline static let drawIndexed: JSString = "drawIndexed" - @usableFromInline static let drawIndexedIndirect: JSString = "drawIndexedIndirect" - @usableFromInline static let drawIndirect: JSString = "drawIndirect" - @usableFromInline static let dstFactor: JSString = "dstFactor" - @usableFromInline static let end: JSString = "end" - @usableFromInline static let endOcclusionQuery: JSString = "endOcclusionQuery" - @usableFromInline static let endOfPassWriteIndex: JSString = "endOfPassWriteIndex" - @usableFromInline static let entries: JSString = "entries" - @usableFromInline static let entryPoint: JSString = "entryPoint" - @usableFromInline static let error: JSString = "error" - @usableFromInline static let executeBundles: JSString = "executeBundles" - @usableFromInline static let externalTexture: JSString = "externalTexture" - @usableFromInline static let failOp: JSString = "failOp" - @usableFromInline static let features: JSString = "features" - @usableFromInline static let finish: JSString = "finish" - @usableFromInline static let flipY: JSString = "flipY" - @usableFromInline static let forceFallbackAdapter: JSString = "forceFallbackAdapter" - @usableFromInline static let format: JSString = "format" - @usableFromInline static let fragment: JSString = "fragment" - @usableFromInline static let frontFace: JSString = "frontFace" - @usableFromInline static let g: JSString = "g" - @usableFromInline static let getBindGroupLayout: JSString = "getBindGroupLayout" - @usableFromInline static let getCompilationInfo: JSString = "getCompilationInfo" - @usableFromInline static let getCurrentTexture: JSString = "getCurrentTexture" - @usableFromInline static let getMappedRange: JSString = "getMappedRange" - @usableFromInline static let getPreferredCanvasFormat: JSString = "getPreferredCanvasFormat" - @usableFromInline static let gpu: JSString = "gpu" - @usableFromInline static let hasDynamicOffset: JSString = "hasDynamicOffset" - @usableFromInline static let height: JSString = "height" - @usableFromInline static let hints: JSString = "hints" - @usableFromInline static let importExternalTexture: JSString = "importExternalTexture" - @usableFromInline static let insertDebugMarker: JSString = "insertDebugMarker" - @usableFromInline static let isFallbackAdapter: JSString = "isFallbackAdapter" - @usableFromInline static let label: JSString = "label" - @usableFromInline static let layout: JSString = "layout" - @usableFromInline static let length: JSString = "length" - @usableFromInline static let limits: JSString = "limits" - @usableFromInline static let lineNum: JSString = "lineNum" - @usableFromInline static let linePos: JSString = "linePos" - @usableFromInline static let loadOp: JSString = "loadOp" - @usableFromInline static let lodMaxClamp: JSString = "lodMaxClamp" - @usableFromInline static let lodMinClamp: JSString = "lodMinClamp" - @usableFromInline static let lost: JSString = "lost" - @usableFromInline static let magFilter: JSString = "magFilter" - @usableFromInline static let mapAsync: JSString = "mapAsync" - @usableFromInline static let mapState: JSString = "mapState" - @usableFromInline static let mappedAtCreation: JSString = "mappedAtCreation" - @usableFromInline static let mask: JSString = "mask" - @usableFromInline static let maxAnisotropy: JSString = "maxAnisotropy" - @usableFromInline static let maxBindGroups: JSString = "maxBindGroups" - @usableFromInline static let maxBindGroupsPlusVertexBuffers: JSString = "maxBindGroupsPlusVertexBuffers" - @usableFromInline static let maxBindingsPerBindGroup: JSString = "maxBindingsPerBindGroup" - @usableFromInline static let maxBufferSize: JSString = "maxBufferSize" - @usableFromInline static let maxColorAttachmentBytesPerSample: JSString = "maxColorAttachmentBytesPerSample" - @usableFromInline static let maxColorAttachments: JSString = "maxColorAttachments" - @usableFromInline static let maxComputeInvocationsPerWorkgroup: JSString = "maxComputeInvocationsPerWorkgroup" - @usableFromInline static let maxComputeWorkgroupSizeX: JSString = "maxComputeWorkgroupSizeX" - @usableFromInline static let maxComputeWorkgroupSizeY: JSString = "maxComputeWorkgroupSizeY" - @usableFromInline static let maxComputeWorkgroupSizeZ: JSString = "maxComputeWorkgroupSizeZ" - @usableFromInline static let maxComputeWorkgroupStorageSize: JSString = "maxComputeWorkgroupStorageSize" - @usableFromInline static let maxComputeWorkgroupsPerDimension: JSString = "maxComputeWorkgroupsPerDimension" - @usableFromInline static let maxDrawCount: JSString = "maxDrawCount" - @usableFromInline static let maxDynamicStorageBuffersPerPipelineLayout: JSString = "maxDynamicStorageBuffersPerPipelineLayout" - @usableFromInline static let maxDynamicUniformBuffersPerPipelineLayout: JSString = "maxDynamicUniformBuffersPerPipelineLayout" - @usableFromInline static let maxInterStageShaderComponents: JSString = "maxInterStageShaderComponents" - @usableFromInline static let maxInterStageShaderVariables: JSString = "maxInterStageShaderVariables" - @usableFromInline static let maxSampledTexturesPerShaderStage: JSString = "maxSampledTexturesPerShaderStage" - @usableFromInline static let maxSamplersPerShaderStage: JSString = "maxSamplersPerShaderStage" - @usableFromInline static let maxStorageBufferBindingSize: JSString = "maxStorageBufferBindingSize" - @usableFromInline static let maxStorageBuffersPerShaderStage: JSString = "maxStorageBuffersPerShaderStage" - @usableFromInline static let maxStorageTexturesPerShaderStage: JSString = "maxStorageTexturesPerShaderStage" - @usableFromInline static let maxTextureArrayLayers: JSString = "maxTextureArrayLayers" - @usableFromInline static let maxTextureDimension1D: JSString = "maxTextureDimension1D" - @usableFromInline static let maxTextureDimension2D: JSString = "maxTextureDimension2D" - @usableFromInline static let maxTextureDimension3D: JSString = "maxTextureDimension3D" - @usableFromInline static let maxUniformBufferBindingSize: JSString = "maxUniformBufferBindingSize" - @usableFromInline static let maxUniformBuffersPerShaderStage: JSString = "maxUniformBuffersPerShaderStage" - @usableFromInline static let maxVertexAttributes: JSString = "maxVertexAttributes" - @usableFromInline static let maxVertexBufferArrayStride: JSString = "maxVertexBufferArrayStride" - @usableFromInline static let maxVertexBuffers: JSString = "maxVertexBuffers" - @usableFromInline static let message: JSString = "message" - @usableFromInline static let messages: JSString = "messages" - @usableFromInline static let minBindingSize: JSString = "minBindingSize" - @usableFromInline static let minFilter: JSString = "minFilter" - @usableFromInline static let minStorageBufferOffsetAlignment: JSString = "minStorageBufferOffsetAlignment" - @usableFromInline static let minUniformBufferOffsetAlignment: JSString = "minUniformBufferOffsetAlignment" - @usableFromInline static let mipLevel: JSString = "mipLevel" - @usableFromInline static let mipLevelCount: JSString = "mipLevelCount" - @usableFromInline static let mipmapFilter: JSString = "mipmapFilter" - @usableFromInline static let module: JSString = "module" - @usableFromInline static let multisample: JSString = "multisample" - @usableFromInline static let multisampled: JSString = "multisampled" - @usableFromInline static let occlusionQuerySet: JSString = "occlusionQuerySet" - @usableFromInline static let offset: JSString = "offset" - @usableFromInline static let onSubmittedWorkDone: JSString = "onSubmittedWorkDone" - @usableFromInline static let onuncapturederror: JSString = "onuncapturederror" - @usableFromInline static let operation: JSString = "operation" - @usableFromInline static let origin: JSString = "origin" - @usableFromInline static let passOp: JSString = "passOp" - @usableFromInline static let popDebugGroup: JSString = "popDebugGroup" - @usableFromInline static let popErrorScope: JSString = "popErrorScope" - @usableFromInline static let powerPreference: JSString = "powerPreference" - @usableFromInline static let premultipliedAlpha: JSString = "premultipliedAlpha" - @usableFromInline static let primitive: JSString = "primitive" - @usableFromInline static let pushDebugGroup: JSString = "pushDebugGroup" - @usableFromInline static let pushErrorScope: JSString = "pushErrorScope" - @usableFromInline static let querySet: JSString = "querySet" - @usableFromInline static let queue: JSString = "queue" - @usableFromInline static let r: JSString = "r" - @usableFromInline static let reason: JSString = "reason" - @usableFromInline static let requestAdapter: JSString = "requestAdapter" - @usableFromInline static let requestAdapterInfo: JSString = "requestAdapterInfo" - @usableFromInline static let requestDevice: JSString = "requestDevice" - @usableFromInline static let requiredFeatures: JSString = "requiredFeatures" - @usableFromInline static let requiredLimits: JSString = "requiredLimits" - @usableFromInline static let resolveQuerySet: JSString = "resolveQuerySet" - @usableFromInline static let resolveTarget: JSString = "resolveTarget" - @usableFromInline static let resource: JSString = "resource" - @usableFromInline static let rowsPerImage: JSString = "rowsPerImage" - @usableFromInline static let sampleCount: JSString = "sampleCount" - @usableFromInline static let sampleType: JSString = "sampleType" - @usableFromInline static let sampler: JSString = "sampler" - @usableFromInline static let setBindGroup: JSString = "setBindGroup" - @usableFromInline static let setBlendConstant: JSString = "setBlendConstant" - @usableFromInline static let setIndexBuffer: JSString = "setIndexBuffer" - @usableFromInline static let setPipeline: JSString = "setPipeline" - @usableFromInline static let setScissorRect: JSString = "setScissorRect" - @usableFromInline static let setStencilReference: JSString = "setStencilReference" - @usableFromInline static let setVertexBuffer: JSString = "setVertexBuffer" - @usableFromInline static let setViewport: JSString = "setViewport" - @usableFromInline static let shaderLocation: JSString = "shaderLocation" - @usableFromInline static let size: JSString = "size" - @usableFromInline static let source: JSString = "source" - @usableFromInline static let sourceMap: JSString = "sourceMap" - @usableFromInline static let srcFactor: JSString = "srcFactor" - @usableFromInline static let stencilBack: JSString = "stencilBack" - @usableFromInline static let stencilClearValue: JSString = "stencilClearValue" - @usableFromInline static let stencilFront: JSString = "stencilFront" - @usableFromInline static let stencilLoadOp: JSString = "stencilLoadOp" - @usableFromInline static let stencilReadMask: JSString = "stencilReadMask" - @usableFromInline static let stencilReadOnly: JSString = "stencilReadOnly" - @usableFromInline static let stencilStoreOp: JSString = "stencilStoreOp" - @usableFromInline static let stencilWriteMask: JSString = "stencilWriteMask" - @usableFromInline static let stepMode: JSString = "stepMode" - @usableFromInline static let storageTexture: JSString = "storageTexture" - @usableFromInline static let storeOp: JSString = "storeOp" - @usableFromInline static let stripIndexFormat: JSString = "stripIndexFormat" - @usableFromInline static let submit: JSString = "submit" - @usableFromInline static let targets: JSString = "targets" - @usableFromInline static let texture: JSString = "texture" - @usableFromInline static let timestampWrites: JSString = "timestampWrites" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let topology: JSString = "topology" - @usableFromInline static let type: JSString = "type" - @usableFromInline static let unclippedDepth: JSString = "unclippedDepth" - @usableFromInline static let unconfigure: JSString = "unconfigure" - @usableFromInline static let unmap: JSString = "unmap" - @usableFromInline static let usage: JSString = "usage" - @usableFromInline static let vendor: JSString = "vendor" - @usableFromInline static let vertex: JSString = "vertex" - @usableFromInline static let view: JSString = "view" - @usableFromInline static let viewDimension: JSString = "viewDimension" - @usableFromInline static let viewFormats: JSString = "viewFormats" - @usableFromInline static let visibility: JSString = "visibility" - @usableFromInline static let wgslLanguageFeatures: JSString = "wgslLanguageFeatures" - @usableFromInline static let width: JSString = "width" - @usableFromInline static let writeBuffer: JSString = "writeBuffer" - @usableFromInline static let writeMask: JSString = "writeMask" - @usableFromInline static let writeTexture: JSString = "writeTexture" - @usableFromInline static let writeTimestamp: JSString = "writeTimestamp" - @usableFromInline static let x: JSString = "x" - @usableFromInline static let y: JSString = "y" - @usableFromInline static let z: JSString = "z" + @usableFromInline static let `GPU`: JSString = "GPU" + @usableFromInline static let `GPUAdapter`: JSString = "GPUAdapter" + @usableFromInline static let `GPUAdapterInfo`: JSString = "GPUAdapterInfo" + @usableFromInline static let `GPUBindGroup`: JSString = "GPUBindGroup" + @usableFromInline static let `GPUBindGroupLayout`: JSString = "GPUBindGroupLayout" + @usableFromInline static let `GPUBuffer`: JSString = "GPUBuffer" + @usableFromInline static let `GPUBufferUsage`: JSString = "GPUBufferUsage" + @usableFromInline static let `GPUCanvasContext`: JSString = "GPUCanvasContext" + @usableFromInline static let `GPUColorWrite`: JSString = "GPUColorWrite" + @usableFromInline static let `GPUCommandBuffer`: JSString = "GPUCommandBuffer" + @usableFromInline static let `GPUCommandEncoder`: JSString = "GPUCommandEncoder" + @usableFromInline static let `GPUCompilationInfo`: JSString = "GPUCompilationInfo" + @usableFromInline static let `GPUCompilationMessage`: JSString = "GPUCompilationMessage" + @usableFromInline static let `GPUComputePassEncoder`: JSString = "GPUComputePassEncoder" + @usableFromInline static let `GPUComputePipeline`: JSString = "GPUComputePipeline" + @usableFromInline static let `GPUDevice`: JSString = "GPUDevice" + @usableFromInline static let `GPUDeviceLostInfo`: JSString = "GPUDeviceLostInfo" + @usableFromInline static let `GPUError`: JSString = "GPUError" + @usableFromInline static let `GPUExternalTexture`: JSString = "GPUExternalTexture" + @usableFromInline static let `GPUInternalError`: JSString = "GPUInternalError" + @usableFromInline static let `GPUMapMode`: JSString = "GPUMapMode" + @usableFromInline static let `GPUOutOfMemoryError`: JSString = "GPUOutOfMemoryError" + @usableFromInline static let `GPUPipelineError`: JSString = "GPUPipelineError" + @usableFromInline static let `GPUPipelineLayout`: JSString = "GPUPipelineLayout" + @usableFromInline static let `GPUQuerySet`: JSString = "GPUQuerySet" + @usableFromInline static let `GPUQueue`: JSString = "GPUQueue" + @usableFromInline static let `GPURenderBundle`: JSString = "GPURenderBundle" + @usableFromInline static let `GPURenderBundleEncoder`: JSString = "GPURenderBundleEncoder" + @usableFromInline static let `GPURenderPassEncoder`: JSString = "GPURenderPassEncoder" + @usableFromInline static let `GPURenderPipeline`: JSString = "GPURenderPipeline" + @usableFromInline static let `GPUSampler`: JSString = "GPUSampler" + @usableFromInline static let `GPUShaderModule`: JSString = "GPUShaderModule" + @usableFromInline static let `GPUShaderStage`: JSString = "GPUShaderStage" + @usableFromInline static let `GPUSupportedFeatures`: JSString = "GPUSupportedFeatures" + @usableFromInline static let `GPUSupportedLimits`: JSString = "GPUSupportedLimits" + @usableFromInline static let `GPUTexture`: JSString = "GPUTexture" + @usableFromInline static let `GPUTextureUsage`: JSString = "GPUTextureUsage" + @usableFromInline static let `GPUTextureView`: JSString = "GPUTextureView" + @usableFromInline static let `GPUUncapturedErrorEvent`: JSString = "GPUUncapturedErrorEvent" + @usableFromInline static let `GPUValidationError`: JSString = "GPUValidationError" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `WGSLLanguageFeatures`: JSString = "WGSLLanguageFeatures" + @usableFromInline static let `a`: JSString = "a" + @usableFromInline static let `access`: JSString = "access" + @usableFromInline static let `adapterInfo`: JSString = "adapterInfo" + @usableFromInline static let `addressModeU`: JSString = "addressModeU" + @usableFromInline static let `addressModeV`: JSString = "addressModeV" + @usableFromInline static let `addressModeW`: JSString = "addressModeW" + @usableFromInline static let `alpha`: JSString = "alpha" + @usableFromInline static let `alphaMode`: JSString = "alphaMode" + @usableFromInline static let `alphaToCoverageEnabled`: JSString = "alphaToCoverageEnabled" + @usableFromInline static let `architecture`: JSString = "architecture" + @usableFromInline static let `arrayLayerCount`: JSString = "arrayLayerCount" + @usableFromInline static let `arrayStride`: JSString = "arrayStride" + @usableFromInline static let `aspect`: JSString = "aspect" + @usableFromInline static let `attributes`: JSString = "attributes" + @usableFromInline static let `b`: JSString = "b" + @usableFromInline static let `baseArrayLayer`: JSString = "baseArrayLayer" + @usableFromInline static let `baseMipLevel`: JSString = "baseMipLevel" + @usableFromInline static let `beginComputePass`: JSString = "beginComputePass" + @usableFromInline static let `beginOcclusionQuery`: JSString = "beginOcclusionQuery" + @usableFromInline static let `beginRenderPass`: JSString = "beginRenderPass" + @usableFromInline static let `beginningOfPassWriteIndex`: JSString = "beginningOfPassWriteIndex" + @usableFromInline static let `bindGroupLayouts`: JSString = "bindGroupLayouts" + @usableFromInline static let `binding`: JSString = "binding" + @usableFromInline static let `blend`: JSString = "blend" + @usableFromInline static let `buffer`: JSString = "buffer" + @usableFromInline static let `buffers`: JSString = "buffers" + @usableFromInline static let `bytesPerRow`: JSString = "bytesPerRow" + @usableFromInline static let `canvas`: JSString = "canvas" + @usableFromInline static let `clearBuffer`: JSString = "clearBuffer" + @usableFromInline static let `clearValue`: JSString = "clearValue" + @usableFromInline static let `code`: JSString = "code" + @usableFromInline static let `color`: JSString = "color" + @usableFromInline static let `colorAttachments`: JSString = "colorAttachments" + @usableFromInline static let `colorFormats`: JSString = "colorFormats" + @usableFromInline static let `colorSpace`: JSString = "colorSpace" + @usableFromInline static let `compare`: JSString = "compare" + @usableFromInline static let `compilationHints`: JSString = "compilationHints" + @usableFromInline static let `compute`: JSString = "compute" + @usableFromInline static let `configure`: JSString = "configure" + @usableFromInline static let `constants`: JSString = "constants" + @usableFromInline static let `copyBufferToBuffer`: JSString = "copyBufferToBuffer" + @usableFromInline static let `copyBufferToTexture`: JSString = "copyBufferToTexture" + @usableFromInline static let `copyExternalImageToTexture`: JSString = "copyExternalImageToTexture" + @usableFromInline static let `copyTextureToBuffer`: JSString = "copyTextureToBuffer" + @usableFromInline static let `copyTextureToTexture`: JSString = "copyTextureToTexture" + @usableFromInline static let `count`: JSString = "count" + @usableFromInline static let `createBindGroup`: JSString = "createBindGroup" + @usableFromInline static let `createBindGroupLayout`: JSString = "createBindGroupLayout" + @usableFromInline static let `createBuffer`: JSString = "createBuffer" + @usableFromInline static let `createCommandEncoder`: JSString = "createCommandEncoder" + @usableFromInline static let `createComputePipeline`: JSString = "createComputePipeline" + @usableFromInline static let `createComputePipelineAsync`: JSString = "createComputePipelineAsync" + @usableFromInline static let `createPipelineLayout`: JSString = "createPipelineLayout" + @usableFromInline static let `createQuerySet`: JSString = "createQuerySet" + @usableFromInline static let `createRenderBundleEncoder`: JSString = "createRenderBundleEncoder" + @usableFromInline static let `createRenderPipeline`: JSString = "createRenderPipeline" + @usableFromInline static let `createRenderPipelineAsync`: JSString = "createRenderPipelineAsync" + @usableFromInline static let `createSampler`: JSString = "createSampler" + @usableFromInline static let `createShaderModule`: JSString = "createShaderModule" + @usableFromInline static let `createTexture`: JSString = "createTexture" + @usableFromInline static let `createView`: JSString = "createView" + @usableFromInline static let `cullMode`: JSString = "cullMode" + @usableFromInline static let `defaultQueue`: JSString = "defaultQueue" + @usableFromInline static let `depthBias`: JSString = "depthBias" + @usableFromInline static let `depthBiasClamp`: JSString = "depthBiasClamp" + @usableFromInline static let `depthBiasSlopeScale`: JSString = "depthBiasSlopeScale" + @usableFromInline static let `depthClearValue`: JSString = "depthClearValue" + @usableFromInline static let `depthCompare`: JSString = "depthCompare" + @usableFromInline static let `depthFailOp`: JSString = "depthFailOp" + @usableFromInline static let `depthLoadOp`: JSString = "depthLoadOp" + @usableFromInline static let `depthOrArrayLayers`: JSString = "depthOrArrayLayers" + @usableFromInline static let `depthReadOnly`: JSString = "depthReadOnly" + @usableFromInline static let `depthSlice`: JSString = "depthSlice" + @usableFromInline static let `depthStencil`: JSString = "depthStencil" + @usableFromInline static let `depthStencilAttachment`: JSString = "depthStencilAttachment" + @usableFromInline static let `depthStencilFormat`: JSString = "depthStencilFormat" + @usableFromInline static let `depthStoreOp`: JSString = "depthStoreOp" + @usableFromInline static let `depthWriteEnabled`: JSString = "depthWriteEnabled" + @usableFromInline static let `description`: JSString = "description" + @usableFromInline static let `destroy`: JSString = "destroy" + @usableFromInline static let `device`: JSString = "device" + @usableFromInline static let `dimension`: JSString = "dimension" + @usableFromInline static let `dispatchWorkgroups`: JSString = "dispatchWorkgroups" + @usableFromInline static let `dispatchWorkgroupsIndirect`: JSString = "dispatchWorkgroupsIndirect" + @usableFromInline static let `draw`: JSString = "draw" + @usableFromInline static let `drawIndexed`: JSString = "drawIndexed" + @usableFromInline static let `drawIndexedIndirect`: JSString = "drawIndexedIndirect" + @usableFromInline static let `drawIndirect`: JSString = "drawIndirect" + @usableFromInline static let `dstFactor`: JSString = "dstFactor" + @usableFromInline static let `end`: JSString = "end" + @usableFromInline static let `endOcclusionQuery`: JSString = "endOcclusionQuery" + @usableFromInline static let `endOfPassWriteIndex`: JSString = "endOfPassWriteIndex" + @usableFromInline static let `entries`: JSString = "entries" + @usableFromInline static let `entryPoint`: JSString = "entryPoint" + @usableFromInline static let `error`: JSString = "error" + @usableFromInline static let `executeBundles`: JSString = "executeBundles" + @usableFromInline static let `externalTexture`: JSString = "externalTexture" + @usableFromInline static let `failOp`: JSString = "failOp" + @usableFromInline static let `featureLevel`: JSString = "featureLevel" + @usableFromInline static let `features`: JSString = "features" + @usableFromInline static let `finish`: JSString = "finish" + @usableFromInline static let `flipY`: JSString = "flipY" + @usableFromInline static let `forceFallbackAdapter`: JSString = "forceFallbackAdapter" + @usableFromInline static let `format`: JSString = "format" + @usableFromInline static let `fragment`: JSString = "fragment" + @usableFromInline static let `frontFace`: JSString = "frontFace" + @usableFromInline static let `g`: JSString = "g" + @usableFromInline static let `getBindGroupLayout`: JSString = "getBindGroupLayout" + @usableFromInline static let `getCompilationInfo`: JSString = "getCompilationInfo" + @usableFromInline static let `getConfiguration`: JSString = "getConfiguration" + @usableFromInline static let `getCurrentTexture`: JSString = "getCurrentTexture" + @usableFromInline static let `getMappedRange`: JSString = "getMappedRange" + @usableFromInline static let `getPreferredCanvasFormat`: JSString = "getPreferredCanvasFormat" + @usableFromInline static let `gpu`: JSString = "gpu" + @usableFromInline static let `hasDynamicOffset`: JSString = "hasDynamicOffset" + @usableFromInline static let `height`: JSString = "height" + @usableFromInline static let `importExternalTexture`: JSString = "importExternalTexture" + @usableFromInline static let `info`: JSString = "info" + @usableFromInline static let `insertDebugMarker`: JSString = "insertDebugMarker" + @usableFromInline static let `isFallbackAdapter`: JSString = "isFallbackAdapter" + @usableFromInline static let `label`: JSString = "label" + @usableFromInline static let `layout`: JSString = "layout" + @usableFromInline static let `length`: JSString = "length" + @usableFromInline static let `limits`: JSString = "limits" + @usableFromInline static let `lineNum`: JSString = "lineNum" + @usableFromInline static let `linePos`: JSString = "linePos" + @usableFromInline static let `loadOp`: JSString = "loadOp" + @usableFromInline static let `lodMaxClamp`: JSString = "lodMaxClamp" + @usableFromInline static let `lodMinClamp`: JSString = "lodMinClamp" + @usableFromInline static let `lost`: JSString = "lost" + @usableFromInline static let `magFilter`: JSString = "magFilter" + @usableFromInline static let `mapAsync`: JSString = "mapAsync" + @usableFromInline static let `mapState`: JSString = "mapState" + @usableFromInline static let `mappedAtCreation`: JSString = "mappedAtCreation" + @usableFromInline static let `mask`: JSString = "mask" + @usableFromInline static let `maxAnisotropy`: JSString = "maxAnisotropy" + @usableFromInline static let `maxBindGroups`: JSString = "maxBindGroups" + @usableFromInline static let `maxBindGroupsPlusVertexBuffers`: JSString = "maxBindGroupsPlusVertexBuffers" + @usableFromInline static let `maxBindingsPerBindGroup`: JSString = "maxBindingsPerBindGroup" + @usableFromInline static let `maxBufferSize`: JSString = "maxBufferSize" + @usableFromInline static let `maxColorAttachmentBytesPerSample`: JSString = "maxColorAttachmentBytesPerSample" + @usableFromInline static let `maxColorAttachments`: JSString = "maxColorAttachments" + @usableFromInline static let `maxComputeInvocationsPerWorkgroup`: JSString = "maxComputeInvocationsPerWorkgroup" + @usableFromInline static let `maxComputeWorkgroupSizeX`: JSString = "maxComputeWorkgroupSizeX" + @usableFromInline static let `maxComputeWorkgroupSizeY`: JSString = "maxComputeWorkgroupSizeY" + @usableFromInline static let `maxComputeWorkgroupSizeZ`: JSString = "maxComputeWorkgroupSizeZ" + @usableFromInline static let `maxComputeWorkgroupStorageSize`: JSString = "maxComputeWorkgroupStorageSize" + @usableFromInline static let `maxComputeWorkgroupsPerDimension`: JSString = "maxComputeWorkgroupsPerDimension" + @usableFromInline static let `maxDrawCount`: JSString = "maxDrawCount" + @usableFromInline static let `maxDynamicStorageBuffersPerPipelineLayout`: JSString = + "maxDynamicStorageBuffersPerPipelineLayout" + @usableFromInline static let `maxDynamicUniformBuffersPerPipelineLayout`: JSString = + "maxDynamicUniformBuffersPerPipelineLayout" + @usableFromInline static let `maxInterStageShaderVariables`: JSString = "maxInterStageShaderVariables" + @usableFromInline static let `maxSampledTexturesPerShaderStage`: JSString = "maxSampledTexturesPerShaderStage" + @usableFromInline static let `maxSamplersPerShaderStage`: JSString = "maxSamplersPerShaderStage" + @usableFromInline static let `maxStorageBufferBindingSize`: JSString = "maxStorageBufferBindingSize" + @usableFromInline static let `maxStorageBuffersPerShaderStage`: JSString = "maxStorageBuffersPerShaderStage" + @usableFromInline static let `maxStorageTexturesPerShaderStage`: JSString = "maxStorageTexturesPerShaderStage" + @usableFromInline static let `maxTextureArrayLayers`: JSString = "maxTextureArrayLayers" + @usableFromInline static let `maxTextureDimension1D`: JSString = "maxTextureDimension1D" + @usableFromInline static let `maxTextureDimension2D`: JSString = "maxTextureDimension2D" + @usableFromInline static let `maxTextureDimension3D`: JSString = "maxTextureDimension3D" + @usableFromInline static let `maxUniformBufferBindingSize`: JSString = "maxUniformBufferBindingSize" + @usableFromInline static let `maxUniformBuffersPerShaderStage`: JSString = "maxUniformBuffersPerShaderStage" + @usableFromInline static let `maxVertexAttributes`: JSString = "maxVertexAttributes" + @usableFromInline static let `maxVertexBufferArrayStride`: JSString = "maxVertexBufferArrayStride" + @usableFromInline static let `maxVertexBuffers`: JSString = "maxVertexBuffers" + @usableFromInline static let `message`: JSString = "message" + @usableFromInline static let `messages`: JSString = "messages" + @usableFromInline static let `minBindingSize`: JSString = "minBindingSize" + @usableFromInline static let `minFilter`: JSString = "minFilter" + @usableFromInline static let `minStorageBufferOffsetAlignment`: JSString = "minStorageBufferOffsetAlignment" + @usableFromInline static let `minUniformBufferOffsetAlignment`: JSString = "minUniformBufferOffsetAlignment" + @usableFromInline static let `mipLevel`: JSString = "mipLevel" + @usableFromInline static let `mipLevelCount`: JSString = "mipLevelCount" + @usableFromInline static let `mipmapFilter`: JSString = "mipmapFilter" + @usableFromInline static let `mode`: JSString = "mode" + @usableFromInline static let `module`: JSString = "module" + @usableFromInline static let `multisample`: JSString = "multisample" + @usableFromInline static let `multisampled`: JSString = "multisampled" + @usableFromInline static let `occlusionQuerySet`: JSString = "occlusionQuerySet" + @usableFromInline static let `offset`: JSString = "offset" + @usableFromInline static let `onSubmittedWorkDone`: JSString = "onSubmittedWorkDone" + @usableFromInline static let `onuncapturederror`: JSString = "onuncapturederror" + @usableFromInline static let `operation`: JSString = "operation" + @usableFromInline static let `origin`: JSString = "origin" + @usableFromInline static let `passOp`: JSString = "passOp" + @usableFromInline static let `popDebugGroup`: JSString = "popDebugGroup" + @usableFromInline static let `popErrorScope`: JSString = "popErrorScope" + @usableFromInline static let `powerPreference`: JSString = "powerPreference" + @usableFromInline static let `premultipliedAlpha`: JSString = "premultipliedAlpha" + @usableFromInline static let `primitive`: JSString = "primitive" + @usableFromInline static let `pushDebugGroup`: JSString = "pushDebugGroup" + @usableFromInline static let `pushErrorScope`: JSString = "pushErrorScope" + @usableFromInline static let `querySet`: JSString = "querySet" + @usableFromInline static let `queue`: JSString = "queue" + @usableFromInline static let `r`: JSString = "r" + @usableFromInline static let `reason`: JSString = "reason" + @usableFromInline static let `requestAdapter`: JSString = "requestAdapter" + @usableFromInline static let `requestDevice`: JSString = "requestDevice" + @usableFromInline static let `requiredFeatures`: JSString = "requiredFeatures" + @usableFromInline static let `requiredLimits`: JSString = "requiredLimits" + @usableFromInline static let `resolveQuerySet`: JSString = "resolveQuerySet" + @usableFromInline static let `resolveTarget`: JSString = "resolveTarget" + @usableFromInline static let `resource`: JSString = "resource" + @usableFromInline static let `rowsPerImage`: JSString = "rowsPerImage" + @usableFromInline static let `sampleCount`: JSString = "sampleCount" + @usableFromInline static let `sampleType`: JSString = "sampleType" + @usableFromInline static let `sampler`: JSString = "sampler" + @usableFromInline static let `setBindGroup`: JSString = "setBindGroup" + @usableFromInline static let `setBlendConstant`: JSString = "setBlendConstant" + @usableFromInline static let `setIndexBuffer`: JSString = "setIndexBuffer" + @usableFromInline static let `setPipeline`: JSString = "setPipeline" + @usableFromInline static let `setScissorRect`: JSString = "setScissorRect" + @usableFromInline static let `setStencilReference`: JSString = "setStencilReference" + @usableFromInline static let `setVertexBuffer`: JSString = "setVertexBuffer" + @usableFromInline static let `setViewport`: JSString = "setViewport" + @usableFromInline static let `shaderLocation`: JSString = "shaderLocation" + @usableFromInline static let `size`: JSString = "size" + @usableFromInline static let `source`: JSString = "source" + @usableFromInline static let `srcFactor`: JSString = "srcFactor" + @usableFromInline static let `stencilBack`: JSString = "stencilBack" + @usableFromInline static let `stencilClearValue`: JSString = "stencilClearValue" + @usableFromInline static let `stencilFront`: JSString = "stencilFront" + @usableFromInline static let `stencilLoadOp`: JSString = "stencilLoadOp" + @usableFromInline static let `stencilReadMask`: JSString = "stencilReadMask" + @usableFromInline static let `stencilReadOnly`: JSString = "stencilReadOnly" + @usableFromInline static let `stencilStoreOp`: JSString = "stencilStoreOp" + @usableFromInline static let `stencilWriteMask`: JSString = "stencilWriteMask" + @usableFromInline static let `stepMode`: JSString = "stepMode" + @usableFromInline static let `storageTexture`: JSString = "storageTexture" + @usableFromInline static let `storeOp`: JSString = "storeOp" + @usableFromInline static let `stripIndexFormat`: JSString = "stripIndexFormat" + @usableFromInline static let `subgroupMaxSize`: JSString = "subgroupMaxSize" + @usableFromInline static let `subgroupMinSize`: JSString = "subgroupMinSize" + @usableFromInline static let `submit`: JSString = "submit" + @usableFromInline static let `targets`: JSString = "targets" + @usableFromInline static let `texture`: JSString = "texture" + @usableFromInline static let `timestampWrites`: JSString = "timestampWrites" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `toneMapping`: JSString = "toneMapping" + @usableFromInline static let `topology`: JSString = "topology" + @usableFromInline static let `type`: JSString = "type" + @usableFromInline static let `unclippedDepth`: JSString = "unclippedDepth" + @usableFromInline static let `unconfigure`: JSString = "unconfigure" + @usableFromInline static let `unmap`: JSString = "unmap" + @usableFromInline static let `usage`: JSString = "usage" + @usableFromInline static let `vendor`: JSString = "vendor" + @usableFromInline static let `vertex`: JSString = "vertex" + @usableFromInline static let `view`: JSString = "view" + @usableFromInline static let `viewDimension`: JSString = "viewDimension" + @usableFromInline static let `viewFormats`: JSString = "viewFormats" + @usableFromInline static let `visibility`: JSString = "visibility" + @usableFromInline static let `wgslLanguageFeatures`: JSString = "wgslLanguageFeatures" + @usableFromInline static let `width`: JSString = "width" + @usableFromInline static let `writeBuffer`: JSString = "writeBuffer" + @usableFromInline static let `writeMask`: JSString = "writeMask" + @usableFromInline static let `writeTexture`: JSString = "writeTexture" + @usableFromInline static let `x`: JSString = "x" + @usableFromInline static let `xrCompatible`: JSString = "xrCompatible" + @usableFromInline static let `y`: JSString = "y" + @usableFromInline static let `z`: JSString = "z" } - public protocol Any_GPUAutoLayoutMode_or_GPUPipelineLayout: ConvertibleToJSValue {} extension GPUAutoLayoutMode: Any_GPUAutoLayoutMode_or_GPUPipelineLayout {} extension GPUPipelineLayout: Any_GPUAutoLayoutMode_or_GPUPipelineLayout {} @@ -3877,12 +4139,11 @@ public enum GPUAutoLayoutMode_or_GPUPipelineLayout: JSValueCompatible, Any_GPUAu case gpuAutoLayoutMode(GPUAutoLayoutMode) case gpuPipelineLayout(GPUPipelineLayout) - init(_ gpuAutoLayoutMode: GPUAutoLayoutMode) { + public init(_ gpuAutoLayoutMode: GPUAutoLayoutMode) { let val: GPUAutoLayoutMode_or_GPUPipelineLayout = .gpuAutoLayoutMode(gpuAutoLayoutMode) self = val } - - init(_ gpuPipelineLayout: GPUPipelineLayout) { + public init(_ gpuPipelineLayout: GPUPipelineLayout) { let val: GPUAutoLayoutMode_or_GPUPipelineLayout = .gpuPipelineLayout(gpuPipelineLayout) self = val } @@ -3893,7 +4154,6 @@ public enum GPUAutoLayoutMode_or_GPUPipelineLayout: JSValueCompatible, Any_GPUAu default: return nil } } - public var gpuPipelineLayout: GPUPipelineLayout? { switch self { case let .gpuPipelineLayout(gpuPipelineLayout): return gpuPipelineLayout @@ -3913,14 +4173,11 @@ public enum GPUAutoLayoutMode_or_GPUPipelineLayout: JSValueCompatible, Any_GPUAu public var jsValue: JSValue { switch self { - case let .gpuAutoLayoutMode(gpuAutoLayoutMode): - return gpuAutoLayoutMode.jsValue - case let .gpuPipelineLayout(gpuPipelineLayout): - return gpuPipelineLayout.jsValue + case let .gpuAutoLayoutMode(gpuAutoLayoutMode): return gpuAutoLayoutMode.jsValue + case let .gpuPipelineLayout(gpuPipelineLayout): return gpuPipelineLayout.jsValue } } } - public protocol Any_GPUBindingResource: ConvertibleToJSValue {} extension GPUBufferBinding: Any_GPUBindingResource {} extension GPUExternalTexture: Any_GPUBindingResource {} @@ -3933,22 +4190,19 @@ public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource { case gpuSampler(GPUSampler) case gpuTextureView(GPUTextureView) - init(_ gpuBufferBinding: GPUBufferBinding) { + public init(_ gpuBufferBinding: GPUBufferBinding) { let val: GPUBindingResource = .gpuBufferBinding(gpuBufferBinding) self = val } - - init(_ gpuExternalTexture: GPUExternalTexture) { + public init(_ gpuExternalTexture: GPUExternalTexture) { let val: GPUBindingResource = .gpuExternalTexture(gpuExternalTexture) self = val } - - init(_ gpuSampler: GPUSampler) { + public init(_ gpuSampler: GPUSampler) { let val: GPUBindingResource = .gpuSampler(gpuSampler) self = val } - - init(_ gpuTextureView: GPUTextureView) { + public init(_ gpuTextureView: GPUTextureView) { let val: GPUBindingResource = .gpuTextureView(gpuTextureView) self = val } @@ -3959,21 +4213,18 @@ public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource { default: return nil } } - public var gpuExternalTexture: GPUExternalTexture? { switch self { case let .gpuExternalTexture(gpuExternalTexture): return gpuExternalTexture default: return nil } } - public var gpuSampler: GPUSampler? { switch self { case let .gpuSampler(gpuSampler): return gpuSampler default: return nil } } - public var gpuTextureView: GPUTextureView? { switch self { case let .gpuTextureView(gpuTextureView): return gpuTextureView @@ -3982,35 +4233,24 @@ public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource { } public static func construct(from value: JSValue) -> Self? { - if let gpuBufferBinding: GPUBufferBinding = value.fromJSValue() { - return .gpuBufferBinding(gpuBufferBinding) - } + if let gpuBufferBinding: GPUBufferBinding = value.fromJSValue() { return .gpuBufferBinding(gpuBufferBinding) } if let gpuExternalTexture: GPUExternalTexture = value.fromJSValue() { return .gpuExternalTexture(gpuExternalTexture) } - if let gpuSampler: GPUSampler = value.fromJSValue() { - return .gpuSampler(gpuSampler) - } - if let gpuTextureView: GPUTextureView = value.fromJSValue() { - return .gpuTextureView(gpuTextureView) - } + if let gpuSampler: GPUSampler = value.fromJSValue() { return .gpuSampler(gpuSampler) } + if let gpuTextureView: GPUTextureView = value.fromJSValue() { return .gpuTextureView(gpuTextureView) } return nil } public var jsValue: JSValue { switch self { - case let .gpuBufferBinding(gpuBufferBinding): - return gpuBufferBinding.jsValue - case let .gpuExternalTexture(gpuExternalTexture): - return gpuExternalTexture.jsValue - case let .gpuSampler(gpuSampler): - return gpuSampler.jsValue - case let .gpuTextureView(gpuTextureView): - return gpuTextureView.jsValue + case let .gpuBufferBinding(gpuBufferBinding): return gpuBufferBinding.jsValue + case let .gpuExternalTexture(gpuExternalTexture): return gpuExternalTexture.jsValue + case let .gpuSampler(gpuSampler): return gpuSampler.jsValue + case let .gpuTextureView(gpuTextureView): return gpuTextureView.jsValue } } } - public protocol Any_GPUColor: ConvertibleToJSValue {} extension GPUColorDict: Any_GPUColor {} extension Array: Any_GPUColor where Element == Double {} @@ -4019,12 +4259,11 @@ public enum GPUColor: JSValueCompatible, Any_GPUColor { case gpuColorDict(GPUColorDict) case seq_of_Double([Double]) - init(_ gpuColorDict: GPUColorDict) { + public init(_ gpuColorDict: GPUColorDict) { let val: GPUColor = .gpuColorDict(gpuColorDict) self = val } - - init(_ seq_of_Double: [Double]) { + public init(_ seq_of_Double: [Double]) { let val: GPUColor = .seq_of_Double(seq_of_Double) self = val } @@ -4035,7 +4274,6 @@ public enum GPUColor: JSValueCompatible, Any_GPUColor { default: return nil } } - public var seq_of_Double: [Double]? { switch self { case let .seq_of_Double(seq_of_Double): return seq_of_Double @@ -4044,113 +4282,62 @@ public enum GPUColor: JSValueCompatible, Any_GPUColor { } public static func construct(from value: JSValue) -> Self? { - if let gpuColorDict: GPUColorDict = value.fromJSValue() { - return .gpuColorDict(gpuColorDict) - } - if let seq_of_Double: [Double] = value.fromJSValue() { - return .seq_of_Double(seq_of_Double) - } - return nil - } - - public var jsValue: JSValue { - switch self { - case let .gpuColorDict(gpuColorDict): - return gpuColorDict.jsValue - case let .seq_of_Double(seq_of_Double): - return seq_of_Double.jsValue - } - } -} - -public protocol Any_GPUExtent3D: ConvertibleToJSValue {} -extension GPUExtent3DDict: Any_GPUExtent3D {} -extension Array: Any_GPUExtent3D where Element == GPUIntegerCoordinate {} - -public enum GPUExtent3D: JSValueCompatible, Any_GPUExtent3D { - case gpuExtent3DDict(GPUExtent3DDict) - case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate]) - - init(_ gpuExtent3DDict: GPUExtent3DDict) { - let val: GPUExtent3D = .gpuExtent3DDict(gpuExtent3DDict) - self = val - } - - init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { - let val: GPUExtent3D = .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) - self = val - } - - public var gpuExtent3DDict: GPUExtent3DDict? { - switch self { - case let .gpuExtent3DDict(gpuExtent3DDict): return gpuExtent3DDict - default: return nil - } - } - - public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? { - switch self { - case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate - default: return nil - } - } - - public static func construct(from value: JSValue) -> Self? { - if let gpuExtent3DDict: GPUExtent3DDict = value.fromJSValue() { - return .gpuExtent3DDict(gpuExtent3DDict) - } - if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() { - return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) - } + if let gpuColorDict: GPUColorDict = value.fromJSValue() { return .gpuColorDict(gpuColorDict) } + if let seq_of_Double: [Double] = value.fromJSValue() { return .seq_of_Double(seq_of_Double) } return nil } public var jsValue: JSValue { switch self { - case let .gpuExtent3DDict(gpuExtent3DDict): - return gpuExtent3DDict.jsValue - case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): - return seq_of_GPUIntegerCoordinate.jsValue + case let .gpuColorDict(gpuColorDict): return gpuColorDict.jsValue + case let .seq_of_Double(seq_of_Double): return seq_of_Double.jsValue } } } +public protocol Any_GPUCopyExternalImageSource: ConvertibleToJSValue {} +extension HTMLCanvasElement: Any_GPUCopyExternalImageSource {} +extension HTMLImageElement: Any_GPUCopyExternalImageSource {} +extension HTMLVideoElement: Any_GPUCopyExternalImageSource {} +extension ImageBitmap: Any_GPUCopyExternalImageSource {} +extension ImageData: Any_GPUCopyExternalImageSource {} +extension OffscreenCanvas: Any_GPUCopyExternalImageSource {} +extension VideoFrame: Any_GPUCopyExternalImageSource {} -public protocol Any_GPUImageCopyExternalImageSource: ConvertibleToJSValue {} -extension HTMLCanvasElement: Any_GPUImageCopyExternalImageSource {} -extension HTMLVideoElement: Any_GPUImageCopyExternalImageSource {} -extension ImageBitmap: Any_GPUImageCopyExternalImageSource {} -extension OffscreenCanvas: Any_GPUImageCopyExternalImageSource {} -extension VideoFrame: Any_GPUImageCopyExternalImageSource {} - -public enum GPUImageCopyExternalImageSource: JSValueCompatible, Any_GPUImageCopyExternalImageSource { +public enum GPUCopyExternalImageSource: JSValueCompatible, Any_GPUCopyExternalImageSource { case htmlCanvasElement(HTMLCanvasElement) + case htmlImageElement(HTMLImageElement) case htmlVideoElement(HTMLVideoElement) case imageBitmap(ImageBitmap) + case imageData(ImageData) case offscreenCanvas(OffscreenCanvas) case videoFrame(VideoFrame) - init(_ htmlCanvasElement: HTMLCanvasElement) { - let val: GPUImageCopyExternalImageSource = .htmlCanvasElement(htmlCanvasElement) + public init(_ htmlCanvasElement: HTMLCanvasElement) { + let val: GPUCopyExternalImageSource = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ htmlVideoElement: HTMLVideoElement) { - let val: GPUImageCopyExternalImageSource = .htmlVideoElement(htmlVideoElement) + public init(_ htmlImageElement: HTMLImageElement) { + let val: GPUCopyExternalImageSource = .htmlImageElement(htmlImageElement) self = val } - - init(_ imageBitmap: ImageBitmap) { - let val: GPUImageCopyExternalImageSource = .imageBitmap(imageBitmap) + public init(_ htmlVideoElement: HTMLVideoElement) { + let val: GPUCopyExternalImageSource = .htmlVideoElement(htmlVideoElement) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { - let val: GPUImageCopyExternalImageSource = .offscreenCanvas(offscreenCanvas) + public init(_ imageBitmap: ImageBitmap) { + let val: GPUCopyExternalImageSource = .imageBitmap(imageBitmap) self = val } - - init(_ videoFrame: VideoFrame) { - let val: GPUImageCopyExternalImageSource = .videoFrame(videoFrame) + public init(_ imageData: ImageData) { + let val: GPUCopyExternalImageSource = .imageData(imageData) + self = val + } + public init(_ offscreenCanvas: OffscreenCanvas) { + let val: GPUCopyExternalImageSource = .offscreenCanvas(offscreenCanvas) + self = val + } + public init(_ videoFrame: VideoFrame) { + let val: GPUCopyExternalImageSource = .videoFrame(videoFrame) self = val } @@ -4160,28 +4347,36 @@ public enum GPUImageCopyExternalImageSource: JSValueCompatible, Any_GPUImageCopy default: return nil } } - + public var htmlImageElement: HTMLImageElement? { + switch self { + case let .htmlImageElement(htmlImageElement): return htmlImageElement + default: return nil + } + } public var htmlVideoElement: HTMLVideoElement? { switch self { case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement default: return nil } } - public var imageBitmap: ImageBitmap? { switch self { case let .imageBitmap(imageBitmap): return imageBitmap default: return nil } } - + public var imageData: ImageData? { + switch self { + case let .imageData(imageData): return imageData + default: return nil + } + } public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas default: return nil } } - public var videoFrame: VideoFrame? { switch self { case let .videoFrame(videoFrame): return videoFrame @@ -4193,37 +4388,72 @@ public enum GPUImageCopyExternalImageSource: JSValueCompatible, Any_GPUImageCopy if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { return .htmlCanvasElement(htmlCanvasElement) } - if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { - return .htmlVideoElement(htmlVideoElement) + if let htmlImageElement: HTMLImageElement = value.fromJSValue() { return .htmlImageElement(htmlImageElement) } + if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { return .htmlVideoElement(htmlVideoElement) } + if let imageBitmap: ImageBitmap = value.fromJSValue() { return .imageBitmap(imageBitmap) } + if let imageData: ImageData = value.fromJSValue() { return .imageData(imageData) } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } + if let videoFrame: VideoFrame = value.fromJSValue() { return .videoFrame(videoFrame) } + return nil + } + + public var jsValue: JSValue { + switch self { + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .htmlImageElement(htmlImageElement): return htmlImageElement.jsValue + case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement.jsValue + case let .imageBitmap(imageBitmap): return imageBitmap.jsValue + case let .imageData(imageData): return imageData.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue + case let .videoFrame(videoFrame): return videoFrame.jsValue } - if let imageBitmap: ImageBitmap = value.fromJSValue() { - return .imageBitmap(imageBitmap) + } +} +public protocol Any_GPUExtent3D: ConvertibleToJSValue {} +extension GPUExtent3DDict: Any_GPUExtent3D {} +extension Array: Any_GPUExtent3D where Element == GPUIntegerCoordinate {} + +public enum GPUExtent3D: JSValueCompatible, Any_GPUExtent3D { + case gpuExtent3DDict(GPUExtent3DDict) + case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate]) + + public init(_ gpuExtent3DDict: GPUExtent3DDict) { + let val: GPUExtent3D = .gpuExtent3DDict(gpuExtent3DDict) + self = val + } + public init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { + let val: GPUExtent3D = .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) + self = val + } + + public var gpuExtent3DDict: GPUExtent3DDict? { + switch self { + case let .gpuExtent3DDict(gpuExtent3DDict): return gpuExtent3DDict + default: return nil } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) + } + public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? { + switch self { + case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate + default: return nil } - if let videoFrame: VideoFrame = value.fromJSValue() { - return .videoFrame(videoFrame) + } + + public static func construct(from value: JSValue) -> Self? { + if let gpuExtent3DDict: GPUExtent3DDict = value.fromJSValue() { return .gpuExtent3DDict(gpuExtent3DDict) } + if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() { + return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .htmlVideoElement(htmlVideoElement): - return htmlVideoElement.jsValue - case let .imageBitmap(imageBitmap): - return imageBitmap.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue - case let .videoFrame(videoFrame): - return videoFrame.jsValue + case let .gpuExtent3DDict(gpuExtent3DDict): return gpuExtent3DDict.jsValue + case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate.jsValue } } } - public protocol Any_GPUOrigin2D: ConvertibleToJSValue {} extension GPUOrigin2DDict: Any_GPUOrigin2D {} extension Array: Any_GPUOrigin2D where Element == GPUIntegerCoordinate {} @@ -4232,12 +4462,11 @@ public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D { case gpuOrigin2DDict(GPUOrigin2DDict) case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate]) - init(_ gpuOrigin2DDict: GPUOrigin2DDict) { + public init(_ gpuOrigin2DDict: GPUOrigin2DDict) { let val: GPUOrigin2D = .gpuOrigin2DDict(gpuOrigin2DDict) self = val } - - init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { + public init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { let val: GPUOrigin2D = .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) self = val } @@ -4248,7 +4477,6 @@ public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D { default: return nil } } - public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? { switch self { case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate @@ -4257,9 +4485,7 @@ public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D { } public static func construct(from value: JSValue) -> Self? { - if let gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() { - return .gpuOrigin2DDict(gpuOrigin2DDict) - } + if let gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() { return .gpuOrigin2DDict(gpuOrigin2DDict) } if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() { return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) } @@ -4268,14 +4494,11 @@ public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D { public var jsValue: JSValue { switch self { - case let .gpuOrigin2DDict(gpuOrigin2DDict): - return gpuOrigin2DDict.jsValue - case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): - return seq_of_GPUIntegerCoordinate.jsValue + case let .gpuOrigin2DDict(gpuOrigin2DDict): return gpuOrigin2DDict.jsValue + case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate.jsValue } } } - public protocol Any_GPUOrigin3D: ConvertibleToJSValue {} extension GPUOrigin3DDict: Any_GPUOrigin3D {} extension Array: Any_GPUOrigin3D where Element == GPUIntegerCoordinate {} @@ -4284,12 +4507,11 @@ public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D { case gpuOrigin3DDict(GPUOrigin3DDict) case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate]) - init(_ gpuOrigin3DDict: GPUOrigin3DDict) { + public init(_ gpuOrigin3DDict: GPUOrigin3DDict) { let val: GPUOrigin3D = .gpuOrigin3DDict(gpuOrigin3DDict) self = val } - - init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { + public init(_ seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]) { let val: GPUOrigin3D = .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) self = val } @@ -4300,7 +4522,6 @@ public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D { default: return nil } } - public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? { switch self { case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate @@ -4309,9 +4530,7 @@ public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D { } public static func construct(from value: JSValue) -> Self? { - if let gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() { - return .gpuOrigin3DDict(gpuOrigin3DDict) - } + if let gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() { return .gpuOrigin3DDict(gpuOrigin3DDict) } if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() { return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate) } @@ -4320,14 +4539,11 @@ public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D { public var jsValue: JSValue { switch self { - case let .gpuOrigin3DDict(gpuOrigin3DDict): - return gpuOrigin3DDict.jsValue - case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): - return seq_of_GPUIntegerCoordinate.jsValue + case let .gpuOrigin3DDict(gpuOrigin3DDict): return gpuOrigin3DDict.jsValue + case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate.jsValue } } } - public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {} extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {} extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {} @@ -4336,12 +4552,11 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan case htmlCanvasElement(HTMLCanvasElement) case offscreenCanvas(OffscreenCanvas) - init(_ htmlCanvasElement: HTMLCanvasElement) { + public init(_ htmlCanvasElement: HTMLCanvasElement) { let val: HTMLCanvasElement_or_OffscreenCanvas = .htmlCanvasElement(htmlCanvasElement) self = val } - - init(_ offscreenCanvas: OffscreenCanvas) { + public init(_ offscreenCanvas: OffscreenCanvas) { let val: HTMLCanvasElement_or_OffscreenCanvas = .offscreenCanvas(offscreenCanvas) self = val } @@ -4352,7 +4567,6 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan default: return nil } } - public var offscreenCanvas: OffscreenCanvas? { switch self { case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas @@ -4364,22 +4578,17 @@ public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCan if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() { return .htmlCanvasElement(htmlCanvasElement) } - if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { - return .offscreenCanvas(offscreenCanvas) - } + if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() { return .offscreenCanvas(offscreenCanvas) } return nil } public var jsValue: JSValue { switch self { - case let .htmlCanvasElement(htmlCanvasElement): - return htmlCanvasElement.jsValue - case let .offscreenCanvas(offscreenCanvas): - return offscreenCanvas.jsValue + case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement.jsValue + case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas.jsValue } } } - public protocol Any_HTMLVideoElement_or_VideoFrame: ConvertibleToJSValue {} extension HTMLVideoElement: Any_HTMLVideoElement_or_VideoFrame {} extension VideoFrame: Any_HTMLVideoElement_or_VideoFrame {} @@ -4388,12 +4597,11 @@ public enum HTMLVideoElement_or_VideoFrame: JSValueCompatible, Any_HTMLVideoElem case htmlVideoElement(HTMLVideoElement) case videoFrame(VideoFrame) - init(_ htmlVideoElement: HTMLVideoElement) { + public init(_ htmlVideoElement: HTMLVideoElement) { let val: HTMLVideoElement_or_VideoFrame = .htmlVideoElement(htmlVideoElement) self = val } - - init(_ videoFrame: VideoFrame) { + public init(_ videoFrame: VideoFrame) { let val: HTMLVideoElement_or_VideoFrame = .videoFrame(videoFrame) self = val } @@ -4404,7 +4612,6 @@ public enum HTMLVideoElement_or_VideoFrame: JSValueCompatible, Any_HTMLVideoElem default: return nil } } - public var videoFrame: VideoFrame? { switch self { case let .videoFrame(videoFrame): return videoFrame @@ -4413,21 +4620,15 @@ public enum HTMLVideoElement_or_VideoFrame: JSValueCompatible, Any_HTMLVideoElem } public static func construct(from value: JSValue) -> Self? { - if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { - return .htmlVideoElement(htmlVideoElement) - } - if let videoFrame: VideoFrame = value.fromJSValue() { - return .videoFrame(videoFrame) - } + if let htmlVideoElement: HTMLVideoElement = value.fromJSValue() { return .htmlVideoElement(htmlVideoElement) } + if let videoFrame: VideoFrame = value.fromJSValue() { return .videoFrame(videoFrame) } return nil } public var jsValue: JSValue { switch self { - case let .htmlVideoElement(htmlVideoElement): - return htmlVideoElement.jsValue - case let .videoFrame(videoFrame): - return videoFrame.jsValue + case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement.jsValue + case let .videoFrame(videoFrame): return videoFrame.jsValue } } } diff --git a/Sources/WebIDLToSwift/ClosurePattern.swift b/Sources/WebIDLToSwift/ClosurePattern.swift index d06c2d9f..e6e93d94 100644 --- a/Sources/WebIDLToSwift/ClosurePattern.swift +++ b/Sources/WebIDLToSwift/ClosurePattern.swift @@ -1,6 +1,6 @@ struct ClosurePattern: SwiftRepresentable, Equatable, Hashable, Comparable { static func < (lhs: ClosurePattern, rhs: ClosurePattern) -> Bool { - lhs.name.source < rhs.name.source + lhs.closureType.source < rhs.closureType.source } let nullable: Bool @@ -22,16 +22,16 @@ struct ClosurePattern: SwiftRepresentable, Equatable, Hashable, Comparable { return nullable ? "(\(closure))?" : closure } - private var getter: SwiftSource { + func getter(name: SwiftSource) -> SwiftSource { let getFunction: SwiftSource if nullable { getFunction = """ - guard let function = jsObject[name].function else { + guard let function = jsObject[\(name)].function else { return nil } """ } else { - getFunction = "let function = jsObject[name].function!" + getFunction = "let function = jsObject[\(name)].function!" } let call: SwiftSource = "function(\(sequence: indexes.map { "_toJSValue($\($0))" }))" let closureBody: SwiftSource @@ -66,15 +66,15 @@ struct ClosurePattern: SwiftRepresentable, Equatable, Hashable, Comparable { """ } - private var setter: SwiftSource { - let setClosure: SwiftSource = "jsObject[name] = \(jsClosureWrapper(name: "newValue"))" + func setter(name: SwiftSource) -> SwiftSource { + let setClosure: SwiftSource = "jsObject[\(name)] = \(jsClosureWrapper(name: "newValue"))" if nullable { return """ if let newValue = newValue { \(setClosure) } else { - jsObject[name] = .null + jsObject[\(name)] = .null } """ } else { @@ -121,6 +121,7 @@ struct ClosurePattern: SwiftRepresentable, Equatable, Hashable, Comparable { """ } + var toJSValue: SwiftSource { let escaping: SwiftSource = nullable ? "" : "@escaping" return """ @@ -132,7 +133,6 @@ struct ClosurePattern: SwiftRepresentable, Equatable, Hashable, Comparable { var swiftRepresentation: SwiftSource { """ - \(propertyWrapper) \(toJSValue) """ } diff --git a/Sources/WebIDLToSwift/IDLBuilder.swift b/Sources/WebIDLToSwift/IDLBuilder.swift index 0a1374f3..ae82c44e 100644 --- a/Sources/WebIDLToSwift/IDLBuilder.swift +++ b/Sources/WebIDLToSwift/IDLBuilder.swift @@ -2,7 +2,8 @@ import Foundation import WebIDL enum IDLBuilder { - static let basicDependencies = ["ECMAScript", "JavaScriptKit", "JavaScriptEventLoop"] + static let basicDependencies = ["ECMAScript", "JavaScriptKit"] + static let optionalDependencies = ["JavaScriptEventLoop", "_Concurrency"] static let preamble = """ // This file was auto-generated by WebIDLToSwift. DO NOT EDIT! @@ -42,7 +43,11 @@ enum IDLBuilder { dependencies.append("JavaScriptBigIntSupport") } - let formedPreamble = preamble + dependencies.map { "import \($0)" }.joined(separator: "\n") + let formedPreamble = preamble + (optionalDependencies.map { """ + #if canImport(\($0)) + import \($0) + #endif + """ } + dependencies.map { "import \($0)" }).joined(separator: "\n") try (formedPreamble + "\n\n" + content).write(toFile: path, atomically: true, encoding: .utf8) } @@ -54,6 +59,7 @@ enum IDLBuilder { var contents: [SwiftSource] = [] var state = ScopedState.root( + dictionaries: merged.dictionaries, interfaces: merged.interfaces, ignored: [ // variadic callbacks are unsupported @@ -89,9 +95,8 @@ enum IDLBuilder { } static func generateClosureTypes() throws -> SwiftSource { - print("Generating closure property wrappers...") + print("Generating closure wrappers...") return """ - /* variadic generics please */ \(lines: ModuleState.closurePatterns.sorted().map(\.swiftRepresentation)) """ } diff --git a/Sources/WebIDLToSwift/IDLParser.swift b/Sources/WebIDLToSwift/IDLParser.swift index 167e6352..e9aa5386 100644 --- a/Sources/WebIDLToSwift/IDLParser.swift +++ b/Sources/WebIDLToSwift/IDLParser.swift @@ -8,8 +8,8 @@ enum IDLParser { let pipe = Pipe() task.standardOutput = pipe task.standardError = FileHandle.standardError - task.arguments = ["-c", "npm start --silent \(modules.joined(separator: " "))"] - task.launchPath = "/bin/zsh" + task.arguments = ["start", "--silent"] + modules + task.launchPath = findExecutable("npm") task.currentDirectoryURL = URL(fileURLWithPath: #file) .deletingLastPathComponent() .appendingPathComponent("../../parse-idl") diff --git a/Sources/WebIDLToSwift/MergeDeclarations.swift b/Sources/WebIDLToSwift/MergeDeclarations.swift index dfd9d0ee..48b7b2d9 100644 --- a/Sources/WebIDLToSwift/MergeDeclarations.swift +++ b/Sources/WebIDLToSwift/MergeDeclarations.swift @@ -7,9 +7,6 @@ enum DeclarationMerger { "CustomElementConstructor", "ArrayBufferView", "RotationMatrixType", - // Mapped to `Int32` manually. This can't be represented as `Int64` due to `BigInt` representation on JS side, - // but as a pointer it can't be represented as floating point number either. - "GLintptr", ] static let ignoredIncludeTargets: Set = ["WorkerNavigator"] static let validExposures: Set = ["Window"] @@ -18,6 +15,10 @@ enum DeclarationMerger { private static func enhanceMembers(_ members: [IDLNode]) -> [IDLNode] { members.flatMap { member -> [IDLNode] in + if let named = member as? IDLNamed, named.name.contains("-") { + return [] + } + if let operation = member as? IDLOperation, case .generic("Promise", _) = operation.idlType?.value { @@ -223,6 +224,7 @@ enum DeclarationMerger { + [Typedefs(typedefs: allTypes)] + allNodes(ofType: IDLEnum.self) + allNodes(ofType: IDLCallbackInterface.self), + dictionaries: mergedDictionaries, interfaces: mergedInterfaces, types: mergedTypes // unions: unions @@ -231,6 +233,7 @@ enum DeclarationMerger { struct MergeResult { let declarations: [DeclarationFile] + let dictionaries: [String: MergedDictionary] let interfaces: [String: MergedInterface] let types: [String: IDLTypealias] // let unions: Set diff --git a/Sources/WebIDLToSwift/Module.swift b/Sources/WebIDLToSwift/Module.swift index 5c15aecf..61c30890 100644 --- a/Sources/WebIDLToSwift/Module.swift +++ b/Sources/WebIDLToSwift/Module.swift @@ -27,6 +27,7 @@ let domModule = Module( "css-pseudo", "geometry", "cssom-view", + "css-view-transitions", "hr-time", "FileAPI", "xhr", @@ -42,6 +43,8 @@ let domModule = Module( "performance-timeline", "permissions", "mathml-core", + "trusted-types", + "urlpattern", ], dependencies: ["WebAPIBase"] ) diff --git a/Sources/WebIDLToSwift/ModuleState.swift b/Sources/WebIDLToSwift/ModuleState.swift index b65f1536..86f38078 100644 --- a/Sources/WebIDLToSwift/ModuleState.swift +++ b/Sources/WebIDLToSwift/ModuleState.swift @@ -63,6 +63,7 @@ struct ScopedState { private(set) var this: SwiftSource! private(set) var className: SwiftSource! private(set) var interfaces: [String: MergedInterface]! + private(set) var dictionaries: [String: MergedDictionary]! private(set) var ignored: [String: Set]! private(set) var types: [String: IDLTypealias]! private(set) var override = false @@ -106,12 +107,14 @@ struct ScopedState { } static func root( + dictionaries: [String: MergedDictionary], interfaces: [String: MergedInterface], ignored: [String: Set], types: [String: IDLTypealias] ) -> Self { var newState = ModuleState.current newState.interfaces = interfaces + newState.dictionaries = dictionaries newState.ignored = ignored newState.types = types return newState diff --git a/Sources/WebIDLToSwift/PackageManifest.swift b/Sources/WebIDLToSwift/PackageManifest.swift index c8b8ed2d..1ff48470 100644 --- a/Sources/WebIDLToSwift/PackageManifest.swift +++ b/Sources/WebIDLToSwift/PackageManifest.swift @@ -1,14 +1,14 @@ // swiftlint:disable function_body_length func generateManifest(_ modules: [Module]) -> String { #""" - // swift-tools-version:5.5 + // swift-tools-version: 6.1 // The swift-tools-version declares the minimum version of Swift required to build this package. import PackageDescription let package = Package( name: "WebAPIKit", - platforms: [.macOS(.v10_13)], + platforms: [.macOS(.v10_15)], products: [ .executable( name: "WebAPIKitDemo", @@ -29,7 +29,7 @@ func generateManifest(_ modules: [Module]) -> String { dependencies: [ .package( url: "https://github.com/swiftwasm/JavaScriptKit.git", - .upToNextMajor(from: "0.16.0") + .upToNextMajor(from: "0.29.0") ), ], targets: [ @@ -62,7 +62,8 @@ func generateManifest(_ modules: [Module]) -> String { name: "WebAPIKitTests", dependencies: ["DOM"] ), - ] + ], + swiftLanguageModes: [.v5] ) """# } diff --git a/Sources/WebIDLToSwift/Shell.swift b/Sources/WebIDLToSwift/Shell.swift index d383cea0..fcaf28e5 100644 --- a/Sources/WebIDLToSwift/Shell.swift +++ b/Sources/WebIDLToSwift/Shell.swift @@ -3,7 +3,7 @@ import Foundation enum Shell { static func format(source: String) { print("Formatting generated Swift files...") - run(script: "swiftformat --swiftversion 5.5 \(source)") + run(executable: "swift", arguments: ["format", "format", "--parallel", "--in-place", source]) } private static let projectRoot = URL(fileURLWithPath: #file) @@ -18,22 +18,36 @@ enum Shell { let patchFile = patchFolder.appendingPathComponent(module.swiftModule).appendingPathExtension("patch").path if FileManager.default.fileExists(atPath: patchFile) { print("Patching generated Swift files...") - run(script: "git apply \(patchFile)") + run(executable: "git", arguments: ["apply", patchFile]) } } - private static func run(script: String) { + private static func run(executable: String, arguments: [String]) { // print("*** running script: \(script)") let task = Process() task.standardError = FileHandle.standardError - task.arguments = ["-c", script] - task.launchPath = "/bin/zsh" + task.arguments = arguments + task.launchPath = findExecutable(executable) task.currentDirectoryURL = projectRoot task.launch() task.waitUntilExit() if task.terminationStatus != 0 { - print("Error: \(script) failed with exit code \(task.terminationStatus)") + print("Error: \(([executable] + arguments).map { "\"\($0)\"" }.joined(separator: " ")) failed with exit code \(task.terminationStatus)") exit(task.terminationStatus) } } } + +func findExecutable(_ name: String) -> String? { + guard let path = ProcessInfo.processInfo.environment["PATH"] else { + return nil + } + let paths = path.split(separator: ":") + for p in paths { + let fullPath = URL(fileURLWithPath: String(p)).appendingPathComponent(name).path + if FileManager.default.isExecutableFile(atPath: fullPath) { + return fullPath + } + } + return nil +} diff --git a/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift b/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift index 70d21e0e..f4c4f7bd 100644 --- a/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift +++ b/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift @@ -74,7 +74,7 @@ extension UnionType: SwiftRepresentable { var initializers: [SwiftSource] { zip(sortedTypes, sortedNames).flatMap { (type, name) -> [SwiftSource] in let basicInitializer: [SwiftSource] = [""" - init(_ \(name): \(type)) { + public init(_ \(name): \(type)) { let val: \(self.name) = .\(name)(\(name)) self = val } @@ -162,10 +162,8 @@ extension SlimIDLType: SwiftRepresentable { case "FrozenArray", "ObservableArray": // ??? return ["Element == \(args[0])"] - case "Promise": + case "Promise", "record": return [] - case "record": - return ["Key == \(args[0])", "Value == \(args[1])"] default: fatalError("Unsupported generic type: \(name)") } @@ -190,7 +188,7 @@ extension SlimIDLType.TypeValue: SwiftRepresentable { case "Promise": return "JSPromise" case "record": - return "Dictionary" + return "JSObject" default: fatalError("Unsupported generic type: \(name)") } @@ -220,7 +218,7 @@ extension SlimIDLType.TypeValue: SwiftRepresentable { case "Promise": return "JSPromise" case "record": - return "[\(args[0]): \(args[1])]" + return "JSObject" default: fatalError("Unsupported generic type: \(name)") } diff --git a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift index afe8dcf0..ee43f203 100644 --- a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift +++ b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift @@ -5,7 +5,7 @@ extension IDLArgument: SwiftRepresentable { let type: SwiftSource if variadic { type = "\(idlType)..." - } else if idlType.isFunction, !optional, !idlType.nullable { + } else if idlType.closurePattern != nil && !optional && !idlType.nullable { type = "@escaping \(idlType)" } else { type = "\(idlType)" @@ -23,7 +23,7 @@ extension IDLArgument: SwiftRepresentable { } } -extension IDLAttribute: SwiftRepresentable, Initializable { +extension IDLAttribute: SwiftRepresentable { private var wrapperName: SwiftSource { "_\(raw: name)" } @@ -36,111 +36,125 @@ extension IDLAttribute: SwiftRepresentable, Initializable { } if ModuleState.override { assert(!ModuleState.static) - // can't do property wrappers on override declarations - return """ - @usableFromInline let \(wrapperName): \(idlType.propertyWrapper(readonly: readonly))<\(idlType)> - @inlinable override public var \(name): \(idlType) { - get { \(wrapperName).wrappedValue } - \(readonly ? "" : "set { \(wrapperName).wrappedValue = newValue }") + + return "" + } else { + let stringKey = ModuleState.source(for: name) + let getter: SwiftSource + let setter: SwiftSource + + if let closure = idlType.closurePattern { + getter = "get { \(closure.getter(name: stringKey)) }" + setter = "set { \(closure.setter(name: stringKey)) }" + } else { + getter = "get { jsObject[\(stringKey)]\(idlType.fromJSValue) }" + setter = "set { jsObject[\(stringKey)] = _toJSValue(newValue) }" } - """ - } else if ModuleState.constructor == nil || ModuleState.static { - // can't do property wrappers on extensions - let propertyWrapper = idlType.propertyWrapper(readonly: readonly) - if [SwiftSource.readOnlyAttribute, .readWriteAttribute].contains(propertyWrapper) { - let setter: SwiftSource = """ - nonmutating set { jsObject[\(ModuleState.source(for: name))] = _toJSValue(newValue) } - """ - return """ + return """ @inlinable public\(raw: ModuleState.static ? " static" : "") var \(name): \(idlType) { - get { jsObject[\(ModuleState.source(for: name))]\(idlType.fromJSValue) } + \(getter) \(readonly ? "" : setter) } """ + } + } +} + +extension IDLDictionary.Member { + var isOptional: Bool { + !required && !idlType.nullable + } + + var optionalSuffix: String { + isOptional ? "?" : "" + } +} + +extension IDLDictionary.Member: SwiftRepresentable { + var swiftRepresentation: SwiftSource { + if ModuleState.override { + assert(!ModuleState.static) + return "" + } else { + let stringKey = ModuleState.source(for: name) + let getter: SwiftSource + let setter: SwiftSource + + if let closure = idlType.closurePattern { + getter = "get { \(closure.getter(name: stringKey)) }" + setter = "set { \(closure.setter(name: stringKey)) }" } else { - let setter: SwiftSource = """ - nonmutating set { \( - idlType.propertyWrapper(readonly: readonly))[\(ModuleState.source(for: name) - ), in: jsObject] = newValue } - """ + getter = "get { jsObject[\(stringKey)]\(idlType.fromJSValue) }" + setter = "set { jsObject[\(stringKey)] = _toJSValue(newValue) }" + } - return """ + return """ @inlinable public\(raw: ModuleState.static ? " static" : "") var \(name): \(idlType) { - get { \(idlType.propertyWrapper(readonly: readonly))[\(ModuleState.source(for: name)), in: jsObject] } - \(readonly ? "" : setter) + \(getter) + \(setter) } """ - } - } else { - return """ - @\(idlType.propertyWrapper(readonly: readonly)) - public var \(name): \(idlType) - """ } } - - var initializer: SwiftSource? { - assert(!ModuleState.static) - return """ - \(wrapperName) = \(idlType.propertyWrapper(readonly: readonly))(jsObject: jsObject, name: \(ModuleState.source(for: name))) - """ - } } extension MergedDictionary: SwiftRepresentable { var swiftRepresentation: SwiftSource { - """ - public class \(name): BridgedDictionary { - \(swiftInit) - \(swiftMembers.joined(separator: "\n\n")) - } - """ + let inheritanceClause: SwiftSource = + if self.inheritance.isEmpty { + ": JSDictionaryCompatible" + } else { + ": \(self.inheritance.joined(separator: ", "))" + } + + return """ + open class \(name)\(inheritanceClause) { + \(self.inheritance.isEmpty ? "public let jsObject: JSObject" : "") + + \(swiftInit) + + \(lines: self.members.map(\.swiftRepresentation)) + } + """ } - private var membersWithPropertyWrapper: [(IDLDictionary.Member, SwiftSource)] { - members.map { - ($0, $0.idlType.propertyWrapper(readonly: false)) + private var convenienceInit: SwiftSource { + let inheritedMembers: [IDLDictionary.Member] = self.inheritance.reduce(into: []) { + // FIXME: if dictionary is not found in the current module, it's coming from a dependency, + // but for now we have to skip it, since `ModuleState` doesn't seem to handle dependencies. + return $0.append(contentsOf: ModuleState.dictionaries[$1]?.members ?? []) } - } - private var swiftInit: SwiftSource { - let params: [SwiftSource] = members.map { - "\($0.name): \($0.idlType.isFunction ? "@escaping " : "")\($0.idlType)" + let params: [SwiftSource] = (inheritedMembers + members).map { + let escaping = if let closurePattern = $0.idlType.closurePattern { + closurePattern.nullable || $0.isOptional ? "" : "@escaping " + } else { "" } + return "\($0.name): \(escaping)\($0.idlType)\($0.isOptional ? "? = nil" : "")" } + return """ public convenience init(\(sequence: params)) { let object = JSObject.global[\(ModuleState.source(for: "Object"))].function!.new() - \(lines: membersWithPropertyWrapper.map { member, wrapper in - if member.idlType.isFunction { - return """ - \(wrapper)[\(ModuleState.source(for: member.name)), in: object] = \(member.name) - """ - } else { + \(lines: (inheritedMembers + members).map { member in return """ object[\(ModuleState.source(for: member.name))] = _toJSValue(\(member.name)) """ - } }) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - \(lines: membersWithPropertyWrapper.map { member, wrapper in - "_\(raw: member.name) = \(wrapper)(jsObject: object, name: \(ModuleState.source(for: member.name)))" - }) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } """ } - private var swiftMembers: [SwiftSource] { - membersWithPropertyWrapper.map { member, wrapper in - """ - @\(wrapper) - public var \(member.name): \(member.idlType) + private var swiftInit: SwiftSource { + return """ + \(self.convenienceInit) + + public required init(unsafelyWrapping object: JSObject) { + \(self.inheritance.isEmpty ? "self.jsObject = object" : "super.init(unsafelyWrapping: object)") + } """ - } } } @@ -237,12 +251,16 @@ extension MergedInterface: SwiftRepresentable { ] let access: SwiftSource = openClasses.contains(name) ? "open" : "public" + let hasAsyncSequence: Bool let header: SwiftSource if partial { header = "public extension \(name)" + hasAsyncSequence = false } else { let inheritance = (parentClasses.isEmpty ? ["JSBridgedClass"] : parentClasses) + mixins + .filter { $0 != "AsyncSequence" } header = "\(access) class \(name): \(sequence: inheritance.map(SwiftSource.init(_:)))" + hasAsyncSequence = mixins.contains { $0 == "AsyncSequence" } } return """ @@ -259,13 +277,22 @@ extension MergedInterface: SwiftRepresentable { """ : "") public required init(unsafelyWrapping jsObject: JSObject) { - \(memberInits.joined(separator: "\n")) \(parentClasses.isEmpty ? "self.jsObject = jsObject" : "super.init(unsafelyWrapping: jsObject)") } """) \(body) } + + \(hasAsyncSequence ? + """ + #if canImport(JavaScriptEventLoop) + extension \(name): AsyncSequence {} + #endif + """ : + "" + ) + """ } @@ -370,11 +397,13 @@ extension IDLIterableDeclaration: SwiftRepresentable, Initializable { var swiftRepresentation: SwiftSource { if async { return """ + #if canImport(JavaScriptEventLoop) public typealias Element = \(idlType[0]) @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) public func makeAsyncIterator() -> ValueIterableAsyncIterator<\(ModuleState.className)> { ValueIterableAsyncIterator(sequence: self) } + #endif """ } else { return """ @@ -422,7 +451,7 @@ extension IDLOperation: SwiftRepresentable, Initializable { case "stringifier": return """ @inlinable public var description: String { - \(ModuleState.this)[Strings.toString]!().fromJSValue()! + \(ModuleState.this)[Strings.toString].function!().fromJSValue()! } """ case "static": @@ -500,7 +529,11 @@ extension IDLOperation: SwiftRepresentable, Initializable { fileprivate var nameAndParams: SwiftSource { let accessModifier: SwiftSource = ModuleState.static ? (ModuleState.inClass ? " class" : " static") : "" - let overrideModifier: SwiftSource = ModuleState.override ? "override " : "" + let overrideModifier: SwiftSource = if ModuleState.static && ModuleState.inClass { + ModuleState.override ? "override " : "" + } else { + ModuleState.inClass && !ModuleState.current.inProtocol ? "final " : "" + } return """ \(overrideModifier)public\(accessModifier) func \(name)(\(sequence: arguments.map(\.swiftRepresentation))) """ @@ -508,10 +541,14 @@ extension IDLOperation: SwiftRepresentable, Initializable { private var defaultRepresentation: SwiftSource { guard let idlType = idlType else { fatalError() } - var returnType = idlType.swiftRepresentation - if returnType == ModuleState.className { - returnType = "Self" + + // skip overrides, since ancestor functions are final and JS will do dynamic dispatch to overrides anyway + // FIXME: still emit overrides that have a different number of arguments than an ancestor method, just without `override` keyword + guard !ModuleState.override || ModuleState.static else { + return "" } + + let returnType = idlType.swiftRepresentation if ModuleState.override, ModuleState.static, !ModuleState.inClass { preconditionFailure("Cannot override static method in non-class") } @@ -567,12 +604,14 @@ extension AsyncOperation: SwiftRepresentable, Initializable { result = "return try await _promise.value\(returnType.fromJSValue)" } return """ + #if canImport(JavaScriptEventLoop) @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *) - @inlinable \(operation.nameAndParams) async throws -> \(returnType) { + @inlinable \(operation.nameAndParams) async throws(JSException) -> \(returnType) { \(prep) let _promise: JSPromise = \(call).fromJSValue()! \(result) } + #endif """ } @@ -668,7 +707,7 @@ extension IDLType: SwiftRepresentable { case "Promise": return "JSPromise" case "record": - return "[\(args[0]): \(args[1])]" + return "JSObject" default: fatalError("Unsupported generic type: \(name)") } @@ -707,39 +746,38 @@ extension IDLType: SwiftRepresentable { return false } - func propertyWrapper(readonly: Bool) -> SwiftSource { - // TODO: handle readonly closure properties - // (should they be a JSFunction? or a closure? or something else?)) + var closurePattern: ClosurePattern? { if case let .single(name) = value { if let callback = ModuleState.types[name] as? IDLCallback { - precondition(!readonly, "readonly closure properties are not supported") - return "\(closureWrapper(callback, optional: false))" + return closureWrapper(callback, optional: false) } if let ref = ModuleState.types[name] as? IDLTypedef, case let .single(name) = ref.idlType.value, let callback = ModuleState.types[name] as? IDLCallback { - precondition(!readonly, "readonly closure properties are not supported") precondition(ref.idlType.nullable) - return "\(closureWrapper(callback, optional: true))" + return closureWrapper(callback, optional: true) } } - if readonly { - return .readOnlyAttribute - } else { - return .readWriteAttribute - } + return nil } - private func closureWrapper(_ callback: IDLCallback, optional: Bool) -> SwiftSource { + private func closureWrapper(_ callback: IDLCallback, optional: Bool) -> ClosurePattern { let returnsVoid = callback.idlType.swiftRepresentation == "Void" let argCount = callback.arguments.count - return ClosurePattern(nullable: optional, void: returnsVoid, argCount: argCount).name + return ClosurePattern(nullable: optional, void: returnsVoid, argCount: argCount) } } extension IDLTypedef: SwiftRepresentable { + static let typeNameMap: [String: SwiftSource] = [ + // FIXME: WebIDL specifies these as `unsigned long long`, but major browsers expect + // a JS number and not BigInt here, so we have to keep it `Int32` on the Swift side. + "GLintptr": "Int32", + "GPUSize64": "UInt32", + ] + var unionType: UnionType? { if case let .union(types) = idlType.value { return ModuleState.union(for: Set(types.map(SlimIDLType.init)), defaultName: name) @@ -748,6 +786,8 @@ extension IDLTypedef: SwiftRepresentable { } var swiftRepresentation: SwiftSource { + let aliasedType: SwiftSource + if let unionType = unionType { guard unionType.friendlyName != name else { return "" } if let existingName = unionType.friendlyName { @@ -756,8 +796,8 @@ extension IDLTypedef: SwiftRepresentable { unionType.friendlyName = name return "" } - } - return "public typealias \(name) = \(idlType)" + } else if let type = Self.typeNameMap[name] { aliasedType = type } else { aliasedType = "\(idlType)" } + return "public typealias \(name) = \(aliasedType)" } } diff --git a/Sources/WebIDLToSwift/WebIDLToSwift.swift b/Sources/WebIDLToSwift/WebIDLToSwift.swift index 1e43fc1d..f1524a4c 100644 --- a/Sources/WebIDLToSwift/WebIDLToSwift.swift +++ b/Sources/WebIDLToSwift/WebIDLToSwift.swift @@ -11,7 +11,7 @@ enum WebIDLToSwift { static func main() { do { - let mode = parseArgs() + let (mode, moduleNames) = parseArgs() let packageDir = URL(fileURLWithPath: #file) .deletingLastPathComponent() .deletingLastPathComponent() @@ -22,6 +22,9 @@ enum WebIDLToSwift { // Collect closure patterns from all modules to subsequently write them together with `baseModule`. var closurePatterns = Set() + let modules = if moduleNames.isEmpty { modules } else { + modules.filter { moduleNames.contains($0.swiftModule) } + } for module in modules { try generate(module, packageDir: packageDir, domTypes: domTypes, patch: mode != .noPatch) closurePatterns.formUnion(ModuleState.closurePatterns) @@ -39,8 +42,9 @@ enum WebIDLToSwift { } } - private static func parseArgs() -> Mode? { + private static func parseArgs() -> (Mode?, moduleNames: [String]) { var mode: Mode? + var moduleNames = [String]() for arg in CommandLine.arguments.dropFirst() { if arg.starts(with: "--") { if let parsed = Mode(rawValue: String(arg.dropFirst(2))) { @@ -49,10 +53,10 @@ enum WebIDLToSwift { print("Unknown option: \(arg)") } } else { - print("Unknown argument: \(arg)") + moduleNames.append(arg) } } - return mode + return (mode, moduleNames) } private static func generate( diff --git a/Sources/WebSockets/Generated.swift b/Sources/WebSockets/Generated.swift index 4dade890..3dd39d46 100644 --- a/Sources/WebSockets/Generated.swift +++ b/Sources/WebSockets/Generated.swift @@ -3,101 +3,82 @@ import DOM import ECMAScript import JavaScriptBigIntSupport -import JavaScriptEventLoop import JavaScriptKit import WebAPIBase +#if canImport(JavaScriptEventLoop) + import JavaScriptEventLoop +#endif +#if canImport(_Concurrency) + import _Concurrency +#endif + public enum BinaryType: JSString, JSValueCompatible { case blob = "blob" case arraybuffer = "arraybuffer" @inlinable public static func construct(from jsValue: JSValue) -> Self? { - if let string = jsValue.jsString { - return Self(rawValue: string) - } + if let string = jsValue.jsString { return Self(rawValue: string) } return nil } - @inlinable public init?(string: String) { - self.init(rawValue: JSString(string)) - } + @inlinable public init?(string: String) { self.init(rawValue: JSString(string)) } @inlinable public var jsValue: JSValue { rawValue.jsValue } } - public class CloseEvent: Event { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CloseEvent].function } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.CloseEvent].function } - public required init(unsafelyWrapping jsObject: JSObject) { - _wasClean = ReadonlyAttribute(jsObject: jsObject, name: Strings.wasClean) - _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code) - _reason = ReadonlyAttribute(jsObject: jsObject, name: Strings.reason) - super.init(unsafelyWrapping: jsObject) - } + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(type: String, eventInitDict: CloseEventInit? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(type), _toJSValue(eventInitDict)])) } - @ReadonlyAttribute - public var wasClean: Bool + @inlinable public var wasClean: Bool { jsObject[Strings.wasClean].fromJSValue()! } - @ReadonlyAttribute - public var code: UInt16 + @inlinable public var code: UInt16 { jsObject[Strings.code].fromJSValue()! } - @ReadonlyAttribute - public var reason: String + @inlinable public var reason: String { jsObject[Strings.reason].fromJSValue()! } } -public class CloseEventInit: BridgedDictionary { - public convenience init(wasClean: Bool, code: UInt16, reason: String) { +open class CloseEventInit: EventInit { + + public convenience init(wasClean: Bool? = nil, code: UInt16? = nil, reason: String? = nil) { let object = JSObject.global[Strings.Object].function!.new() object[Strings.wasClean] = _toJSValue(wasClean) object[Strings.code] = _toJSValue(code) object[Strings.reason] = _toJSValue(reason) - self.init(unsafelyWrapping: object) - } - public required init(unsafelyWrapping object: JSObject) { - _wasClean = ReadWriteAttribute(jsObject: object, name: Strings.wasClean) - _code = ReadWriteAttribute(jsObject: object, name: Strings.code) - _reason = ReadWriteAttribute(jsObject: object, name: Strings.reason) - super.init(unsafelyWrapping: object) + self.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var wasClean: Bool + public required init(unsafelyWrapping object: JSObject) { super.init(unsafelyWrapping: object) } - @ReadWriteAttribute - public var code: UInt16 - - @ReadWriteAttribute - public var reason: String + @inlinable public var wasClean: Bool { + get { jsObject[Strings.wasClean].fromJSValue()! } + set { jsObject[Strings.wasClean] = _toJSValue(newValue) } + } + @inlinable public var code: UInt16 { + get { jsObject[Strings.code].fromJSValue()! } + set { jsObject[Strings.code] = _toJSValue(newValue) } + } + @inlinable public var reason: String { + get { jsObject[Strings.reason].fromJSValue()! } + set { jsObject[Strings.reason] = _toJSValue(newValue) } + } } public class WebSocket: EventTarget { - @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebSocket].function } - - public required init(unsafelyWrapping jsObject: JSObject) { - _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url) - _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState) - _bufferedAmount = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferedAmount) - _onopen = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onopen) - _onerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onerror) - _onclose = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onclose) - _extensions = ReadonlyAttribute(jsObject: jsObject, name: Strings.extensions) - _protocol = ReadonlyAttribute(jsObject: jsObject, name: Strings.protocol) - _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage) - _binaryType = ReadWriteAttribute(jsObject: jsObject, name: Strings.binaryType) - super.init(unsafelyWrapping: jsObject) - } + @inlinable public override class var constructor: JSFunction? { JSObject.global[Strings.WebSocket].function } + + public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) } @inlinable public convenience init(url: String, protocols: String_or_seq_of_String? = nil) { self.init(unsafelyWrapping: Self.constructor!.new(arguments: [_toJSValue(url), _toJSValue(protocols)])) } - @ReadonlyAttribute - public var url: String + @inlinable public var url: String { jsObject[Strings.url].fromJSValue()! } public static let CONNECTING: UInt16 = 0 @@ -107,39 +88,81 @@ public class WebSocket: EventTarget { public static let CLOSED: UInt16 = 3 - @ReadonlyAttribute - public var readyState: UInt16 + @inlinable public var readyState: UInt16 { jsObject[Strings.readyState].fromJSValue()! } - @ReadonlyAttribute - public var bufferedAmount: UInt64 + @inlinable public var bufferedAmount: UInt64 { jsObject[Strings.bufferedAmount].fromJSValue()! } - @ClosureAttribute1Optional - public var onopen: EventHandler + @inlinable public var onopen: EventHandler { + get { + guard let function = jsObject[Strings.onopen].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onopen] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onopen] = .null + } + } + } - @ClosureAttribute1Optional - public var onerror: EventHandler + @inlinable public var onerror: EventHandler { + get { + guard let function = jsObject[Strings.onerror].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onerror] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onerror] = .null + } + } + } - @ClosureAttribute1Optional - public var onclose: EventHandler + @inlinable public var onclose: EventHandler { + get { + guard let function = jsObject[Strings.onclose].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onclose] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onclose] = .null + } + } + } - @ReadonlyAttribute - public var extensions: String + @inlinable public var extensions: String { jsObject[Strings.extensions].fromJSValue()! } - @ReadonlyAttribute - public var `protocol`: String + @inlinable public var `protocol`: String { jsObject[Strings.`protocol`].fromJSValue()! } - @inlinable public func close(code: UInt16? = nil, reason: String? = nil) { + @inlinable final public func close(code: UInt16? = nil, reason: String? = nil) { let this = jsObject _ = this[Strings.close].function!(this: this, arguments: [_toJSValue(code), _toJSValue(reason)]) } - @ClosureAttribute1Optional - public var onmessage: EventHandler + @inlinable public var onmessage: EventHandler { + get { + guard let function = jsObject[Strings.onmessage].function else { return nil } + return { function(_toJSValue($0)).fromJSValue()! } + } + set { + if let newValue = newValue { + jsObject[Strings.onmessage] = JSClosure { _toJSValue(newValue($0[0].fromJSValue()!)) }.jsValue + } else { + jsObject[Strings.onmessage] = .null + } + } + } - @ReadWriteAttribute - public var binaryType: BinaryType + @inlinable public var binaryType: BinaryType { + get { jsObject[Strings.binaryType].fromJSValue()! } + set { jsObject[Strings.binaryType] = _toJSValue(newValue) } + } - @inlinable public func send(data: Blob_or_BufferSource_or_String) { + @inlinable final public func send(data: Blob_or_BufferSource_or_String) { let this = jsObject _ = this[Strings.send].function!(this: this, arguments: [_toJSValue(data)]) } @@ -147,27 +170,26 @@ public class WebSocket: EventTarget { @usableFromInline enum Strings { @usableFromInline static let _self: JSString = "self" - @usableFromInline static let CloseEvent: JSString = "CloseEvent" - @usableFromInline static let Object: JSString = "Object" - @usableFromInline static let WebSocket: JSString = "WebSocket" - @usableFromInline static let binaryType: JSString = "binaryType" - @usableFromInline static let bufferedAmount: JSString = "bufferedAmount" - @usableFromInline static let close: JSString = "close" - @usableFromInline static let code: JSString = "code" - @usableFromInline static let extensions: JSString = "extensions" - @usableFromInline static let onclose: JSString = "onclose" - @usableFromInline static let onerror: JSString = "onerror" - @usableFromInline static let onmessage: JSString = "onmessage" - @usableFromInline static let onopen: JSString = "onopen" + @usableFromInline static let `CloseEvent`: JSString = "CloseEvent" + @usableFromInline static let `Object`: JSString = "Object" + @usableFromInline static let `WebSocket`: JSString = "WebSocket" + @usableFromInline static let `binaryType`: JSString = "binaryType" + @usableFromInline static let `bufferedAmount`: JSString = "bufferedAmount" + @usableFromInline static let `close`: JSString = "close" + @usableFromInline static let `code`: JSString = "code" + @usableFromInline static let `extensions`: JSString = "extensions" + @usableFromInline static let `onclose`: JSString = "onclose" + @usableFromInline static let `onerror`: JSString = "onerror" + @usableFromInline static let `onmessage`: JSString = "onmessage" + @usableFromInline static let `onopen`: JSString = "onopen" @usableFromInline static let `protocol`: JSString = "protocol" - @usableFromInline static let readyState: JSString = "readyState" - @usableFromInline static let reason: JSString = "reason" - @usableFromInline static let send: JSString = "send" - @usableFromInline static let toString: JSString = "toString" - @usableFromInline static let url: JSString = "url" - @usableFromInline static let wasClean: JSString = "wasClean" + @usableFromInline static let `readyState`: JSString = "readyState" + @usableFromInline static let `reason`: JSString = "reason" + @usableFromInline static let `send`: JSString = "send" + @usableFromInline static let `toString`: JSString = "toString" + @usableFromInline static let `url`: JSString = "url" + @usableFromInline static let `wasClean`: JSString = "wasClean" } - public protocol Any_Blob_or_BufferSource_or_String: ConvertibleToJSValue {} extension Blob: Any_Blob_or_BufferSource_or_String {} extension BufferSource: Any_Blob_or_BufferSource_or_String {} @@ -178,27 +200,23 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe case bufferSource(BufferSource) case string(String) - init(_ blob: Blob) { + public init(_ blob: Blob) { let val: Blob_or_BufferSource_or_String = .blob(blob) self = val } - - init(_ bufferSource: BufferSource) { + public init(_ bufferSource: BufferSource) { let val: Blob_or_BufferSource_or_String = .bufferSource(bufferSource) self = val } - - init(_ arrayBuffer: ArrayBuffer) { + public init(_ arrayBuffer: ArrayBuffer) { let val: BufferSource = .arrayBuffer(arrayBuffer) self = .init(val) } - - init(_ arrayBufferView: ArrayBufferView) { + public init(_ arrayBufferView: ArrayBufferView) { let val: BufferSource = .arrayBufferView(arrayBufferView) self = .init(val) } - - init(_ string: String) { + public init(_ string: String) { let val: Blob_or_BufferSource_or_String = .string(string) self = val } @@ -209,14 +227,12 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe default: return nil } } - public var bufferSource: BufferSource? { switch self { case let .bufferSource(bufferSource): return bufferSource default: return nil } } - public var string: String? { switch self { case let .string(string): return string @@ -225,30 +241,20 @@ public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_Buffe } public static func construct(from value: JSValue) -> Self? { - if let blob: Blob = value.fromJSValue() { - return .blob(blob) - } - if let bufferSource: BufferSource = value.fromJSValue() { - return .bufferSource(bufferSource) - } - if let string: String = value.fromJSValue() { - return .string(string) - } + if let blob: Blob = value.fromJSValue() { return .blob(blob) } + if let bufferSource: BufferSource = value.fromJSValue() { return .bufferSource(bufferSource) } + if let string: String = value.fromJSValue() { return .string(string) } return nil } public var jsValue: JSValue { switch self { - case let .blob(blob): - return blob.jsValue - case let .bufferSource(bufferSource): - return bufferSource.jsValue - case let .string(string): - return string.jsValue + case let .blob(blob): return blob.jsValue + case let .bufferSource(bufferSource): return bufferSource.jsValue + case let .string(string): return string.jsValue } } } - public protocol Any_String_or_seq_of_String: ConvertibleToJSValue {} extension String: Any_String_or_seq_of_String {} extension Array: Any_String_or_seq_of_String where Element == String {} @@ -257,12 +263,11 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str case string(String) case seq_of_String([String]) - init(_ string: String) { + public init(_ string: String) { let val: String_or_seq_of_String = .string(string) self = val } - - init(_ seq_of_String: [String]) { + public init(_ seq_of_String: [String]) { let val: String_or_seq_of_String = .seq_of_String(seq_of_String) self = val } @@ -273,7 +278,6 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str default: return nil } } - public var seq_of_String: [String]? { switch self { case let .seq_of_String(seq_of_String): return seq_of_String @@ -282,21 +286,15 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str } public static func construct(from value: JSValue) -> Self? { - if let string: String = value.fromJSValue() { - return .string(string) - } - if let seq_of_String: [String] = value.fromJSValue() { - return .seq_of_String(seq_of_String) - } + if let string: String = value.fromJSValue() { return .string(string) } + if let seq_of_String: [String] = value.fromJSValue() { return .seq_of_String(seq_of_String) } return nil } public var jsValue: JSValue { switch self { - case let .string(string): - return string.jsValue - case let .seq_of_String(seq_of_String): - return seq_of_String.jsValue + case let .string(string): return string.jsValue + case let .seq_of_String(seq_of_String): return seq_of_String.jsValue } } } diff --git a/parse-idl/package-lock.json b/parse-idl/package-lock.json index 2e19b4b6..ab59b43e 100644 --- a/parse-idl/package-lock.json +++ b/parse-idl/package-lock.json @@ -1,23 +1,23 @@ { "name": "parse-idl", - "lockfileVersion": 3, + "lockfileVersion": 2, "requires": true, "packages": { "": { "dependencies": { - "@webref/idl": "^3.5.0", - "webidl2": "^24.2.1" + "@webref/idl": "3.60.3", + "webidl2": "^24.4.1" }, "devDependencies": { "prettier": "2.6.1" } }, "node_modules/@webref/idl": { - "version": "3.37.0", - "resolved": "https://registry.npmjs.org/@webref/idl/-/idl-3.37.0.tgz", - "integrity": "sha512-aJ/GeCKGGmi0comafhZz72hnZFlyeXvBv61m/Mxn90YIVb8kZ8JFnyq2PEb8agWkq/2BRMIj7DzTPK57jq6AZg==", + "version": "3.60.3", + "resolved": "https://registry.npmjs.org/@webref/idl/-/idl-3.60.3.tgz", + "integrity": "sha512-l68v+hSSi3uNBliRtrgKuWuhw1fyw1oO46F525a7a2zS/VUts+ygsjNSkLf5ogz+PvWmMKdYJQF2dy9Cd1stFg==", "peerDependencies": { - "webidl2": "^24.4.0" + "webidl2": "^24.4.1" } }, "node_modules/prettier": { @@ -43,5 +43,24 @@ "node": ">= 14" } } + }, + "dependencies": { + "@webref/idl": { + "version": "3.60.3", + "resolved": "https://registry.npmjs.org/@webref/idl/-/idl-3.60.3.tgz", + "integrity": "sha512-l68v+hSSi3uNBliRtrgKuWuhw1fyw1oO46F525a7a2zS/VUts+ygsjNSkLf5ogz+PvWmMKdYJQF2dy9Cd1stFg==", + "requires": {} + }, + "prettier": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.6.1.tgz", + "integrity": "sha512-8UVbTBYGwN37Bs9LERmxCPjdvPxlEowx2urIL6urHzdb3SDq4B/Z6xLFCblrSnE4iKWcS6ziJ3aOYrc1kz/E2A==", + "dev": true + }, + "webidl2": { + "version": "24.4.1", + "resolved": "https://registry.npmjs.org/webidl2/-/webidl2-24.4.1.tgz", + "integrity": "sha512-cPToqvZlxTAlaMucZyU28XtFLJz3XPdTdIWK/r3IaP1jfkjqne3OTniJS8DZqfzee1aBUQn80d6s2vYert50kg==" + } } } diff --git a/parse-idl/package.json b/parse-idl/package.json index 0ee60740..07717bfe 100644 --- a/parse-idl/package.json +++ b/parse-idl/package.json @@ -8,7 +8,7 @@ "prettier": "2.6.1" }, "dependencies": { - "@webref/idl": "^3.5.0", - "webidl2": "^24.2.1" + "@webref/idl": "3.60.3", + "webidl2": "^24.4.1" } }