From cd5a44b336cab1b263c12b9e5b92e7946dca3f43 Mon Sep 17 00:00:00 2001
From: Max Desiatov <max@desiatov.com>
Date: Sun, 21 Aug 2022 21:01:47 +0100
Subject: [PATCH 1/3] Split WebAPIKit into modules manually

New `Module` type is added that specifies dependencies between modules manually.
---
 Package.swift                                 |    84 +-
 Sources/{WebAPIKit => DOM}/Generated.swift    | 31895 +++++-----------
 .../{WebAPIKit => DOM}/RenderingContext.swift |    15 -
 .../RotationMatrixType.swift                  |     0
 Sources/{WebAPIKit => DOM}/Support.swift      |     3 +-
 Sources/ECMAScript/ArrayBufferView.swift      |     1 -
 Sources/WebAPIBase/Generated.swift            |   520 +
 Sources/WebAPIKitDemo/WebGLDemo.swift         |     2 +-
 Sources/WebAPIKitDemo/main.swift              |     2 +-
 Sources/WebAnimations/Generated.swift         |  5293 +++
 Sources/WebAudio/Generated.swift              |  6497 ++++
 Sources/WebGL1/Generated.swift                |  6629 ++++
 Sources/WebGL1/Support.swift                  |     9 +
 Sources/WebGL2/Generated.swift                |  6671 ++++
 Sources/WebGL2/Support.swift                  |     7 +
 Sources/WebGPU/Generated.swift                |  9106 +++++
 Sources/WebGPU/Support.swift                  |     7 +
 Sources/WebIDLToSwift/FormatOutputFiles.swift |     2 +-
 Sources/WebIDLToSwift/IDLBuilder.swift        |    19 +-
 Sources/WebIDLToSwift/IDLParser.swift         |    16 +-
 Sources/WebIDLToSwift/Module.swift            |    72 +
 Sources/WebIDLToSwift/PackageManifest.swift   |    68 +
 .../WebIDL+SwiftRepresentation.swift          |     6 +-
 Sources/WebIDLToSwift/main.swift              |    58 +-
 Sources/WebSockets/Generated.swift            |  4291 +++
 Tests/WebAPIKitTests/WebAPIKitTests.swift     |     2 +-
 parse-idl/parse-all.js                        |    30 +-
 27 files changed, 49637 insertions(+), 21668 deletions(-)
 rename Sources/{WebAPIKit => DOM}/Generated.swift (64%)
 rename Sources/{WebAPIKit => DOM}/RenderingContext.swift (77%)
 rename Sources/{WebAPIKit => DOM}/RotationMatrixType.swift (100%)
 rename Sources/{WebAPIKit => DOM}/Support.swift (96%)
 create mode 100644 Sources/WebAPIBase/Generated.swift
 create mode 100644 Sources/WebAnimations/Generated.swift
 create mode 100644 Sources/WebAudio/Generated.swift
 create mode 100644 Sources/WebGL1/Generated.swift
 create mode 100644 Sources/WebGL1/Support.swift
 create mode 100644 Sources/WebGL2/Generated.swift
 create mode 100644 Sources/WebGL2/Support.swift
 create mode 100644 Sources/WebGPU/Generated.swift
 create mode 100644 Sources/WebGPU/Support.swift
 create mode 100644 Sources/WebIDLToSwift/Module.swift
 create mode 100644 Sources/WebIDLToSwift/PackageManifest.swift
 create mode 100644 Sources/WebSockets/Generated.swift

diff --git a/Package.swift b/Package.swift
index c480bf3d..08efb429 100644
--- a/Package.swift
+++ b/Package.swift
@@ -1,20 +1,48 @@
-// swift-tools-version:5.3
+// swift-tools-version:5.5
 // 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)],
     products: [
         .executable(
             name: "WebAPIKitDemo",
             targets: ["WebAPIKitDemo"]
         ),
         .library(
-            name: "WebAPIKit",
-            targets: ["WebAPIKit"]
+            name: "WebAPIBase",
+            targets: ["WebAPIBase"]
+        ),
+        .library(
+            name: "DOM",
+            targets: ["DOM"]
+        ),
+        .library(
+            name: "WebSockets",
+            targets: ["WebSockets"]
+        ),
+        .library(
+            name: "WebAudio",
+            targets: ["WebAudio"]
+        ),
+        .library(
+            name: "WebAnimations",
+            targets: ["WebAnimations"]
+        ),
+        .library(
+            name: "WebGL1",
+            targets: ["WebGL1"]
+        ),
+        .library(
+            name: "WebGL2",
+            targets: ["WebGL2"]
+        ),
+        .library(
+            name: "WebGPU",
+            targets: ["WebGPU"]
         ),
-        .library(name: "WebIDL", targets: ["WebIDL"]),
         .executable(name: "WebIDLToSwift", targets: ["WebIDLToSwift"]),
     ],
     dependencies: [
@@ -24,32 +52,56 @@ let package = Package(
         ),
     ],
     targets: [
-        .target(
+        .executableTarget(
             name: "WebAPIKitDemo",
-            dependencies: ["WebAPIKit"]
+            dependencies: ["DOM", "WebGL2"]
         ),
         .target(
-            name: "WebAPIKit",
-            dependencies: [
-                "ECMAScript",
-                "JavaScriptKit",
-                .product(name: "JavaScriptEventLoop", package: "JavaScriptKit"),
-                .product(name: "JavaScriptBigIntSupport", package: "JavaScriptKit"),
-            ]
+            name: "WebAPIBase",
+            dependencies: ["ECMAScript"]
+        ),
+        .target(
+            name: "DOM",
+            dependencies: ["WebAPIBase", "ECMAScript"]
+        ),
+        .target(
+            name: "WebSockets",
+            dependencies: ["DOM", "WebAPIBase", "ECMAScript"]
+        ),
+        .target(
+            name: "WebAudio",
+            dependencies: ["DOM", "WebAPIBase", "ECMAScript"]
+        ),
+        .target(
+            name: "WebAnimations",
+            dependencies: ["DOM", "WebAPIBase", "WebAudio", "ECMAScript"]
+        ),
+        .target(
+            name: "WebGL1",
+            dependencies: ["DOM", "WebAnimations", "ECMAScript"]
+        ),
+        .target(
+            name: "WebGL2",
+            dependencies: ["WebGL1", "ECMAScript"]
+        ),
+        .target(
+            name: "WebGPU",
+            dependencies: ["DOM", "WebAnimations", "WebGL1", "ECMAScript"]
         ),
         // This support library should be moved to JavaScriptKit
         .target(name: "ECMAScript", dependencies: [
             "JavaScriptKit",
             .product(name: "JavaScriptEventLoop", package: "JavaScriptKit"),
+            .product(name: "JavaScriptBigIntSupport", package: "JavaScriptKit"),
         ]),
         .target(name: "WebIDL"),
-        .target(
+        .executableTarget(
             name: "WebIDLToSwift",
             dependencies: ["WebIDL"]
         ),
         .testTarget(
             name: "WebAPIKitTests",
-            dependencies: ["WebAPIKit"]
+            dependencies: ["DOM"]
         ),
     ]
-)
+)
\ No newline at end of file
diff --git a/Sources/WebAPIKit/Generated.swift b/Sources/DOM/Generated.swift
similarity index 64%
rename from Sources/WebAPIKit/Generated.swift
rename to Sources/DOM/Generated.swift
index 899f294f..61a23352 100644
--- a/Sources/WebAPIKit/Generated.swift
+++ b/Sources/DOM/Generated.swift
@@ -1,8 +1,9 @@
 // This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
 
+import ECMAScript
 import JavaScriptBigIntSupport
-import JavaScriptEventLoop
 import JavaScriptKit
+import WebAPIBase
 
 public protocol ARIAMixin: JSBridgedClass {}
 public extension ARIAMixin {
@@ -352,227 +353,6 @@ public enum AlphaOption: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class AnalyserNode: AudioNode {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(context: BaseAudioContext, options: AnalyserOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public func getFloatFrequencyData(array: Float32Array) {
-        let this = jsObject
-        _ = this[Strings.getFloatFrequencyData].function!(this: this, arguments: [array.jsValue])
-    }
-
-    @inlinable public func getByteFrequencyData(array: Uint8Array) {
-        let this = jsObject
-        _ = this[Strings.getByteFrequencyData].function!(this: this, arguments: [array.jsValue])
-    }
-
-    @inlinable public func getFloatTimeDomainData(array: Float32Array) {
-        let this = jsObject
-        _ = this[Strings.getFloatTimeDomainData].function!(this: this, arguments: [array.jsValue])
-    }
-
-    @inlinable public func getByteTimeDomainData(array: Uint8Array) {
-        let this = jsObject
-        _ = this[Strings.getByteTimeDomainData].function!(this: this, arguments: [array.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var fftSize: UInt32
-
-    @ReadonlyAttribute
-    public var frequencyBinCount: UInt32
-
-    @ReadWriteAttribute
-    public var minDecibels: Double
-
-    @ReadWriteAttribute
-    public var maxDecibels: Double
-
-    @ReadWriteAttribute
-    public var smoothingTimeConstant: Double
-}
-
-public class AnalyserOptions: BridgedDictionary {
-    public convenience init(fftSize: UInt32, maxDecibels: Double, minDecibels: Double, smoothingTimeConstant: Double) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.fftSize] = fftSize.jsValue
-        object[Strings.maxDecibels] = maxDecibels.jsValue
-        object[Strings.minDecibels] = minDecibels.jsValue
-        object[Strings.smoothingTimeConstant] = smoothingTimeConstant.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var fftSize: UInt32
-
-    @ReadWriteAttribute
-    public var maxDecibels: Double
-
-    @ReadWriteAttribute
-    public var minDecibels: Double
-
-    @ReadWriteAttribute
-    public var smoothingTimeConstant: Double
-}
-
-public protocol Animatable: JSBridgedClass {}
-public extension Animatable {
-    @inlinable func animate(keyframes: JSObject?, options: Double_or_KeyframeAnimationOptions? = nil) -> Animation {
-        let this = jsObject
-        return this[Strings.animate].function!(this: this, arguments: [keyframes.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable func getAnimations(options: GetAnimationsOptions? = nil) -> [Animation] {
-        let this = jsObject
-        return this[Strings.getAnimations].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-}
-
-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 convenience init(effect: AnimationEffect? = nil, timeline: AnimationTimeline? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [effect?.jsValue ?? .undefined, timeline?.jsValue ?? .undefined]))
-    }
-
-    @ReadWriteAttribute
-    public var id: String
-
-    @ReadWriteAttribute
-    public var effect: AnimationEffect?
-
-    @ReadWriteAttribute
-    public var timeline: AnimationTimeline?
-
-    @ReadWriteAttribute
-    public var playbackRate: Double
-
-    @ReadonlyAttribute
-    public var playState: AnimationPlayState
-
-    @ReadonlyAttribute
-    public var replaceState: AnimationReplaceState
-
-    @ReadonlyAttribute
-    public var pending: Bool
-
-    @ReadonlyAttribute
-    public var ready: JSPromise
-
-    @ReadonlyAttribute
-    public var finished: JSPromise
-
-    @ClosureAttribute1Optional
-    public var onfinish: EventHandler
-
-    @ClosureAttribute1Optional
-    public var oncancel: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onremove: EventHandler
-
-    @inlinable public func cancel() {
-        let this = jsObject
-        _ = this[Strings.cancel].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func finish() {
-        let this = jsObject
-        _ = this[Strings.finish].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func play() {
-        let this = jsObject
-        _ = this[Strings.play].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func pause() {
-        let this = jsObject
-        _ = this[Strings.pause].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func updatePlaybackRate(playbackRate: Double) {
-        let this = jsObject
-        _ = this[Strings.updatePlaybackRate].function!(this: this, arguments: [playbackRate.jsValue])
-    }
-
-    @inlinable public func reverse() {
-        let this = jsObject
-        _ = this[Strings.reverse].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func persist() {
-        let this = jsObject
-        _ = this[Strings.persist].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func commitStyles() {
-        let this = jsObject
-        _ = this[Strings.commitStyles].function!(this: this, arguments: [])
-    }
-}
-
-public class AnimationEffect: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AnimationEffect].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func getTiming() -> EffectTiming {
-        let this = jsObject
-        return this[Strings.getTiming].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getComputedTiming() -> ComputedEffectTiming {
-        let this = jsObject
-        return this[Strings.getComputedTiming].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func updateTiming(timing: OptionalEffectTiming? = nil) {
-        let this = jsObject
-        _ = this[Strings.updateTiming].function!(this: this, arguments: [timing?.jsValue ?? .undefined])
-    }
-}
-
 public protocol AnimationFrameProvider: JSBridgedClass {}
 public extension AnimationFrameProvider {
     // XXX: method 'requestAnimationFrame' is ignored
@@ -583,63 +363,6 @@ public extension AnimationFrameProvider {
     }
 }
 
-public enum AnimationPlayState: JSString, JSValueCompatible {
-    case idle = "idle"
-    case running = "running"
-    case paused = "paused"
-    case finished = "finished"
-
-    @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 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)
-        }
-        return nil
-    }
-
-    @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) {
-        _currentTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTime)
-        _phase = ReadonlyAttribute(jsObject: jsObject, name: Strings.phase)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var currentTime: Double?
-
-    @ReadonlyAttribute
-    public var phase: TimelinePhase
-}
-
 public class AssignedNodesOptions: BridgedDictionary {
     public convenience init(flatten: Bool) {
         let object = JSObject.global[Strings.Object].function!.new()
@@ -692,405 +415,115 @@ public class Attr: Node {
     public var specified: Bool
 }
 
-public class AudioBuffer: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioBuffer].function }
+public class AudioData: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioData].function }
 
     public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
+        _format = ReadonlyAttribute(jsObject: jsObject, name: Strings.format)
         _sampleRate = ReadonlyAttribute(jsObject: jsObject, name: Strings.sampleRate)
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration)
+        _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
     }
 
-    @inlinable public convenience init(options: AudioBufferOptions) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [options.jsValue]))
+    @inlinable public convenience init(init: AudioDataInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var sampleRate: Float
+    public var format: AudioSampleFormat?
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var sampleRate: Float
 
     @ReadonlyAttribute
-    public var duration: Double
+    public var numberOfFrames: UInt32
 
     @ReadonlyAttribute
     public var numberOfChannels: UInt32
 
-    @inlinable public func getChannelData(channel: UInt32) -> Float32Array {
+    @ReadonlyAttribute
+    public var duration: UInt64
+
+    @ReadonlyAttribute
+    public var timestamp: Int64
+
+    @inlinable public func allocationSize(options: AudioDataCopyToOptions) -> UInt32 {
+        let this = jsObject
+        return this[Strings.allocationSize].function!(this: this, arguments: [options.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func copyTo(destination: BufferSource, options: AudioDataCopyToOptions) {
         let this = jsObject
-        return this[Strings.getChannelData].function!(this: this, arguments: [channel.jsValue]).fromJSValue()!
+        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options.jsValue])
     }
 
-    @inlinable public func copyFromChannel(destination: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) {
+    @inlinable public func clone() -> Self {
         let this = jsObject
-        _ = this[Strings.copyFromChannel].function!(this: this, arguments: [destination.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined])
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func copyToChannel(source: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) {
+    @inlinable public func close() {
         let this = jsObject
-        _ = this[Strings.copyToChannel].function!(this: this, arguments: [source.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined])
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 }
 
-public class AudioBufferOptions: BridgedDictionary {
-    public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
+public class AudioDataCopyToOptions: BridgedDictionary {
+    public convenience init(planeIndex: UInt32, frameOffset: UInt32, frameCount: UInt32, format: AudioSampleFormat) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.numberOfChannels] = numberOfChannels.jsValue
-        object[Strings.length] = length.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.planeIndex] = planeIndex.jsValue
+        object[Strings.frameOffset] = frameOffset.jsValue
+        object[Strings.frameCount] = frameCount.jsValue
+        object[Strings.format] = format.jsValue
         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)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var numberOfChannels: UInt32
+    public var planeIndex: UInt32
 
     @ReadWriteAttribute
-    public var length: UInt32
+    public var frameOffset: UInt32
 
     @ReadWriteAttribute
-    public var sampleRate: Float
-}
+    public var frameCount: UInt32
 
-public class AudioBufferSourceNode: AudioScheduledSourceNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioBufferSourceNode].function }
+    @ReadWriteAttribute
+    public var format: AudioSampleFormat
+}
 
-    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)
+public class AudioDataInit: BridgedDictionary {
+    public convenience init(format: AudioSampleFormat, sampleRate: Float, numberOfFrames: UInt32, numberOfChannels: UInt32, timestamp: Int64, data: BufferSource) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.numberOfFrames] = numberOfFrames.jsValue
+        object[Strings.numberOfChannels] = numberOfChannels.jsValue
+        object[Strings.timestamp] = timestamp.jsValue
+        object[Strings.data] = data.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: AudioBufferSourceOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadWriteAttribute
-    public var buffer: AudioBuffer?
-
-    @ReadonlyAttribute
-    public var playbackRate: AudioParam
-
-    @ReadonlyAttribute
-    public var detune: AudioParam
-
-    @ReadWriteAttribute
-    public var loop: Bool
-
-    @ReadWriteAttribute
-    public var loopStart: Double
-
-    @ReadWriteAttribute
-    public var loopEnd: Double
-
-    // XXX: member 'start' is ignored
-}
-
-public class AudioBufferSourceOptions: BridgedDictionary {
-    public convenience init(buffer: AudioBuffer?, detune: Float, loop: Bool, loopEnd: Double, loopStart: Double, playbackRate: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.buffer] = buffer.jsValue
-        object[Strings.detune] = detune.jsValue
-        object[Strings.loop] = loop.jsValue
-        object[Strings.loopEnd] = loopEnd.jsValue
-        object[Strings.loopStart] = loopStart.jsValue
-        object[Strings.playbackRate] = playbackRate.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var playbackRate: Float
-}
-
-public class AudioContext: BaseAudioContext {
-    @inlinable override public 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)
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @inlinable public convenience init(contextOptions: AudioContextOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [contextOptions?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var baseLatency: Double
-
-    @ReadonlyAttribute
-    public var outputLatency: Double
-
-    @inlinable public func getOutputTimestamp() -> AudioTimestamp {
-        let this = jsObject
-        return this[Strings.getOutputTimestamp].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable 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
-    }
-
-    @inlinable 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
-    }
-
-    @inlinable 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
-    }
-
-    @inlinable public func createMediaElementSource(mediaElement: HTMLMediaElement) -> MediaElementAudioSourceNode {
-        let this = jsObject
-        return this[Strings.createMediaElementSource].function!(this: this, arguments: [mediaElement.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createMediaStreamSource(mediaStream: MediaStream) -> MediaStreamAudioSourceNode {
-        let this = jsObject
-        return this[Strings.createMediaStreamSource].function!(this: this, arguments: [mediaStream.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack) -> MediaStreamTrackAudioSourceNode {
-        let this = jsObject
-        return this[Strings.createMediaStreamTrackSource].function!(this: this, arguments: [mediaStreamTrack.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createMediaStreamDestination() -> MediaStreamAudioDestinationNode {
-        let this = jsObject
-        return this[Strings.createMediaStreamDestination].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
-
-public enum AudioContextLatencyCategory: JSString, JSValueCompatible {
-    case balanced = "balanced"
-    case interactive = "interactive"
-    case playback = "playback"
-
-    @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 AudioContextOptions: BridgedDictionary {
-    public convenience init(latencyHint: AudioContextLatencyCategory_or_Double, sampleRate: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.latencyHint] = latencyHint.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _latencyHint = ReadWriteAttribute(jsObject: object, name: Strings.latencyHint)
-        _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var latencyHint: AudioContextLatencyCategory_or_Double
-
-    @ReadWriteAttribute
-    public var sampleRate: Float
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class AudioData: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioData].function }
-
-    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
-    }
-
-    @inlinable public convenience init(init: AudioDataInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var format: AudioSampleFormat?
-
-    @ReadonlyAttribute
-    public var sampleRate: Float
-
-    @ReadonlyAttribute
-    public var numberOfFrames: UInt32
-
-    @ReadonlyAttribute
-    public var numberOfChannels: UInt32
-
-    @ReadonlyAttribute
-    public var duration: UInt64
-
-    @ReadonlyAttribute
-    public var timestamp: Int64
-
-    @inlinable public func allocationSize(options: AudioDataCopyToOptions) -> UInt32 {
-        let this = jsObject
-        return this[Strings.allocationSize].function!(this: this, arguments: [options.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func copyTo(destination: BufferSource, options: AudioDataCopyToOptions) {
-        let this = jsObject
-        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options.jsValue])
-    }
-
-    @inlinable public func clone() -> Self {
-        let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable 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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.planeIndex] = planeIndex.jsValue
-        object[Strings.frameOffset] = frameOffset.jsValue
-        object[Strings.frameCount] = frameCount.jsValue
-        object[Strings.format] = format.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var planeIndex: UInt32
-
-    @ReadWriteAttribute
-    public var frameOffset: UInt32
-
-    @ReadWriteAttribute
-    public var frameCount: UInt32
-
-    @ReadWriteAttribute
-    public var format: AudioSampleFormat
-}
-
-public class AudioDataInit: BridgedDictionary {
-    public convenience init(format: AudioSampleFormat, sampleRate: Float, numberOfFrames: UInt32, numberOfChannels: UInt32, timestamp: Int64, data: BufferSource) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        object[Strings.numberOfFrames] = numberOfFrames.jsValue
-        object[Strings.numberOfChannels] = numberOfChannels.jsValue
-        object[Strings.timestamp] = timestamp.jsValue
-        object[Strings.data] = data.jsValue
-        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)
-        super.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)
+        super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
@@ -1251,22 +684,10 @@ public class AudioDecoderSupport: BridgedDictionary {
     public var config: AudioDecoderConfig
 }
 
-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)
-    }
-
-    @ReadonlyAttribute
-    public var maxChannelCount: UInt32
-}
-
-public class AudioEncoder: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioEncoder].function }
-
-    public let jsObject: JSObject
+public class AudioEncoder: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioEncoder].function }
+
+    public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
         _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
@@ -1402,343 +823,407 @@ public class AudioEncoderSupport: BridgedDictionary {
     public var config: AudioEncoderConfig
 }
 
-public class AudioListener: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioListener].function }
+public enum AudioSampleFormat: JSString, JSValueCompatible {
+    case u8 = "u8"
+    case s16 = "s16"
+    case s32 = "s32"
+    case f32 = "f32"
+    case u8Planar = "u8-planar"
+    case s16Planar = "s16-planar"
+    case s32Planar = "s32-planar"
+    case f32Planar = "f32-planar"
+
+    @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 AudioTrack: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioTrack].function }
 
     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)
+        _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)
         self.jsObject = jsObject
     }
 
     @ReadonlyAttribute
-    public var positionX: AudioParam
+    public var id: String
 
     @ReadonlyAttribute
-    public var positionY: AudioParam
+    public var kind: String
 
     @ReadonlyAttribute
-    public var positionZ: AudioParam
+    public var label: String
 
     @ReadonlyAttribute
-    public var forwardX: AudioParam
+    public var language: String
 
-    @ReadonlyAttribute
-    public var forwardY: AudioParam
+    @ReadWriteAttribute
+    public var enabled: Bool
+}
 
-    @ReadonlyAttribute
-    public var forwardZ: AudioParam
+public class AudioTrackList: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioTrackList].function }
 
-    @ReadonlyAttribute
-    public var upX: AudioParam
+    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)
+    }
 
     @ReadonlyAttribute
-    public var upY: AudioParam
+    public var length: UInt32
 
-    @ReadonlyAttribute
-    public var upZ: AudioParam
+    @inlinable public subscript(key: Int) -> AudioTrack {
+        jsObject[key].fromJSValue()!
+    }
 
-    @inlinable public func setPosition(x: Float, y: Float, z: Float) {
+    @inlinable public func getTrackById(id: String) -> AudioTrack? {
         let this = jsObject
-        _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func setOrientation(x: Float, y: Float, z: Float, xUp: Float, yUp: Float, zUp: Float) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = z.jsValue
-        let _arg3 = xUp.jsValue
-        let _arg4 = yUp.jsValue
-        let _arg5 = zUp.jsValue
-        let this = jsObject
-        _ = this[Strings.setOrientation].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    @ClosureAttribute1Optional
+    public var onchange: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onaddtrack: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onremovetrack: EventHandler
+}
+
+public class BarProp: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.BarProp].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible)
+        self.jsObject = jsObject
     }
+
+    @ReadonlyAttribute
+    public var visible: Bool
 }
 
-public class AudioNode: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioNode].function }
+public class BeforeUnloadEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BeforeUnloadEvent].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)
     }
 
-    @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self {
-        let this = jsObject
-        return this[Strings.connect].function!(this: this, arguments: [destinationNode.jsValue, output?.jsValue ?? .undefined, input?.jsValue ?? .undefined]).fromJSValue()!
+    // XXX: member 'returnValue' is ignored
+}
+
+public enum BitrateMode: JSString, JSValueCompatible {
+    case constant = "constant"
+    case variable = "variable"
+
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) {
-        let this = jsObject
-        _ = this[Strings.connect].function!(this: this, arguments: [destinationParam.jsValue, output?.jsValue ?? .undefined])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable public func disconnect() {
-        let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [])
+    @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
     }
 
-    @inlinable public func disconnect(output: UInt32) {
-        let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [output.jsValue])
+    @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [blobParts?.jsValue ?? .undefined, options?.jsValue ?? .undefined]))
     }
 
-    @inlinable public func disconnect(destinationNode: AudioNode) {
+    @ReadonlyAttribute
+    public var size: UInt64
+
+    @ReadonlyAttribute
+    public var type: String
+
+    @inlinable public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Self {
         let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue])
+        return this[Strings.slice].function!(this: this, arguments: [start?.jsValue ?? .undefined, end?.jsValue ?? .undefined, contentType?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) {
+    // XXX: member 'stream' is ignored
+
+    @inlinable public func text() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue])
+        return this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func text() async throws -> String {
         let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue, input.jsValue])
+        let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func disconnect(destinationParam: AudioParam) {
+    @inlinable public func arrayBuffer() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue])
+        return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func arrayBuffer() async throws -> ArrayBuffer {
         let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue, output.jsValue])
+        let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
+}
 
-    @ReadonlyAttribute
-    public var context: BaseAudioContext
+public class BlobEvent: Event {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(type: String, eventInitDict: BlobEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    }
 
     @ReadonlyAttribute
-    public var numberOfInputs: UInt32
+    public var data: Blob
 
     @ReadonlyAttribute
-    public var numberOfOutputs: UInt32
+    public var timecode: DOMHighResTimeStamp
+}
 
-    @ReadWriteAttribute
-    public var channelCount: UInt32
+public class BlobEventInit: BridgedDictionary {
+    public convenience init(data: Blob, timecode: DOMHighResTimeStamp) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.data] = data.jsValue
+        object[Strings.timecode] = timecode.jsValue
+        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)
+    }
 
     @ReadWriteAttribute
-    public var channelCountMode: ChannelCountMode
+    public var data: Blob
 
     @ReadWriteAttribute
-    public var channelInterpretation: ChannelInterpretation
+    public var timecode: DOMHighResTimeStamp
 }
 
-public class AudioNodeOptions: BridgedDictionary {
-    public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) {
+public class BlobPropertyBag: BridgedDictionary {
+    public convenience init(type: String, endings: EndingType) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.channelCount] = channelCount.jsValue
-        object[Strings.channelCountMode] = channelCountMode.jsValue
-        object[Strings.channelInterpretation] = channelInterpretation.jsValue
+        object[Strings.type] = type.jsValue
+        object[Strings.endings] = endings.jsValue
         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)
+        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
+        _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var channelCount: UInt32
-
-    @ReadWriteAttribute
-    public var channelCountMode: ChannelCountMode
+    public var type: String
 
     @ReadWriteAttribute
-    public var channelInterpretation: ChannelInterpretation
+    public var endings: EndingType
 }
 
-public class AudioParam: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioParam].function }
+public protocol Body: JSBridgedClass {}
+public extension Body {
+    // XXX: attribute 'body' is ignored
 
-    public let jsObject: JSObject
+    @inlinable var bodyUsed: Bool { jsObject[Strings.bodyUsed].fromJSValue()! }
 
-    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
+    @inlinable func arrayBuffer() -> JSPromise {
+        let this = jsObject
+        return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var value: Float
-
-    @ReadWriteAttribute
-    public var automationRate: AutomationRate
-
-    @ReadonlyAttribute
-    public var defaultValue: Float
-
-    @ReadonlyAttribute
-    public var minValue: Float
+    @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()!
+    }
 
-    @ReadonlyAttribute
-    public var maxValue: Float
+    @inlinable func blob() -> JSPromise {
+        let this = jsObject
+        return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable func blob() async throws -> Blob {
         let this = jsObject
-        return this[Strings.setValueAtTime].function!(this: this, arguments: [value.jsValue, startTime.jsValue]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self {
+    @inlinable func formData() -> JSPromise {
         let this = jsObject
-        return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()!
+        return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable func formData() async throws -> FormData {
         let this = jsObject
-        return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self {
+    @inlinable func json() -> JSPromise {
         let this = jsObject
-        return this[Strings.setTargetAtTime].function!(this: this, arguments: [target.jsValue, startTime.jsValue, timeConstant.jsValue]).fromJSValue()!
+        return this[Strings.json].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable func json() async throws -> JSValue {
         let this = jsObject
-        return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [values.jsValue, startTime.jsValue, duration.jsValue]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self {
+    @inlinable func text() -> JSPromise {
         let this = jsObject
-        return this[Strings.cancelScheduledValues].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()!
+        return this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable func text() async throws -> String {
         let this = jsObject
-        return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 }
 
-public class AudioParamDescriptor: BridgedDictionary {
-    public convenience init(name: String, defaultValue: Float, minValue: Float, maxValue: Float, automationRate: AutomationRate) {
+public class BoxQuadOptions: BridgedDictionary {
+    public convenience init(box: CSSBoxType, relativeTo: GeometryNode) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.name] = name.jsValue
-        object[Strings.defaultValue] = defaultValue.jsValue
-        object[Strings.minValue] = minValue.jsValue
-        object[Strings.maxValue] = maxValue.jsValue
-        object[Strings.automationRate] = automationRate.jsValue
+        object[Strings.box] = box.jsValue
+        object[Strings.relativeTo] = relativeTo.jsValue
         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)
+        _box = ReadWriteAttribute(jsObject: object, name: Strings.box)
+        _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var name: String
+    public var box: CSSBoxType
 
     @ReadWriteAttribute
-    public var defaultValue: Float
+    public var relativeTo: GeometryNode
+}
 
-    @ReadWriteAttribute
-    public var minValue: Float
+public class BroadcastChannel: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BroadcastChannel].function }
 
-    @ReadWriteAttribute
-    public var maxValue: Float
+    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)
+    }
 
-    @ReadWriteAttribute
-    public var automationRate: AutomationRate
-}
+    @inlinable public convenience init(name: String) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [name.jsValue]))
+    }
 
-public class AudioParamMap: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioParamMap].function }
+    @ReadonlyAttribute
+    public var name: String
 
-    public let jsObject: JSObject
+    @inlinable public func postMessage(message: JSValue) {
+        let this = jsObject
+        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue])
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 
-    // XXX: make me Map-like!
+    @ClosureAttribute1Optional
+    public var onmessage: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onmessageerror: EventHandler
 }
 
-public class AudioProcessingEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioProcessingEvent].function }
+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) {
-        _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)
+        _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark)
+        _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size)
+        self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: AudioProcessingEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    @inlinable public convenience init(init: QueuingStrategyInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var playbackTime: Double
-
-    @ReadonlyAttribute
-    public var inputBuffer: AudioBuffer
+    public var highWaterMark: Double
 
     @ReadonlyAttribute
-    public var outputBuffer: AudioBuffer
+    public var size: JSFunction
 }
 
-public class AudioProcessingEventInit: BridgedDictionary {
-    public convenience init(playbackTime: Double, inputBuffer: AudioBuffer, outputBuffer: AudioBuffer) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.playbackTime] = playbackTime.jsValue
-        object[Strings.inputBuffer] = inputBuffer.jsValue
-        object[Strings.outputBuffer] = outputBuffer.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public class CDATASection: Text {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CDATASection].function }
 
-    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)
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
     }
-
-    @ReadWriteAttribute
-    public var playbackTime: Double
-
-    @ReadWriteAttribute
-    public var inputBuffer: AudioBuffer
-
-    @ReadWriteAttribute
-    public var outputBuffer: AudioBuffer
 }
 
-public enum AudioSampleFormat: JSString, JSValueCompatible {
-    case u8 = "u8"
-    case s16 = "s16"
-    case s32 = "s32"
-    case f32 = "f32"
-    case u8Planar = "u8-planar"
-    case s16Planar = "s16-planar"
-    case s32Planar = "s32-planar"
-    case f32Planar = "f32-planar"
+public enum CSSBoxType: JSString, JSValueCompatible {
+    case margin = "margin"
+    case border = "border"
+    case padding = "padding"
+    case content = "content"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -1754,438 +1239,376 @@ public enum AudioSampleFormat: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class AudioScheduledSourceNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioScheduledSourceNode].function }
+public class CSSPseudoElement: EventTarget, GeometryUtils {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSPseudoElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended)
+        _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)
     }
 
-    @ClosureAttribute1Optional
-    public var onended: EventHandler
-
-    @inlinable public func start(when: Double? = nil) {
-        let this = jsObject
-        _ = this[Strings.start].function!(this: this, arguments: [when?.jsValue ?? .undefined])
-    }
+    @ReadonlyAttribute
+    public var type: String
 
-    @inlinable public func stop(when: Double? = nil) {
-        let this = jsObject
-        _ = this[Strings.stop].function!(this: this, arguments: [when?.jsValue ?? .undefined])
-    }
-}
+    @ReadonlyAttribute
+    public var element: Element
 
-public class AudioTimestamp: BridgedDictionary {
-    public convenience init(contextTime: Double, performanceTime: DOMHighResTimeStamp) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.contextTime] = contextTime.jsValue
-        object[Strings.performanceTime] = performanceTime.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var parent: CSSPseudoElement_or_Element
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _contextTime = ReadWriteAttribute(jsObject: object, name: Strings.contextTime)
-        _performanceTime = ReadWriteAttribute(jsObject: object, name: Strings.performanceTime)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func pseudo(type: String) -> CSSPseudoElement? {
+        let this = jsObject
+        return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
     }
-
-    @ReadWriteAttribute
-    public var contextTime: Double
-
-    @ReadWriteAttribute
-    public var performanceTime: DOMHighResTimeStamp
 }
 
-public class AudioTrack: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioTrack].function }
+public class Cache: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Cache].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)
         self.jsObject = jsObject
     }
 
-    @ReadonlyAttribute
-    public var id: String
-
-    @ReadonlyAttribute
-    public var kind: String
-
-    @ReadonlyAttribute
-    public var label: String
-
-    @ReadonlyAttribute
-    public var language: String
-
-    @ReadWriteAttribute
-    public var enabled: Bool
-}
-
-public class AudioTrackList: EventTarget {
-    @inlinable override public 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)
+    @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> AudioTrack {
-        jsObject[key].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: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func getTrackById(id: String) -> AudioTrack? {
+    @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise {
         let this = jsObject
-        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+        return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ClosureAttribute1Optional
-    public var onchange: EventHandler
+    @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: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 
-    @ClosureAttribute1Optional
-    public var onaddtrack: EventHandler
+    @inlinable public func add(request: RequestInfo) -> JSPromise {
+        let this = jsObject
+        return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()!
+    }
 
-    @ClosureAttribute1Optional
-    public var onremovetrack: EventHandler
-}
+    @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: [request.jsValue]).fromJSValue()!
+        _ = try await _promise.value
+    }
 
-public class AudioWorklet: Worklet {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioWorklet].function }
+    @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise {
+        let this = jsObject
+        return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).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 addAll(requests: [RequestInfo]) async throws {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()!
+        _ = try await _promise.value
     }
-}
 
-public class AudioWorkletNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioWorkletNode].function }
+    @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise {
+        let this = jsObject
+        return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).fromJSValue()!
+    }
 
-    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)
+    @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: [request.jsValue, response.jsValue]).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, name: String, options: AudioWorkletNodeOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, name.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var parameters: AudioParamMap
+    @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: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var port: MessagePort
+    @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @ClosureAttribute1Optional
-    public var onprocessorerror: EventHandler
+    @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: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 }
 
-public class AudioWorkletNodeOptions: BridgedDictionary {
-    public convenience init(numberOfInputs: UInt32, numberOfOutputs: UInt32, outputChannelCount: [UInt32], parameterData: [String: Double], processorOptions: JSObject) {
+public class CacheQueryOptions: BridgedDictionary {
+    public convenience init(ignoreSearch: Bool, ignoreMethod: Bool, ignoreVary: Bool) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.numberOfInputs] = numberOfInputs.jsValue
-        object[Strings.numberOfOutputs] = numberOfOutputs.jsValue
-        object[Strings.outputChannelCount] = outputChannelCount.jsValue
-        object[Strings.parameterData] = parameterData.jsValue
-        object[Strings.processorOptions] = processorOptions.jsValue
+        object[Strings.ignoreSearch] = ignoreSearch.jsValue
+        object[Strings.ignoreMethod] = ignoreMethod.jsValue
+        object[Strings.ignoreVary] = ignoreVary.jsValue
         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)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var numberOfInputs: UInt32
-
-    @ReadWriteAttribute
-    public var numberOfOutputs: UInt32
-
-    @ReadWriteAttribute
-    public var outputChannelCount: [UInt32]
+    public var ignoreSearch: Bool
 
     @ReadWriteAttribute
-    public var parameterData: [String: Double]
+    public var ignoreMethod: Bool
 
     @ReadWriteAttribute
-    public var processorOptions: JSObject
+    public var ignoreVary: Bool
 }
 
-public enum AutomationRate: JSString, JSValueCompatible {
-    case aRate = "a-rate"
-    case kRate = "k-rate"
+public class CacheStorage: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CacheStorage].function }
 
-    @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 BarProp: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.BarProp].function }
-
-    public let jsObject: JSObject
+    public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _visible = ReadonlyAttribute(jsObject: jsObject, name: Strings.visible)
         self.jsObject = jsObject
     }
 
-    @ReadonlyAttribute
-    public var visible: Bool
-}
-
-public class BaseAudioContext: EventTarget {
-    @inlinable override public 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)
-    }
-
-    @ReadonlyAttribute
-    public var destination: AudioDestinationNode
-
-    @ReadonlyAttribute
-    public var sampleRate: Float
-
-    @ReadonlyAttribute
-    public var currentTime: Double
-
-    @ReadonlyAttribute
-    public var listener: AudioListener
-
-    @ReadonlyAttribute
-    public var state: AudioContextState
-
-    @ReadonlyAttribute
-    public var audioWorklet: AudioWorklet
-
-    @ClosureAttribute1Optional
-    public var onstatechange: EventHandler
-
-    @inlinable public func createAnalyser() -> AnalyserNode {
+    @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise {
         let this = jsObject
-        return this[Strings.createAnalyser].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func createBiquadFilter() -> BiquadFilterNode {
+    @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
-        return this[Strings.createBiquadFilter].function!(this: this, arguments: []).fromJSValue()!
+        let _promise: JSPromise = this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func createBuffer(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) -> AudioBuffer {
+    @inlinable public func has(cacheName: String) -> JSPromise {
         let this = jsObject
-        return this[Strings.createBuffer].function!(this: this, arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]).fromJSValue()!
+        return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func createBufferSource() -> AudioBufferSourceNode {
+    @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
-        return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()!
+        let _promise: JSPromise = this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode {
+    @inlinable public func open(cacheName: String) -> JSPromise {
         let this = jsObject
-        return this[Strings.createChannelMerger].function!(this: this, arguments: [numberOfInputs?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode {
+    @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
-        return this[Strings.createChannelSplitter].function!(this: this, arguments: [numberOfOutputs?.jsValue ?? .undefined]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func createConstantSource() -> ConstantSourceNode {
+    @inlinable public func delete(cacheName: String) -> JSPromise {
         let this = jsObject
-        return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func createConvolver() -> ConvolverNode {
+    @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
-        return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()!
+        let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode {
+    @inlinable public func keys() -> JSPromise {
         let this = jsObject
-        return this[Strings.createDelay].function!(this: this, arguments: [maxDelayTime?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func keys() async throws -> [String] {
         let this = jsObject
-        return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()!
+        let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
+}
 
-    @inlinable public func createGain() -> GainNode {
-        let this = jsObject
-        return this[Strings.createGain].function!(this: this, arguments: []).fromJSValue()!
+public class CameraDevicePermissionDescriptor: BridgedDictionary {
+    public convenience init(panTiltZoom: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.panTiltZoom] = panTiltZoom.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func createIIRFilter(feedforward: [Double], feedback: [Double]) -> IIRFilterNode {
-        let this = jsObject
-        return this[Strings.createIIRFilter].function!(this: this, arguments: [feedforward.jsValue, feedback.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func createOscillator() -> OscillatorNode {
-        let this = jsObject
-        return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var panTiltZoom: Bool
+}
 
-    @inlinable public func createPanner() -> PannerNode {
-        let this = jsObject
-        return this[Strings.createPanner].function!(this: this, arguments: []).fromJSValue()!
-    }
+public enum CanPlayTypeResult: JSString, JSValueCompatible {
+    case _empty = ""
+    case maybe = "maybe"
+    case probably = "probably"
 
-    @inlinable public func createPeriodicWave(real: [Float], imag: [Float], constraints: PeriodicWaveConstraints? = nil) -> PeriodicWave {
-        let this = jsObject
-        return this[Strings.createPeriodicWave].function!(this: this, arguments: [real.jsValue, imag.jsValue, constraints?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable public func createScriptProcessor(bufferSize: UInt32? = nil, numberOfInputChannels: UInt32? = nil, numberOfOutputChannels: UInt32? = nil) -> ScriptProcessorNode {
-        let this = jsObject
-        return this[Strings.createScriptProcessor].function!(this: this, arguments: [bufferSize?.jsValue ?? .undefined, numberOfInputChannels?.jsValue ?? .undefined, numberOfOutputChannels?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable public func createStereoPanner() -> StereoPannerNode {
-        let this = jsObject
-        return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable public func createWaveShaper() -> WaveShaperNode {
-        let this = jsObject
-        return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()!
+public protocol CanvasCompositing: JSBridgedClass {}
+public extension CanvasCompositing {
+    @inlinable var globalAlpha: Double {
+        get { jsObject[Strings.globalAlpha].fromJSValue()! }
+        nonmutating set { jsObject[Strings.globalAlpha] = newValue.jsValue }
     }
 
-    // XXX: member 'decodeAudioData' is ignored
-
-    // XXX: member 'decodeAudioData' is ignored
+    @inlinable var globalCompositeOperation: String {
+        get { jsObject[Strings.globalCompositeOperation].fromJSValue()! }
+        nonmutating set { jsObject[Strings.globalCompositeOperation] = newValue.jsValue }
+    }
 }
 
-public class BaseComputedKeyframe: BridgedDictionary {
-    public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.offset] = offset.jsValue
-        object[Strings.computedOffset] = computedOffset.jsValue
-        object[Strings.easing] = easing.jsValue
-        object[Strings.composite] = composite.jsValue
-        self.init(unsafelyWrapping: object)
+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)
+        }
+        return nil
     }
 
-    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)
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @ReadWriteAttribute
-    public var offset: Double?
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @ReadWriteAttribute
-    public var computedOffset: Double
+public protocol CanvasDrawImage: JSBridgedClass {}
+public extension CanvasDrawImage {
+    @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double) {
+        let this = jsObject
+        _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue])
+    }
 
-    @ReadWriteAttribute
-    public var easing: String
+    @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) {
+        let this = jsObject
+        _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue, dw.jsValue, dh.jsValue])
+    }
 
-    @ReadWriteAttribute
-    public var composite: CompositeOperationOrAuto
+    @inlinable func drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) {
+        let _arg0 = image.jsValue
+        let _arg1 = sx.jsValue
+        let _arg2 = sy.jsValue
+        let _arg3 = sw.jsValue
+        let _arg4 = sh.jsValue
+        let _arg5 = dx.jsValue
+        let _arg6 = dy.jsValue
+        let _arg7 = dw.jsValue
+        let _arg8 = dh.jsValue
+        let this = jsObject
+        _ = this[Strings.drawImage].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
 }
 
-public class BaseKeyframe: BridgedDictionary {
-    public convenience init(offset: Double?, easing: String, composite: CompositeOperationOrAuto) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.offset] = offset.jsValue
-        object[Strings.easing] = easing.jsValue
-        object[Strings.composite] = composite.jsValue
-        self.init(unsafelyWrapping: object)
+public protocol CanvasDrawPath: JSBridgedClass {}
+public extension CanvasDrawPath {
+    @inlinable func beginPath() {
+        let this = jsObject
+        _ = this[Strings.beginPath].function!(this: this, arguments: [])
     }
 
-    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)
+    @inlinable func fill(fillRule: CanvasFillRule? = nil) {
+        let this = jsObject
+        _ = this[Strings.fill].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined])
     }
 
-    @ReadWriteAttribute
-    public var offset: Double?
-
-    @ReadWriteAttribute
-    public var easing: String
-
-    @ReadWriteAttribute
-    public var composite: CompositeOperationOrAuto
-}
+    @inlinable func fill(path: Path2D, fillRule: CanvasFillRule? = nil) {
+        let this = jsObject
+        _ = this[Strings.fill].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined])
+    }
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.offset] = offset.jsValue
-        object[Strings.easing] = easing.jsValue
-        object[Strings.composite] = composite.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable func stroke() {
+        let this = jsObject
+        _ = this[Strings.stroke].function!(this: this, arguments: [])
     }
 
-    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)
+    @inlinable func stroke(path: Path2D) {
+        let this = jsObject
+        _ = this[Strings.stroke].function!(this: this, arguments: [path.jsValue])
     }
 
-    @ReadWriteAttribute
-    public var offset: nullable_Double_or_seq_of_nullable_Double
+    @inlinable func clip(fillRule: CanvasFillRule? = nil) {
+        let this = jsObject
+        _ = this[Strings.clip].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined])
+    }
 
-    @ReadWriteAttribute
-    public var easing: String_or_seq_of_String
+    @inlinable func clip(path: Path2D, fillRule: CanvasFillRule? = nil) {
+        let this = jsObject
+        _ = this[Strings.clip].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined])
+    }
 
-    @ReadWriteAttribute
-    public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto
-}
+    @inlinable func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool {
+        let this = jsObject
+        return this[Strings.isPointInPath].function!(this: this, arguments: [x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-public class BeforeUnloadEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.BeforeUnloadEvent].function }
+    @inlinable func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool {
+        let this = jsObject
+        return this[Strings.isPointInPath].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable func isPointInStroke(x: Double, y: Double) -> Bool {
+        let this = jsObject
+        return this[Strings.isPointInStroke].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
     }
 
-    // XXX: member 'returnValue' is ignored
+    @inlinable func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool {
+        let this = jsObject
+        return this[Strings.isPointInStroke].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue]).fromJSValue()!
+    }
 }
 
-public enum BinaryType: JSString, JSValueCompatible {
-    case blob = "blob"
-    case arraybuffer = "arraybuffer"
+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 {
@@ -2201,88 +1624,96 @@ public enum BinaryType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class BiquadFilterNode: AudioNode {
-    @inlinable override public 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 protocol CanvasFillStrokeStyles: JSBridgedClass {}
+public extension CanvasFillStrokeStyles {
+    @inlinable var strokeStyle: CanvasGradient_or_CanvasPattern_or_String {
+        get { jsObject[Strings.strokeStyle].fromJSValue()! }
+        nonmutating set { jsObject[Strings.strokeStyle] = newValue.jsValue }
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: BiquadFilterOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable var fillStyle: CanvasGradient_or_CanvasPattern_or_String {
+        get { jsObject[Strings.fillStyle].fromJSValue()! }
+        nonmutating set { jsObject[Strings.fillStyle] = newValue.jsValue }
     }
 
-    @ReadWriteAttribute
-    public var type: BiquadFilterType
+    @inlinable func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient {
+        let this = jsObject
+        return this[Strings.createLinearGradient].function!(this: this, arguments: [x0.jsValue, y0.jsValue, x1.jsValue, y1.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var frequency: AudioParam
-
-    @ReadonlyAttribute
-    public var detune: AudioParam
-
-    @ReadonlyAttribute
-    public var Q: AudioParam
+    @inlinable func createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double) -> CanvasGradient {
+        let _arg0 = x0.jsValue
+        let _arg1 = y0.jsValue
+        let _arg2 = r0.jsValue
+        let _arg3 = x1.jsValue
+        let _arg4 = y1.jsValue
+        let _arg5 = r1.jsValue
+        let this = jsObject
+        return this[Strings.createRadialGradient].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var gain: AudioParam
+    @inlinable func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient {
+        let this = jsObject
+        return this[Strings.createConicGradient].function!(this: this, arguments: [startAngle.jsValue, x.jsValue, y.jsValue]).fromJSValue()!
+    }
 
-    @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) {
+    @inlinable func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? {
         let this = jsObject
-        _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue])
+        return this[Strings.createPattern].function!(this: this, arguments: [image.jsValue, repetition.jsValue]).fromJSValue()!
     }
 }
 
-public class BiquadFilterOptions: BridgedDictionary {
-    public convenience init(type: BiquadFilterType, Q: Float, detune: Float, frequency: Float, gain: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.Q] = Q.jsValue
-        object[Strings.detune] = detune.jsValue
-        object[Strings.frequency] = frequency.jsValue
-        object[Strings.gain] = gain.jsValue
-        self.init(unsafelyWrapping: object)
+public class CanvasFilter: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasFilter].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
     }
 
-    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)
+    @inlinable public convenience init(filters: CanvasFilterInput_or_seq_of_CanvasFilterInput? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [filters?.jsValue ?? .undefined]))
     }
+}
 
-    @ReadWriteAttribute
-    public var type: BiquadFilterType
+public protocol CanvasFilters: JSBridgedClass {}
+public extension CanvasFilters {
+    @inlinable var filter: CanvasFilter_or_String {
+        get { jsObject[Strings.filter].fromJSValue()! }
+        nonmutating set { jsObject[Strings.filter] = newValue.jsValue }
+    }
+}
 
-    @ReadWriteAttribute
-    public var Q: Float
+public enum CanvasFontKerning: JSString, JSValueCompatible {
+    case auto = "auto"
+    case normal = "normal"
+    case none = "none"
 
-    @ReadWriteAttribute
-    public var detune: Float
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @ReadWriteAttribute
-    public var frequency: Float
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @ReadWriteAttribute
-    public var gain: Float
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public enum BiquadFilterType: JSString, JSValueCompatible {
-    case lowpass = "lowpass"
-    case highpass = "highpass"
-    case bandpass = "bandpass"
-    case lowshelf = "lowshelf"
-    case highshelf = "highshelf"
-    case peaking = "peaking"
-    case notch = "notch"
-    case allpass = "allpass"
+public enum CanvasFontStretch: JSString, JSValueCompatible {
+    case ultraCondensed = "ultra-condensed"
+    case extraCondensed = "extra-condensed"
+    case condensed = "condensed"
+    case semiCondensed = "semi-condensed"
+    case normal = "normal"
+    case semiExpanded = "semi-expanded"
+    case expanded = "expanded"
+    case extraExpanded = "extra-expanded"
+    case ultraExpanded = "ultra-expanded"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -2298,9 +1729,14 @@ public enum BiquadFilterType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public enum BitrateMode: JSString, JSValueCompatible {
-    case constant = "constant"
-    case variable = "variable"
+public enum CanvasFontVariantCaps: JSString, JSValueCompatible {
+    case normal = "normal"
+    case smallCaps = "small-caps"
+    case allSmallCaps = "all-small-caps"
+    case petiteCaps = "petite-caps"
+    case allPetiteCaps = "all-petite-caps"
+    case unicase = "unicase"
+    case titlingCaps = "titling-caps"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -2316,528 +1752,466 @@ public enum BitrateMode: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class Blob: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Blob].function }
+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) {
-        _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size)
-        _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type)
         self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(blobParts: [BlobPart]? = nil, options: BlobPropertyBag? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [blobParts?.jsValue ?? .undefined, options?.jsValue ?? .undefined]))
+    @inlinable public func addColorStop(offset: Double, color: String) {
+        let this = jsObject
+        _ = this[Strings.addColorStop].function!(this: this, arguments: [offset.jsValue, color.jsValue])
     }
+}
 
-    @ReadonlyAttribute
-    public var size: UInt64
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @inlinable public func slice(start: Int64? = nil, end: Int64? = nil, contentType: String? = nil) -> Self {
+public protocol CanvasImageData: JSBridgedClass {}
+public extension CanvasImageData {
+    @inlinable func createImageData(sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData {
         let this = jsObject
-        return this[Strings.slice].function!(this: this, arguments: [start?.jsValue ?? .undefined, end?.jsValue ?? .undefined, contentType?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createImageData].function!(this: this, arguments: [sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    // XXX: member 'stream' is ignored
-
-    @inlinable public func text() -> JSPromise {
+    @inlinable func createImageData(imagedata: ImageData) -> ImageData {
         let this = jsObject
-        return this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.createImageData].function!(this: this, arguments: [imagedata.jsValue]).fromJSValue()!
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func text() async throws -> String {
+    @inlinable func getImageData(sx: Int32, sy: Int32, sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        return this[Strings.getImageData].function!(this: this, arguments: [sx.jsValue, sy.jsValue, sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func arrayBuffer() -> JSPromise {
+    @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32) {
         let this = jsObject
-        return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.putImageData].function!(this: this, arguments: [imagedata.jsValue, dx.jsValue, dy.jsValue])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func arrayBuffer() async throws -> ArrayBuffer {
+    @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32, dirtyX: Int32, dirtyY: Int32, dirtyWidth: Int32, dirtyHeight: Int32) {
+        let _arg0 = imagedata.jsValue
+        let _arg1 = dx.jsValue
+        let _arg2 = dy.jsValue
+        let _arg3 = dirtyX.jsValue
+        let _arg4 = dirtyY.jsValue
+        let _arg5 = dirtyWidth.jsValue
+        let _arg6 = dirtyHeight.jsValue
         let this = jsObject
-        let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.putImageData].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
     }
 }
 
-public class BlobEvent: Event {
-    @inlinable override public 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 protocol CanvasImageSmoothing: JSBridgedClass {}
+public extension CanvasImageSmoothing {
+    @inlinable var imageSmoothingEnabled: Bool {
+        get { jsObject[Strings.imageSmoothingEnabled].fromJSValue()! }
+        nonmutating set { jsObject[Strings.imageSmoothingEnabled] = newValue.jsValue }
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: BlobEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    @inlinable var imageSmoothingQuality: ImageSmoothingQuality {
+        get { jsObject[Strings.imageSmoothingQuality].fromJSValue()! }
+        nonmutating set { jsObject[Strings.imageSmoothingQuality] = newValue.jsValue }
     }
-
-    @ReadonlyAttribute
-    public var data: Blob
-
-    @ReadonlyAttribute
-    public var timecode: DOMHighResTimeStamp
 }
 
-public class BlobEventInit: BridgedDictionary {
-    public convenience init(data: Blob, timecode: DOMHighResTimeStamp) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.data] = data.jsValue
-        object[Strings.timecode] = timecode.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public enum CanvasLineCap: JSString, JSValueCompatible {
+    case butt = "butt"
+    case round = "round"
+    case square = "square"
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
-        _timecode = ReadWriteAttribute(jsObject: object, name: Strings.timecode)
-        super.init(unsafelyWrapping: object)
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @ReadWriteAttribute
-    public var data: Blob
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @ReadWriteAttribute
-    public var timecode: DOMHighResTimeStamp
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class BlobPropertyBag: BridgedDictionary {
-    public convenience init(type: String, endings: EndingType) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.endings] = endings.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public enum CanvasLineJoin: JSString, JSValueCompatible {
+    case round = "round"
+    case bevel = "bevel"
+    case miter = "miter"
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
-        _endings = ReadWriteAttribute(jsObject: object, name: Strings.endings)
-        super.init(unsafelyWrapping: object)
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @ReadWriteAttribute
-    public var type: String
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @ReadWriteAttribute
-    public var endings: EndingType
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public protocol Body: JSBridgedClass {}
-public extension Body {
-    // XXX: attribute 'body' is ignored
-
-    @inlinable var bodyUsed: Bool { jsObject[Strings.bodyUsed].fromJSValue()! }
-
-    @inlinable func arrayBuffer() -> JSPromise {
+public protocol CanvasPath: JSBridgedClass {}
+public extension CanvasPath {
+    @inlinable func closePath() {
         let this = jsObject
-        return this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.closePath].function!(this: this, arguments: [])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable func arrayBuffer() async throws -> ArrayBuffer {
+    @inlinable func moveTo(x: Double, y: Double) {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.arrayBuffer].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.moveTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
 
-    @inlinable func blob() -> JSPromise {
+    @inlinable func lineTo(x: Double, y: Double) {
         let this = jsObject
-        return this[Strings.blob].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.lineTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable func blob() async throws -> Blob {
+    @inlinable func quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.blob].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.quadraticCurveTo].function!(this: this, arguments: [cpx.jsValue, cpy.jsValue, x.jsValue, y.jsValue])
     }
 
-    @inlinable func formData() -> JSPromise {
+    @inlinable func bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) {
+        let _arg0 = cp1x.jsValue
+        let _arg1 = cp1y.jsValue
+        let _arg2 = cp2x.jsValue
+        let _arg3 = cp2y.jsValue
+        let _arg4 = x.jsValue
+        let _arg5 = y.jsValue
         let this = jsObject
-        return this[Strings.formData].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.bezierCurveTo].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable func formData() async throws -> FormData {
+    @inlinable func arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.formData].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.arcTo].function!(this: this, arguments: [x1.jsValue, y1.jsValue, x2.jsValue, y2.jsValue, radius.jsValue])
     }
 
-    @inlinable func json() -> JSPromise {
+    @inlinable func rect(x: Double, y: Double, w: Double, h: Double) {
         let this = jsObject
-        return this[Strings.json].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.rect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable func json() async throws -> JSValue {
+    @inlinable func roundRect(x: Double, y: Double, w: Double, h: Double, radii: DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double? = nil) {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.json].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.roundRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue, radii?.jsValue ?? .undefined])
     }
 
-    @inlinable func text() -> JSPromise {
+    @inlinable func arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = radius.jsValue
+        let _arg3 = startAngle.jsValue
+        let _arg4 = endAngle.jsValue
+        let _arg5 = counterclockwise?.jsValue ?? .undefined
         let this = jsObject
-        return this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.arc].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable func text() async throws -> String {
+    @inlinable func ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = radiusX.jsValue
+        let _arg3 = radiusY.jsValue
+        let _arg4 = rotation.jsValue
+        let _arg5 = startAngle.jsValue
+        let _arg6 = endAngle.jsValue
+        let _arg7 = counterclockwise?.jsValue ?? .undefined
         let this = jsObject
-        let _promise: JSPromise = this[Strings.text].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.ellipse].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
     }
 }
 
-public class BoxQuadOptions: BridgedDictionary {
-    public convenience init(box: CSSBoxType, relativeTo: GeometryNode) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.box] = box.jsValue
-        object[Strings.relativeTo] = relativeTo.jsValue
-        self.init(unsafelyWrapping: object)
+public protocol CanvasPathDrawingStyles: JSBridgedClass {}
+public extension CanvasPathDrawingStyles {
+    @inlinable var lineWidth: Double {
+        get { jsObject[Strings.lineWidth].fromJSValue()! }
+        nonmutating set { jsObject[Strings.lineWidth] = newValue.jsValue }
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _box = ReadWriteAttribute(jsObject: object, name: Strings.box)
-        _relativeTo = ReadWriteAttribute(jsObject: object, name: Strings.relativeTo)
-        super.init(unsafelyWrapping: object)
+    @inlinable var lineCap: CanvasLineCap {
+        get { jsObject[Strings.lineCap].fromJSValue()! }
+        nonmutating set { jsObject[Strings.lineCap] = newValue.jsValue }
     }
 
-    @ReadWriteAttribute
-    public var box: CSSBoxType
-
-    @ReadWriteAttribute
-    public var relativeTo: GeometryNode
-}
-
-public class BroadcastChannel: EventTarget {
-    @inlinable override public 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)
+    @inlinable var lineJoin: CanvasLineJoin {
+        get { jsObject[Strings.lineJoin].fromJSValue()! }
+        nonmutating set { jsObject[Strings.lineJoin] = newValue.jsValue }
     }
 
-    @inlinable public convenience init(name: String) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [name.jsValue]))
+    @inlinable var miterLimit: Double {
+        get { jsObject[Strings.miterLimit].fromJSValue()! }
+        nonmutating set { jsObject[Strings.miterLimit] = newValue.jsValue }
     }
 
-    @ReadonlyAttribute
-    public var name: String
-
-    @inlinable public func postMessage(message: JSValue) {
+    @inlinable func setLineDash(segments: [Double]) {
         let this = jsObject
-        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue])
+        _ = this[Strings.setLineDash].function!(this: this, arguments: [segments.jsValue])
     }
 
-    @inlinable public func close() {
+    @inlinable func getLineDash() -> [Double] {
         let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+        return this[Strings.getLineDash].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ClosureAttribute1Optional
-    public var onmessage: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onmessageerror: EventHandler
+    @inlinable var lineDashOffset: Double {
+        get { jsObject[Strings.lineDashOffset].fromJSValue()! }
+        nonmutating set { jsObject[Strings.lineDashOffset] = newValue.jsValue }
+    }
 }
 
-public class ByteLengthQueuingStrategy: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ByteLengthQueuingStrategy].function }
+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) {
-        _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark)
-        _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size)
         self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(init: QueuingStrategyInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    @inlinable public func setTransform(transform: DOMMatrix2DInit? = nil) {
+        let this = jsObject
+        _ = this[Strings.setTransform].function!(this: this, arguments: [transform?.jsValue ?? .undefined])
     }
-
-    @ReadonlyAttribute
-    public var highWaterMark: Double
-
-    @ReadonlyAttribute
-    public var size: JSFunction
 }
 
-public class CDATASection: Text {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CDATASection].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+public protocol CanvasRect: JSBridgedClass {}
+public extension CanvasRect {
+    @inlinable func clearRect(x: Double, y: Double, w: Double, h: Double) {
+        let this = jsObject
+        _ = this[Strings.clearRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
     }
-}
-
-public enum CSSBoxType: JSString, JSValueCompatible {
-    case margin = "margin"
-    case border = "border"
-    case padding = "padding"
-    case content = "content"
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable func fillRect(x: Double, y: Double, w: Double, h: Double) {
+        let this = jsObject
+        _ = this[Strings.fillRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable func strokeRect(x: Double, y: Double, w: Double, h: Double) {
+        let this = jsObject
+        _ = this[Strings.strokeRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
     }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class CSSPseudoElement: EventTarget, GeometryUtils {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CSSPseudoElement].function }
+public class CanvasRenderingContext2D: JSBridgedClass, 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) {
-        _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)
+        _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas)
+        self.jsObject = jsObject
     }
 
     @ReadonlyAttribute
-    public var type: String
-
-    @ReadonlyAttribute
-    public var element: Element
-
-    @ReadonlyAttribute
-    public var parent: CSSPseudoElement_or_Element
+    public var canvas: HTMLCanvasElement
 
-    @inlinable public func pseudo(type: String) -> CSSPseudoElement? {
+    @inlinable public func getContextAttributes() -> CanvasRenderingContext2DSettings {
         let this = jsObject
-        return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
+        return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()!
     }
 }
 
-public class Cache: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Cache].function }
+public class CanvasRenderingContext2DSettings: BridgedDictionary {
+    public convenience init(alpha: Bool, desynchronized: Bool, colorSpace: PredefinedColorSpace, willReadFrequently: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.alpha] = alpha.jsValue
+        object[Strings.desynchronized] = desynchronized.jsValue
+        object[Strings.colorSpace] = colorSpace.jsValue
+        object[Strings.willReadFrequently] = willReadFrequently.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    public let jsObject: JSObject
+    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)
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @ReadWriteAttribute
+    public var alpha: Bool
+
+    @ReadWriteAttribute
+    public var desynchronized: Bool
+
+    @ReadWriteAttribute
+    public var colorSpace: PredefinedColorSpace
+
+    @ReadWriteAttribute
+    public var willReadFrequently: Bool
+}
+
+public protocol CanvasShadowStyles: JSBridgedClass {}
+public extension CanvasShadowStyles {
+    @inlinable var shadowOffsetX: Double {
+        get { jsObject[Strings.shadowOffsetX].fromJSValue()! }
+        nonmutating set { jsObject[Strings.shadowOffsetX] = newValue.jsValue }
     }
 
-    @inlinable public func match(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable var shadowOffsetY: Double {
+        get { jsObject[Strings.shadowOffsetY].fromJSValue()! }
+        nonmutating set { jsObject[Strings.shadowOffsetY] = newValue.jsValue }
     }
 
-    @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: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable var shadowBlur: Double {
+        get { jsObject[Strings.shadowBlur].fromJSValue()! }
+        nonmutating set { jsObject[Strings.shadowBlur] = newValue.jsValue }
     }
 
-    @inlinable public func matchAll(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable var shadowColor: String {
+        get { jsObject[Strings.shadowColor].fromJSValue()! }
+        nonmutating set { jsObject[Strings.shadowColor] = newValue.jsValue }
     }
+}
 
-    @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] {
+public protocol CanvasState: JSBridgedClass {}
+public extension CanvasState {
+    @inlinable func save() {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.matchAll].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.save].function!(this: this, arguments: [])
     }
 
-    @inlinable public func add(request: RequestInfo) -> JSPromise {
+    @inlinable func restore() {
         let this = jsObject
-        return this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()!
+        _ = this[Strings.restore].function!(this: this, arguments: [])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func add(request: RequestInfo) async throws {
+    @inlinable func reset() {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.add].function!(this: this, arguments: [request.jsValue]).fromJSValue()!
-        _ = try await _promise.value
+        _ = this[Strings.reset].function!(this: this, arguments: [])
     }
 
-    @inlinable public func addAll(requests: [RequestInfo]) -> JSPromise {
+    @inlinable func isContextLost() -> Bool {
         let this = jsObject
-        return this[Strings.addAll].function!(this: this, arguments: [requests.jsValue]).fromJSValue()!
+        return this[Strings.isContextLost].function!(this: this, arguments: []).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: [requests.jsValue]).fromJSValue()!
-        _ = try await _promise.value
-    }
-
-    @inlinable public func put(request: RequestInfo, response: Response) -> JSPromise {
-        let this = jsObject
-        return this[Strings.put].function!(this: this, arguments: [request.jsValue, response.jsValue]).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: [request.jsValue, response.jsValue]).fromJSValue()!
-        _ = try await _promise.value
-    }
-
-    @inlinable public func delete(request: RequestInfo, options: CacheQueryOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).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 {
+public protocol CanvasText: JSBridgedClass {}
+public extension CanvasText {
+    @inlinable func fillText(text: String, x: Double, y: Double, maxWidth: Double? = nil) {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.delete].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.fillText].function!(this: this, arguments: [text.jsValue, x.jsValue, y.jsValue, maxWidth?.jsValue ?? .undefined])
     }
 
-    @inlinable public func keys(request: RequestInfo? = nil, options: CacheQueryOptions? = nil) -> JSPromise {
+    @inlinable func strokeText(text: String, x: Double, y: Double, maxWidth: Double? = nil) {
         let this = jsObject
-        return this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.strokeText].function!(this: this, arguments: [text.jsValue, x.jsValue, y.jsValue, maxWidth?.jsValue ?? .undefined])
     }
 
-    @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] {
+    @inlinable func measureText(text: String) -> TextMetrics {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.keys].function!(this: this, arguments: [request?.jsValue ?? .undefined, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        return this[Strings.measureText].function!(this: this, arguments: [text.jsValue]).fromJSValue()!
     }
 }
 
-public class CacheQueryOptions: BridgedDictionary {
-    public convenience init(ignoreSearch: Bool, ignoreMethod: Bool, ignoreVary: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.ignoreSearch] = ignoreSearch.jsValue
-        object[Strings.ignoreMethod] = ignoreMethod.jsValue
-        object[Strings.ignoreVary] = ignoreVary.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public enum CanvasTextAlign: JSString, JSValueCompatible {
+    case start = "start"
+    case end = "end"
+    case left = "left"
+    case right = "right"
+    case center = "center"
 
-    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)
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @ReadWriteAttribute
-    public var ignoreSearch: Bool
-
-    @ReadWriteAttribute
-    public var ignoreMethod: Bool
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @ReadWriteAttribute
-    public var ignoreVary: Bool
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class CacheStorage: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CacheStorage].function }
-
-    public let jsObject: JSObject
+public enum CanvasTextBaseline: JSString, JSValueCompatible {
+    case top = "top"
+    case hanging = "hanging"
+    case middle = "middle"
+    case alphabetic = "alphabetic"
+    case ideographic = "ideographic"
+    case bottom = "bottom"
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable public func match(request: RequestInfo, options: MultiCacheQueryOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.match].function!(this: this, arguments: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @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: [request.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable public func has(cacheName: String) -> JSPromise {
-        let this = jsObject
-        return this[Strings.has].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+public protocol CanvasTextDrawingStyles: JSBridgedClass {}
+public extension CanvasTextDrawingStyles {
+    @inlinable var font: String {
+        get { jsObject[Strings.font].fromJSValue()! }
+        nonmutating set { jsObject[Strings.font] = newValue.jsValue }
     }
 
-    @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: [cacheName.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable var textAlign: CanvasTextAlign {
+        get { jsObject[Strings.textAlign].fromJSValue()! }
+        nonmutating set { jsObject[Strings.textAlign] = newValue.jsValue }
     }
 
-    @inlinable public func open(cacheName: String) -> JSPromise {
-        let this = jsObject
-        return this[Strings.open].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+    @inlinable var textBaseline: CanvasTextBaseline {
+        get { jsObject[Strings.textBaseline].fromJSValue()! }
+        nonmutating set { jsObject[Strings.textBaseline] = newValue.jsValue }
     }
 
-    @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: [cacheName.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable var direction: CanvasDirection {
+        get { jsObject[Strings.direction].fromJSValue()! }
+        nonmutating set { jsObject[Strings.direction] = newValue.jsValue }
     }
 
-    @inlinable public func delete(cacheName: String) -> JSPromise {
-        let this = jsObject
-        return this[Strings.delete].function!(this: this, arguments: [cacheName.jsValue]).fromJSValue()!
+    @inlinable var letterSpacing: String {
+        get { jsObject[Strings.letterSpacing].fromJSValue()! }
+        nonmutating set { jsObject[Strings.letterSpacing] = newValue.jsValue }
     }
 
-    @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: [cacheName.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable var fontKerning: CanvasFontKerning {
+        get { jsObject[Strings.fontKerning].fromJSValue()! }
+        nonmutating set { jsObject[Strings.fontKerning] = newValue.jsValue }
     }
 
-    @inlinable public func keys() -> JSPromise {
-        let this = jsObject
-        return this[Strings.keys].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable var fontStretch: CanvasFontStretch {
+        get { jsObject[Strings.fontStretch].fromJSValue()! }
+        nonmutating set { jsObject[Strings.fontStretch] = newValue.jsValue }
     }
 
-    @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()!
+    @inlinable var fontVariantCaps: CanvasFontVariantCaps {
+        get { jsObject[Strings.fontVariantCaps].fromJSValue()! }
+        nonmutating set { jsObject[Strings.fontVariantCaps] = newValue.jsValue }
     }
-}
 
-public class CameraDevicePermissionDescriptor: BridgedDictionary {
-    public convenience init(panTiltZoom: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.panTiltZoom] = panTiltZoom.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable var textRendering: CanvasTextRendering {
+        get { jsObject[Strings.textRendering].fromJSValue()! }
+        nonmutating set { jsObject[Strings.textRendering] = newValue.jsValue }
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _panTiltZoom = ReadWriteAttribute(jsObject: object, name: Strings.panTiltZoom)
-        super.init(unsafelyWrapping: object)
+    @inlinable var wordSpacing: String {
+        get { jsObject[Strings.wordSpacing].fromJSValue()! }
+        nonmutating set { jsObject[Strings.wordSpacing] = newValue.jsValue }
     }
-
-    @ReadWriteAttribute
-    public var panTiltZoom: Bool
 }
 
-public enum CanPlayTypeResult: JSString, JSValueCompatible {
-    case _empty = ""
-    case maybe = "maybe"
-    case probably = "probably"
+public enum CanvasTextRendering: JSString, JSValueCompatible {
+    case auto = "auto"
+    case optimizeSpeed = "optimizeSpeed"
+    case optimizeLegibility = "optimizeLegibility"
+    case geometricPrecision = "geometricPrecision"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -2853,206 +2227,197 @@ public enum CanPlayTypeResult: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public protocol CanvasCompositing: JSBridgedClass {}
-public extension CanvasCompositing {
-    @inlinable var globalAlpha: Double {
-        get { jsObject[Strings.globalAlpha].fromJSValue()! }
-        nonmutating set { jsObject[Strings.globalAlpha] = newValue.jsValue }
+public protocol CanvasTransform: JSBridgedClass {}
+public extension CanvasTransform {
+    @inlinable func scale(x: Double, y: Double) {
+        let this = jsObject
+        _ = this[Strings.scale].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
 
-    @inlinable var globalCompositeOperation: String {
-        get { jsObject[Strings.globalCompositeOperation].fromJSValue()! }
-        nonmutating set { jsObject[Strings.globalCompositeOperation] = newValue.jsValue }
+    @inlinable func rotate(angle: Double) {
+        let this = jsObject
+        _ = this[Strings.rotate].function!(this: this, arguments: [angle.jsValue])
     }
-}
-
-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)
-        }
-        return nil
+    @inlinable func translate(x: Double, y: Double) {
+        let this = jsObject
+        _ = this[Strings.translate].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable func transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) {
+        let _arg0 = a.jsValue
+        let _arg1 = b.jsValue
+        let _arg2 = c.jsValue
+        let _arg3 = d.jsValue
+        let _arg4 = e.jsValue
+        let _arg5 = f.jsValue
+        let this = jsObject
+        _ = this[Strings.transform].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable func getTransform() -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.getTransform].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-public protocol CanvasDrawImage: JSBridgedClass {}
-public extension CanvasDrawImage {
-    @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double) {
+    @inlinable func setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) {
+        let _arg0 = a.jsValue
+        let _arg1 = b.jsValue
+        let _arg2 = c.jsValue
+        let _arg3 = d.jsValue
+        let _arg4 = e.jsValue
+        let _arg5 = f.jsValue
         let this = jsObject
-        _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue])
+        _ = this[Strings.setTransform].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
     }
 
-    @inlinable func drawImage(image: CanvasImageSource, dx: Double, dy: Double, dw: Double, dh: Double) {
+    @inlinable func setTransform(transform: DOMMatrix2DInit? = nil) {
         let this = jsObject
-        _ = this[Strings.drawImage].function!(this: this, arguments: [image.jsValue, dx.jsValue, dy.jsValue, dw.jsValue, dh.jsValue])
+        _ = this[Strings.setTransform].function!(this: this, arguments: [transform?.jsValue ?? .undefined])
     }
 
-    @inlinable func drawImage(image: CanvasImageSource, sx: Double, sy: Double, sw: Double, sh: Double, dx: Double, dy: Double, dw: Double, dh: Double) {
-        let _arg0 = image.jsValue
-        let _arg1 = sx.jsValue
-        let _arg2 = sy.jsValue
-        let _arg3 = sw.jsValue
-        let _arg4 = sh.jsValue
-        let _arg5 = dx.jsValue
-        let _arg6 = dy.jsValue
-        let _arg7 = dw.jsValue
-        let _arg8 = dh.jsValue
+    @inlinable func resetTransform() {
         let this = jsObject
-        _ = this[Strings.drawImage].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+        _ = this[Strings.resetTransform].function!(this: this, arguments: [])
     }
 }
 
-public protocol CanvasDrawPath: JSBridgedClass {}
-public extension CanvasDrawPath {
-    @inlinable func beginPath() {
+public protocol CanvasUserInterface: JSBridgedClass {}
+public extension CanvasUserInterface {
+    @inlinable func drawFocusIfNeeded(element: Element) {
         let this = jsObject
-        _ = this[Strings.beginPath].function!(this: this, arguments: [])
+        _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [element.jsValue])
     }
 
-    @inlinable func fill(fillRule: CanvasFillRule? = nil) {
+    @inlinable func drawFocusIfNeeded(path: Path2D, element: Element) {
         let this = jsObject
-        _ = this[Strings.fill].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined])
+        _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [path.jsValue, element.jsValue])
     }
 
-    @inlinable func fill(path: Path2D, fillRule: CanvasFillRule? = nil) {
+    @inlinable func scrollPathIntoView() {
         let this = jsObject
-        _ = this[Strings.fill].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined])
+        _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: [])
     }
 
-    @inlinable func stroke() {
+    @inlinable func scrollPathIntoView(path: Path2D) {
         let this = jsObject
-        _ = this[Strings.stroke].function!(this: this, arguments: [])
+        _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: [path.jsValue])
     }
+}
 
-    @inlinable func stroke(path: Path2D) {
-        let this = jsObject
-        _ = this[Strings.stroke].function!(this: this, arguments: [path.jsValue])
-    }
+public class CaretPosition: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CaretPosition].function }
 
-    @inlinable func clip(fillRule: CanvasFillRule? = nil) {
-        let this = jsObject
-        _ = this[Strings.clip].function!(this: this, arguments: [fillRule?.jsValue ?? .undefined])
+    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
     }
 
-    @inlinable func clip(path: Path2D, fillRule: CanvasFillRule? = nil) {
+    @ReadonlyAttribute
+    public var offsetNode: Node
+
+    @ReadonlyAttribute
+    public var offset: UInt32
+
+    @inlinable public func getClientRect() -> DOMRect? {
         let this = jsObject
-        _ = this[Strings.clip].function!(this: this, arguments: [path.jsValue, fillRule?.jsValue ?? .undefined])
+        return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @inlinable func isPointInPath(x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool {
-        let this = jsObject
-        return this[Strings.isPointInPath].function!(this: this, arguments: [x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()!
+public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CharacterData].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _data = ReadWriteAttribute(jsObject: jsObject, name: Strings.data)
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable func isPointInPath(path: Path2D, x: Double, y: Double, fillRule: CanvasFillRule? = nil) -> Bool {
+    @ReadWriteAttribute
+    public var data: String
+
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public func substringData(offset: UInt32, count: UInt32) -> String {
         let this = jsObject
-        return this[Strings.isPointInPath].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue, fillRule?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.substringData].function!(this: this, arguments: [offset.jsValue, count.jsValue]).fromJSValue()!
     }
 
-    @inlinable func isPointInStroke(x: Double, y: Double) -> Bool {
+    @inlinable public func appendData(data: String) {
         let this = jsObject
-        return this[Strings.isPointInStroke].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
+        _ = this[Strings.appendData].function!(this: this, arguments: [data.jsValue])
     }
 
-    @inlinable func isPointInStroke(path: Path2D, x: Double, y: Double) -> Bool {
+    @inlinable public func insertData(offset: UInt32, data: String) {
         let this = jsObject
-        return this[Strings.isPointInStroke].function!(this: this, arguments: [path.jsValue, x.jsValue, y.jsValue]).fromJSValue()!
+        _ = this[Strings.insertData].function!(this: this, arguments: [offset.jsValue, data.jsValue])
     }
-}
 
-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)
-        }
-        return nil
+    @inlinable public func deleteData(offset: UInt32, count: UInt32) {
+        let this = jsObject
+        _ = this[Strings.deleteData].function!(this: this, arguments: [offset.jsValue, count.jsValue])
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func replaceData(offset: UInt32, count: UInt32, data: String) {
+        let this = jsObject
+        _ = this[Strings.replaceData].function!(this: this, arguments: [offset.jsValue, count.jsValue, data.jsValue])
     }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public protocol CanvasFillStrokeStyles: JSBridgedClass {}
-public extension CanvasFillStrokeStyles {
-    @inlinable var strokeStyle: CanvasGradient_or_CanvasPattern_or_String {
-        get { jsObject[Strings.strokeStyle].fromJSValue()! }
-        nonmutating set { jsObject[Strings.strokeStyle] = newValue.jsValue }
-    }
-
-    @inlinable var fillStyle: CanvasGradient_or_CanvasPattern_or_String {
-        get { jsObject[Strings.fillStyle].fromJSValue()! }
-        nonmutating set { jsObject[Strings.fillStyle] = newValue.jsValue }
-    }
-
-    @inlinable func createLinearGradient(x0: Double, y0: Double, x1: Double, y1: Double) -> CanvasGradient {
+public protocol ChildNode: JSBridgedClass {}
+public extension ChildNode {
+    @inlinable func before(nodes: Node_or_String...) {
         let this = jsObject
-        return this[Strings.createLinearGradient].function!(this: this, arguments: [x0.jsValue, y0.jsValue, x1.jsValue, y1.jsValue]).fromJSValue()!
+        _ = this[Strings.before].function!(this: this, arguments: nodes.map(\.jsValue))
     }
 
-    @inlinable func createRadialGradient(x0: Double, y0: Double, r0: Double, x1: Double, y1: Double, r1: Double) -> CanvasGradient {
-        let _arg0 = x0.jsValue
-        let _arg1 = y0.jsValue
-        let _arg2 = r0.jsValue
-        let _arg3 = x1.jsValue
-        let _arg4 = y1.jsValue
-        let _arg5 = r1.jsValue
+    @inlinable func after(nodes: Node_or_String...) {
         let this = jsObject
-        return this[Strings.createRadialGradient].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
+        _ = this[Strings.after].function!(this: this, arguments: nodes.map(\.jsValue))
     }
 
-    @inlinable func createConicGradient(startAngle: Double, x: Double, y: Double) -> CanvasGradient {
+    @inlinable func replaceWith(nodes: Node_or_String...) {
         let this = jsObject
-        return this[Strings.createConicGradient].function!(this: this, arguments: [startAngle.jsValue, x.jsValue, y.jsValue]).fromJSValue()!
+        _ = this[Strings.replaceWith].function!(this: this, arguments: nodes.map(\.jsValue))
     }
 
-    @inlinable func createPattern(image: CanvasImageSource, repetition: String) -> CanvasPattern? {
+    @inlinable func remove() {
         let this = jsObject
-        return this[Strings.createPattern].function!(this: this, arguments: [image.jsValue, repetition.jsValue]).fromJSValue()!
+        _ = this[Strings.remove].function!(this: this, arguments: [])
     }
 }
 
-public class CanvasFilter: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasFilter].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+public class ClientQueryOptions: BridgedDictionary {
+    public convenience init(includeUncontrolled: Bool, type: ClientType) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.includeUncontrolled] = includeUncontrolled.jsValue
+        object[Strings.type] = type.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public convenience init(filters: CanvasFilterInput_or_seq_of_CanvasFilterInput? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [filters?.jsValue ?? .undefined]))
+    public required init(unsafelyWrapping object: JSObject) {
+        _includeUncontrolled = ReadWriteAttribute(jsObject: object, name: Strings.includeUncontrolled)
+        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
+        super.init(unsafelyWrapping: object)
     }
-}
 
-public protocol CanvasFilters: JSBridgedClass {}
-public extension CanvasFilters {
-    @inlinable var filter: CanvasFilter_or_String {
-        get { jsObject[Strings.filter].fromJSValue()! }
-        nonmutating set { jsObject[Strings.filter] = newValue.jsValue }
-    }
+    @ReadWriteAttribute
+    public var includeUncontrolled: Bool
+
+    @ReadWriteAttribute
+    public var type: ClientType
 }
 
-public enum CanvasFontKerning: JSString, JSValueCompatible {
-    case auto = "auto"
-    case normal = "normal"
-    case none = "none"
+public enum ClientType: JSString, JSValueCompatible {
+    case window = "window"
+    case worker = "worker"
+    case sharedworker = "sharedworker"
+    case all = "all"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -3068,16 +2433,10 @@ public enum CanvasFontKerning: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public enum CanvasFontStretch: JSString, JSValueCompatible {
-    case ultraCondensed = "ultra-condensed"
-    case extraCondensed = "extra-condensed"
-    case condensed = "condensed"
-    case semiCondensed = "semi-condensed"
-    case normal = "normal"
-    case semiExpanded = "semi-expanded"
-    case expanded = "expanded"
-    case extraExpanded = "extra-expanded"
-    case ultraExpanded = "ultra-expanded"
+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 {
@@ -3093,14 +2452,9 @@ public enum CanvasFontStretch: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public enum CanvasFontVariantCaps: JSString, JSValueCompatible {
-    case normal = "normal"
-    case smallCaps = "small-caps"
-    case allSmallCaps = "all-small-caps"
-    case petiteCaps = "petite-caps"
-    case allPetiteCaps = "all-petite-caps"
-    case unicase = "unicase"
-    case titlingCaps = "titling-caps"
+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 {
@@ -3116,220 +2470,184 @@ public enum CanvasFontVariantCaps: JSString, JSValueCompatible {
     @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 class Comment: CharacterData {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Comment].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public func addColorStop(offset: Double, color: String) {
-        let this = jsObject
-        _ = this[Strings.addColorStop].function!(this: this, arguments: [offset.jsValue, color.jsValue])
+    @inlinable public convenience init(data: String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data?.jsValue ?? .undefined]))
     }
 }
 
-public protocol CanvasImageData: JSBridgedClass {}
-public extension CanvasImageData {
-    @inlinable func createImageData(sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData {
-        let this = jsObject
-        return this[Strings.createImageData].function!(this: this, arguments: [sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]).fromJSValue()!
+public class CompositionEvent: UIEvent {
+    @inlinable override public 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)
     }
 
-    @inlinable func createImageData(imagedata: ImageData) -> ImageData {
-        let this = jsObject
-        return this[Strings.createImageData].function!(this: this, arguments: [imagedata.jsValue]).fromJSValue()!
+    @inlinable public convenience init(type: String, eventInitDict: CompositionEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
-    @inlinable func getImageData(sx: Int32, sy: Int32, sw: Int32, sh: Int32, settings: ImageDataSettings? = nil) -> ImageData {
+    @ReadonlyAttribute
+    public var data: String
+
+    @inlinable public func initCompositionEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: WindowProxy? = nil, dataArg: String? = nil) {
         let this = jsObject
-        return this[Strings.getImageData].function!(this: this, arguments: [sx.jsValue, sy.jsValue, sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.initCompositionEvent].function!(this: this, arguments: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, dataArg?.jsValue ?? .undefined])
     }
+}
 
-    @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32) {
-        let this = jsObject
-        _ = this[Strings.putImageData].function!(this: this, arguments: [imagedata.jsValue, dx.jsValue, dy.jsValue])
+public class CompositionEventInit: BridgedDictionary {
+    public convenience init(data: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.data] = data.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func putImageData(imagedata: ImageData, dx: Int32, dy: Int32, dirtyX: Int32, dirtyY: Int32, dirtyWidth: Int32, dirtyHeight: Int32) {
-        let _arg0 = imagedata.jsValue
-        let _arg1 = dx.jsValue
-        let _arg2 = dy.jsValue
-        let _arg3 = dirtyX.jsValue
-        let _arg4 = dirtyY.jsValue
-        let _arg5 = dirtyWidth.jsValue
-        let _arg6 = dirtyHeight.jsValue
-        let this = jsObject
-        _ = this[Strings.putImageData].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
-    }
-}
-
-public protocol CanvasImageSmoothing: JSBridgedClass {}
-public extension CanvasImageSmoothing {
-    @inlinable var imageSmoothingEnabled: Bool {
-        get { jsObject[Strings.imageSmoothingEnabled].fromJSValue()! }
-        nonmutating set { jsObject[Strings.imageSmoothingEnabled] = newValue.jsValue }
+    public required init(unsafelyWrapping object: JSObject) {
+        _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable var imageSmoothingQuality: ImageSmoothingQuality {
-        get { jsObject[Strings.imageSmoothingQuality].fromJSValue()! }
-        nonmutating set { jsObject[Strings.imageSmoothingQuality] = newValue.jsValue }
-    }
+    @ReadWriteAttribute
+    public var data: String
 }
 
-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)
-        }
-        return nil
+public class ConstrainBooleanParameters: BridgedDictionary {
+    public convenience init(exact: Bool, ideal: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.exact] = exact.jsValue
+        object[Strings.ideal] = ideal.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    public required init(unsafelyWrapping object: JSObject) {
+        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
+        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadWriteAttribute
+    public var exact: Bool
 
-public enum CanvasLineJoin: JSString, JSValueCompatible {
-    case round = "round"
-    case bevel = "bevel"
-    case miter = "miter"
+    @ReadWriteAttribute
+    public var ideal: Bool
+}
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+public class ConstrainDOMStringParameters: BridgedDictionary {
+    public convenience init(exact: String_or_seq_of_String, ideal: String_or_seq_of_String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.exact] = exact.jsValue
+        object[Strings.ideal] = ideal.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    public required init(unsafelyWrapping object: JSObject) {
+        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
+        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var exact: String_or_seq_of_String
+
+    @ReadWriteAttribute
+    public var ideal: String_or_seq_of_String
 }
 
-public protocol CanvasPath: JSBridgedClass {}
-public extension CanvasPath {
-    @inlinable func closePath() {
-        let this = jsObject
-        _ = this[Strings.closePath].function!(this: this, arguments: [])
+public class ConstrainDoubleRange: BridgedDictionary {
+    public convenience init(exact: Double, ideal: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.exact] = exact.jsValue
+        object[Strings.ideal] = ideal.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func moveTo(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.moveTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
+    public required init(unsafelyWrapping object: JSObject) {
+        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
+        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func lineTo(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.lineTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
-    }
+    @ReadWriteAttribute
+    public var exact: Double
 
-    @inlinable func quadraticCurveTo(cpx: Double, cpy: Double, x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.quadraticCurveTo].function!(this: this, arguments: [cpx.jsValue, cpy.jsValue, x.jsValue, y.jsValue])
-    }
+    @ReadWriteAttribute
+    public var ideal: Double
+}
 
-    @inlinable func bezierCurveTo(cp1x: Double, cp1y: Double, cp2x: Double, cp2y: Double, x: Double, y: Double) {
-        let _arg0 = cp1x.jsValue
-        let _arg1 = cp1y.jsValue
-        let _arg2 = cp2x.jsValue
-        let _arg3 = cp2y.jsValue
-        let _arg4 = x.jsValue
-        let _arg5 = y.jsValue
-        let this = jsObject
-        _ = this[Strings.bezierCurveTo].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+public class ConstrainULongRange: BridgedDictionary {
+    public convenience init(exact: UInt32, ideal: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.exact] = exact.jsValue
+        object[Strings.ideal] = ideal.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func arcTo(x1: Double, y1: Double, x2: Double, y2: Double, radius: Double) {
-        let this = jsObject
-        _ = this[Strings.arcTo].function!(this: this, arguments: [x1.jsValue, y1.jsValue, x2.jsValue, y2.jsValue, radius.jsValue])
+    public required init(unsafelyWrapping object: JSObject) {
+        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
+        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func rect(x: Double, y: Double, w: Double, h: Double) {
-        let this = jsObject
-        _ = this[Strings.rect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
-    }
+    @ReadWriteAttribute
+    public var exact: UInt32
 
-    @inlinable 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: [x.jsValue, y.jsValue, w.jsValue, h.jsValue, radii?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var ideal: UInt32
+}
 
-    @inlinable func arc(x: Double, y: Double, radius: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = radius.jsValue
-        let _arg3 = startAngle.jsValue
-        let _arg4 = endAngle.jsValue
-        let _arg5 = counterclockwise?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.arc].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+public class ConvertCoordinateOptions: BridgedDictionary {
+    public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.fromBox] = fromBox.jsValue
+        object[Strings.toBox] = toBox.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func ellipse(x: Double, y: Double, radiusX: Double, radiusY: Double, rotation: Double, startAngle: Double, endAngle: Double, counterclockwise: Bool? = nil) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = radiusX.jsValue
-        let _arg3 = radiusY.jsValue
-        let _arg4 = rotation.jsValue
-        let _arg5 = startAngle.jsValue
-        let _arg6 = endAngle.jsValue
-        let _arg7 = counterclockwise?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.ellipse].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    public required init(unsafelyWrapping object: JSObject) {
+        _fromBox = ReadWriteAttribute(jsObject: object, name: Strings.fromBox)
+        _toBox = ReadWriteAttribute(jsObject: object, name: Strings.toBox)
+        super.init(unsafelyWrapping: object)
     }
-}
 
-public protocol CanvasPathDrawingStyles: JSBridgedClass {}
-public extension CanvasPathDrawingStyles {
-    @inlinable var lineWidth: Double {
-        get { jsObject[Strings.lineWidth].fromJSValue()! }
-        nonmutating set { jsObject[Strings.lineWidth] = newValue.jsValue }
-    }
+    @ReadWriteAttribute
+    public var fromBox: CSSBoxType
 
-    @inlinable var lineCap: CanvasLineCap {
-        get { jsObject[Strings.lineCap].fromJSValue()! }
-        nonmutating set { jsObject[Strings.lineCap] = newValue.jsValue }
-    }
+    @ReadWriteAttribute
+    public var toBox: CSSBoxType
+}
 
-    @inlinable var lineJoin: CanvasLineJoin {
-        get { jsObject[Strings.lineJoin].fromJSValue()! }
-        nonmutating set { jsObject[Strings.lineJoin] = newValue.jsValue }
-    }
+public class CountQueuingStrategy: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CountQueuingStrategy].function }
 
-    @inlinable var miterLimit: Double {
-        get { jsObject[Strings.miterLimit].fromJSValue()! }
-        nonmutating set { jsObject[Strings.miterLimit] = newValue.jsValue }
-    }
+    public let jsObject: JSObject
 
-    @inlinable func setLineDash(segments: [Double]) {
-        let this = jsObject
-        _ = this[Strings.setLineDash].function!(this: this, arguments: [segments.jsValue])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _highWaterMark = ReadonlyAttribute(jsObject: jsObject, name: Strings.highWaterMark)
+        _size = ReadonlyAttribute(jsObject: jsObject, name: Strings.size)
+        self.jsObject = jsObject
     }
 
-    @inlinable func getLineDash() -> [Double] {
-        let this = jsObject
-        return this[Strings.getLineDash].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable public convenience init(init: QueuingStrategyInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
-    @inlinable var lineDashOffset: Double {
-        get { jsObject[Strings.lineDashOffset].fromJSValue()! }
-        nonmutating set { jsObject[Strings.lineDashOffset] = newValue.jsValue }
-    }
+    @ReadonlyAttribute
+    public var highWaterMark: Double
+
+    @ReadonlyAttribute
+    public var size: JSFunction
 }
 
-public class CanvasPattern: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CanvasPattern].function }
+public class CustomElementRegistry: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CustomElementRegistry].function }
 
     public let jsObject: JSObject
 
@@ -3337,1758 +2655,1720 @@ public class CanvasPattern: JSBridgedClass {
         self.jsObject = jsObject
     }
 
-    @inlinable public func setTransform(transform: DOMMatrix2DInit? = nil) {
+    @inlinable public func define(name: String, constructor: CustomElementConstructor, options: ElementDefinitionOptions? = nil) {
         let this = jsObject
-        _ = this[Strings.setTransform].function!(this: this, arguments: [transform?.jsValue ?? .undefined])
+        _ = this[Strings.define].function!(this: this, arguments: [name.jsValue, constructor.jsValue, options?.jsValue ?? .undefined])
     }
-}
 
-public protocol CanvasRect: JSBridgedClass {}
-public extension CanvasRect {
-    @inlinable func clearRect(x: Double, y: Double, w: Double, h: Double) {
+    @inlinable public func get(name: String) -> CustomElementConstructor? {
         let this = jsObject
-        _ = this[Strings.clearRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
+        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
     }
 
-    @inlinable func fillRect(x: Double, y: Double, w: Double, h: Double) {
+    @inlinable public func whenDefined(name: String) -> JSPromise {
         let this = jsObject
-        _ = this[Strings.fillRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
+        return this[Strings.whenDefined].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
     }
 
-    @inlinable func strokeRect(x: Double, y: Double, w: Double, h: Double) {
+    @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
-        _ = this[Strings.strokeRect].function!(this: this, arguments: [x.jsValue, y.jsValue, w.jsValue, h.jsValue])
+        let _promise: JSPromise = this[Strings.whenDefined].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
+
+    @inlinable public func upgrade(root: Node) {
+        let this = jsObject
+        _ = this[Strings.upgrade].function!(this: this, arguments: [root.jsValue])
     }
 }
 
-public class CanvasRenderingContext2D: JSBridgedClass, 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 class CustomEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CustomEvent].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas)
-        self.jsObject = jsObject
+        _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(type: String, eventInitDict: CustomEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
     @ReadonlyAttribute
-    public var canvas: HTMLCanvasElement
+    public var detail: JSValue
 
-    @inlinable public func getContextAttributes() -> CanvasRenderingContext2DSettings {
+    @inlinable public func initCustomEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, detail: JSValue? = nil) {
         let this = jsObject
-        return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.initCustomEvent].function!(this: this, arguments: [type.jsValue, bubbles?.jsValue ?? .undefined, cancelable?.jsValue ?? .undefined, detail?.jsValue ?? .undefined])
     }
 }
 
-public class CanvasRenderingContext2DSettings: BridgedDictionary {
-    public convenience init(alpha: Bool, desynchronized: Bool, colorSpace: PredefinedColorSpace, willReadFrequently: Bool) {
+public class CustomEventInit: BridgedDictionary {
+    public convenience init(detail: JSValue) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.alpha] = alpha.jsValue
-        object[Strings.desynchronized] = desynchronized.jsValue
-        object[Strings.colorSpace] = colorSpace.jsValue
-        object[Strings.willReadFrequently] = willReadFrequently.jsValue
+        object[Strings.detail] = detail.jsValue
         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)
+        _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var alpha: Bool
-
-    @ReadWriteAttribute
-    public var desynchronized: Bool
-
-    @ReadWriteAttribute
-    public var colorSpace: PredefinedColorSpace
-
-    @ReadWriteAttribute
-    public var willReadFrequently: Bool
+    public var detail: JSValue
 }
 
-public protocol CanvasShadowStyles: JSBridgedClass {}
-public extension CanvasShadowStyles {
-    @inlinable var shadowOffsetX: Double {
-        get { jsObject[Strings.shadowOffsetX].fromJSValue()! }
-        nonmutating set { jsObject[Strings.shadowOffsetX] = newValue.jsValue }
-    }
-
-    @inlinable var shadowOffsetY: Double {
-        get { jsObject[Strings.shadowOffsetY].fromJSValue()! }
-        nonmutating set { jsObject[Strings.shadowOffsetY] = newValue.jsValue }
-    }
+public class DOMImplementation: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMImplementation].function }
 
-    @inlinable var shadowBlur: Double {
-        get { jsObject[Strings.shadowBlur].fromJSValue()! }
-        nonmutating set { jsObject[Strings.shadowBlur] = newValue.jsValue }
-    }
+    public let jsObject: JSObject
 
-    @inlinable var shadowColor: String {
-        get { jsObject[Strings.shadowColor].fromJSValue()! }
-        nonmutating set { jsObject[Strings.shadowColor] = newValue.jsValue }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
     }
-}
 
-public protocol CanvasState: JSBridgedClass {}
-public extension CanvasState {
-    @inlinable func save() {
+    @inlinable public func createDocumentType(qualifiedName: String, publicId: String, systemId: String) -> DocumentType {
         let this = jsObject
-        _ = this[Strings.save].function!(this: this, arguments: [])
+        return this[Strings.createDocumentType].function!(this: this, arguments: [qualifiedName.jsValue, publicId.jsValue, systemId.jsValue]).fromJSValue()!
     }
 
-    @inlinable func restore() {
+    @inlinable public func createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType? = nil) -> XMLDocument {
         let this = jsObject
-        _ = this[Strings.restore].function!(this: this, arguments: [])
+        return this[Strings.createDocument].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, doctype?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func reset() {
+    @inlinable public func createHTMLDocument(title: String? = nil) -> Document {
         let this = jsObject
-        _ = this[Strings.reset].function!(this: this, arguments: [])
+        return this[Strings.createHTMLDocument].function!(this: this, arguments: [title?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func isContextLost() -> Bool {
+    @inlinable public func hasFeature() -> Bool {
         let this = jsObject
-        return this[Strings.isContextLost].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.hasFeature].function!(this: this, arguments: []).fromJSValue()!
     }
 }
 
-public protocol CanvasText: JSBridgedClass {}
-public extension CanvasText {
-    @inlinable func fillText(text: String, x: Double, y: Double, maxWidth: Double? = nil) {
-        let this = jsObject
-        _ = this[Strings.fillText].function!(this: this, arguments: [text.jsValue, x.jsValue, y.jsValue, maxWidth?.jsValue ?? .undefined])
-    }
-
-    @inlinable func strokeText(text: String, x: Double, y: Double, maxWidth: Double? = nil) {
-        let this = jsObject
-        _ = this[Strings.strokeText].function!(this: this, arguments: [text.jsValue, x.jsValue, y.jsValue, maxWidth?.jsValue ?? .undefined])
-    }
+public class DOMMatrix: DOMMatrixReadOnly {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrix].function }
 
-    @inlinable func measureText(text: String) -> TextMetrics {
-        let this = jsObject
-        return this[Strings.measureText].function!(this: this, arguments: [text.jsValue]).fromJSValue()!
+    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)
     }
-}
-
-public enum CanvasTextAlign: JSString, JSValueCompatible {
-    case start = "start"
-    case end = "end"
-    case left = "left"
-    case right = "right"
-    case center = "center"
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public convenience init(init: String_or_seq_of_Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    // XXX: illegal static override
+    // override public static func fromMatrix(other: DOMMatrixInit? = nil) -> Self
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    // XXX: illegal static override
+    // override public static func fromFloat32Array(array32: Float32Array) -> Self
 
-public enum CanvasTextBaseline: JSString, JSValueCompatible {
-    case top = "top"
-    case hanging = "hanging"
-    case middle = "middle"
-    case alphabetic = "alphabetic"
-    case ideographic = "ideographic"
-    case bottom = "bottom"
+    // XXX: illegal static override
+    // override public static func fromFloat64Array(array64: Float64Array) -> Self
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @usableFromInline let _a: ReadWriteAttribute<Double>
+    @inlinable override public var a: Double {
+        get { _a.wrappedValue }
+        set { _a.wrappedValue = newValue }
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @usableFromInline let _b: ReadWriteAttribute<Double>
+    @inlinable override public var b: Double {
+        get { _b.wrappedValue }
+        set { _b.wrappedValue = newValue }
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @usableFromInline let _c: ReadWriteAttribute<Double>
+    @inlinable override public var c: Double {
+        get { _c.wrappedValue }
+        set { _c.wrappedValue = newValue }
+    }
 
-public protocol CanvasTextDrawingStyles: JSBridgedClass {}
-public extension CanvasTextDrawingStyles {
-    @inlinable var font: String {
-        get { jsObject[Strings.font].fromJSValue()! }
-        nonmutating set { jsObject[Strings.font] = newValue.jsValue }
+    @usableFromInline let _d: ReadWriteAttribute<Double>
+    @inlinable override public var d: Double {
+        get { _d.wrappedValue }
+        set { _d.wrappedValue = newValue }
     }
 
-    @inlinable var textAlign: CanvasTextAlign {
-        get { jsObject[Strings.textAlign].fromJSValue()! }
-        nonmutating set { jsObject[Strings.textAlign] = newValue.jsValue }
+    @usableFromInline let _e: ReadWriteAttribute<Double>
+    @inlinable override public var e: Double {
+        get { _e.wrappedValue }
+        set { _e.wrappedValue = newValue }
     }
 
-    @inlinable var textBaseline: CanvasTextBaseline {
-        get { jsObject[Strings.textBaseline].fromJSValue()! }
-        nonmutating set { jsObject[Strings.textBaseline] = newValue.jsValue }
+    @usableFromInline let _f: ReadWriteAttribute<Double>
+    @inlinable override public var f: Double {
+        get { _f.wrappedValue }
+        set { _f.wrappedValue = newValue }
     }
 
-    @inlinable var direction: CanvasDirection {
-        get { jsObject[Strings.direction].fromJSValue()! }
-        nonmutating set { jsObject[Strings.direction] = newValue.jsValue }
+    @usableFromInline let _m11: ReadWriteAttribute<Double>
+    @inlinable override public var m11: Double {
+        get { _m11.wrappedValue }
+        set { _m11.wrappedValue = newValue }
     }
 
-    @inlinable var letterSpacing: String {
-        get { jsObject[Strings.letterSpacing].fromJSValue()! }
-        nonmutating set { jsObject[Strings.letterSpacing] = newValue.jsValue }
+    @usableFromInline let _m12: ReadWriteAttribute<Double>
+    @inlinable override public var m12: Double {
+        get { _m12.wrappedValue }
+        set { _m12.wrappedValue = newValue }
     }
 
-    @inlinable var fontKerning: CanvasFontKerning {
-        get { jsObject[Strings.fontKerning].fromJSValue()! }
-        nonmutating set { jsObject[Strings.fontKerning] = newValue.jsValue }
+    @usableFromInline let _m13: ReadWriteAttribute<Double>
+    @inlinable override public var m13: Double {
+        get { _m13.wrappedValue }
+        set { _m13.wrappedValue = newValue }
     }
 
-    @inlinable var fontStretch: CanvasFontStretch {
-        get { jsObject[Strings.fontStretch].fromJSValue()! }
-        nonmutating set { jsObject[Strings.fontStretch] = newValue.jsValue }
+    @usableFromInline let _m14: ReadWriteAttribute<Double>
+    @inlinable override public var m14: Double {
+        get { _m14.wrappedValue }
+        set { _m14.wrappedValue = newValue }
     }
 
-    @inlinable var fontVariantCaps: CanvasFontVariantCaps {
-        get { jsObject[Strings.fontVariantCaps].fromJSValue()! }
-        nonmutating set { jsObject[Strings.fontVariantCaps] = newValue.jsValue }
+    @usableFromInline let _m21: ReadWriteAttribute<Double>
+    @inlinable override public var m21: Double {
+        get { _m21.wrappedValue }
+        set { _m21.wrappedValue = newValue }
     }
 
-    @inlinable var textRendering: CanvasTextRendering {
-        get { jsObject[Strings.textRendering].fromJSValue()! }
-        nonmutating set { jsObject[Strings.textRendering] = newValue.jsValue }
+    @usableFromInline let _m22: ReadWriteAttribute<Double>
+    @inlinable override public var m22: Double {
+        get { _m22.wrappedValue }
+        set { _m22.wrappedValue = newValue }
     }
 
-    @inlinable var wordSpacing: String {
-        get { jsObject[Strings.wordSpacing].fromJSValue()! }
-        nonmutating set { jsObject[Strings.wordSpacing] = newValue.jsValue }
+    @usableFromInline let _m23: ReadWriteAttribute<Double>
+    @inlinable override public var m23: Double {
+        get { _m23.wrappedValue }
+        set { _m23.wrappedValue = newValue }
     }
-}
 
-public enum CanvasTextRendering: JSString, JSValueCompatible {
-    case auto = "auto"
-    case optimizeSpeed = "optimizeSpeed"
-    case optimizeLegibility = "optimizeLegibility"
-    case geometricPrecision = "geometricPrecision"
-
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @usableFromInline let _m24: ReadWriteAttribute<Double>
+    @inlinable override public var m24: Double {
+        get { _m24.wrappedValue }
+        set { _m24.wrappedValue = newValue }
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @usableFromInline let _m31: ReadWriteAttribute<Double>
+    @inlinable override public var m31: Double {
+        get { _m31.wrappedValue }
+        set { _m31.wrappedValue = newValue }
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public protocol CanvasTransform: JSBridgedClass {}
-public extension CanvasTransform {
-    @inlinable func scale(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.scale].function!(this: this, arguments: [x.jsValue, y.jsValue])
+    @usableFromInline let _m32: ReadWriteAttribute<Double>
+    @inlinable override public var m32: Double {
+        get { _m32.wrappedValue }
+        set { _m32.wrappedValue = newValue }
     }
 
-    @inlinable func rotate(angle: Double) {
-        let this = jsObject
-        _ = this[Strings.rotate].function!(this: this, arguments: [angle.jsValue])
+    @usableFromInline let _m33: ReadWriteAttribute<Double>
+    @inlinable override public var m33: Double {
+        get { _m33.wrappedValue }
+        set { _m33.wrappedValue = newValue }
     }
 
-    @inlinable func translate(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.translate].function!(this: this, arguments: [x.jsValue, y.jsValue])
+    @usableFromInline let _m34: ReadWriteAttribute<Double>
+    @inlinable override public var m34: Double {
+        get { _m34.wrappedValue }
+        set { _m34.wrappedValue = newValue }
     }
 
-    @inlinable func transform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) {
-        let _arg0 = a.jsValue
-        let _arg1 = b.jsValue
-        let _arg2 = c.jsValue
-        let _arg3 = d.jsValue
-        let _arg4 = e.jsValue
-        let _arg5 = f.jsValue
-        let this = jsObject
-        _ = this[Strings.transform].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    @usableFromInline let _m41: ReadWriteAttribute<Double>
+    @inlinable override public var m41: Double {
+        get { _m41.wrappedValue }
+        set { _m41.wrappedValue = newValue }
     }
 
-    @inlinable func getTransform() -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.getTransform].function!(this: this, arguments: []).fromJSValue()!
+    @usableFromInline let _m42: ReadWriteAttribute<Double>
+    @inlinable override public var m42: Double {
+        get { _m42.wrappedValue }
+        set { _m42.wrappedValue = newValue }
     }
 
-    @inlinable func setTransform(a: Double, b: Double, c: Double, d: Double, e: Double, f: Double) {
-        let _arg0 = a.jsValue
-        let _arg1 = b.jsValue
-        let _arg2 = c.jsValue
-        let _arg3 = d.jsValue
-        let _arg4 = e.jsValue
-        let _arg5 = f.jsValue
-        let this = jsObject
-        _ = this[Strings.setTransform].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    @usableFromInline let _m43: ReadWriteAttribute<Double>
+    @inlinable override public var m43: Double {
+        get { _m43.wrappedValue }
+        set { _m43.wrappedValue = newValue }
     }
 
-    @inlinable func setTransform(transform: DOMMatrix2DInit? = nil) {
-        let this = jsObject
-        _ = this[Strings.setTransform].function!(this: this, arguments: [transform?.jsValue ?? .undefined])
+    @usableFromInline let _m44: ReadWriteAttribute<Double>
+    @inlinable override public var m44: Double {
+        get { _m44.wrappedValue }
+        set { _m44.wrappedValue = newValue }
     }
 
-    @inlinable func resetTransform() {
+    @inlinable public func multiplySelf(other: DOMMatrixInit? = nil) -> Self {
         let this = jsObject
-        _ = this[Strings.resetTransform].function!(this: this, arguments: [])
+        return this[Strings.multiplySelf].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
     }
-}
 
-public protocol CanvasUserInterface: JSBridgedClass {}
-public extension CanvasUserInterface {
-    @inlinable func drawFocusIfNeeded(element: Element) {
+    @inlinable public func preMultiplySelf(other: DOMMatrixInit? = nil) -> Self {
         let this = jsObject
-        _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [element.jsValue])
+        return this[Strings.preMultiplySelf].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func drawFocusIfNeeded(path: Path2D, element: Element) {
+    @inlinable public func translateSelf(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> Self {
         let this = jsObject
-        _ = this[Strings.drawFocusIfNeeded].function!(this: this, arguments: [path.jsValue, element.jsValue])
+        return this[Strings.translateSelf].function!(this: this, arguments: [tx?.jsValue ?? .undefined, ty?.jsValue ?? .undefined, tz?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func scrollPathIntoView() {
+    @inlinable public func scaleSelf(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self {
+        let _arg0 = scaleX?.jsValue ?? .undefined
+        let _arg1 = scaleY?.jsValue ?? .undefined
+        let _arg2 = scaleZ?.jsValue ?? .undefined
+        let _arg3 = originX?.jsValue ?? .undefined
+        let _arg4 = originY?.jsValue ?? .undefined
+        let _arg5 = originZ?.jsValue ?? .undefined
         let this = jsObject
-        _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: [])
+        return this[Strings.scaleSelf].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
     }
 
-    @inlinable func scrollPathIntoView(path: Path2D) {
+    @inlinable public func scale3dSelf(scale: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self {
         let this = jsObject
-        _ = this[Strings.scrollPathIntoView].function!(this: this, arguments: [path.jsValue])
-    }
-}
-
-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
+        return this[Strings.scale3dSelf].function!(this: this, arguments: [scale?.jsValue ?? .undefined, originX?.jsValue ?? .undefined, originY?.jsValue ?? .undefined, originZ?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var offsetNode: Node
-
-    @ReadonlyAttribute
-    public var offset: UInt32
-
-    @inlinable public func getClientRect() -> DOMRect? {
+    @inlinable public func rotateSelf(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> Self {
         let this = jsObject
-        return this[Strings.getClientRect].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.rotateSelf].function!(this: this, arguments: [rotX?.jsValue ?? .undefined, rotY?.jsValue ?? .undefined, rotZ?.jsValue ?? .undefined]).fromJSValue()!
     }
-}
 
-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)
-        }
-        return nil
+    @inlinable public func rotateFromVectorSelf(x: Double? = nil, y: Double? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.rotateFromVectorSelf].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func rotateAxisAngleSelf(x: Double? = nil, y: Double? = nil, z: Double? = nil, angle: Double? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.rotateAxisAngleSelf].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, angle?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @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)
-        }
-        return nil
+    @inlinable public func skewXSelf(sx: Double? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.skewXSelf].function!(this: this, arguments: [sx?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func skewYSelf(sy: Double? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.skewYSelf].function!(this: this, arguments: [sy?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @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 func invertSelf() -> Self {
+        let this = jsObject
+        return this[Strings.invertSelf].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: ChannelMergerOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public func setMatrixValue(transformList: String) -> Self {
+        let this = jsObject
+        return this[Strings.setMatrixValue].function!(this: this, arguments: [transformList.jsValue]).fromJSValue()!
     }
 }
 
-public class ChannelMergerOptions: BridgedDictionary {
-    public convenience init(numberOfInputs: UInt32) {
+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) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.numberOfInputs] = numberOfInputs.jsValue
+        object[Strings.a] = a.jsValue
+        object[Strings.b] = b.jsValue
+        object[Strings.c] = c.jsValue
+        object[Strings.d] = d.jsValue
+        object[Strings.e] = e.jsValue
+        object[Strings.f] = f.jsValue
+        object[Strings.m11] = m11.jsValue
+        object[Strings.m12] = m12.jsValue
+        object[Strings.m21] = m21.jsValue
+        object[Strings.m22] = m22.jsValue
+        object[Strings.m41] = m41.jsValue
+        object[Strings.m42] = m42.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var numberOfInputs: UInt32
-}
+    public var a: Double
 
-public class ChannelSplitterNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ChannelSplitterNode].function }
+    @ReadWriteAttribute
+    public var b: Double
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadWriteAttribute
+    public var c: Double
 
-    @inlinable public convenience init(context: BaseAudioContext, options: ChannelSplitterOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-}
+    @ReadWriteAttribute
+    public var d: Double
 
-public class ChannelSplitterOptions: BridgedDictionary {
-    public convenience init(numberOfOutputs: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.numberOfOutputs] = numberOfOutputs.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var e: Double
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var f: Double
 
     @ReadWriteAttribute
-    public var numberOfOutputs: UInt32
-}
+    public var m11: Double
 
-public class CharacterData: Node, NonDocumentTypeChildNode, ChildNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CharacterData].function }
+    @ReadWriteAttribute
+    public var m12: Double
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _data = ReadWriteAttribute(jsObject: jsObject, name: Strings.data)
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadWriteAttribute
+    public var m21: Double
 
     @ReadWriteAttribute
-    public var data: String
+    public var m22: Double
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @ReadWriteAttribute
+    public var m41: Double
 
-    @inlinable public func substringData(offset: UInt32, count: UInt32) -> String {
-        let this = jsObject
-        return this[Strings.substringData].function!(this: this, arguments: [offset.jsValue, count.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var m42: Double
+}
 
-    @inlinable public func appendData(data: String) {
-        let this = jsObject
-        _ = this[Strings.appendData].function!(this: this, arguments: [data.jsValue])
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.m13] = m13.jsValue
+        object[Strings.m14] = m14.jsValue
+        object[Strings.m23] = m23.jsValue
+        object[Strings.m24] = m24.jsValue
+        object[Strings.m31] = m31.jsValue
+        object[Strings.m32] = m32.jsValue
+        object[Strings.m33] = m33.jsValue
+        object[Strings.m34] = m34.jsValue
+        object[Strings.m43] = m43.jsValue
+        object[Strings.m44] = m44.jsValue
+        object[Strings.is2D] = is2D.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func insertData(offset: UInt32, data: String) {
-        let this = jsObject
-        _ = this[Strings.insertData].function!(this: this, arguments: [offset.jsValue, data.jsValue])
+    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)
     }
 
-    @inlinable public func deleteData(offset: UInt32, count: UInt32) {
-        let this = jsObject
-        _ = this[Strings.deleteData].function!(this: this, arguments: [offset.jsValue, count.jsValue])
-    }
+    @ReadWriteAttribute
+    public var m13: Double
 
-    @inlinable public func replaceData(offset: UInt32, count: UInt32, data: String) {
-        let this = jsObject
-        _ = this[Strings.replaceData].function!(this: this, arguments: [offset.jsValue, count.jsValue, data.jsValue])
-    }
-}
+    @ReadWriteAttribute
+    public var m14: Double
 
-public protocol ChildNode: JSBridgedClass {}
-public extension ChildNode {
-    @inlinable func before(nodes: Node_or_String...) {
-        let this = jsObject
-        _ = this[Strings.before].function!(this: this, arguments: nodes.map(\.jsValue))
-    }
+    @ReadWriteAttribute
+    public var m23: Double
 
-    @inlinable func after(nodes: Node_or_String...) {
-        let this = jsObject
-        _ = this[Strings.after].function!(this: this, arguments: nodes.map(\.jsValue))
-    }
+    @ReadWriteAttribute
+    public var m24: Double
 
-    @inlinable func replaceWith(nodes: Node_or_String...) {
-        let this = jsObject
-        _ = this[Strings.replaceWith].function!(this: this, arguments: nodes.map(\.jsValue))
-    }
+    @ReadWriteAttribute
+    public var m31: Double
 
-    @inlinable func remove() {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: [])
-    }
-}
+    @ReadWriteAttribute
+    public var m32: Double
 
-public class ClientQueryOptions: BridgedDictionary {
-    public convenience init(includeUncontrolled: Bool, type: ClientType) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.includeUncontrolled] = includeUncontrolled.jsValue
-        object[Strings.type] = type.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var m33: Double
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _includeUncontrolled = ReadWriteAttribute(jsObject: object, name: Strings.includeUncontrolled)
-        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var m34: Double
 
     @ReadWriteAttribute
-    public var includeUncontrolled: Bool
+    public var m43: Double
 
     @ReadWriteAttribute
-    public var type: ClientType
+    public var m44: Double
+
+    @ReadWriteAttribute
+    public var is2D: Bool
 }
 
-public enum ClientType: JSString, JSValueCompatible {
-    case window = "window"
-    case worker = "worker"
-    case sharedworker = "sharedworker"
-    case all = "all"
+public class DOMMatrixReadOnly: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrixReadOnly].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    public let jsObject: JSObject
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    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 var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable public convenience init(init: String_or_seq_of_Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    }
 
-public class CloseEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CloseEvent].function }
+    @inlinable public static func fromMatrix(other: DOMMatrixInit? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.fromMatrix].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    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)
+    @inlinable public static func fromFloat32Array(array32: Float32Array) -> Self {
+        let this = constructor!
+        return this[Strings.fromFloat32Array].function!(this: this, arguments: [array32.jsValue]).fromJSValue()!
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: CloseEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public static func fromFloat64Array(array64: Float64Array) -> Self {
+        let this = constructor!
+        return this[Strings.fromFloat64Array].function!(this: this, arguments: [array64.jsValue]).fromJSValue()!
     }
 
     @ReadonlyAttribute
-    public var wasClean: Bool
+    public var a: Double
 
     @ReadonlyAttribute
-    public var code: UInt16
+    public var b: Double
 
     @ReadonlyAttribute
-    public var reason: String
-}
-
-public class CloseEventInit: BridgedDictionary {
-    public convenience init(wasClean: Bool, code: UInt16, reason: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.wasClean] = wasClean.jsValue
-        object[Strings.code] = code.jsValue
-        object[Strings.reason] = reason.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    public var c: Double
 
-    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)
-    }
+    @ReadonlyAttribute
+    public var d: Double
 
-    @ReadWriteAttribute
-    public var wasClean: Bool
+    @ReadonlyAttribute
+    public var e: Double
 
-    @ReadWriteAttribute
-    public var code: UInt16
+    @ReadonlyAttribute
+    public var f: Double
 
-    @ReadWriteAttribute
-    public var reason: String
-}
+    @ReadonlyAttribute
+    public var m11: Double
 
-public enum CodecState: JSString, JSValueCompatible {
-    case unconfigured = "unconfigured"
-    case configured = "configured"
-    case closed = "closed"
+    @ReadonlyAttribute
+    public var m12: Double
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var m13: Double
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadonlyAttribute
+    public var m14: Double
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadonlyAttribute
+    public var m21: Double
 
-public enum ColorSpaceConversion: JSString, JSValueCompatible {
-    case none = "none"
-    case `default` = "default"
+    @ReadonlyAttribute
+    public var m22: Double
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var m23: Double
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadonlyAttribute
+    public var m24: Double
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadonlyAttribute
+    public var m31: Double
 
-public class Comment: CharacterData {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Comment].function }
+    @ReadonlyAttribute
+    public var m32: Double
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadonlyAttribute
+    public var m33: Double
 
-    @inlinable public convenience init(data: String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data?.jsValue ?? .undefined]))
-    }
-}
+    @ReadonlyAttribute
+    public var m34: Double
 
-public enum CompositeOperation: JSString, JSValueCompatible {
-    case replace = "replace"
-    case add = "add"
-    case accumulate = "accumulate"
+    @ReadonlyAttribute
+    public var m41: Double
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var m42: Double
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @ReadonlyAttribute
+    public var m43: Double
+
+    @ReadonlyAttribute
+    public var m44: Double
+
+    @ReadonlyAttribute
+    public var is2D: Bool
+
+    @ReadonlyAttribute
+    public var isIdentity: Bool
+
+    @inlinable public func translate(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.translate].function!(this: this, arguments: [tx?.jsValue ?? .undefined, ty?.jsValue ?? .undefined, tz?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable public func scale(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> DOMMatrix {
+        let _arg0 = scaleX?.jsValue ?? .undefined
+        let _arg1 = scaleY?.jsValue ?? .undefined
+        let _arg2 = scaleZ?.jsValue ?? .undefined
+        let _arg3 = originX?.jsValue ?? .undefined
+        let _arg4 = originY?.jsValue ?? .undefined
+        let _arg5 = originZ?.jsValue ?? .undefined
+        let this = jsObject
+        return this[Strings.scale].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
+    }
 
-public enum CompositeOperationOrAuto: JSString, JSValueCompatible {
-    case replace = "replace"
-    case add = "add"
-    case accumulate = "accumulate"
-    case auto = "auto"
+    @inlinable public func scaleNonUniform(scaleX: Double? = nil, scaleY: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.scaleNonUniform].function!(this: this, arguments: [scaleX?.jsValue ?? .undefined, scaleY?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable 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: [scale?.jsValue ?? .undefined, originX?.jsValue ?? .undefined, originY?.jsValue ?? .undefined, originZ?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func rotate(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.rotate].function!(this: this, arguments: [rotX?.jsValue ?? .undefined, rotY?.jsValue ?? .undefined, rotZ?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable public func rotateFromVector(x: Double? = nil, y: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.rotateFromVector].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-public class CompositionEvent: UIEvent {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CompositionEvent].function }
+    @inlinable 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: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, angle?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _data = ReadonlyAttribute(jsObject: jsObject, name: Strings.data)
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public func skewX(sx: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.skewX].function!(this: this, arguments: [sx?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: CompositionEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public func skewY(sy: Double? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.skewY].function!(this: this, arguments: [sy?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var data: String
+    @inlinable public func multiply(other: DOMMatrixInit? = nil) -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.multiply].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable public func initCompositionEvent(typeArg: String, bubblesArg: Bool? = nil, cancelableArg: Bool? = nil, viewArg: WindowProxy? = nil, dataArg: String? = nil) {
+    @inlinable public func flipX() -> DOMMatrix {
         let this = jsObject
-        _ = this[Strings.initCompositionEvent].function!(this: this, arguments: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, dataArg?.jsValue ?? .undefined])
+        return this[Strings.flipX].function!(this: this, arguments: []).fromJSValue()!
     }
-}
 
-public class CompositionEventInit: BridgedDictionary {
-    public convenience init(data: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.data] = data.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func flipY() -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.flipY].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func inverse() -> DOMMatrix {
+        let this = jsObject
+        return this[Strings.inverse].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var data: String
-}
+    @inlinable public func transformPoint(point: DOMPointInit? = nil) -> DOMPoint {
+        let this = jsObject
+        return this[Strings.transformPoint].function!(this: this, arguments: [point?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-public class ComputedEffectTiming: BridgedDictionary {
-    public convenience init(progress: Double?, currentIteration: Double?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.progress] = progress.jsValue
-        object[Strings.currentIteration] = currentIteration.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func toFloat32Array() -> Float32Array {
+        let this = jsObject
+        return this[Strings.toFloat32Array].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _progress = ReadWriteAttribute(jsObject: object, name: Strings.progress)
-        _currentIteration = ReadWriteAttribute(jsObject: object, name: Strings.currentIteration)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func toFloat64Array() -> Float64Array {
+        let this = jsObject
+        return this[Strings.toFloat64Array].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var progress: Double?
+    @inlinable public var description: String {
+        jsObject[Strings.toString]!().fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var currentIteration: Double?
+    @inlinable public func toJSON() -> JSObject {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class ConstantSourceNode: AudioScheduledSourceNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ConstantSourceNode].function }
+public class DOMParser: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMParser].function }
+
+    public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _offset = ReadonlyAttribute(jsObject: jsObject, name: Strings.offset)
-        super.init(unsafelyWrapping: jsObject)
+        self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: ConstantSourceOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var offset: AudioParam
+    @inlinable public func parseFromString(string: String, type: DOMParserSupportedType) -> Document {
+        let this = jsObject
+        return this[Strings.parseFromString].function!(this: this, arguments: [string.jsValue, type.jsValue]).fromJSValue()!
+    }
 }
 
-public class ConstantSourceOptions: BridgedDictionary {
-    public convenience init(offset: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.offset] = offset.jsValue
-        self.init(unsafelyWrapping: object)
+public enum DOMParserSupportedType: JSString, JSValueCompatible {
+    case textHtml = "text/html"
+    case textXml = "text/xml"
+    case applicationXml = "application/xml"
+    case applicationXhtmlXml = "application/xhtml+xml"
+    case imageSvgXml = "image/svg+xml"
+
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset)
-        super.init(unsafelyWrapping: object)
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @ReadWriteAttribute
-    public var offset: Float
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class ConstrainBooleanParameters: BridgedDictionary {
-    public convenience init(exact: Bool, ideal: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.exact] = exact.jsValue
-        object[Strings.ideal] = ideal.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public class DOMPoint: DOMPointReadOnly {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMPoint].function }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
-        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
-        super.init(unsafelyWrapping: object)
+    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)
     }
 
-    @ReadWriteAttribute
-    public var exact: Bool
+    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, w?.jsValue ?? .undefined]))
+    }
 
-    @ReadWriteAttribute
-    public var ideal: Bool
-}
+    // XXX: illegal static override
+    // override public static func fromPoint(other: DOMPointInit? = nil) -> Self
 
-public class ConstrainDOMStringParameters: BridgedDictionary {
-    public convenience init(exact: String_or_seq_of_String, ideal: String_or_seq_of_String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.exact] = exact.jsValue
-        object[Strings.ideal] = ideal.jsValue
-        self.init(unsafelyWrapping: object)
+    @usableFromInline let _x: ReadWriteAttribute<Double>
+    @inlinable override public var x: Double {
+        get { _x.wrappedValue }
+        set { _x.wrappedValue = newValue }
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
-        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
-        super.init(unsafelyWrapping: object)
+    @usableFromInline let _y: ReadWriteAttribute<Double>
+    @inlinable override public var y: Double {
+        get { _y.wrappedValue }
+        set { _y.wrappedValue = newValue }
     }
 
-    @ReadWriteAttribute
-    public var exact: String_or_seq_of_String
+    @usableFromInline let _z: ReadWriteAttribute<Double>
+    @inlinable override public var z: Double {
+        get { _z.wrappedValue }
+        set { _z.wrappedValue = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var ideal: String_or_seq_of_String
+    @usableFromInline let _w: ReadWriteAttribute<Double>
+    @inlinable override public var w: Double {
+        get { _w.wrappedValue }
+        set { _w.wrappedValue = newValue }
+    }
 }
 
-public class ConstrainDoubleRange: BridgedDictionary {
-    public convenience init(exact: Double, ideal: Double) {
+public class DOMPointInit: BridgedDictionary {
+    public convenience init(x: Double, y: Double, z: Double, w: Double) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.exact] = exact.jsValue
-        object[Strings.ideal] = ideal.jsValue
+        object[Strings.x] = x.jsValue
+        object[Strings.y] = y.jsValue
+        object[Strings.z] = z.jsValue
+        object[Strings.w] = w.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _exact = ReadWriteAttribute(jsObject: object, name: Strings.exact)
-        _ideal = ReadWriteAttribute(jsObject: object, name: Strings.ideal)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var exact: Double
+    public var x: Double
 
     @ReadWriteAttribute
-    public var ideal: Double
-}
-
-public class ConstrainULongRange: BridgedDictionary {
-    public convenience init(exact: UInt32, ideal: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.exact] = exact.jsValue
-        object[Strings.ideal] = ideal.jsValue
-        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)
-    }
+    public var y: Double
 
     @ReadWriteAttribute
-    public var exact: UInt32
+    public var z: Double
 
     @ReadWriteAttribute
-    public var ideal: UInt32
+    public var w: Double
 }
 
-public class ConvertCoordinateOptions: BridgedDictionary {
-    public convenience init(fromBox: CSSBoxType, toBox: CSSBoxType) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.fromBox] = fromBox.jsValue
-        object[Strings.toBox] = toBox.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var fromBox: CSSBoxType
-
-    @ReadWriteAttribute
-    public var toBox: CSSBoxType
-}
+public class DOMPointReadOnly: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMPointReadOnly].function }
 
-public class ConvolverNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ConvolverNode].function }
+    public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _buffer = ReadWriteAttribute(jsObject: jsObject, name: Strings.buffer)
-        _normalize = ReadWriteAttribute(jsObject: jsObject, name: Strings.normalize)
-        super.init(unsafelyWrapping: 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
+    }
+
+    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, w?.jsValue ?? .undefined]))
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: ConvolverOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public static func fromPoint(other: DOMPointInit? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.fromPoint].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var buffer: AudioBuffer?
+    @ReadonlyAttribute
+    public var x: Double
 
-    @ReadWriteAttribute
-    public var normalize: Bool
-}
+    @ReadonlyAttribute
+    public var y: Double
 
-public class ConvolverOptions: BridgedDictionary {
-    public convenience init(buffer: AudioBuffer?, disableNormalization: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.buffer] = buffer.jsValue
-        object[Strings.disableNormalization] = disableNormalization.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var z: Double
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _buffer = ReadWriteAttribute(jsObject: object, name: Strings.buffer)
-        _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var w: Double
 
-    @ReadWriteAttribute
-    public var buffer: AudioBuffer?
+    @inlinable public func matrixTransform(matrix: DOMMatrixInit? = nil) -> DOMPoint {
+        let this = jsObject
+        return this[Strings.matrixTransform].function!(this: this, arguments: [matrix?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var disableNormalization: Bool
+    @inlinable public func toJSON() -> JSObject {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class CountQueuingStrategy: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CountQueuingStrategy].function }
+public class DOMQuad: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMQuad].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)
+        _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
     }
 
-    @inlinable public convenience init(init: QueuingStrategyInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    @inlinable public convenience init(p1: DOMPointInit? = nil, p2: DOMPointInit? = nil, p3: DOMPointInit? = nil, p4: DOMPointInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [p1?.jsValue ?? .undefined, p2?.jsValue ?? .undefined, p3?.jsValue ?? .undefined, p4?.jsValue ?? .undefined]))
     }
 
-    @ReadonlyAttribute
-    public var highWaterMark: Double
+    @inlinable public static func fromRect(other: DOMRectInit? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.fromRect].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public static func fromQuad(other: DOMQuadInit? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.fromQuad].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
     @ReadonlyAttribute
-    public var size: JSFunction
-}
+    public var p1: DOMPoint
 
-public class CustomElementRegistry: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.CustomElementRegistry].function }
+    @ReadonlyAttribute
+    public var p2: DOMPoint
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var p3: DOMPoint
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadonlyAttribute
+    public var p4: DOMPoint
 
-    @inlinable public func define(name: String, constructor: CustomElementConstructor, options: ElementDefinitionOptions? = nil) {
+    @inlinable public func getBounds() -> DOMRect {
         let this = jsObject
-        _ = this[Strings.define].function!(this: this, arguments: [name.jsValue, constructor.jsValue, options?.jsValue ?? .undefined])
+        return this[Strings.getBounds].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func get(name: String) -> CustomElementConstructor? {
+    @inlinable public func toJSON() -> JSObject {
         let this = jsObject
-        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @inlinable public func whenDefined(name: String) -> JSPromise {
-        let this = jsObject
-        return this[Strings.whenDefined].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+public class DOMQuadInit: BridgedDictionary {
+    public convenience init(p1: DOMPointInit, p2: DOMPointInit, p3: DOMPointInit, p4: DOMPointInit) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.p1] = p1.jsValue
+        object[Strings.p2] = p2.jsValue
+        object[Strings.p3] = p3.jsValue
+        object[Strings.p4] = p4.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @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: [name.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    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)
     }
 
-    @inlinable public func upgrade(root: Node) {
-        let this = jsObject
-        _ = this[Strings.upgrade].function!(this: this, arguments: [root.jsValue])
-    }
+    @ReadWriteAttribute
+    public var p1: DOMPointInit
+
+    @ReadWriteAttribute
+    public var p2: DOMPointInit
+
+    @ReadWriteAttribute
+    public var p3: DOMPointInit
+
+    @ReadWriteAttribute
+    public var p4: DOMPointInit
 }
 
-public class CustomEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.CustomEvent].function }
+public class DOMRect: DOMRectReadOnly {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMRect].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _detail = ReadonlyAttribute(jsObject: jsObject, name: Strings.detail)
+        _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)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: CustomEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, width?.jsValue ?? .undefined, height?.jsValue ?? .undefined]))
     }
 
-    @ReadonlyAttribute
-    public var detail: JSValue
+    // XXX: illegal static override
+    // override public static func fromRect(other: DOMRectInit? = nil) -> Self
 
-    @inlinable public func initCustomEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil, detail: JSValue? = nil) {
-        let this = jsObject
-        _ = this[Strings.initCustomEvent].function!(this: this, arguments: [type.jsValue, bubbles?.jsValue ?? .undefined, cancelable?.jsValue ?? .undefined, detail?.jsValue ?? .undefined])
+    @usableFromInline let _x: ReadWriteAttribute<Double>
+    @inlinable override public var x: Double {
+        get { _x.wrappedValue }
+        set { _x.wrappedValue = newValue }
+    }
+
+    @usableFromInline let _y: ReadWriteAttribute<Double>
+    @inlinable override public var y: Double {
+        get { _y.wrappedValue }
+        set { _y.wrappedValue = newValue }
+    }
+
+    @usableFromInline let _width: ReadWriteAttribute<Double>
+    @inlinable override public var width: Double {
+        get { _width.wrappedValue }
+        set { _width.wrappedValue = newValue }
+    }
+
+    @usableFromInline let _height: ReadWriteAttribute<Double>
+    @inlinable override public var height: Double {
+        get { _height.wrappedValue }
+        set { _height.wrappedValue = newValue }
     }
 }
 
-public class CustomEventInit: BridgedDictionary {
-    public convenience init(detail: JSValue) {
+public class DOMRectInit: BridgedDictionary {
+    public convenience init(x: Double, y: Double, width: Double, height: Double) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.detail] = detail.jsValue
+        object[Strings.x] = x.jsValue
+        object[Strings.y] = y.jsValue
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _detail = ReadWriteAttribute(jsObject: object, name: Strings.detail)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var detail: JSValue
+    public var x: Double
+
+    @ReadWriteAttribute
+    public var y: Double
+
+    @ReadWriteAttribute
+    public var width: Double
+
+    @ReadWriteAttribute
+    public var height: Double
 }
 
-public class DOMException: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMException].function }
+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) {
-        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
-        _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message)
-        _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code)
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
         self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(message: String? = nil, name: String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [message?.jsValue ?? .undefined, name?.jsValue ?? .undefined]))
-    }
-
     @ReadonlyAttribute
-    public var name: String
+    public var length: UInt32
 
-    @ReadonlyAttribute
-    public var message: String
+    @inlinable public subscript(key: Int) -> DOMRect? {
+        jsObject[key].fromJSValue()
+    }
+}
 
-    @ReadonlyAttribute
-    public var code: UInt16
+public class DOMRectReadOnly: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMRectReadOnly].function }
 
-    public static let INDEX_SIZE_ERR: UInt16 = 1
+    public let jsObject: JSObject
 
-    public static let DOMSTRING_SIZE_ERR: UInt16 = 2
+    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 static let HIERARCHY_REQUEST_ERR: UInt16 = 3
+    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, width?.jsValue ?? .undefined, height?.jsValue ?? .undefined]))
+    }
 
-    public static let WRONG_DOCUMENT_ERR: UInt16 = 4
+    @inlinable public static func fromRect(other: DOMRectInit? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.fromRect].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    public static let INVALID_CHARACTER_ERR: UInt16 = 5
+    @ReadonlyAttribute
+    public var x: Double
 
-    public static let NO_DATA_ALLOWED_ERR: UInt16 = 6
+    @ReadonlyAttribute
+    public var y: Double
 
-    public static let NO_MODIFICATION_ALLOWED_ERR: UInt16 = 7
+    @ReadonlyAttribute
+    public var width: Double
 
-    public static let NOT_FOUND_ERR: UInt16 = 8
+    @ReadonlyAttribute
+    public var height: Double
 
-    public static let NOT_SUPPORTED_ERR: UInt16 = 9
+    @ReadonlyAttribute
+    public var top: Double
 
-    public static let INUSE_ATTRIBUTE_ERR: UInt16 = 10
+    @ReadonlyAttribute
+    public var right: Double
 
-    public static let INVALID_STATE_ERR: UInt16 = 11
+    @ReadonlyAttribute
+    public var bottom: Double
 
-    public static let SYNTAX_ERR: UInt16 = 12
+    @ReadonlyAttribute
+    public var left: Double
 
-    public static let INVALID_MODIFICATION_ERR: UInt16 = 13
+    @inlinable public func toJSON() -> JSObject {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
 
-    public static let NAMESPACE_ERR: UInt16 = 14
+public class DOMStringList: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMStringList].function }
 
-    public static let INVALID_ACCESS_ERR: UInt16 = 15
+    public let jsObject: JSObject
 
-    public static let VALIDATION_ERR: UInt16 = 16
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    public static let TYPE_MISMATCH_ERR: UInt16 = 17
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    public static let SECURITY_ERR: UInt16 = 18
+    @inlinable public subscript(key: Int) -> String? {
+        jsObject[key].fromJSValue()
+    }
 
-    public static let NETWORK_ERR: UInt16 = 19
+    @inlinable public func contains(string: String) -> Bool {
+        let this = jsObject
+        return this[Strings.contains].function!(this: this, arguments: [string.jsValue]).fromJSValue()!
+    }
+}
 
-    public static let ABORT_ERR: UInt16 = 20
+public class DOMStringMap: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMStringMap].function }
 
-    public static let URL_MISMATCH_ERR: UInt16 = 21
+    public let jsObject: JSObject
 
-    public static let QUOTA_EXCEEDED_ERR: UInt16 = 22
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
 
-    public static let TIMEOUT_ERR: UInt16 = 23
+    @inlinable public subscript(key: String) -> String {
+        jsObject[key].fromJSValue()!
+    }
 
-    public static let INVALID_NODE_TYPE_ERR: UInt16 = 24
+    // XXX: unsupported setter for keys of type String
 
-    public static let DATA_CLONE_ERR: UInt16 = 25
+    // XXX: unsupported deleter for keys of type String
 }
 
-public class DOMImplementation: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMImplementation].function }
+public class DOMTokenList: JSBridgedClass, Sequence {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMTokenList].function }
 
     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
     }
 
-    @inlinable public func createDocumentType(qualifiedName: String, publicId: String, systemId: String) -> DocumentType {
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> String? {
+        jsObject[key].fromJSValue()
+    }
+
+    @inlinable public func contains(token: String) -> Bool {
         let this = jsObject
-        return this[Strings.createDocumentType].function!(this: this, arguments: [qualifiedName.jsValue, publicId.jsValue, systemId.jsValue]).fromJSValue()!
+        return this[Strings.contains].function!(this: this, arguments: [token.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func createDocument(namespace: String?, qualifiedName: String, doctype: DocumentType? = nil) -> XMLDocument {
+    @inlinable public func add(tokens: String...) {
         let this = jsObject
-        return this[Strings.createDocument].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, doctype?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.add].function!(this: this, arguments: tokens.map(\.jsValue))
     }
 
-    @inlinable public func createHTMLDocument(title: String? = nil) -> Document {
+    @inlinable public func remove(tokens: String...) {
         let this = jsObject
-        return this[Strings.createHTMLDocument].function!(this: this, arguments: [title?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.remove].function!(this: this, arguments: tokens.map(\.jsValue))
     }
 
-    @inlinable public func hasFeature() -> Bool {
+    @inlinable public func toggle(token: String, force: Bool? = nil) -> Bool {
         let this = jsObject
-        return this[Strings.hasFeature].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.toggle].function!(this: this, arguments: [token.jsValue, force?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func replace(token: String, newToken: String) -> Bool {
+        let this = jsObject
+        return this[Strings.replace].function!(this: this, arguments: [token.jsValue, newToken.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func supports(token: String) -> Bool {
+        let this = jsObject
+        return this[Strings.supports].function!(this: this, arguments: [token.jsValue]).fromJSValue()!
+    }
+
+    @ReadWriteAttribute
+    public var value: String
+
+    public typealias Element = String
+    public func makeIterator() -> ValueIterableIterator<DOMTokenList> {
+        ValueIterableIterator(sequence: self)
     }
 }
 
-public class DOMMatrix: DOMMatrixReadOnly {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrix].function }
+public class DataTransfer: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransfer].function }
+
+    public let jsObject: JSObject
 
     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)
+        _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
     }
 
-    @inlinable public convenience init(init: String_or_seq_of_Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    // XXX: illegal static override
-    // override public static func fromMatrix(other: DOMMatrixInit? = nil) -> Self
+    @ReadWriteAttribute
+    public var dropEffect: String
 
-    // XXX: illegal static override
-    // override public static func fromFloat32Array(array32: Float32Array) -> Self
+    @ReadWriteAttribute
+    public var effectAllowed: String
 
-    // XXX: illegal static override
-    // override public static func fromFloat64Array(array64: Float64Array) -> Self
+    @ReadonlyAttribute
+    public var items: DataTransferItemList
 
-    @usableFromInline let _a: ReadWriteAttribute<Double>
-    @inlinable override public var a: Double {
-        get { _a.wrappedValue }
-        set { _a.wrappedValue = newValue }
+    @inlinable public func setDragImage(image: Element, x: Int32, y: Int32) {
+        let this = jsObject
+        _ = this[Strings.setDragImage].function!(this: this, arguments: [image.jsValue, x.jsValue, y.jsValue])
     }
 
-    @usableFromInline let _b: ReadWriteAttribute<Double>
-    @inlinable override public var b: Double {
-        get { _b.wrappedValue }
-        set { _b.wrappedValue = newValue }
-    }
+    @ReadonlyAttribute
+    public var types: [String]
 
-    @usableFromInline let _c: ReadWriteAttribute<Double>
-    @inlinable override public var c: Double {
-        get { _c.wrappedValue }
-        set { _c.wrappedValue = newValue }
+    @inlinable public func getData(format: String) -> String {
+        let this = jsObject
+        return this[Strings.getData].function!(this: this, arguments: [format.jsValue]).fromJSValue()!
     }
 
-    @usableFromInline let _d: ReadWriteAttribute<Double>
-    @inlinable override public var d: Double {
-        get { _d.wrappedValue }
-        set { _d.wrappedValue = newValue }
+    @inlinable public func setData(format: String, data: String) {
+        let this = jsObject
+        _ = this[Strings.setData].function!(this: this, arguments: [format.jsValue, data.jsValue])
     }
 
-    @usableFromInline let _e: ReadWriteAttribute<Double>
-    @inlinable override public var e: Double {
-        get { _e.wrappedValue }
-        set { _e.wrappedValue = newValue }
+    @inlinable public func clearData(format: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.clearData].function!(this: this, arguments: [format?.jsValue ?? .undefined])
     }
 
-    @usableFromInline let _f: ReadWriteAttribute<Double>
-    @inlinable override public var f: Double {
-        get { _f.wrappedValue }
-        set { _f.wrappedValue = newValue }
-    }
+    @ReadonlyAttribute
+    public var files: FileList
+}
 
-    @usableFromInline let _m11: ReadWriteAttribute<Double>
-    @inlinable override public var m11: Double {
-        get { _m11.wrappedValue }
-        set { _m11.wrappedValue = newValue }
-    }
+public class DataTransferItem: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransferItem].function }
 
-    @usableFromInline let _m12: ReadWriteAttribute<Double>
-    @inlinable override public var m12: Double {
-        get { _m12.wrappedValue }
-        set { _m12.wrappedValue = newValue }
-    }
+    public let jsObject: JSObject
 
-    @usableFromInline let _m13: ReadWriteAttribute<Double>
-    @inlinable override public var m13: Double {
-        get { _m13.wrappedValue }
-        set { _m13.wrappedValue = newValue }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind)
+        _type = ReadonlyAttribute(jsObject: jsObject, name: Strings.type)
+        self.jsObject = jsObject
     }
 
-    @usableFromInline let _m14: ReadWriteAttribute<Double>
-    @inlinable override public var m14: Double {
-        get { _m14.wrappedValue }
-        set { _m14.wrappedValue = newValue }
-    }
+    @ReadonlyAttribute
+    public var kind: String
 
-    @usableFromInline let _m21: ReadWriteAttribute<Double>
-    @inlinable override public var m21: Double {
-        get { _m21.wrappedValue }
-        set { _m21.wrappedValue = newValue }
-    }
+    @ReadonlyAttribute
+    public var type: String
 
-    @usableFromInline let _m22: ReadWriteAttribute<Double>
-    @inlinable override public var m22: Double {
-        get { _m22.wrappedValue }
-        set { _m22.wrappedValue = newValue }
-    }
+    // XXX: member 'getAsString' is ignored
 
-    @usableFromInline let _m23: ReadWriteAttribute<Double>
-    @inlinable override public var m23: Double {
-        get { _m23.wrappedValue }
-        set { _m23.wrappedValue = newValue }
+    @inlinable public func getAsFile() -> File? {
+        let this = jsObject
+        return this[Strings.getAsFile].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @usableFromInline let _m24: ReadWriteAttribute<Double>
-    @inlinable override public var m24: Double {
-        get { _m24.wrappedValue }
-        set { _m24.wrappedValue = newValue }
-    }
+public class DataTransferItemList: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransferItemList].function }
 
-    @usableFromInline let _m31: ReadWriteAttribute<Double>
-    @inlinable override public var m31: Double {
-        get { _m31.wrappedValue }
-        set { _m31.wrappedValue = newValue }
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
     }
 
-    @usableFromInline let _m32: ReadWriteAttribute<Double>
-    @inlinable override public var m32: Double {
-        get { _m32.wrappedValue }
-        set { _m32.wrappedValue = newValue }
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> DataTransferItem {
+        jsObject[key].fromJSValue()!
     }
 
-    @usableFromInline let _m33: ReadWriteAttribute<Double>
-    @inlinable override public var m33: Double {
-        get { _m33.wrappedValue }
-        set { _m33.wrappedValue = newValue }
+    @inlinable public func add(data: String, type: String) -> DataTransferItem? {
+        let this = jsObject
+        return this[Strings.add].function!(this: this, arguments: [data.jsValue, type.jsValue]).fromJSValue()!
     }
 
-    @usableFromInline let _m34: ReadWriteAttribute<Double>
-    @inlinable override public var m34: Double {
-        get { _m34.wrappedValue }
-        set { _m34.wrappedValue = newValue }
+    @inlinable public func add(data: File) -> DataTransferItem? {
+        let this = jsObject
+        return this[Strings.add].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
     }
 
-    @usableFromInline let _m41: ReadWriteAttribute<Double>
-    @inlinable override public var m41: Double {
-        get { _m41.wrappedValue }
-        set { _m41.wrappedValue = newValue }
+    @inlinable public func remove(index: UInt32) {
+        let this = jsObject
+        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
     }
 
-    @usableFromInline let _m42: ReadWriteAttribute<Double>
-    @inlinable override public var m42: Double {
-        get { _m42.wrappedValue }
-        set { _m42.wrappedValue = newValue }
+    @inlinable public func clear() {
+        let this = jsObject
+        _ = this[Strings.clear].function!(this: this, arguments: [])
     }
+}
 
-    @usableFromInline let _m43: ReadWriteAttribute<Double>
-    @inlinable override public var m43: Double {
-        get { _m43.wrappedValue }
-        set { _m43.wrappedValue = newValue }
+public class DevicePermissionDescriptor: BridgedDictionary {
+    public convenience init(deviceId: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.deviceId] = deviceId.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @usableFromInline let _m44: ReadWriteAttribute<Double>
-    @inlinable override public var m44: Double {
-        get { _m44.wrappedValue }
-        set { _m44.wrappedValue = newValue }
+    public required init(unsafelyWrapping object: JSObject) {
+        _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func multiplySelf(other: DOMMatrixInit? = nil) -> Self {
+    @ReadWriteAttribute
+    public var deviceId: String
+}
+
+public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers, GeometryUtils {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Document].function }
+
+    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)
+    }
+
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
+
+    @ReadonlyAttribute
+    public var implementation: DOMImplementation
+
+    @ReadonlyAttribute
+    public var URL: String
+
+    @ReadonlyAttribute
+    public var documentURI: String
+
+    @ReadonlyAttribute
+    public var compatMode: String
+
+    @ReadonlyAttribute
+    public var characterSet: String
+
+    @ReadonlyAttribute
+    public var charset: String
+
+    @ReadonlyAttribute
+    public var inputEncoding: String
+
+    @ReadonlyAttribute
+    public var contentType: String
+
+    @ReadonlyAttribute
+    public var doctype: DocumentType?
+
+    @ReadonlyAttribute
+    public var documentElement: Element?
+
+    @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection {
         let this = jsObject
-        return this[Strings.multiplySelf].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.getElementsByTagName].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func preMultiplySelf(other: DOMMatrixInit? = nil) -> Self {
+    @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection {
         let this = jsObject
-        return this[Strings.preMultiplySelf].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func translateSelf(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> Self {
+    @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection {
         let this = jsObject
-        return this[Strings.translateSelf].function!(this: this, arguments: [tx?.jsValue ?? .undefined, ty?.jsValue ?? .undefined, tz?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.getElementsByClassName].function!(this: this, arguments: [classNames.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func scaleSelf(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self {
-        let _arg0 = scaleX?.jsValue ?? .undefined
-        let _arg1 = scaleY?.jsValue ?? .undefined
-        let _arg2 = scaleZ?.jsValue ?? .undefined
-        let _arg3 = originX?.jsValue ?? .undefined
-        let _arg4 = originY?.jsValue ?? .undefined
-        let _arg5 = originZ?.jsValue ?? .undefined
+    @inlinable public func createElement(localName: String, options: ElementCreationOptions_or_String? = nil) -> Element {
         let this = jsObject
-        return this[Strings.scaleSelf].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
+        return this[Strings.createElement].function!(this: this, arguments: [localName.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func scale3dSelf(scale: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> Self {
+    @inlinable public func createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions_or_String? = nil) -> Element {
         let this = jsObject
-        return this[Strings.scale3dSelf].function!(this: this, arguments: [scale?.jsValue ?? .undefined, originX?.jsValue ?? .undefined, originY?.jsValue ?? .undefined, originZ?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createElementNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func rotateSelf(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> Self {
+    @inlinable public func createDocumentFragment() -> DocumentFragment {
         let this = jsObject
-        return this[Strings.rotateSelf].function!(this: this, arguments: [rotX?.jsValue ?? .undefined, rotY?.jsValue ?? .undefined, rotZ?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createDocumentFragment].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func rotateFromVectorSelf(x: Double? = nil, y: Double? = nil) -> Self {
+    @inlinable public func createTextNode(data: String) -> Text {
         let this = jsObject
-        return this[Strings.rotateFromVectorSelf].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createTextNode].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func rotateAxisAngleSelf(x: Double? = nil, y: Double? = nil, z: Double? = nil, angle: Double? = nil) -> Self {
+    @inlinable public func createCDATASection(data: String) -> CDATASection {
         let this = jsObject
-        return this[Strings.rotateAxisAngleSelf].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, angle?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createCDATASection].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func skewXSelf(sx: Double? = nil) -> Self {
+    @inlinable public func createComment(data: String) -> Comment {
         let this = jsObject
-        return this[Strings.skewXSelf].function!(this: this, arguments: [sx?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createComment].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func skewYSelf(sy: Double? = nil) -> Self {
+    @inlinable public func createProcessingInstruction(target: String, data: String) -> ProcessingInstruction {
         let this = jsObject
-        return this[Strings.skewYSelf].function!(this: this, arguments: [sy?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.createProcessingInstruction].function!(this: this, arguments: [target.jsValue, data.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func invertSelf() -> Self {
+    @inlinable public func importNode(node: Node, deep: Bool? = nil) -> Node {
         let this = jsObject
-        return this[Strings.invertSelf].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.importNode].function!(this: this, arguments: [node.jsValue, deep?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func setMatrixValue(transformList: String) -> Self {
+    @inlinable public func adoptNode(node: Node) -> Node {
         let this = jsObject
-        return this[Strings.setMatrixValue].function!(this: this, arguments: [transformList.jsValue]).fromJSValue()!
+        return this[Strings.adoptNode].function!(this: this, arguments: [node.jsValue]).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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.a] = a.jsValue
-        object[Strings.b] = b.jsValue
-        object[Strings.c] = c.jsValue
-        object[Strings.d] = d.jsValue
-        object[Strings.e] = e.jsValue
-        object[Strings.f] = f.jsValue
-        object[Strings.m11] = m11.jsValue
-        object[Strings.m12] = m12.jsValue
-        object[Strings.m21] = m21.jsValue
-        object[Strings.m22] = m22.jsValue
-        object[Strings.m41] = m41.jsValue
-        object[Strings.m42] = m42.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func createAttribute(localName: String) -> Attr {
+        let this = jsObject
+        return this[Strings.createAttribute].function!(this: this, arguments: [localName.jsValue]).fromJSValue()!
     }
 
-    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)
+    @inlinable public func createAttributeNS(namespace: String?, qualifiedName: String) -> Attr {
+        let this = jsObject
+        return this[Strings.createAttributeNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var a: Double
+    @inlinable public func createEvent(interface: String) -> Event {
+        let this = jsObject
+        return this[Strings.createEvent].function!(this: this, arguments: [interface.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var b: Double
+    @inlinable public func createRange() -> Range {
+        let this = jsObject
+        return this[Strings.createRange].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var c: Double
+    // XXX: member 'createNodeIterator' is ignored
 
-    @ReadWriteAttribute
-    public var d: Double
+    // XXX: member 'createTreeWalker' is ignored
 
-    @ReadWriteAttribute
-    public var e: Double
+    @ReadonlyAttribute
+    public var location: Location?
 
     @ReadWriteAttribute
-    public var f: Double
+    public var domain: String
 
-    @ReadWriteAttribute
-    public var m11: Double
-
-    @ReadWriteAttribute
-    public var m12: Double
-
-    @ReadWriteAttribute
-    public var m21: Double
-
-    @ReadWriteAttribute
-    public var m22: Double
+    @ReadonlyAttribute
+    public var referrer: String
 
     @ReadWriteAttribute
-    public var m41: Double
+    public var cookie: String
 
-    @ReadWriteAttribute
-    public var m42: Double
-}
+    @ReadonlyAttribute
+    public var lastModified: String
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.m13] = m13.jsValue
-        object[Strings.m14] = m14.jsValue
-        object[Strings.m23] = m23.jsValue
-        object[Strings.m24] = m24.jsValue
-        object[Strings.m31] = m31.jsValue
-        object[Strings.m32] = m32.jsValue
-        object[Strings.m33] = m33.jsValue
-        object[Strings.m34] = m34.jsValue
-        object[Strings.m43] = m43.jsValue
-        object[Strings.m44] = m44.jsValue
-        object[Strings.is2D] = is2D.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var readyState: DocumentReadyState
 
-    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)
+    @inlinable public subscript(key: String) -> JSObject {
+        jsObject[key].fromJSValue()!
     }
 
     @ReadWriteAttribute
-    public var m13: Double
-
-    @ReadWriteAttribute
-    public var m14: Double
+    public var title: String
 
     @ReadWriteAttribute
-    public var m23: Double
+    public var dir: String
 
     @ReadWriteAttribute
-    public var m24: Double
+    public var body: HTMLElement?
 
-    @ReadWriteAttribute
-    public var m31: Double
+    @ReadonlyAttribute
+    public var head: HTMLHeadElement?
 
-    @ReadWriteAttribute
-    public var m32: Double
+    @ReadonlyAttribute
+    public var images: HTMLCollection
 
-    @ReadWriteAttribute
-    public var m33: Double
+    @ReadonlyAttribute
+    public var embeds: HTMLCollection
 
-    @ReadWriteAttribute
-    public var m34: Double
+    @ReadonlyAttribute
+    public var plugins: HTMLCollection
 
-    @ReadWriteAttribute
-    public var m43: Double
+    @ReadonlyAttribute
+    public var links: HTMLCollection
 
-    @ReadWriteAttribute
-    public var m44: Double
+    @ReadonlyAttribute
+    public var forms: HTMLCollection
 
-    @ReadWriteAttribute
-    public var is2D: Bool
-}
+    @ReadonlyAttribute
+    public var scripts: HTMLCollection
 
-public class DOMMatrixReadOnly: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMMatrixReadOnly].function }
+    @inlinable public func getElementsByName(elementName: String) -> NodeList {
+        let this = jsObject
+        return this[Strings.getElementsByName].function!(this: this, arguments: [elementName.jsValue]).fromJSValue()!
+    }
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var currentScript: HTMLOrSVGScriptElement?
 
-    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 func open(unused1: String? = nil, unused2: String? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.open].function!(this: this, arguments: [unused1?.jsValue ?? .undefined, unused2?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public convenience init(init: String_or_seq_of_Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    @inlinable public func open(url: String, name: String, features: String) -> WindowProxy? {
+        let this = jsObject
+        return this[Strings.open].function!(this: this, arguments: [url.jsValue, name.jsValue, features.jsValue]).fromJSValue()!
     }
 
-    @inlinable public static func fromMatrix(other: DOMMatrixInit? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.fromMatrix].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 
-    @inlinable public static func fromFloat32Array(array32: Float32Array) -> Self {
-        let this = constructor!
-        return this[Strings.fromFloat32Array].function!(this: this, arguments: [array32.jsValue]).fromJSValue()!
+    @inlinable public func write(text: String...) {
+        let this = jsObject
+        _ = this[Strings.write].function!(this: this, arguments: text.map(\.jsValue))
     }
 
-    @inlinable public static func fromFloat64Array(array64: Float64Array) -> Self {
-        let this = constructor!
-        return this[Strings.fromFloat64Array].function!(this: this, arguments: [array64.jsValue]).fromJSValue()!
+    @inlinable public func writeln(text: String...) {
+        let this = jsObject
+        _ = this[Strings.writeln].function!(this: this, arguments: text.map(\.jsValue))
     }
 
     @ReadonlyAttribute
-    public var a: Double
+    public var defaultView: WindowProxy?
 
-    @ReadonlyAttribute
-    public var b: Double
+    @inlinable public func hasFocus() -> Bool {
+        let this = jsObject
+        return this[Strings.hasFocus].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var c: Double
+    @ReadWriteAttribute
+    public var designMode: String
 
-    @ReadonlyAttribute
-    public var d: Double
+    @inlinable public func execCommand(commandId: String, showUI: Bool? = nil, value: String? = nil) -> Bool {
+        let this = jsObject
+        return this[Strings.execCommand].function!(this: this, arguments: [commandId.jsValue, showUI?.jsValue ?? .undefined, value?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var e: Double
+    @inlinable public func queryCommandEnabled(commandId: String) -> Bool {
+        let this = jsObject
+        return this[Strings.queryCommandEnabled].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var f: Double
+    @inlinable public func queryCommandIndeterm(commandId: String) -> Bool {
+        let this = jsObject
+        return this[Strings.queryCommandIndeterm].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var m11: Double
+    @inlinable public func queryCommandState(commandId: String) -> Bool {
+        let this = jsObject
+        return this[Strings.queryCommandState].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var m12: Double
+    @inlinable public func queryCommandSupported(commandId: String) -> Bool {
+        let this = jsObject
+        return this[Strings.queryCommandSupported].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var m13: Double
+    @inlinable public func queryCommandValue(commandId: String) -> String {
+        let this = jsObject
+        return this[Strings.queryCommandValue].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+    }
 
     @ReadonlyAttribute
-    public var m14: Double
+    public var hidden: Bool
 
     @ReadonlyAttribute
-    public var m21: Double
+    public var visibilityState: DocumentVisibilityState
 
-    @ReadonlyAttribute
-    public var m22: Double
+    @ClosureAttribute1Optional
+    public var onreadystatechange: EventHandler
 
-    @ReadonlyAttribute
-    public var m23: Double
+    @ClosureAttribute1Optional
+    public var onvisibilitychange: EventHandler
 
-    @ReadonlyAttribute
-    public var m24: Double
+    @ReadWriteAttribute
+    public var fgColor: String
 
-    @ReadonlyAttribute
-    public var m31: Double
+    @ReadWriteAttribute
+    public var linkColor: String
 
-    @ReadonlyAttribute
-    public var m32: Double
+    @ReadWriteAttribute
+    public var vlinkColor: String
 
-    @ReadonlyAttribute
-    public var m33: Double
+    @ReadWriteAttribute
+    public var alinkColor: String
 
-    @ReadonlyAttribute
-    public var m34: Double
+    @ReadWriteAttribute
+    public var bgColor: String
 
     @ReadonlyAttribute
-    public var m41: Double
+    public var anchors: HTMLCollection
 
     @ReadonlyAttribute
-    public var m42: Double
+    public var applets: HTMLCollection
 
-    @ReadonlyAttribute
-    public var m43: Double
+    @inlinable public func clear() {
+        let this = jsObject
+        _ = this[Strings.clear].function!(this: this, arguments: [])
+    }
 
-    @ReadonlyAttribute
-    public var m44: Double
+    @inlinable public func captureEvents() {
+        let this = jsObject
+        _ = this[Strings.captureEvents].function!(this: this, arguments: [])
+    }
 
-    @ReadonlyAttribute
-    public var is2D: Bool
+    @inlinable public func releaseEvents() {
+        let this = jsObject
+        _ = this[Strings.releaseEvents].function!(this: this, arguments: [])
+    }
 
     @ReadonlyAttribute
-    public var isIdentity: Bool
+    public var all: HTMLAllCollection
 
-    @inlinable public func translate(tx: Double? = nil, ty: Double? = nil, tz: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.translate].function!(this: this, arguments: [tx?.jsValue ?? .undefined, ty?.jsValue ?? .undefined, tz?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func scale(scaleX: Double? = nil, scaleY: Double? = nil, scaleZ: Double? = nil, originX: Double? = nil, originY: Double? = nil, originZ: Double? = nil) -> DOMMatrix {
-        let _arg0 = scaleX?.jsValue ?? .undefined
-        let _arg1 = scaleY?.jsValue ?? .undefined
-        let _arg2 = scaleZ?.jsValue ?? .undefined
-        let _arg3 = originX?.jsValue ?? .undefined
-        let _arg4 = originY?.jsValue ?? .undefined
-        let _arg5 = originZ?.jsValue ?? .undefined
-        let this = jsObject
-        return this[Strings.scale].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5]).fromJSValue()!
-    }
-
-    @inlinable public func scaleNonUniform(scaleX: Double? = nil, scaleY: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.scaleNonUniform].function!(this: this, arguments: [scaleX?.jsValue ?? .undefined, scaleY?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable 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: [scale?.jsValue ?? .undefined, originX?.jsValue ?? .undefined, originY?.jsValue ?? .undefined, originZ?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func rotate(rotX: Double? = nil, rotY: Double? = nil, rotZ: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.rotate].function!(this: this, arguments: [rotX?.jsValue ?? .undefined, rotY?.jsValue ?? .undefined, rotZ?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func rotateFromVector(x: Double? = nil, y: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.rotateFromVector].function!(this: this, arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable 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: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, angle?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func skewX(sx: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.skewX].function!(this: this, arguments: [sx?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func skewY(sy: Double? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.skewY].function!(this: this, arguments: [sy?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func multiply(other: DOMMatrixInit? = nil) -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.multiply].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func flipX() -> DOMMatrix {
-        let this = jsObject
-        return this[Strings.flipX].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func flipY() -> DOMMatrix {
+    @inlinable public func elementFromPoint(x: Double, y: Double) -> Element? {
         let this = jsObject
-        return this[Strings.flipY].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.elementFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func inverse() -> DOMMatrix {
+    @inlinable public func elementsFromPoint(x: Double, y: Double) -> [Element] {
         let this = jsObject
-        return this[Strings.inverse].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.elementsFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func transformPoint(point: DOMPointInit? = nil) -> DOMPoint {
+    @inlinable public func caretPositionFromPoint(x: Double, y: Double) -> CaretPosition? {
         let this = jsObject
-        return this[Strings.transformPoint].function!(this: this, arguments: [point?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.caretPositionFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func toFloat32Array() -> Float32Array {
-        let this = jsObject
-        return this[Strings.toFloat32Array].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var scrollingElement: Element?
+}
 
-    @inlinable public func toFloat64Array() -> Float64Array {
-        let this = jsObject
-        return this[Strings.toFloat64Array].function!(this: this, arguments: []).fromJSValue()!
+public protocol DocumentAndElementEventHandlers: JSBridgedClass {}
+public extension DocumentAndElementEventHandlers {
+    @inlinable var oncopy: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] = newValue }
     }
 
-    @inlinable public var description: String {
-        jsObject[Strings.toString]!().fromJSValue()!
+    @inlinable var oncut: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncut, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncut, in: jsObject] = newValue }
     }
 
-    @inlinable public func toJSON() -> JSObject {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable var onpaste: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] = newValue }
     }
 }
 
-public class DOMParser: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMParser].function }
-
-    public let jsObject: JSObject
+public class DocumentFragment: Node, NonElementParentNode, ParentNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentFragment].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+        super.init(unsafelyWrapping: jsObject)
     }
 
     @inlinable public convenience init() {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
+}
 
-    @inlinable public func parseFromString(string: String, type: DOMParserSupportedType) -> Document {
-        let this = jsObject
-        return this[Strings.parseFromString].function!(this: this, arguments: [string.jsValue, type.jsValue]).fromJSValue()!
-    }
+public protocol DocumentOrShadowRoot: JSBridgedClass {}
+public extension DocumentOrShadowRoot {
+    @inlinable var activeElement: Element? { jsObject[Strings.activeElement].fromJSValue()! }
 }
 
-public enum DOMParserSupportedType: JSString, JSValueCompatible {
-    case textHtml = "text/html"
-    case textXml = "text/xml"
-    case applicationXml = "application/xml"
-    case applicationXhtmlXml = "application/xhtml+xml"
-    case imageSvgXml = "image/svg+xml"
+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 {
@@ -5104,626 +4384,658 @@ public enum DOMParserSupportedType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class DOMPoint: DOMPointReadOnly {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMPoint].function }
+public class DocumentType: Node, ChildNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentType].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)
+        _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)
     }
 
-    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, w?.jsValue ?? .undefined]))
-    }
+    @ReadonlyAttribute
+    public var name: String
 
-    // XXX: illegal static override
-    // override public static func fromPoint(other: DOMPointInit? = nil) -> Self
+    @ReadonlyAttribute
+    public var publicId: String
 
-    @usableFromInline let _x: ReadWriteAttribute<Double>
-    @inlinable override public var x: Double {
-        get { _x.wrappedValue }
-        set { _x.wrappedValue = newValue }
-    }
+    @ReadonlyAttribute
+    public var systemId: String
+}
 
-    @usableFromInline let _y: ReadWriteAttribute<Double>
-    @inlinable override public var y: Double {
-        get { _y.wrappedValue }
-        set { _y.wrappedValue = newValue }
-    }
+public enum DocumentVisibilityState: JSString, JSValueCompatible {
+    case visible = "visible"
+    case hidden = "hidden"
 
-    @usableFromInline let _z: ReadWriteAttribute<Double>
-    @inlinable override public var z: Double {
-        get { _z.wrappedValue }
-        set { _z.wrappedValue = newValue }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @usableFromInline let _w: ReadWriteAttribute<Double>
-    @inlinable override public var w: Double {
-        get { _w.wrappedValue }
-        set { _w.wrappedValue = newValue }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class DOMPointInit: BridgedDictionary {
-    public convenience init(x: Double, y: Double, z: Double, w: Double) {
+public class DoubleRange: BridgedDictionary {
+    public convenience init(max: Double, min: Double) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.x] = x.jsValue
-        object[Strings.y] = y.jsValue
-        object[Strings.z] = z.jsValue
-        object[Strings.w] = w.jsValue
+        object[Strings.max] = max.jsValue
+        object[Strings.min] = min.jsValue
         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)
+        _max = ReadWriteAttribute(jsObject: object, name: Strings.max)
+        _min = ReadWriteAttribute(jsObject: object, name: Strings.min)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var x: Double
-
-    @ReadWriteAttribute
-    public var y: Double
-
-    @ReadWriteAttribute
-    public var z: Double
+    public var max: Double
 
     @ReadWriteAttribute
-    public var w: Double
+    public var min: Double
 }
 
-public class DOMPointReadOnly: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMPointReadOnly].function }
-
-    public let jsObject: JSObject
+public class DragEvent: MouseEvent {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DragEvent].function }
 
     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
-    }
-
-    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, z: Double? = nil, w: Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, z?.jsValue ?? .undefined, w?.jsValue ?? .undefined]))
+        _dataTransfer = ReadonlyAttribute(jsObject: jsObject, name: Strings.dataTransfer)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public static func fromPoint(other: DOMPointInit? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.fromPoint].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public convenience init(type: String, eventInitDict: DragEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
     @ReadonlyAttribute
-    public var x: Double
-
-    @ReadonlyAttribute
-    public var y: Double
-
-    @ReadonlyAttribute
-    public var z: Double
-
-    @ReadonlyAttribute
-    public var w: Double
+    public var dataTransfer: DataTransfer?
+}
 
-    @inlinable public func matrixTransform(matrix: DOMMatrixInit? = nil) -> DOMPoint {
-        let this = jsObject
-        return this[Strings.matrixTransform].function!(this: this, arguments: [matrix?.jsValue ?? .undefined]).fromJSValue()!
+public class DragEventInit: BridgedDictionary {
+    public convenience init(dataTransfer: DataTransfer?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.dataTransfer] = dataTransfer.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func toJSON() -> JSObject {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _dataTransfer = ReadWriteAttribute(jsObject: object, name: Strings.dataTransfer)
+        super.init(unsafelyWrapping: object)
     }
+
+    @ReadWriteAttribute
+    public var dataTransfer: DataTransfer?
 }
 
-public class DOMQuad: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMQuad].function }
-
-    public let jsObject: JSObject
+public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, GeometryUtils {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Element].function }
 
     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
-    }
-
-    @inlinable public convenience init(p1: DOMPointInit? = nil, p2: DOMPointInit? = nil, p3: DOMPointInit? = nil, p4: DOMPointInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [p1?.jsValue ?? .undefined, p2?.jsValue ?? .undefined, p3?.jsValue ?? .undefined, p4?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public static func fromRect(other: DOMRectInit? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.fromRect].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public static func fromQuad(other: DOMQuadInit? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.fromQuad].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+        _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)
     }
 
     @ReadonlyAttribute
-    public var p1: DOMPoint
+    public var namespaceURI: String?
 
     @ReadonlyAttribute
-    public var p2: DOMPoint
+    public var prefix: String?
 
     @ReadonlyAttribute
-    public var p3: DOMPoint
+    public var localName: String
 
     @ReadonlyAttribute
-    public var p4: DOMPoint
-
-    @inlinable public func getBounds() -> DOMRect {
-        let this = jsObject
-        return this[Strings.getBounds].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable 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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.p1] = p1.jsValue
-        object[Strings.p2] = p2.jsValue
-        object[Strings.p3] = p3.jsValue
-        object[Strings.p4] = p4.jsValue
-        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)
-    }
+    public var tagName: String
 
     @ReadWriteAttribute
-    public var p1: DOMPointInit
+    public var id: String
 
     @ReadWriteAttribute
-    public var p2: DOMPointInit
+    public var className: String
 
-    @ReadWriteAttribute
-    public var p3: DOMPointInit
+    @ReadonlyAttribute
+    public var classList: DOMTokenList
 
     @ReadWriteAttribute
-    public var p4: DOMPointInit
-}
+    public var slot: String
 
-public class DOMRect: DOMRectReadOnly {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DOMRect].function }
+    @inlinable public func hasAttributes() -> Bool {
+        let this = jsObject
+        return this[Strings.hasAttributes].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    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)
+    @ReadonlyAttribute
+    public var attributes: NamedNodeMap
+
+    @inlinable public func getAttributeNames() -> [String] {
+        let this = jsObject
+        return this[Strings.getAttributeNames].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, width?.jsValue ?? .undefined, height?.jsValue ?? .undefined]))
+    @inlinable public func getAttribute(qualifiedName: String) -> String? {
+        let this = jsObject
+        return this[Strings.getAttribute].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
     }
 
-    // XXX: illegal static override
-    // override public static func fromRect(other: DOMRectInit? = nil) -> Self
+    @inlinable public func getAttributeNS(namespace: String?, localName: String) -> String? {
+        let this = jsObject
+        return this[Strings.getAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+    }
 
-    @usableFromInline let _x: ReadWriteAttribute<Double>
-    @inlinable override public var x: Double {
-        get { _x.wrappedValue }
-        set { _x.wrappedValue = newValue }
+    @inlinable public func setAttribute(qualifiedName: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.setAttribute].function!(this: this, arguments: [qualifiedName.jsValue, value.jsValue])
     }
 
-    @usableFromInline let _y: ReadWriteAttribute<Double>
-    @inlinable override public var y: Double {
-        get { _y.wrappedValue }
-        set { _y.wrappedValue = newValue }
+    @inlinable public func setAttributeNS(namespace: String?, qualifiedName: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.setAttributeNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, value.jsValue])
     }
 
-    @usableFromInline let _width: ReadWriteAttribute<Double>
-    @inlinable override public var width: Double {
-        get { _width.wrappedValue }
-        set { _width.wrappedValue = newValue }
+    @inlinable public func removeAttribute(qualifiedName: String) {
+        let this = jsObject
+        _ = this[Strings.removeAttribute].function!(this: this, arguments: [qualifiedName.jsValue])
     }
 
-    @usableFromInline let _height: ReadWriteAttribute<Double>
-    @inlinable override public var height: Double {
-        get { _height.wrappedValue }
-        set { _height.wrappedValue = newValue }
+    @inlinable public func removeAttributeNS(namespace: String?, localName: String) {
+        let this = jsObject
+        _ = this[Strings.removeAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue])
     }
-}
 
-public class DOMRectInit: BridgedDictionary {
-    public convenience init(x: Double, y: Double, width: Double, height: Double) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.x] = x.jsValue
-        object[Strings.y] = y.jsValue
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func toggleAttribute(qualifiedName: String, force: Bool? = nil) -> Bool {
+        let this = jsObject
+        return this[Strings.toggleAttribute].function!(this: this, arguments: [qualifiedName.jsValue, force?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    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)
+    @inlinable public func hasAttribute(qualifiedName: String) -> Bool {
+        let this = jsObject
+        return this[Strings.hasAttribute].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var x: Double
+    @inlinable public func hasAttributeNS(namespace: String?, localName: String) -> Bool {
+        let this = jsObject
+        return this[Strings.hasAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var y: Double
+    @inlinable public func getAttributeNode(qualifiedName: String) -> Attr? {
+        let this = jsObject
+        return this[Strings.getAttributeNode].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var width: Double
+    @inlinable public func getAttributeNodeNS(namespace: String?, localName: String) -> Attr? {
+        let this = jsObject
+        return this[Strings.getAttributeNodeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var height: Double
-}
+    @inlinable public func setAttributeNode(attr: Attr) -> Attr? {
+        let this = jsObject
+        return this[Strings.setAttributeNode].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
+    }
 
-public class DOMRectList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMRectList].function }
+    @inlinable public func setAttributeNodeNS(attr: Attr) -> Attr? {
+        let this = jsObject
+        return this[Strings.setAttributeNodeNS].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
+    }
 
-    public let jsObject: JSObject
+    @inlinable public func removeAttributeNode(attr: Attr) -> Attr {
+        let this = jsObject
+        return this[Strings.removeAttributeNode].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+    @inlinable public func attachShadow(init: ShadowRootInit) -> ShadowRoot {
+        let this = jsObject
+        return this[Strings.attachShadow].function!(this: this, arguments: [`init`.jsValue]).fromJSValue()!
     }
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var shadowRoot: ShadowRoot?
 
-    @inlinable public subscript(key: Int) -> DOMRect? {
-        jsObject[key].fromJSValue()
+    @inlinable public func closest(selectors: String) -> Element? {
+        let this = jsObject
+        return this[Strings.closest].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
     }
-}
-
-public class DOMRectReadOnly: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMRectReadOnly].function }
 
-    public let jsObject: JSObject
+    @inlinable public func matches(selectors: String) -> Bool {
+        let this = jsObject
+        return this[Strings.matches].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
+    }
 
-    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
+    @inlinable public func webkitMatchesSelector(selectors: String) -> Bool {
+        let this = jsObject
+        return this[Strings.webkitMatchesSelector].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
     }
 
-    @inlinable public convenience init(x: Double? = nil, y: Double? = nil, width: Double? = nil, height: Double? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [x?.jsValue ?? .undefined, y?.jsValue ?? .undefined, width?.jsValue ?? .undefined, height?.jsValue ?? .undefined]))
+    @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection {
+        let this = jsObject
+        return this[Strings.getElementsByTagName].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
     }
 
-    @inlinable public static func fromRect(other: DOMRectInit? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.fromRect].function!(this: this, arguments: [other?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection {
+        let this = jsObject
+        return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var x: Double
+    @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection {
+        let this = jsObject
+        return this[Strings.getElementsByClassName].function!(this: this, arguments: [classNames.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var y: Double
-
-    @ReadonlyAttribute
-    public var width: Double
-
-    @ReadonlyAttribute
-    public var height: Double
-
-    @ReadonlyAttribute
-    public var top: Double
-
-    @ReadonlyAttribute
-    public var right: Double
-
-    @ReadonlyAttribute
-    public var bottom: Double
+    @inlinable public func insertAdjacentElement(where: String, element: Element) -> Element? {
+        let this = jsObject
+        return this[Strings.insertAdjacentElement].function!(this: this, arguments: [`where`.jsValue, element.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var left: Double
+    @inlinable public func insertAdjacentText(where: String, data: String) {
+        let this = jsObject
+        _ = this[Strings.insertAdjacentText].function!(this: this, arguments: [`where`.jsValue, data.jsValue])
+    }
 
-    @inlinable public func toJSON() -> JSObject {
+    @inlinable public func pseudo(type: String) -> CSSPseudoElement? {
         let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
     }
-}
 
-public class DOMStringList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMStringList].function }
+    @inlinable public func getClientRects() -> DOMRectList {
+        let this = jsObject
+        return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    public let jsObject: JSObject
+    @inlinable public func getBoundingClientRect() -> DOMRect {
+        let this = jsObject
+        return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+    @inlinable public func isVisible(options: IsVisibleOptions? = nil) -> Bool {
+        let this = jsObject
+        return this[Strings.isVisible].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @inlinable public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.scrollIntoView].function!(this: this, arguments: [arg?.jsValue ?? .undefined])
+    }
 
-    @inlinable public subscript(key: Int) -> String? {
-        jsObject[key].fromJSValue()
+    @inlinable public func scroll(options: ScrollToOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.scroll].function!(this: this, arguments: [options?.jsValue ?? .undefined])
     }
 
-    @inlinable public func contains(string: String) -> Bool {
+    @inlinable public func scroll(x: Double, y: Double) {
         let this = jsObject
-        return this[Strings.contains].function!(this: this, arguments: [string.jsValue]).fromJSValue()!
+        _ = this[Strings.scroll].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
-}
 
-public class DOMStringMap: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMStringMap].function }
+    @inlinable public func scrollTo(options: ScrollToOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.scrollTo].function!(this: this, arguments: [options?.jsValue ?? .undefined])
+    }
 
-    public let jsObject: JSObject
+    @inlinable public func scrollTo(x: Double, y: Double) {
+        let this = jsObject
+        _ = this[Strings.scrollTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @inlinable public func scrollBy(options: ScrollToOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.scrollBy].function!(this: this, arguments: [options?.jsValue ?? .undefined])
     }
 
-    @inlinable public subscript(key: String) -> String {
-        jsObject[key].fromJSValue()!
+    @inlinable public func scrollBy(x: Double, y: Double) {
+        let this = jsObject
+        _ = this[Strings.scrollBy].function!(this: this, arguments: [x.jsValue, y.jsValue])
     }
 
-    // XXX: unsupported setter for keys of type String
+    @ReadWriteAttribute
+    public var scrollTop: Double
 
-    // XXX: unsupported deleter for keys of type String
-}
+    @ReadWriteAttribute
+    public var scrollLeft: Double
 
-public class DOMTokenList: JSBridgedClass, Sequence {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DOMTokenList].function }
+    @ReadonlyAttribute
+    public var scrollWidth: Int32
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var scrollHeight: Int32
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value)
-        self.jsObject = jsObject
-    }
+    @ReadonlyAttribute
+    public var clientTop: Int32
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var clientLeft: Int32
 
-    @inlinable public subscript(key: Int) -> String? {
-        jsObject[key].fromJSValue()
-    }
+    @ReadonlyAttribute
+    public var clientWidth: Int32
 
-    @inlinable public func contains(token: String) -> Bool {
-        let this = jsObject
-        return this[Strings.contains].function!(this: this, arguments: [token.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var clientHeight: Int32
+}
 
-    @inlinable public func add(tokens: String...) {
-        let this = jsObject
-        _ = this[Strings.add].function!(this: this, arguments: tokens.map(\.jsValue))
+public protocol ElementContentEditable: JSBridgedClass {}
+public extension ElementContentEditable {
+    @inlinable var contentEditable: String {
+        get { jsObject[Strings.contentEditable].fromJSValue()! }
+        nonmutating set { jsObject[Strings.contentEditable] = newValue.jsValue }
     }
 
-    @inlinable public func remove(tokens: String...) {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: tokens.map(\.jsValue))
+    @inlinable var enterKeyHint: String {
+        get { jsObject[Strings.enterKeyHint].fromJSValue()! }
+        nonmutating set { jsObject[Strings.enterKeyHint] = newValue.jsValue }
     }
 
-    @inlinable public func toggle(token: String, force: Bool? = nil) -> Bool {
-        let this = jsObject
-        return this[Strings.toggle].function!(this: this, arguments: [token.jsValue, force?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable var isContentEditable: Bool { jsObject[Strings.isContentEditable].fromJSValue()! }
+
+    @inlinable var inputMode: String {
+        get { jsObject[Strings.inputMode].fromJSValue()! }
+        nonmutating set { jsObject[Strings.inputMode] = newValue.jsValue }
     }
+}
 
-    @inlinable public func replace(token: String, newToken: String) -> Bool {
-        let this = jsObject
-        return this[Strings.replace].function!(this: this, arguments: [token.jsValue, newToken.jsValue]).fromJSValue()!
+public class ElementCreationOptions: BridgedDictionary {
+    public convenience init(is: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.is] = `is`.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func supports(token: String) -> Bool {
-        let this = jsObject
-        return this[Strings.supports].function!(this: this, arguments: [token.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _is = ReadWriteAttribute(jsObject: object, name: Strings.is)
+        super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var value: String
+    public var `is`: String
+}
 
-    public typealias Element = String
-    public func makeIterator() -> ValueIterableIterator<DOMTokenList> {
-        ValueIterableIterator(sequence: self)
+public class ElementDefinitionOptions: BridgedDictionary {
+    public convenience init(extends: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.extends] = extends.jsValue
+        self.init(unsafelyWrapping: object)
     }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _extends = ReadWriteAttribute(jsObject: object, name: Strings.extends)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var extends: String
 }
 
-public class DataTransfer: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransfer].function }
+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) {
-        _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)
+        _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
     }
 
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var dropEffect: String
-
-    @ReadWriteAttribute
-    public var effectAllowed: String
-
     @ReadonlyAttribute
-    public var items: DataTransferItemList
+    public var shadowRoot: ShadowRoot?
 
-    @inlinable public func setDragImage(image: Element, x: Int32, y: Int32) {
+    @inlinable public func setFormValue(value: File_or_FormData_or_String?, state: File_or_FormData_or_String? = nil) {
         let this = jsObject
-        _ = this[Strings.setDragImage].function!(this: this, arguments: [image.jsValue, x.jsValue, y.jsValue])
+        _ = this[Strings.setFormValue].function!(this: this, arguments: [value.jsValue, state?.jsValue ?? .undefined])
     }
 
     @ReadonlyAttribute
-    public var types: [String]
+    public var form: HTMLFormElement?
 
-    @inlinable public func getData(format: String) -> String {
+    @inlinable public func setValidity(flags: ValidityStateFlags? = nil, message: String? = nil, anchor: HTMLElement? = nil) {
         let this = jsObject
-        return this[Strings.getData].function!(this: this, arguments: [format.jsValue]).fromJSValue()!
+        _ = this[Strings.setValidity].function!(this: this, arguments: [flags?.jsValue ?? .undefined, message?.jsValue ?? .undefined, anchor?.jsValue ?? .undefined])
     }
 
-    @inlinable public func setData(format: String, data: String) {
+    @ReadonlyAttribute
+    public var willValidate: Bool
+
+    @ReadonlyAttribute
+    public var validity: ValidityState
+
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.setData].function!(this: this, arguments: [format.jsValue, data.jsValue])
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func clearData(format: String? = nil) {
+    @inlinable public func reportValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.clearData].function!(this: this, arguments: [format?.jsValue ?? .undefined])
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
     @ReadonlyAttribute
-    public var files: FileList
+    public var labels: NodeList
 }
 
-public class DataTransferItem: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransferItem].function }
+public class EncodedAudioChunk: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.EncodedAudioChunk].function }
 
     public let jsObject: JSObject
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _kind = ReadonlyAttribute(jsObject: jsObject, name: Strings.kind)
         _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
     }
 
+    @inlinable public convenience init(init: EncodedAudioChunkInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    }
+
     @ReadonlyAttribute
-    public var kind: String
+    public var type: EncodedAudioChunkType
 
     @ReadonlyAttribute
-    public var type: String
+    public var timestamp: Int64
 
-    // XXX: member 'getAsString' is ignored
+    @ReadonlyAttribute
+    public var duration: UInt64?
 
-    @inlinable public func getAsFile() -> File? {
+    @ReadonlyAttribute
+    public var byteLength: UInt32
+
+    @inlinable public func copyTo(destination: BufferSource) {
         let this = jsObject
-        return this[Strings.getAsFile].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue])
     }
 }
 
-public class DataTransferItemList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.DataTransferItemList].function }
-
-    public let jsObject: JSObject
+public class EncodedAudioChunkInit: BridgedDictionary {
+    public convenience init(type: EncodedAudioChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.timestamp] = timestamp.jsValue
+        object[Strings.duration] = duration.jsValue
+        object[Strings.data] = data.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+    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)
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @ReadWriteAttribute
+    public var type: EncodedAudioChunkType
 
-    @inlinable public subscript(key: Int) -> DataTransferItem {
-        jsObject[key].fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var timestamp: Int64
 
-    @inlinable public func add(data: String, type: String) -> DataTransferItem? {
-        let this = jsObject
-        return this[Strings.add].function!(this: this, arguments: [data.jsValue, type.jsValue]).fromJSValue()!
+    @ReadWriteAttribute
+    public var duration: UInt64
+
+    @ReadWriteAttribute
+    public var data: BufferSource
+}
+
+public class EncodedAudioChunkMetadata: BridgedDictionary {
+    public convenience init(decoderConfig: AudioDecoderConfig) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.decoderConfig] = decoderConfig.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func add(data: File) -> DataTransferItem? {
-        let this = jsObject
-        return this[Strings.add].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func remove(index: UInt32) {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
+    @ReadWriteAttribute
+    public var decoderConfig: AudioDecoderConfig
+}
+
+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)
+        }
+        return nil
     }
 
-    @inlinable public func clear() {
-        let this = jsObject
-        _ = this[Strings.clear].function!(this: this, arguments: [])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class DelayNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DelayNode].function }
+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) {
-        _delayTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.delayTime)
-        super.init(unsafelyWrapping: 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
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: DelayOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public convenience init(init: EncodedVideoChunkInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var delayTime: AudioParam
+    public var type: EncodedVideoChunkType
+
+    @ReadonlyAttribute
+    public var timestamp: Int64
+
+    @ReadonlyAttribute
+    public var duration: UInt64?
+
+    @ReadonlyAttribute
+    public var byteLength: UInt32
+
+    @inlinable public func copyTo(destination: BufferSource) {
+        let this = jsObject
+        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue])
+    }
 }
 
-public class DelayOptions: BridgedDictionary {
-    public convenience init(maxDelayTime: Double, delayTime: Double) {
+public class EncodedVideoChunkInit: BridgedDictionary {
+    public convenience init(type: EncodedVideoChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.maxDelayTime] = maxDelayTime.jsValue
-        object[Strings.delayTime] = delayTime.jsValue
+        object[Strings.type] = type.jsValue
+        object[Strings.timestamp] = timestamp.jsValue
+        object[Strings.duration] = duration.jsValue
+        object[Strings.data] = data.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _maxDelayTime = ReadWriteAttribute(jsObject: object, name: Strings.maxDelayTime)
-        _delayTime = ReadWriteAttribute(jsObject: object, name: Strings.delayTime)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var maxDelayTime: Double
+    public var type: EncodedVideoChunkType
+
+    @ReadWriteAttribute
+    public var timestamp: Int64
+
+    @ReadWriteAttribute
+    public var duration: UInt64
 
     @ReadWriteAttribute
-    public var delayTime: Double
+    public var data: BufferSource
 }
 
-public class DevicePermissionDescriptor: BridgedDictionary {
-    public convenience init(deviceId: String) {
+public class EncodedVideoChunkMetadata: BridgedDictionary {
+    public convenience init(decoderConfig: VideoDecoderConfig, svc: SvcOutputMetadata, alphaSideData: BufferSource) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.deviceId] = deviceId.jsValue
+        object[Strings.decoderConfig] = decoderConfig.jsValue
+        object[Strings.svc] = svc.jsValue
+        object[Strings.alphaSideData] = alphaSideData.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _deviceId = ReadWriteAttribute(jsObject: object, name: Strings.deviceId)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var deviceId: String
+    public var decoderConfig: VideoDecoderConfig
+
+    @ReadWriteAttribute
+    public var svc: SvcOutputMetadata
+
+    @ReadWriteAttribute
+    public var alphaSideData: BufferSource
 }
 
-public enum DistanceModelType: JSString, JSValueCompatible {
-    case linear = "linear"
-    case inverse = "inverse"
-    case exponential = "exponential"
+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 {
@@ -5739,1127 +5051,757 @@ public enum DistanceModelType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class Document: Node, NonElementParentNode, DocumentOrShadowRoot, ParentNode, XPathEvaluatorBase, GlobalEventHandlers, DocumentAndElementEventHandlers, GeometryUtils {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Document].function }
+public enum EndingType: JSString, JSValueCompatible {
+    case transparent = "transparent"
+    case native = "native"
 
-    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)
-        _timeline = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeline)
-        _scrollingElement = ReadonlyAttribute(jsObject: jsObject, name: Strings.scrollingElement)
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @ReadonlyAttribute
-    public var implementation: DOMImplementation
-
-    @ReadonlyAttribute
-    public var URL: String
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @ReadonlyAttribute
-    public var documentURI: String
+public class ErrorEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ErrorEvent].function }
 
-    @ReadonlyAttribute
-    public var compatMode: String
+    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)
+    }
 
-    @ReadonlyAttribute
-    public var characterSet: String
+    @inlinable public convenience init(type: String, eventInitDict: ErrorEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var charset: String
+    public var message: String
 
     @ReadonlyAttribute
-    public var inputEncoding: String
+    public var filename: String
 
     @ReadonlyAttribute
-    public var contentType: String
+    public var lineno: UInt32
 
     @ReadonlyAttribute
-    public var doctype: DocumentType?
+    public var colno: UInt32
 
     @ReadonlyAttribute
-    public var documentElement: Element?
+    public var error: JSValue
+}
 
-    @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByTagName].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+public class ErrorEventInit: BridgedDictionary {
+    public convenience init(message: String, filename: String, lineno: UInt32, colno: UInt32, error: JSValue) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.message] = message.jsValue
+        object[Strings.filename] = filename.jsValue
+        object[Strings.lineno] = lineno.jsValue
+        object[Strings.colno] = colno.jsValue
+        object[Strings.error] = error.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByClassName].function!(this: this, arguments: [classNames.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createElement(localName: String, options: ElementCreationOptions_or_String? = nil) -> Element {
-        let this = jsObject
-        return this[Strings.createElement].function!(this: this, arguments: [localName.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func createElementNS(namespace: String?, qualifiedName: String, options: ElementCreationOptions_or_String? = nil) -> Element {
-        let this = jsObject
-        return this[Strings.createElementNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func createDocumentFragment() -> DocumentFragment {
-        let this = jsObject
-        return this[Strings.createDocumentFragment].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func createTextNode(data: String) -> Text {
-        let this = jsObject
-        return this[Strings.createTextNode].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createCDATASection(data: String) -> CDATASection {
-        let this = jsObject
-        return this[Strings.createCDATASection].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createComment(data: String) -> Comment {
-        let this = jsObject
-        return this[Strings.createComment].function!(this: this, arguments: [data.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createProcessingInstruction(target: String, data: String) -> ProcessingInstruction {
-        let this = jsObject
-        return this[Strings.createProcessingInstruction].function!(this: this, arguments: [target.jsValue, data.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func importNode(node: Node, deep: Bool? = nil) -> Node {
-        let this = jsObject
-        return this[Strings.importNode].function!(this: this, arguments: [node.jsValue, deep?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func adoptNode(node: Node) -> Node {
-        let this = jsObject
-        return this[Strings.adoptNode].function!(this: this, arguments: [node.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createAttribute(localName: String) -> Attr {
-        let this = jsObject
-        return this[Strings.createAttribute].function!(this: this, arguments: [localName.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createAttributeNS(namespace: String?, qualifiedName: String) -> Attr {
-        let this = jsObject
-        return this[Strings.createAttributeNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createEvent(interface: String) -> Event {
-        let this = jsObject
-        return this[Strings.createEvent].function!(this: this, arguments: [interface.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createRange() -> Range {
-        let this = jsObject
-        return this[Strings.createRange].function!(this: this, arguments: []).fromJSValue()!
+    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)
     }
 
-    // XXX: member 'createNodeIterator' is ignored
-
-    // XXX: member 'createTreeWalker' is ignored
-
-    @ReadonlyAttribute
-    public var location: Location?
-
     @ReadWriteAttribute
-    public var domain: String
-
-    @ReadonlyAttribute
-    public var referrer: String
+    public var message: String
 
     @ReadWriteAttribute
-    public var cookie: String
-
-    @ReadonlyAttribute
-    public var lastModified: String
-
-    @ReadonlyAttribute
-    public var readyState: DocumentReadyState
-
-    @inlinable public subscript(key: String) -> JSObject {
-        jsObject[key].fromJSValue()!
-    }
+    public var filename: String
 
     @ReadWriteAttribute
-    public var title: String
+    public var lineno: UInt32
 
     @ReadWriteAttribute
-    public var dir: String
+    public var colno: UInt32
 
     @ReadWriteAttribute
-    public var body: HTMLElement?
+    public var error: JSValue
+}
 
-    @ReadonlyAttribute
-    public var head: HTMLHeadElement?
+open class Event: JSBridgedClass {
+    @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.Event].function }
 
-    @ReadonlyAttribute
-    public var images: HTMLCollection
+    public let jsObject: JSObject
 
-    @ReadonlyAttribute
-    public var embeds: HTMLCollection
+    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
+    }
 
-    @ReadonlyAttribute
-    public var plugins: HTMLCollection
+    @inlinable public convenience init(type: String, eventInitDict: EventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var links: HTMLCollection
+    public var type: String
 
     @ReadonlyAttribute
-    public var forms: HTMLCollection
+    public var target: EventTarget?
 
     @ReadonlyAttribute
-    public var scripts: HTMLCollection
-
-    @inlinable public func getElementsByName(elementName: String) -> NodeList {
-        let this = jsObject
-        return this[Strings.getElementsByName].function!(this: this, arguments: [elementName.jsValue]).fromJSValue()!
-    }
+    public var srcElement: EventTarget?
 
     @ReadonlyAttribute
-    public var currentScript: HTMLOrSVGScriptElement?
+    public var currentTarget: EventTarget?
 
-    @inlinable public func open(unused1: String? = nil, unused2: String? = nil) -> Self {
+    @inlinable public func composedPath() -> [EventTarget] {
         let this = jsObject
-        return this[Strings.open].function!(this: this, arguments: [unused1?.jsValue ?? .undefined, unused2?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.composedPath].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func open(url: String, name: String, features: String) -> WindowProxy? {
-        let this = jsObject
-        return this[Strings.open].function!(this: this, arguments: [url.jsValue, name.jsValue, features.jsValue]).fromJSValue()!
-    }
+    public static let NONE: UInt16 = 0
 
-    @inlinable public func close() {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
-    }
+    public static let CAPTURING_PHASE: UInt16 = 1
 
-    @inlinable public func write(text: String...) {
-        let this = jsObject
-        _ = this[Strings.write].function!(this: this, arguments: text.map(\.jsValue))
-    }
+    public static let AT_TARGET: UInt16 = 2
 
-    @inlinable public func writeln(text: String...) {
-        let this = jsObject
-        _ = this[Strings.writeln].function!(this: this, arguments: text.map(\.jsValue))
-    }
+    public static let BUBBLING_PHASE: UInt16 = 3
 
     @ReadonlyAttribute
-    public var defaultView: WindowProxy?
+    public var eventPhase: UInt16
 
-    @inlinable public func hasFocus() -> Bool {
+    @inlinable public func stopPropagation() {
         let this = jsObject
-        return this[Strings.hasFocus].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.stopPropagation].function!(this: this, arguments: [])
     }
 
     @ReadWriteAttribute
-    public var designMode: String
+    public var cancelBubble: Bool
 
-    @inlinable public func execCommand(commandId: String, showUI: Bool? = nil, value: String? = nil) -> Bool {
+    @inlinable public func stopImmediatePropagation() {
         let this = jsObject
-        return this[Strings.execCommand].function!(this: this, arguments: [commandId.jsValue, showUI?.jsValue ?? .undefined, value?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.stopImmediatePropagation].function!(this: this, arguments: [])
     }
 
-    @inlinable public func queryCommandEnabled(commandId: String) -> Bool {
-        let this = jsObject
-        return this[Strings.queryCommandEnabled].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var bubbles: Bool
 
-    @inlinable public func queryCommandIndeterm(commandId: String) -> Bool {
-        let this = jsObject
-        return this[Strings.queryCommandIndeterm].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var cancelable: Bool
 
-    @inlinable public func queryCommandState(commandId: String) -> Bool {
-        let this = jsObject
-        return this[Strings.queryCommandState].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var returnValue: Bool
 
-    @inlinable public func queryCommandSupported(commandId: String) -> Bool {
+    @inlinable public func preventDefault() {
         let this = jsObject
-        return this[Strings.queryCommandSupported].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
+        _ = this[Strings.preventDefault].function!(this: this, arguments: [])
     }
 
-    @inlinable public func queryCommandValue(commandId: String) -> String {
-        let this = jsObject
-        return this[Strings.queryCommandValue].function!(this: this, arguments: [commandId.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var defaultPrevented: Bool
 
     @ReadonlyAttribute
-    public var hidden: Bool
+    public var composed: Bool
 
     @ReadonlyAttribute
-    public var visibilityState: DocumentVisibilityState
+    public var isTrusted: Bool
 
-    @ClosureAttribute1Optional
-    public var onreadystatechange: EventHandler
+    @ReadonlyAttribute
+    public var timeStamp: DOMHighResTimeStamp
 
-    @ClosureAttribute1Optional
-    public var onvisibilitychange: EventHandler
+    @inlinable public func initEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil) {
+        let this = jsObject
+        _ = this[Strings.initEvent].function!(this: this, arguments: [type.jsValue, bubbles?.jsValue ?? .undefined, cancelable?.jsValue ?? .undefined])
+    }
+}
 
-    @ReadWriteAttribute
-    public var fgColor: String
+public class EventInit: BridgedDictionary {
+    public convenience init(bubbles: Bool, cancelable: Bool, composed: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.bubbles] = bubbles.jsValue
+        object[Strings.cancelable] = cancelable.jsValue
+        object[Strings.composed] = composed.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @ReadWriteAttribute
-    public var linkColor: String
+    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)
+    }
 
     @ReadWriteAttribute
-    public var vlinkColor: String
+    public var bubbles: Bool
 
     @ReadWriteAttribute
-    public var alinkColor: String
+    public var cancelable: Bool
 
     @ReadWriteAttribute
-    public var bgColor: String
-
-    @ReadonlyAttribute
-    public var anchors: HTMLCollection
+    public var composed: Bool
+}
 
-    @ReadonlyAttribute
-    public var applets: HTMLCollection
-
-    @inlinable public func clear() {
-        let this = jsObject
-        _ = this[Strings.clear].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func captureEvents() {
-        let this = jsObject
-        _ = this[Strings.captureEvents].function!(this: this, arguments: [])
+public class EventListenerOptions: BridgedDictionary {
+    public convenience init(capture: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.capture] = capture.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func releaseEvents() {
-        let this = jsObject
-        _ = this[Strings.releaseEvents].function!(this: this, arguments: [])
+    public required init(unsafelyWrapping object: JSObject) {
+        _capture = ReadWriteAttribute(jsObject: object, name: Strings.capture)
+        super.init(unsafelyWrapping: object)
     }
 
-    @ReadonlyAttribute
-    public var all: HTMLAllCollection
-
-    @ReadonlyAttribute
-    public var timeline: DocumentTimeline
+    @ReadWriteAttribute
+    public var capture: Bool
+}
 
-    @inlinable public func elementFromPoint(x: Double, y: Double) -> Element? {
-        let this = jsObject
-        return this[Strings.elementFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.ctrlKey] = ctrlKey.jsValue
+        object[Strings.shiftKey] = shiftKey.jsValue
+        object[Strings.altKey] = altKey.jsValue
+        object[Strings.metaKey] = metaKey.jsValue
+        object[Strings.modifierAltGraph] = modifierAltGraph.jsValue
+        object[Strings.modifierCapsLock] = modifierCapsLock.jsValue
+        object[Strings.modifierFn] = modifierFn.jsValue
+        object[Strings.modifierFnLock] = modifierFnLock.jsValue
+        object[Strings.modifierHyper] = modifierHyper.jsValue
+        object[Strings.modifierNumLock] = modifierNumLock.jsValue
+        object[Strings.modifierScrollLock] = modifierScrollLock.jsValue
+        object[Strings.modifierSuper] = modifierSuper.jsValue
+        object[Strings.modifierSymbol] = modifierSymbol.jsValue
+        object[Strings.modifierSymbolLock] = modifierSymbolLock.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func elementsFromPoint(x: Double, y: Double) -> [Element] {
-        let this = jsObject
-        return this[Strings.elementsFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
+    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)
     }
 
-    @inlinable public func caretPositionFromPoint(x: Double, y: Double) -> CaretPosition? {
-        let this = jsObject
-        return this[Strings.caretPositionFromPoint].function!(this: this, arguments: [x.jsValue, y.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var ctrlKey: Bool
 
-    @ReadonlyAttribute
-    public var scrollingElement: Element?
-}
+    @ReadWriteAttribute
+    public var shiftKey: Bool
 
-public protocol DocumentAndElementEventHandlers: JSBridgedClass {}
-public extension DocumentAndElementEventHandlers {
-    @inlinable var oncopy: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncopy, in: jsObject] = newValue }
-    }
+    @ReadWriteAttribute
+    public var altKey: Bool
 
-    @inlinable var oncut: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncut, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncut, in: jsObject] = newValue }
-    }
+    @ReadWriteAttribute
+    public var metaKey: Bool
 
-    @inlinable var onpaste: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onpaste, in: jsObject] = newValue }
-    }
-}
+    @ReadWriteAttribute
+    public var modifierAltGraph: Bool
 
-public class DocumentFragment: Node, NonElementParentNode, ParentNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentFragment].function }
+    @ReadWriteAttribute
+    public var modifierCapsLock: Bool
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadWriteAttribute
+    public var modifierFn: Bool
 
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-}
+    @ReadWriteAttribute
+    public var modifierFnLock: Bool
 
-public protocol DocumentOrShadowRoot: JSBridgedClass {}
-public extension DocumentOrShadowRoot {
-    @inlinable var activeElement: Element? { jsObject[Strings.activeElement].fromJSValue()! }
+    @ReadWriteAttribute
+    public var modifierHyper: Bool
 
-    @inlinable func getAnimations() -> [Animation] {
-        let this = jsObject
-        return this[Strings.getAnimations].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
+    @ReadWriteAttribute
+    public var modifierNumLock: Bool
 
-public enum DocumentReadyState: JSString, JSValueCompatible {
-    case loading = "loading"
-    case interactive = "interactive"
-    case complete = "complete"
+    @ReadWriteAttribute
+    public var modifierScrollLock: Bool
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var modifierSuper: Bool
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var modifierSymbol: Bool
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var modifierSymbolLock: Bool
 }
 
-public class DocumentTimeline: AnimationTimeline {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentTimeline].function }
+public class EventSource: EventTarget {
+    @inlinable override public 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)
     }
 
-    @inlinable public convenience init(options: DocumentTimelineOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [options?.jsValue ?? .undefined]))
-    }
-}
-
-public class DocumentTimelineOptions: BridgedDictionary {
-    public convenience init(originTime: DOMHighResTimeStamp) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.originTime] = originTime.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public convenience init(url: String, eventSourceInitDict: EventSourceInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, eventSourceInitDict?.jsValue ?? .undefined]))
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _originTime = ReadWriteAttribute(jsObject: object, name: Strings.originTime)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var url: String
 
-    @ReadWriteAttribute
-    public var originTime: DOMHighResTimeStamp
-}
+    @ReadonlyAttribute
+    public var withCredentials: Bool
 
-public class DocumentType: Node, ChildNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DocumentType].function }
+    public static let CONNECTING: UInt16 = 0
 
-    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 static let OPEN: UInt16 = 1
 
-    @ReadonlyAttribute
-    public var name: String
+    public static let CLOSED: UInt16 = 2
 
     @ReadonlyAttribute
-    public var publicId: String
+    public var readyState: UInt16
 
-    @ReadonlyAttribute
-    public var systemId: String
-}
+    @ClosureAttribute1Optional
+    public var onopen: EventHandler
 
-public enum DocumentVisibilityState: JSString, JSValueCompatible {
-    case visible = "visible"
-    case hidden = "hidden"
+    @ClosureAttribute1Optional
+    public var onmessage: EventHandler
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ClosureAttribute1Optional
+    public var onerror: EventHandler
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class DoubleRange: BridgedDictionary {
-    public convenience init(max: Double, min: Double) {
+public class EventSourceInit: BridgedDictionary {
+    public convenience init(withCredentials: Bool) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.max] = max.jsValue
-        object[Strings.min] = min.jsValue
+        object[Strings.withCredentials] = withCredentials.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _max = ReadWriteAttribute(jsObject: object, name: Strings.max)
-        _min = ReadWriteAttribute(jsObject: object, name: Strings.min)
+        _withCredentials = ReadWriteAttribute(jsObject: object, name: Strings.withCredentials)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var max: Double
-
-    @ReadWriteAttribute
-    public var min: Double
+    public var withCredentials: Bool
 }
 
-public class DragEvent: MouseEvent {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DragEvent].function }
+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) {
-        _dataTransfer = ReadonlyAttribute(jsObject: jsObject, name: Strings.dataTransfer)
-        super.init(unsafelyWrapping: jsObject)
+        self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: DragEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var dataTransfer: DataTransfer?
+    // XXX: member 'addEventListener' is ignored
+
+    // XXX: member 'removeEventListener' is ignored
+
+    @inlinable public func dispatchEvent(event: Event) -> Bool {
+        let this = jsObject
+        return this[Strings.dispatchEvent].function!(this: this, arguments: [event.jsValue]).fromJSValue()!
+    }
 }
 
-public class DragEventInit: BridgedDictionary {
-    public convenience init(dataTransfer: DataTransfer?) {
+public class ExtendableEventInit: BridgedDictionary {
+    public convenience init() {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.dataTransfer] = dataTransfer.jsValue
+
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _dataTransfer = ReadWriteAttribute(jsObject: object, name: Strings.dataTransfer)
         super.init(unsafelyWrapping: object)
     }
+}
 
-    @ReadWriteAttribute
-    public var dataTransfer: DataTransfer?
-}
+public class External: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.External].function }
 
-public class DynamicsCompressorNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.DynamicsCompressorNode].function }
+    public let jsObject: JSObject
 
     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 convenience init(context: BaseAudioContext, options: DynamicsCompressorOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+        self.jsObject = jsObject
     }
 
-    @ReadonlyAttribute
-    public var threshold: AudioParam
-
-    @ReadonlyAttribute
-    public var knee: AudioParam
-
-    @ReadonlyAttribute
-    public var ratio: AudioParam
-
-    @ReadonlyAttribute
-    public var reduction: Float
-
-    @ReadonlyAttribute
-    public var attack: AudioParam
-
-    @ReadonlyAttribute
-    public var release: AudioParam
-}
-
-public class DynamicsCompressorOptions: BridgedDictionary {
-    public convenience init(attack: Float, knee: Float, ratio: Float, release: Float, threshold: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.attack] = attack.jsValue
-        object[Strings.knee] = knee.jsValue
-        object[Strings.ratio] = ratio.jsValue
-        object[Strings.release] = release.jsValue
-        object[Strings.threshold] = threshold.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func AddSearchProvider() {
+        let this = jsObject
+        _ = this[Strings.AddSearchProvider].function!(this: this, arguments: [])
     }
 
-    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)
+    @inlinable public func IsSearchProviderInstalled() {
+        let this = jsObject
+        _ = this[Strings.IsSearchProviderInstalled].function!(this: this, arguments: [])
     }
-
-    @ReadWriteAttribute
-    public var attack: Float
-
-    @ReadWriteAttribute
-    public var knee: Float
-
-    @ReadWriteAttribute
-    public var ratio: Float
-
-    @ReadWriteAttribute
-    public var release: Float
-
-    @ReadWriteAttribute
-    public var threshold: Float
 }
 
-public class EffectTiming: BridgedDictionary {
-    public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, direction: PlaybackDirection, easing: String) {
+public class FetchEventInit: BridgedDictionary {
+    public convenience init(request: Request, preloadResponse: JSPromise, clientId: String, resultingClientId: String, replacesClientId: String, handled: JSPromise) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.delay] = delay.jsValue
-        object[Strings.endDelay] = endDelay.jsValue
-        object[Strings.fill] = fill.jsValue
-        object[Strings.iterationStart] = iterationStart.jsValue
-        object[Strings.iterations] = iterations.jsValue
-        object[Strings.direction] = direction.jsValue
-        object[Strings.easing] = easing.jsValue
+        object[Strings.request] = request.jsValue
+        object[Strings.preloadResponse] = preloadResponse.jsValue
+        object[Strings.clientId] = clientId.jsValue
+        object[Strings.resultingClientId] = resultingClientId.jsValue
+        object[Strings.replacesClientId] = replacesClientId.jsValue
+        object[Strings.handled] = handled.jsValue
         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)
-        _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction)
-        _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var delay: Double
-
-    @ReadWriteAttribute
-    public var endDelay: Double
+    public var request: Request
 
     @ReadWriteAttribute
-    public var fill: FillMode
+    public var preloadResponse: JSPromise
 
     @ReadWriteAttribute
-    public var iterationStart: Double
+    public var clientId: String
 
     @ReadWriteAttribute
-    public var iterations: Double
+    public var resultingClientId: String
 
     @ReadWriteAttribute
-    public var direction: PlaybackDirection
+    public var replacesClientId: String
 
     @ReadWriteAttribute
-    public var easing: String
+    public var handled: JSPromise
 }
 
-public class Element: Node, ParentNode, NonDocumentTypeChildNode, ChildNode, Slottable, ARIAMixin, Animatable, GeometryUtils {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Element].function }
+public class File: Blob {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.File].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)
+        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
+        _lastModified = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastModified)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadonlyAttribute
-    public var namespaceURI: String?
-
-    @ReadonlyAttribute
-    public var prefix: String?
+    @inlinable public convenience init(fileBits: [BlobPart], fileName: String, options: FilePropertyBag? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [fileBits.jsValue, fileName.jsValue, options?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var localName: String
+    public var name: String
 
     @ReadonlyAttribute
-    public var tagName: String
-
-    @ReadWriteAttribute
-    public var id: String
+    public var lastModified: Int64
+}
 
-    @ReadWriteAttribute
-    public var className: String
+public class FileList: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.FileList].function }
 
-    @ReadonlyAttribute
-    public var classList: DOMTokenList
+    public let jsObject: JSObject
 
-    @ReadWriteAttribute
-    public var slot: String
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    @inlinable public func hasAttributes() -> Bool {
-        let this = jsObject
-        return this[Strings.hasAttributes].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable public subscript(key: Int) -> File? {
+        jsObject[key].fromJSValue()
     }
 
     @ReadonlyAttribute
-    public var attributes: NamedNodeMap
+    public var length: UInt32
+}
 
-    @inlinable public func getAttributeNames() -> [String] {
-        let this = jsObject
-        return this[Strings.getAttributeNames].function!(this: this, arguments: []).fromJSValue()!
+public class FilePropertyBag: BridgedDictionary {
+    public convenience init(lastModified: Int64) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.lastModified] = lastModified.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func getAttribute(qualifiedName: String) -> String? {
-        let this = jsObject
-        return this[Strings.getAttribute].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _lastModified = ReadWriteAttribute(jsObject: object, name: Strings.lastModified)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func getAttributeNS(namespace: String?, localName: String) -> String? {
-        let this = jsObject
-        return this[Strings.getAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var lastModified: Int64
+}
 
-    @inlinable public func setAttribute(qualifiedName: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.setAttribute].function!(this: this, arguments: [qualifiedName.jsValue, value.jsValue])
-    }
+public class FileReader: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FileReader].function }
 
-    @inlinable public func setAttributeNS(namespace: String?, qualifiedName: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.setAttributeNS].function!(this: this, arguments: [namespace.jsValue, qualifiedName.jsValue, value.jsValue])
+    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)
     }
 
-    @inlinable public func removeAttribute(qualifiedName: String) {
-        let this = jsObject
-        _ = this[Strings.removeAttribute].function!(this: this, arguments: [qualifiedName.jsValue])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func removeAttributeNS(namespace: String?, localName: String) {
+    @inlinable public func readAsArrayBuffer(blob: Blob) {
         let this = jsObject
-        _ = this[Strings.removeAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue])
+        _ = this[Strings.readAsArrayBuffer].function!(this: this, arguments: [blob.jsValue])
     }
 
-    @inlinable public func toggleAttribute(qualifiedName: String, force: Bool? = nil) -> Bool {
+    @inlinable public func readAsBinaryString(blob: Blob) {
         let this = jsObject
-        return this[Strings.toggleAttribute].function!(this: this, arguments: [qualifiedName.jsValue, force?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.readAsBinaryString].function!(this: this, arguments: [blob.jsValue])
     }
 
-    @inlinable public func hasAttribute(qualifiedName: String) -> Bool {
+    @inlinable public func readAsText(blob: Blob, encoding: String? = nil) {
         let this = jsObject
-        return this[Strings.hasAttribute].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+        _ = this[Strings.readAsText].function!(this: this, arguments: [blob.jsValue, encoding?.jsValue ?? .undefined])
     }
 
-    @inlinable public func hasAttributeNS(namespace: String?, localName: String) -> Bool {
+    @inlinable public func readAsDataURL(blob: Blob) {
         let this = jsObject
-        return this[Strings.hasAttributeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+        _ = this[Strings.readAsDataURL].function!(this: this, arguments: [blob.jsValue])
     }
 
-    @inlinable public func getAttributeNode(qualifiedName: String) -> Attr? {
+    @inlinable public func abort() {
         let this = jsObject
-        return this[Strings.getAttributeNode].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+        _ = this[Strings.abort].function!(this: this, arguments: [])
     }
 
-    @inlinable public func getAttributeNodeNS(namespace: String?, localName: String) -> Attr? {
-        let this = jsObject
-        return this[Strings.getAttributeNodeNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
+    public static let EMPTY: UInt16 = 0
 
-    @inlinable public func setAttributeNode(attr: Attr) -> Attr? {
-        let this = jsObject
-        return this[Strings.setAttributeNode].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
-    }
+    public static let LOADING: UInt16 = 1
 
-    @inlinable public func setAttributeNodeNS(attr: Attr) -> Attr? {
-        let this = jsObject
-        return this[Strings.setAttributeNodeNS].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
-    }
+    public static let DONE: UInt16 = 2
 
-    @inlinable public func removeAttributeNode(attr: Attr) -> Attr {
-        let this = jsObject
-        return this[Strings.removeAttributeNode].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var readyState: UInt16
 
-    @inlinable public func attachShadow(init: ShadowRootInit) -> ShadowRoot {
-        let this = jsObject
-        return this[Strings.attachShadow].function!(this: this, arguments: [`init`.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var result: ArrayBuffer_or_String?
 
     @ReadonlyAttribute
-    public var shadowRoot: ShadowRoot?
+    public var error: DOMException?
 
-    @inlinable public func closest(selectors: String) -> Element? {
-        let this = jsObject
-        return this[Strings.closest].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onloadstart: EventHandler
 
-    @inlinable public func matches(selectors: String) -> Bool {
-        let this = jsObject
-        return this[Strings.matches].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onprogress: EventHandler
 
-    @inlinable public func webkitMatchesSelector(selectors: String) -> Bool {
-        let this = jsObject
-        return this[Strings.webkitMatchesSelector].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onload: EventHandler
 
-    @inlinable public func getElementsByTagName(qualifiedName: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByTagName].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onabort: EventHandler
 
-    @inlinable public func getElementsByTagNameNS(namespace: String?, localName: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByTagNameNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onerror: EventHandler
 
-    @inlinable public func getElementsByClassName(classNames: String) -> HTMLCollection {
-        let this = jsObject
-        return this[Strings.getElementsByClassName].function!(this: this, arguments: [classNames.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onloadend: EventHandler
+}
 
-    @inlinable public func insertAdjacentElement(where: String, element: Element) -> Element? {
-        let this = jsObject
-        return this[Strings.insertAdjacentElement].function!(this: this, arguments: [`where`.jsValue, element.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func insertAdjacentText(where: String, data: String) {
-        let this = jsObject
-        _ = this[Strings.insertAdjacentText].function!(this: this, arguments: [`where`.jsValue, data.jsValue])
-    }
-
-    @inlinable public func pseudo(type: String) -> CSSPseudoElement? {
-        let this = jsObject
-        return this[Strings.pseudo].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func getClientRects() -> DOMRectList {
-        let this = jsObject
-        return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getBoundingClientRect() -> DOMRect {
-        let this = jsObject
-        return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func isVisible(options: IsVisibleOptions? = nil) -> Bool {
-        let this = jsObject
-        return this[Strings.isVisible].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func scrollIntoView(arg: Bool_or_ScrollIntoViewOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.scrollIntoView].function!(this: this, arguments: [arg?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func scroll(options: ScrollToOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.scroll].function!(this: this, arguments: [options?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func scroll(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.scroll].function!(this: this, arguments: [x.jsValue, y.jsValue])
-    }
-
-    @inlinable public func scrollTo(options: ScrollToOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.scrollTo].function!(this: this, arguments: [options?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func scrollTo(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.scrollTo].function!(this: this, arguments: [x.jsValue, y.jsValue])
-    }
+public class FocusEvent: UIEvent {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FocusEvent].function }
 
-    @inlinable public func scrollBy(options: ScrollToOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.scrollBy].function!(this: this, arguments: [options?.jsValue ?? .undefined])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public func scrollBy(x: Double, y: Double) {
-        let this = jsObject
-        _ = this[Strings.scrollBy].function!(this: this, arguments: [x.jsValue, y.jsValue])
+    @inlinable public convenience init(type: String, eventInitDict: FocusEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
-    @ReadWriteAttribute
-    public var scrollTop: Double
-
-    @ReadWriteAttribute
-    public var scrollLeft: Double
-
-    @ReadonlyAttribute
-    public var scrollWidth: Int32
-
-    @ReadonlyAttribute
-    public var scrollHeight: Int32
-
-    @ReadonlyAttribute
-    public var clientTop: Int32
-
-    @ReadonlyAttribute
-    public var clientLeft: Int32
-
-    @ReadonlyAttribute
-    public var clientWidth: Int32
-
     @ReadonlyAttribute
-    public var clientHeight: Int32
-}
-
-public protocol ElementContentEditable: JSBridgedClass {}
-public extension ElementContentEditable {
-    @inlinable var contentEditable: String {
-        get { jsObject[Strings.contentEditable].fromJSValue()! }
-        nonmutating set { jsObject[Strings.contentEditable] = newValue.jsValue }
-    }
-
-    @inlinable var enterKeyHint: String {
-        get { jsObject[Strings.enterKeyHint].fromJSValue()! }
-        nonmutating set { jsObject[Strings.enterKeyHint] = newValue.jsValue }
-    }
-
-    @inlinable var isContentEditable: Bool { jsObject[Strings.isContentEditable].fromJSValue()! }
-
-    @inlinable var inputMode: String {
-        get { jsObject[Strings.inputMode].fromJSValue()! }
-        nonmutating set { jsObject[Strings.inputMode] = newValue.jsValue }
-    }
+    public var relatedTarget: EventTarget?
 }
 
-public class ElementCreationOptions: BridgedDictionary {
-    public convenience init(is: String) {
+public class FocusEventInit: BridgedDictionary {
+    public convenience init(relatedTarget: EventTarget?) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.is] = `is`.jsValue
+        object[Strings.relatedTarget] = relatedTarget.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _is = ReadWriteAttribute(jsObject: object, name: Strings.is)
+        _relatedTarget = ReadWriteAttribute(jsObject: object, name: Strings.relatedTarget)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var `is`: String
+    public var relatedTarget: EventTarget?
 }
 
-public class ElementDefinitionOptions: BridgedDictionary {
-    public convenience init(extends: String) {
+public class FocusOptions: BridgedDictionary {
+    public convenience init(preventScroll: Bool) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.extends] = extends.jsValue
+        object[Strings.preventScroll] = preventScroll.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _extends = ReadWriteAttribute(jsObject: object, name: Strings.extends)
+        _preventScroll = ReadWriteAttribute(jsObject: object, name: Strings.preventScroll)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var extends: String
+    public var preventScroll: Bool
 }
 
-public class ElementInternals: JSBridgedClass, ARIAMixin {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ElementInternals].function }
+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) {
-        _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
     }
 
-    @ReadonlyAttribute
-    public var shadowRoot: ShadowRoot?
+    @inlinable public convenience init(form: HTMLFormElement? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [form?.jsValue ?? .undefined]))
+    }
 
-    @inlinable public func setFormValue(value: File_or_FormData_or_String?, state: File_or_FormData_or_String? = nil) {
+    @inlinable public func append(name: String, value: String) {
         let this = jsObject
-        _ = this[Strings.setFormValue].function!(this: this, arguments: [value.jsValue, state?.jsValue ?? .undefined])
+        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
     }
 
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
+    @inlinable public func append(name: String, blobValue: Blob, filename: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, blobValue.jsValue, filename?.jsValue ?? .undefined])
+    }
 
-    @inlinable public func setValidity(flags: ValidityStateFlags? = nil, message: String? = nil, anchor: HTMLElement? = nil) {
+    @inlinable public func delete(name: String) {
         let this = jsObject
-        _ = this[Strings.setValidity].function!(this: this, arguments: [flags?.jsValue ?? .undefined, message?.jsValue ?? .undefined, anchor?.jsValue ?? .undefined])
+        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
     }
 
-    @ReadonlyAttribute
-    public var willValidate: Bool
+    @inlinable public func get(name: String) -> FormDataEntryValue? {
+        let this = jsObject
+        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var validity: ValidityState
+    @inlinable public func getAll(name: String) -> [FormDataEntryValue] {
+        let this = jsObject
+        return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var validationMessage: String
+    @inlinable public func has(name: String) -> Bool {
+        let this = jsObject
+        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
 
-    @inlinable public func checkValidity() -> Bool {
+    @inlinable public func set(name: String, value: String) {
         let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
     }
 
-    @inlinable public func reportValidity() -> Bool {
+    @inlinable public func set(name: String, blobValue: Blob, filename: String? = nil) {
         let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, blobValue.jsValue, filename?.jsValue ?? .undefined])
     }
 
-    @ReadonlyAttribute
-    public var labels: NodeList
+    public typealias Element = String
+    public func makeIterator() -> ValueIterableIterator<FormData> {
+        ValueIterableIterator(sequence: self)
+    }
 }
 
-public class EncodedAudioChunk: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.EncodedAudioChunk].function }
-
-    public let jsObject: JSObject
+public class FormDataEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FormDataEvent].function }
 
     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
+        _formData = ReadonlyAttribute(jsObject: jsObject, name: Strings.formData)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(init: EncodedAudioChunkInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    @inlinable public convenience init(type: String, eventInitDict: FormDataEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var type: EncodedAudioChunkType
-
-    @ReadonlyAttribute
-    public var timestamp: Int64
-
-    @ReadonlyAttribute
-    public var duration: UInt64?
-
-    @ReadonlyAttribute
-    public var byteLength: UInt32
-
-    @inlinable public func copyTo(destination: BufferSource) {
-        let this = jsObject
-        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue])
-    }
+    public var formData: FormData
 }
 
-public class EncodedAudioChunkInit: BridgedDictionary {
-    public convenience init(type: EncodedAudioChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) {
+public class FormDataEventInit: BridgedDictionary {
+    public convenience init(formData: FormData) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.timestamp] = timestamp.jsValue
-        object[Strings.duration] = duration.jsValue
-        object[Strings.data] = data.jsValue
+        object[Strings.formData] = formData.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     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)
+        _formData = ReadWriteAttribute(jsObject: object, name: Strings.formData)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var type: EncodedAudioChunkType
+    public var formData: FormData
+}
 
-    @ReadWriteAttribute
-    public var timestamp: Int64
+public enum FrameType: JSString, JSValueCompatible {
+    case auxiliary = "auxiliary"
+    case topLevel = "top-level"
+    case nested = "nested"
+    case none = "none"
 
-    @ReadWriteAttribute
-    public var duration: UInt64
-
-    @ReadWriteAttribute
-    public var data: BufferSource
-}
-
-public class EncodedAudioChunkMetadata: BridgedDictionary {
-    public convenience init(decoderConfig: AudioDecoderConfig) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.decoderConfig] = decoderConfig.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _decoderConfig = ReadWriteAttribute(jsObject: object, name: Strings.decoderConfig)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var decoderConfig: AudioDecoderConfig
-}
-
-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)
-        }
-        return nil
-    }
+    @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))
@@ -6868,605 +5810,745 @@ public enum EncodedAudioChunkType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class EncodedVideoChunk: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.EncodedVideoChunk].function }
+public protocol GenericTransformStream: JSBridgedClass {}
+public extension GenericTransformStream {
+    @inlinable var readable: ReadableStream { jsObject[Strings.readable].fromJSValue()! }
 
-    public let jsObject: JSObject
+    @inlinable var writable: WritableStream { jsObject[Strings.writable].fromJSValue()! }
+}
 
-    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 protocol GeometryUtils: JSBridgedClass {}
+public extension GeometryUtils {
+    @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] {
+        let this = jsObject
+        return this[Strings.getBoxQuads].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public convenience init(init: EncodedVideoChunkInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad {
+        let this = jsObject
+        return this[Strings.convertQuadFromNode].function!(this: this, arguments: [quad.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var type: EncodedVideoChunkType
-
-    @ReadonlyAttribute
-    public var timestamp: Int64
-
-    @ReadonlyAttribute
-    public var duration: UInt64?
-
-    @ReadonlyAttribute
-    public var byteLength: UInt32
+    @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad {
+        let this = jsObject
+        return this[Strings.convertRectFromNode].function!(this: this, arguments: [rect.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable public func copyTo(destination: BufferSource) {
+    @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint {
         let this = jsObject
-        _ = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue])
+        return this[Strings.convertPointFromNode].function!(this: this, arguments: [point.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 }
 
-public class EncodedVideoChunkInit: BridgedDictionary {
-    public convenience init(type: EncodedVideoChunkType, timestamp: Int64, duration: UInt64, data: BufferSource) {
+public class GetRootNodeOptions: BridgedDictionary {
+    public convenience init(composed: Bool) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.timestamp] = timestamp.jsValue
-        object[Strings.duration] = duration.jsValue
-        object[Strings.data] = data.jsValue
+        object[Strings.composed] = composed.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     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)
+        _composed = ReadWriteAttribute(jsObject: object, name: Strings.composed)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var type: EncodedVideoChunkType
-
-    @ReadWriteAttribute
-    public var timestamp: Int64
-
-    @ReadWriteAttribute
-    public var duration: UInt64
-
-    @ReadWriteAttribute
-    public var data: BufferSource
+    public var composed: Bool
 }
 
-public class EncodedVideoChunkMetadata: BridgedDictionary {
-    public convenience init(decoderConfig: VideoDecoderConfig, svc: SvcOutputMetadata, alphaSideData: BufferSource) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.decoderConfig] = decoderConfig.jsValue
-        object[Strings.svc] = svc.jsValue
-        object[Strings.alphaSideData] = alphaSideData.jsValue
-        self.init(unsafelyWrapping: 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 }
     }
 
-    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)
+    @inlinable var onauxclick: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var decoderConfig: VideoDecoderConfig
+    @inlinable var onblur: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onblur, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onblur, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var svc: SvcOutputMetadata
+    @inlinable var oncancel: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var alphaSideData: BufferSource
-}
+    @inlinable var oncanplay: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] = newValue }
+    }
 
-public enum EncodedVideoChunkType: JSString, JSValueCompatible {
-    case key = "key"
-    case delta = "delta"
+    @inlinable var oncanplaythrough: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] = newValue }
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable var onchange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onchange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onchange, in: jsObject] = newValue }
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable var onclick: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onclick, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onclick, in: jsObject] = newValue }
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable var onclose: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onclose, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onclose, in: jsObject] = newValue }
+    }
 
-public enum EndingType: JSString, JSValueCompatible {
-    case transparent = "transparent"
-    case native = "native"
+    @inlinable var oncontextlost: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] = newValue }
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable var oncontextmenu: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] = newValue }
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable var oncontextrestored: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] = newValue }
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable var oncuechange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] = newValue }
+    }
 
-public class ErrorEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ErrorEvent].function }
+    @inlinable var ondblclick: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] = newValue }
+    }
 
-    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)
+    @inlinable var ondrag: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] = newValue }
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: ErrorEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable var ondragend: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] = newValue }
     }
 
-    @ReadonlyAttribute
-    public var message: String
+    @inlinable var ondragenter: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var filename: String
+    @inlinable var ondragleave: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var lineno: UInt32
+    @inlinable var ondragover: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var colno: UInt32
+    @inlinable var ondragstart: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var error: JSValue
-}
+    @inlinable var ondrop: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] = newValue }
+    }
 
-public class ErrorEventInit: BridgedDictionary {
-    public convenience init(message: String, filename: String, lineno: UInt32, colno: UInt32, error: JSValue) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.message] = message.jsValue
-        object[Strings.filename] = filename.jsValue
-        object[Strings.lineno] = lineno.jsValue
-        object[Strings.colno] = colno.jsValue
-        object[Strings.error] = error.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable var ondurationchange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] = newValue }
     }
 
-    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)
+    @inlinable var onemptied: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var message: String
-
-    @ReadWriteAttribute
-    public var filename: String
+    @inlinable var onended: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onended, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onended, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var lineno: UInt32
+    @inlinable var onerror: OnErrorEventHandler {
+        get { ClosureAttribute5Optional[Strings.onerror, in: jsObject] }
+        nonmutating set { ClosureAttribute5Optional[Strings.onerror, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var colno: UInt32
+    @inlinable var onfocus: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var error: JSValue
-}
+    @inlinable var onformdata: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] = newValue }
+    }
 
-public class Event: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Event].function }
+    @inlinable var oninput: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oninput, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oninput, in: jsObject] = newValue }
+    }
 
-    public let jsObject: JSObject
+    @inlinable var oninvalid: EventHandler {
+        get { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] = newValue }
+    }
 
-    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
+    @inlinable var onkeydown: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] = newValue }
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: EventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable var onkeypress: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] = newValue }
     }
 
-    @ReadonlyAttribute
-    public var type: String
+    @inlinable var onkeyup: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var target: EventTarget?
+    @inlinable var onload: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onload, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onload, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var srcElement: EventTarget?
+    @inlinable var onloadeddata: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var currentTarget: EventTarget?
+    @inlinable var onloadedmetadata: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] = newValue }
+    }
 
-    @inlinable public func composedPath() -> [EventTarget] {
-        let this = jsObject
-        return this[Strings.composedPath].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable var onloadstart: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] = newValue }
     }
 
-    public static let NONE: UInt16 = 0
+    @inlinable var onmousedown: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] = newValue }
+    }
 
-    public static let CAPTURING_PHASE: UInt16 = 1
+    @inlinable var onmouseenter: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] = newValue }
+    }
 
-    public static let AT_TARGET: UInt16 = 2
+    @inlinable var onmouseleave: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] = newValue }
+    }
 
-    public static let BUBBLING_PHASE: UInt16 = 3
+    @inlinable var onmousemove: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var eventPhase: UInt16
+    @inlinable var onmouseout: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] = newValue }
+    }
 
-    @inlinable public func stopPropagation() {
-        let this = jsObject
-        _ = this[Strings.stopPropagation].function!(this: this, arguments: [])
+    @inlinable var onmouseover: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var cancelBubble: Bool
+    @inlinable var onmouseup: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] = newValue }
+    }
 
-    @inlinable public func stopImmediatePropagation() {
-        let this = jsObject
-        _ = this[Strings.stopImmediatePropagation].function!(this: this, arguments: [])
+    @inlinable var onpause: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onpause, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onpause, in: jsObject] = newValue }
     }
 
-    @ReadonlyAttribute
-    public var bubbles: Bool
+    @inlinable var onplay: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onplay, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onplay, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var cancelable: Bool
+    @inlinable var onplaying: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var returnValue: Bool
+    @inlinable var onprogress: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] = newValue }
+    }
 
-    @inlinable public func preventDefault() {
-        let this = jsObject
-        _ = this[Strings.preventDefault].function!(this: this, arguments: [])
+    @inlinable var onratechange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] = newValue }
     }
 
-    @ReadonlyAttribute
-    public var defaultPrevented: Bool
+    @inlinable var onreset: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onreset, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onreset, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var composed: Bool
+    @inlinable var onresize: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onresize, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onresize, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var isTrusted: Bool
+    @inlinable var onscroll: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var timeStamp: DOMHighResTimeStamp
+    @inlinable var onsecuritypolicyviolation: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] = newValue }
+    }
 
-    @inlinable public func initEvent(type: String, bubbles: Bool? = nil, cancelable: Bool? = nil) {
-        let this = jsObject
-        _ = this[Strings.initEvent].function!(this: this, arguments: [type.jsValue, bubbles?.jsValue ?? .undefined, cancelable?.jsValue ?? .undefined])
+    @inlinable var onseeked: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] = newValue }
     }
-}
 
-public class EventInit: BridgedDictionary {
-    public convenience init(bubbles: Bool, cancelable: Bool, composed: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.bubbles] = bubbles.jsValue
-        object[Strings.cancelable] = cancelable.jsValue
-        object[Strings.composed] = composed.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable var onseeking: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] = newValue }
     }
 
-    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)
+    @inlinable var onselect: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onselect, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onselect, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var bubbles: Bool
+    @inlinable var onslotchange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var cancelable: Bool
+    @inlinable var onstalled: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] = newValue }
+    }
 
-    @ReadWriteAttribute
-    public var composed: Bool
-}
+    @inlinable var onsubmit: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] = newValue }
+    }
 
-public class EventListenerOptions: BridgedDictionary {
-    public convenience init(capture: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.capture] = capture.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable var onsuspend: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] = newValue }
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _capture = ReadWriteAttribute(jsObject: object, name: Strings.capture)
-        super.init(unsafelyWrapping: object)
+    @inlinable var ontimeupdate: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var capture: Bool
-}
+    @inlinable var ontoggle: EventHandler {
+        get { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] = newValue }
+    }
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.ctrlKey] = ctrlKey.jsValue
-        object[Strings.shiftKey] = shiftKey.jsValue
-        object[Strings.altKey] = altKey.jsValue
-        object[Strings.metaKey] = metaKey.jsValue
-        object[Strings.modifierAltGraph] = modifierAltGraph.jsValue
-        object[Strings.modifierCapsLock] = modifierCapsLock.jsValue
-        object[Strings.modifierFn] = modifierFn.jsValue
-        object[Strings.modifierFnLock] = modifierFnLock.jsValue
-        object[Strings.modifierHyper] = modifierHyper.jsValue
-        object[Strings.modifierNumLock] = modifierNumLock.jsValue
-        object[Strings.modifierScrollLock] = modifierScrollLock.jsValue
-        object[Strings.modifierSuper] = modifierSuper.jsValue
-        object[Strings.modifierSymbol] = modifierSymbol.jsValue
-        object[Strings.modifierSymbolLock] = modifierSymbolLock.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable var onvolumechange: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] = newValue }
     }
 
-    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)
+    @inlinable var onwaiting: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] = newValue }
     }
 
-    @ReadWriteAttribute
-    public var ctrlKey: Bool
+    @inlinable var onwebkitanimationend: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] = newValue }
+    }
+
+    @inlinable var onwebkitanimationiteration: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] = newValue }
+    }
+
+    @inlinable var onwebkitanimationstart: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] = newValue }
+    }
+
+    @inlinable var onwebkittransitionend: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] = newValue }
+    }
+
+    @inlinable var onwheel: EventHandler {
+        get { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] }
+        nonmutating set { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] = newValue }
+    }
+}
+
+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
+    }
+
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> Element {
+        jsObject[key].fromJSValue()!
+    }
+
+    @inlinable public subscript(key: String) -> Element_or_HTMLCollection? {
+        jsObject[key].fromJSValue()
+    }
+
+    @inlinable public func item(nameOrIndex: String? = nil) -> Element_or_HTMLCollection? {
+        let this = jsObject
+        return this[Strings.item].function!(this: this, arguments: [nameOrIndex?.jsValue ?? .undefined]).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 convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var shiftKey: Bool
+    public var target: String
 
     @ReadWriteAttribute
-    public var altKey: Bool
+    public var download: String
 
     @ReadWriteAttribute
-    public var metaKey: Bool
+    public var ping: String
 
     @ReadWriteAttribute
-    public var modifierAltGraph: Bool
+    public var rel: String
+
+    @ReadonlyAttribute
+    public var relList: DOMTokenList
 
     @ReadWriteAttribute
-    public var modifierCapsLock: Bool
+    public var hreflang: String
 
     @ReadWriteAttribute
-    public var modifierFn: Bool
+    public var type: String
 
     @ReadWriteAttribute
-    public var modifierFnLock: Bool
+    public var text: String
 
     @ReadWriteAttribute
-    public var modifierHyper: Bool
+    public var referrerPolicy: String
 
     @ReadWriteAttribute
-    public var modifierNumLock: Bool
+    public var coords: String
 
     @ReadWriteAttribute
-    public var modifierScrollLock: Bool
+    public var charset: String
 
     @ReadWriteAttribute
-    public var modifierSuper: Bool
+    public var name: String
 
     @ReadWriteAttribute
-    public var modifierSymbol: Bool
+    public var rev: String
 
     @ReadWriteAttribute
-    public var modifierSymbolLock: Bool
+    public var shape: String
 }
 
-public class EventSource: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.EventSource].function }
+public class HTMLAreaElement: HTMLElement, HTMLHyperlinkElementUtils {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAreaElement].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)
+        _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)
     }
 
-    @inlinable public convenience init(url: String, eventSourceInitDict: EventSourceInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, eventSourceInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var url: String
+    @ReadWriteAttribute
+    public var alt: String
 
-    @ReadonlyAttribute
-    public var withCredentials: Bool
+    @ReadWriteAttribute
+    public var coords: String
 
-    public static let CONNECTING: UInt16 = 0
+    @ReadWriteAttribute
+    public var shape: String
 
-    public static let OPEN: UInt16 = 1
+    @ReadWriteAttribute
+    public var target: String
 
-    public static let CLOSED: UInt16 = 2
+    @ReadWriteAttribute
+    public var download: String
+
+    @ReadWriteAttribute
+    public var ping: String
+
+    @ReadWriteAttribute
+    public var rel: String
 
     @ReadonlyAttribute
-    public var readyState: UInt16
+    public var relList: DOMTokenList
 
-    @ClosureAttribute1Optional
-    public var onopen: EventHandler
+    @ReadWriteAttribute
+    public var referrerPolicy: String
 
-    @ClosureAttribute1Optional
-    public var onmessage: EventHandler
+    @ReadWriteAttribute
+    public var noHref: Bool
+}
 
-    @ClosureAttribute1Optional
-    public var onerror: EventHandler
+public class HTMLAudioElement: HTMLMediaElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAudioElement].function }
 
-    @inlinable public func close() {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 }
 
-public class EventSourceInit: BridgedDictionary {
-    public convenience init(withCredentials: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.withCredentials] = withCredentials.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLBRElement: HTMLElement {
+    @inlinable override public 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 object: JSObject) {
-        _withCredentials = ReadWriteAttribute(jsObject: object, name: Strings.withCredentials)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var withCredentials: Bool
+    public var clear: String
 }
 
-public class EventTarget: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.EventTarget].function }
-
-    public let jsObject: JSObject
+public class HTMLBaseElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLBaseElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+        _href = ReadWriteAttribute(jsObject: jsObject, name: Strings.href)
+        _target = ReadWriteAttribute(jsObject: jsObject, name: Strings.target)
+        super.init(unsafelyWrapping: jsObject)
     }
 
     @inlinable public convenience init() {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    // XXX: member 'addEventListener' is ignored
-
-    // XXX: member 'removeEventListener' is ignored
+    @ReadWriteAttribute
+    public var href: String
 
-    @inlinable public func dispatchEvent(event: Event) -> Bool {
-        let this = jsObject
-        return this[Strings.dispatchEvent].function!(this: this, arguments: [event.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var target: String
 }
 
-public class ExtendableEventInit: BridgedDictionary {
-    public convenience init() {
-        let object = JSObject.global[Strings.Object].function!.new()
+public class HTMLBodyElement: HTMLElement, WindowEventHandlers {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLBodyElement].function }
 
-        self.init(unsafelyWrapping: object)
+    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 object: JSObject) {
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
-}
 
-public class External: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.External].function }
+    @ReadWriteAttribute
+    public var text: String
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var link: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var vLink: String
 
-    @inlinable public func AddSearchProvider() {
-        let this = jsObject
-        _ = this[Strings.AddSearchProvider].function!(this: this, arguments: [])
-    }
+    @ReadWriteAttribute
+    public var aLink: String
 
-    @inlinable public func IsSearchProviderInstalled() {
-        let this = jsObject
-        _ = this[Strings.IsSearchProviderInstalled].function!(this: this, arguments: [])
-    }
+    @ReadWriteAttribute
+    public var bgColor: String
+
+    @ReadWriteAttribute
+    public var background: String
 }
 
-public class FetchEventInit: BridgedDictionary {
-    public convenience init(request: Request, preloadResponse: JSPromise, clientId: String, resultingClientId: String, replacesClientId: String, handled: JSPromise) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.request] = request.jsValue
-        object[Strings.preloadResponse] = preloadResponse.jsValue
-        object[Strings.clientId] = clientId.jsValue
-        object[Strings.resultingClientId] = resultingClientId.jsValue
-        object[Strings.replacesClientId] = replacesClientId.jsValue
-        object[Strings.handled] = handled.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLButtonElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLButtonElement].function }
+
+    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)
     }
 
-    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)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var request: Request
+    public var disabled: Bool
+
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
     @ReadWriteAttribute
-    public var preloadResponse: JSPromise
+    public var formAction: String
 
     @ReadWriteAttribute
-    public var clientId: String
+    public var formEnctype: String
 
     @ReadWriteAttribute
-    public var resultingClientId: String
+    public var formMethod: String
 
     @ReadWriteAttribute
-    public var replacesClientId: String
+    public var formNoValidate: Bool
 
     @ReadWriteAttribute
-    public var handled: JSPromise
+    public var formTarget: String
+
+    @ReadWriteAttribute
+    public var name: String
+
+    @ReadWriteAttribute
+    public var type: String
+
+    @ReadWriteAttribute
+    public var value: String
+
+    @ReadonlyAttribute
+    public var willValidate: Bool
+
+    @ReadonlyAttribute
+    public var validity: ValidityState
+
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func setCustomValidity(error: String) {
+        let this = jsObject
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
+    }
+
+    @ReadonlyAttribute
+    public var labels: NodeList
 }
 
-public class File: Blob {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.File].function }
+public class HTMLCanvasElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLCanvasElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
-        _lastModified = ReadonlyAttribute(jsObject: jsObject, name: Strings.lastModified)
+        _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width)
+        _height = ReadWriteAttribute(jsObject: jsObject, name: Strings.height)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(fileBits: [BlobPart], fileName: String, options: FilePropertyBag? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [fileBits.jsValue, fileName.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var name: String
+    @ReadWriteAttribute
+    public var width: UInt32
 
-    @ReadonlyAttribute
-    public var lastModified: Int64
+    @ReadWriteAttribute
+    public var height: UInt32
+
+    // XXX: member 'getContext' is ignored
+
+    @inlinable public func toDataURL(type: String? = nil, quality: JSValue? = nil) -> String {
+        let this = jsObject
+        return this[Strings.toDataURL].function!(this: this, arguments: [type?.jsValue ?? .undefined, quality?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    // XXX: member 'toBlob' is ignored
+
+    @inlinable public func transferControlToOffscreen() -> OffscreenCanvas {
+        let this = jsObject
+        return this[Strings.transferControlToOffscreen].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class FileList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.FileList].function }
+public class HTMLCollection: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.HTMLCollection].function }
 
     public let jsObject: JSObject
 
@@ -7475,43 +6557,39 @@ public class FileList: JSBridgedClass {
         self.jsObject = jsObject
     }
 
-    @inlinable public subscript(key: Int) -> File? {
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> Element? {
         jsObject[key].fromJSValue()
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @inlinable public subscript(key: String) -> Element? {
+        jsObject[key].fromJSValue()
+    }
 }
 
-public class FilePropertyBag: BridgedDictionary {
-    public convenience init(lastModified: Int64) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.lastModified] = lastModified.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLDListElement: HTMLElement {
+    @inlinable override public 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 object: JSObject) {
-        _lastModified = ReadWriteAttribute(jsObject: object, name: Strings.lastModified)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var lastModified: Int64
+    public var compact: Bool
 }
 
-public class FileReader: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FileReader].function }
+public class HTMLDataElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDataElement].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)
+        _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value)
         super.init(unsafelyWrapping: jsObject)
     }
 
@@ -7519,11460 +6597,2087 @@ public class FileReader: EventTarget {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func readAsArrayBuffer(blob: Blob) {
-        let this = jsObject
-        _ = this[Strings.readAsArrayBuffer].function!(this: this, arguments: [blob.jsValue])
-    }
-
-    @inlinable public func readAsBinaryString(blob: Blob) {
-        let this = jsObject
-        _ = this[Strings.readAsBinaryString].function!(this: this, arguments: [blob.jsValue])
-    }
+    @ReadWriteAttribute
+    public var value: String
+}
 
-    @inlinable public func readAsText(blob: Blob, encoding: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.readAsText].function!(this: this, arguments: [blob.jsValue, encoding?.jsValue ?? .undefined])
-    }
+public class HTMLDataListElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDataListElement].function }
 
-    @inlinable public func readAsDataURL(blob: Blob) {
-        let this = jsObject
-        _ = this[Strings.readAsDataURL].function!(this: this, arguments: [blob.jsValue])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _options = ReadonlyAttribute(jsObject: jsObject, name: Strings.options)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public func abort() {
-        let this = jsObject
-        _ = this[Strings.abort].function!(this: this, arguments: [])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    public static let EMPTY: UInt16 = 0
+    @ReadonlyAttribute
+    public var options: HTMLCollection
+}
 
-    public static let LOADING: UInt16 = 1
+public class HTMLDetailsElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDetailsElement].function }
 
-    public static let DONE: UInt16 = 2
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _open = ReadWriteAttribute(jsObject: jsObject, name: Strings.open)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @ReadonlyAttribute
-    public var readyState: UInt16
-
-    @ReadonlyAttribute
-    public var result: ArrayBuffer_or_String?
-
-    @ReadonlyAttribute
-    public var error: DOMException?
-
-    @ClosureAttribute1Optional
-    public var onloadstart: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onprogress: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onload: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onabort: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onerror: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onloadend: EventHandler
-}
-
-public enum FillMode: JSString, JSValueCompatible {
-    case none = "none"
-    case forwards = "forwards"
-    case backwards = "backwards"
-    case both = "both"
-    case auto = "auto"
-
-    @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 convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var open: Bool
 }
 
-public class FocusEvent: UIEvent {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FocusEvent].function }
+public class HTMLDialogElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDialogElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _relatedTarget = ReadonlyAttribute(jsObject: jsObject, name: Strings.relatedTarget)
+        _open = ReadWriteAttribute(jsObject: jsObject, name: Strings.open)
+        _returnValue = ReadWriteAttribute(jsObject: jsObject, name: Strings.returnValue)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: FocusEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var relatedTarget: EventTarget?
-}
-
-public class FocusEventInit: BridgedDictionary {
-    public convenience init(relatedTarget: EventTarget?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.relatedTarget] = relatedTarget.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _relatedTarget = ReadWriteAttribute(jsObject: object, name: Strings.relatedTarget)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var relatedTarget: EventTarget?
-}
-
-public class FocusOptions: BridgedDictionary {
-    public convenience init(preventScroll: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.preventScroll] = preventScroll.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _preventScroll = ReadWriteAttribute(jsObject: object, name: Strings.preventScroll)
-        super.init(unsafelyWrapping: object)
-    }
+    public var open: Bool
 
     @ReadWriteAttribute
-    public var preventScroll: Bool
-}
-
-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
-    }
-
-    @inlinable public convenience init(form: HTMLFormElement? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [form?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public func append(name: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
-    }
-
-    @inlinable public func append(name: String, blobValue: Blob, filename: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, blobValue.jsValue, filename?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func delete(name: String) {
-        let this = jsObject
-        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
-    }
-
-    @inlinable public func get(name: String) -> FormDataEntryValue? {
-        let this = jsObject
-        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func getAll(name: String) -> [FormDataEntryValue] {
-        let this = jsObject
-        return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
+    public var returnValue: String
 
-    @inlinable public func has(name: String) -> Bool {
+    @inlinable public func show() {
         let this = jsObject
-        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+        _ = this[Strings.show].function!(this: this, arguments: [])
     }
 
-    @inlinable public func set(name: String, value: String) {
+    @inlinable public func showModal() {
         let this = jsObject
-        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
+        _ = this[Strings.showModal].function!(this: this, arguments: [])
     }
 
-    @inlinable public func set(name: String, blobValue: Blob, filename: String? = nil) {
+    @inlinable public func close(returnValue: String? = nil) {
         let this = jsObject
-        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, blobValue.jsValue, filename?.jsValue ?? .undefined])
-    }
-
-    public typealias Element = String
-    public func makeIterator() -> ValueIterableIterator<FormData> {
-        ValueIterableIterator(sequence: self)
+        _ = this[Strings.close].function!(this: this, arguments: [returnValue?.jsValue ?? .undefined])
     }
 }
 
-public class FormDataEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.FormDataEvent].function }
+public class HTMLDirectoryElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDirectoryElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _formData = ReadonlyAttribute(jsObject: jsObject, name: Strings.formData)
+        _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: FormDataEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var formData: FormData
-}
-
-public class FormDataEventInit: BridgedDictionary {
-    public convenience init(formData: FormData) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.formData] = formData.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _formData = ReadWriteAttribute(jsObject: object, name: Strings.formData)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var formData: FormData
-}
-
-public enum FrameType: JSString, JSValueCompatible {
-    case auxiliary = "auxiliary"
-    case topLevel = "top-level"
-    case nested = "nested"
-    case none = "none"
-
-    @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 var compact: Bool
 }
 
-public class GPU: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPU].function }
-
-    public let jsObject: JSObject
+public class HTMLDivElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLDivElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+        _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public func requestAdapter(options: GPURequestAdapterOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.requestAdapter].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @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: [options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var align: String
 }
 
-public class GPUAdapter: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUAdapter].function }
-
-    public let jsObject: JSObject
+public class HTMLElement: Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, HTMLOrSVGElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
-        _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 name: String
-
-    @ReadonlyAttribute
-    public var features: GPUSupportedFeatures
-
-    @ReadonlyAttribute
-    public var limits: GPUSupportedLimits
-
-    @ReadonlyAttribute
-    public var isFallbackAdapter: Bool
-
-    @inlinable public func requestDevice(descriptor: GPUDeviceDescriptor? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.requestDevice].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+        _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)
+        _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)
     }
 
-    @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: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
-}
-
-public enum GPUAddressMode: JSString, JSValueCompatible {
-    case clampToEdge = "clamp-to-edge"
-    case `repeat` = "repeat"
-    case mirrorRepeat = "mirror-repeat"
-
-    @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 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 class GPUBindGroupDescriptor: BridgedDictionary {
-    public convenience init(layout: GPUBindGroupLayout, entries: [GPUBindGroupEntry]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.layout] = layout.jsValue
-        object[Strings.entries] = entries.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var layout: GPUBindGroupLayout
-
-    @ReadWriteAttribute
-    public var entries: [GPUBindGroupEntry]
-}
-
-public class GPUBindGroupEntry: BridgedDictionary {
-    public convenience init(binding: GPUIndex32, resource: GPUBindingResource) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.binding] = binding.jsValue
-        object[Strings.resource] = resource.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var binding: GPUIndex32
-
-    @ReadWriteAttribute
-    public var resource: GPUBindingResource
-}
-
-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 class GPUBindGroupLayoutDescriptor: BridgedDictionary {
-    public convenience init(entries: [GPUBindGroupLayoutEntry]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.entries] = entries.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _entries = ReadWriteAttribute(jsObject: object, name: Strings.entries)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var entries: [GPUBindGroupLayoutEntry]
-}
-
-public class GPUBindGroupLayoutEntry: BridgedDictionary {
-    public convenience init(binding: GPUIndex32, visibility: GPUShaderStageFlags, buffer: GPUBufferBindingLayout, sampler: GPUSamplerBindingLayout, texture: GPUTextureBindingLayout, storageTexture: GPUStorageTextureBindingLayout, externalTexture: GPUExternalTextureBindingLayout) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.binding] = binding.jsValue
-        object[Strings.visibility] = visibility.jsValue
-        object[Strings.buffer] = buffer.jsValue
-        object[Strings.sampler] = sampler.jsValue
-        object[Strings.texture] = texture.jsValue
-        object[Strings.storageTexture] = storageTexture.jsValue
-        object[Strings.externalTexture] = externalTexture.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var binding: GPUIndex32
-
-    @ReadWriteAttribute
-    public var visibility: GPUShaderStageFlags
-
-    @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
-}
-
-public class GPUBlendComponent: BridgedDictionary {
-    public convenience init(operation: GPUBlendOperation, srcFactor: GPUBlendFactor, dstFactor: GPUBlendFactor) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.operation] = operation.jsValue
-        object[Strings.srcFactor] = srcFactor.jsValue
-        object[Strings.dstFactor] = dstFactor.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var operation: GPUBlendOperation
-
-    @ReadWriteAttribute
-    public var srcFactor: GPUBlendFactor
-
-    @ReadWriteAttribute
-    public var dstFactor: GPUBlendFactor
-}
-
-public enum GPUBlendFactor: JSString, JSValueCompatible {
-    case zero = "zero"
-    case one = "one"
-    case src = "src"
-    case oneMinusSrc = "one-minus-src"
-    case srcAlpha = "src-alpha"
-    case oneMinusSrcAlpha = "one-minus-src-alpha"
-    case dst = "dst"
-    case oneMinusDst = "one-minus-dst"
-    case dstAlpha = "dst-alpha"
-    case oneMinusDstAlpha = "one-minus-dst-alpha"
-    case srcAlphaSaturated = "src-alpha-saturated"
-    case constant = "constant"
-    case oneMinusConstant = "one-minus-constant"
-
-    @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 GPUBlendOperation: JSString, JSValueCompatible {
-    case add = "add"
-    case subtract = "subtract"
-    case reverseSubtract = "reverse-subtract"
-    case min = "min"
-    case max = "max"
-
-    @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 GPUBlendState: BridgedDictionary {
-    public convenience init(color: GPUBlendComponent, alpha: GPUBlendComponent) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.color] = color.jsValue
-        object[Strings.alpha] = alpha.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var color: GPUBlendComponent
-
-    @ReadWriteAttribute
-    public var alpha: GPUBlendComponent
-}
-
-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) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func mapAsync(mode: GPUMapModeFlags, offset: GPUSize64? = nil, size: GPUSize64? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.mapAsync].function!(this: this, arguments: [mode.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).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 {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.mapAsync].function!(this: this, arguments: [mode.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).fromJSValue()!
-        _ = try await _promise.value
-    }
-
-    @inlinable public func getMappedRange(offset: GPUSize64? = nil, size: GPUSize64? = nil) -> ArrayBuffer {
-        let this = jsObject
-        return this[Strings.getMappedRange].function!(this: this, arguments: [offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func unmap() {
-        let this = jsObject
-        _ = this[Strings.unmap].function!(this: this, arguments: [])
-    }
-
-    @inlinable 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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.buffer] = buffer.jsValue
-        object[Strings.offset] = offset.jsValue
-        object[Strings.size] = size.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var buffer: GPUBuffer
-
-    @ReadWriteAttribute
-    public var offset: GPUSize64
-
-    @ReadWriteAttribute
-    public var size: GPUSize64
-}
-
-public class GPUBufferBindingLayout: BridgedDictionary {
-    public convenience init(type: GPUBufferBindingType, hasDynamicOffset: Bool, minBindingSize: GPUSize64) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.hasDynamicOffset] = hasDynamicOffset.jsValue
-        object[Strings.minBindingSize] = minBindingSize.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var type: GPUBufferBindingType
-
-    @ReadWriteAttribute
-    public var hasDynamicOffset: Bool
-
-    @ReadWriteAttribute
-    public var minBindingSize: GPUSize64
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class GPUBufferDescriptor: BridgedDictionary {
-    public convenience init(size: GPUSize64, usage: GPUBufferUsageFlags, mappedAtCreation: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.size] = size.jsValue
-        object[Strings.usage] = usage.jsValue
-        object[Strings.mappedAtCreation] = mappedAtCreation.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var size: GPUSize64
-
-    @ReadWriteAttribute
-    public var usage: GPUBufferUsageFlags
-
-    @ReadWriteAttribute
-    public var mappedAtCreation: Bool
-}
-
-public enum GPUBufferUsage {
-    @inlinable public static var jsObject: JSObject {
-        JSObject.global[Strings.GPUBufferUsage].object!
-    }
-
-    public static let MAP_READ: GPUFlagsConstant = 0x0001
-
-    public static let MAP_WRITE: GPUFlagsConstant = 0x0002
-
-    public static let COPY_SRC: GPUFlagsConstant = 0x0004
-
-    public static let COPY_DST: GPUFlagsConstant = 0x0008
-
-    public static let INDEX: GPUFlagsConstant = 0x0010
-
-    public static let VERTEX: GPUFlagsConstant = 0x0020
-
-    public static let UNIFORM: GPUFlagsConstant = 0x0040
-
-    public static let STORAGE: GPUFlagsConstant = 0x0080
-
-    public static let INDIRECT: GPUFlagsConstant = 0x0100
-
-    public static let QUERY_RESOLVE: GPUFlagsConstant = 0x0200
-}
-
-public enum GPUCanvasCompositingAlphaMode: 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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class GPUCanvasConfiguration: BridgedDictionary {
-    public convenience init(device: GPUDevice, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat], colorSpace: GPUPredefinedColorSpace, compositingAlphaMode: GPUCanvasCompositingAlphaMode, size: GPUExtent3D) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.device] = device.jsValue
-        object[Strings.format] = format.jsValue
-        object[Strings.usage] = usage.jsValue
-        object[Strings.viewFormats] = viewFormats.jsValue
-        object[Strings.colorSpace] = colorSpace.jsValue
-        object[Strings.compositingAlphaMode] = compositingAlphaMode.jsValue
-        object[Strings.size] = size.jsValue
-        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)
-        _compositingAlphaMode = ReadWriteAttribute(jsObject: object, name: Strings.compositingAlphaMode)
-        _size = ReadWriteAttribute(jsObject: object, name: Strings.size)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var device: GPUDevice
-
-    @ReadWriteAttribute
-    public var format: GPUTextureFormat
-
-    @ReadWriteAttribute
-    public var usage: GPUTextureUsageFlags
-
-    @ReadWriteAttribute
-    public var viewFormats: [GPUTextureFormat]
-
-    @ReadWriteAttribute
-    public var colorSpace: GPUPredefinedColorSpace
-
-    @ReadWriteAttribute
-    public var compositingAlphaMode: GPUCanvasCompositingAlphaMode
-
-    @ReadWriteAttribute
-    public var size: GPUExtent3D
-}
-
-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
-    }
-
-    @ReadonlyAttribute
-    public var canvas: HTMLCanvasElement_or_OffscreenCanvas
-
-    @inlinable public func configure(configuration: GPUCanvasConfiguration) {
-        let this = jsObject
-        _ = this[Strings.configure].function!(this: this, arguments: [configuration.jsValue])
-    }
-
-    @inlinable public func unconfigure() {
-        let this = jsObject
-        _ = this[Strings.unconfigure].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func getPreferredFormat(adapter: GPUAdapter) -> GPUTextureFormat {
-        let this = jsObject
-        return this[Strings.getPreferredFormat].function!(this: this, arguments: [adapter.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func getCurrentTexture() -> GPUTexture {
-        let this = jsObject
-        return this[Strings.getCurrentTexture].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
-
-public class GPUColorDict: BridgedDictionary {
-    public convenience init(r: Double, g: Double, b: Double, a: Double) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.r] = r.jsValue
-        object[Strings.g] = g.jsValue
-        object[Strings.b] = b.jsValue
-        object[Strings.a] = a.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var r: Double
-
-    @ReadWriteAttribute
-    public var g: Double
-
-    @ReadWriteAttribute
-    public var b: Double
-
-    @ReadWriteAttribute
-    public var a: Double
-}
-
-public class GPUColorTargetState: BridgedDictionary {
-    public convenience init(format: GPUTextureFormat, blend: GPUBlendState, writeMask: GPUColorWriteFlags) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.blend] = blend.jsValue
-        object[Strings.writeMask] = writeMask.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var format: GPUTextureFormat
-
-    @ReadWriteAttribute
-    public var blend: GPUBlendState
-
-    @ReadWriteAttribute
-    public var writeMask: GPUColorWriteFlags
-}
-
-public enum GPUColorWrite {
-    @inlinable public static var jsObject: JSObject {
-        JSObject.global[Strings.GPUColorWrite].object!
-    }
-
-    public static let RED: GPUFlagsConstant = 0x1
-
-    public static let GREEN: GPUFlagsConstant = 0x2
-
-    public static let BLUE: GPUFlagsConstant = 0x4
-
-    public static let ALPHA: GPUFlagsConstant = 0x8
-
-    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 class GPUCommandBufferDescriptor: 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 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
-    }
-
-    @inlinable public func beginRenderPass(descriptor: GPURenderPassDescriptor) -> GPURenderPassEncoder {
-        let this = jsObject
-        return this[Strings.beginRenderPass].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func beginComputePass(descriptor: GPUComputePassDescriptor? = nil) -> GPUComputePassEncoder {
-        let this = jsObject
-        return this[Strings.beginComputePass].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).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: [source.jsValue, sourceOffset.jsValue, destination.jsValue, destinationOffset.jsValue, size.jsValue])
-    }
-
-    @inlinable public func copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D) {
-        let this = jsObject
-        _ = this[Strings.copyBufferToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
-    }
-
-    @inlinable public func copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D) {
-        let this = jsObject
-        _ = this[Strings.copyTextureToBuffer].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
-    }
-
-    @inlinable public func copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D) {
-        let this = jsObject
-        _ = this[Strings.copyTextureToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
-    }
-
-    @inlinable public func clearBuffer(buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
-        let this = jsObject
-        _ = this[Strings.clearBuffer].function!(this: this, arguments: [buffer.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func writeTimestamp(querySet: GPUQuerySet, queryIndex: GPUSize32) {
-        let this = jsObject
-        _ = this[Strings.writeTimestamp].function!(this: this, arguments: [querySet.jsValue, queryIndex.jsValue])
-    }
-
-    @inlinable public func resolveQuerySet(querySet: GPUQuerySet, firstQuery: GPUSize32, queryCount: GPUSize32, destination: GPUBuffer, destinationOffset: GPUSize64) {
-        let this = jsObject
-        _ = this[Strings.resolveQuerySet].function!(this: this, arguments: [querySet.jsValue, firstQuery.jsValue, queryCount.jsValue, destination.jsValue, destinationOffset.jsValue])
-    }
-
-    @inlinable public func finish(descriptor: GPUCommandBufferDescriptor? = nil) -> GPUCommandBuffer {
-        let this = jsObject
-        return this[Strings.finish].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-    }
-}
-
-public class GPUCommandEncoderDescriptor: 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 protocol GPUCommandsMixin: JSBridgedClass {}
-public extension GPUCommandsMixin {}
-
-public enum GPUCompareFunction: JSString, JSValueCompatible {
-    case never = "never"
-    case less = "less"
-    case equal = "equal"
-    case lessEqual = "less-equal"
-    case greater = "greater"
-    case notEqual = "not-equal"
-    case greaterEqual = "greater-equal"
-    case always = "always"
-
-    @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 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
-    }
-
-    @ReadonlyAttribute
-    public var messages: [GPUCompilationMessage]
-}
-
-public class GPUCompilationMessage: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCompilationMessage].function }
-
-    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
-    }
-
-    @ReadonlyAttribute
-    public var message: String
-
-    @ReadonlyAttribute
-    public var type: GPUCompilationMessageType
-
-    @ReadonlyAttribute
-    public var lineNum: UInt64
-
-    @ReadonlyAttribute
-    public var linePos: UInt64
-
-    @ReadonlyAttribute
-    public var offset: UInt64
-
-    @ReadonlyAttribute
-    public var length: UInt64
-}
-
-public enum GPUCompilationMessageType: JSString, JSValueCompatible {
-    case error = "error"
-    case warning = "warning"
-    case info = "info"
-
-    @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 GPUComputePassDescriptor: BridgedDictionary {
-    public convenience init(timestampWrites: GPUComputePassTimestampWrites) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.timestampWrites] = timestampWrites.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _timestampWrites = ReadWriteAttribute(jsObject: object, name: Strings.timestampWrites)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var timestampWrites: GPUComputePassTimestampWrites
-}
-
-public class GPUComputePassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUComputePassEncoder].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func setPipeline(pipeline: GPUComputePipeline) {
-        let this = jsObject
-        _ = this[Strings.setPipeline].function!(this: this, arguments: [pipeline.jsValue])
-    }
-
-    @inlinable public func dispatch(workgroupCountX: GPUSize32, workgroupCountY: GPUSize32? = nil, workgroupCountZ: GPUSize32? = nil) {
-        let this = jsObject
-        _ = this[Strings.dispatch].function!(this: this, arguments: [workgroupCountX.jsValue, workgroupCountY?.jsValue ?? .undefined, workgroupCountZ?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func dispatchIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
-        let this = jsObject
-        _ = this[Strings.dispatchIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
-    }
-
-    @inlinable public func end() {
-        let this = jsObject
-        _ = this[Strings.end].function!(this: this, arguments: [])
-    }
-}
-
-public enum GPUComputePassTimestampLocation: JSString, JSValueCompatible {
-    case beginning = "beginning"
-    case end = "end"
-
-    @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 GPUComputePassTimestampWrite: BridgedDictionary {
-    public convenience init(querySet: GPUQuerySet, queryIndex: GPUSize32, location: GPUComputePassTimestampLocation) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.querySet] = querySet.jsValue
-        object[Strings.queryIndex] = queryIndex.jsValue
-        object[Strings.location] = location.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet)
-        _queryIndex = ReadWriteAttribute(jsObject: object, name: Strings.queryIndex)
-        _location = ReadWriteAttribute(jsObject: object, name: Strings.location)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var querySet: GPUQuerySet
-
-    @ReadWriteAttribute
-    public var queryIndex: GPUSize32
-
-    @ReadWriteAttribute
-    public var location: GPUComputePassTimestampLocation
-}
-
-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 class GPUComputePipelineDescriptor: BridgedDictionary {
-    public convenience init(compute: GPUProgrammableStage) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.compute] = compute.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _compute = ReadWriteAttribute(jsObject: object, name: Strings.compute)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var compute: GPUProgrammableStage
-}
-
-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) {
-        let this = jsObject
-        _ = this[Strings.pushDebugGroup].function!(this: this, arguments: [groupLabel.jsValue])
-    }
-
-    @inlinable func popDebugGroup() {
-        let this = jsObject
-        _ = this[Strings.popDebugGroup].function!(this: this, arguments: [])
-    }
-
-    @inlinable func insertDebugMarker(markerLabel: String) {
-        let this = jsObject
-        _ = this[Strings.insertDebugMarker].function!(this: this, arguments: [markerLabel.jsValue])
-    }
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.depthWriteEnabled] = depthWriteEnabled.jsValue
-        object[Strings.depthCompare] = depthCompare.jsValue
-        object[Strings.stencilFront] = stencilFront.jsValue
-        object[Strings.stencilBack] = stencilBack.jsValue
-        object[Strings.stencilReadMask] = stencilReadMask.jsValue
-        object[Strings.stencilWriteMask] = stencilWriteMask.jsValue
-        object[Strings.depthBias] = depthBias.jsValue
-        object[Strings.depthBiasSlopeScale] = depthBiasSlopeScale.jsValue
-        object[Strings.depthBiasClamp] = depthBiasClamp.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var stencilWriteMask: GPUStencilValue
-
-    @ReadWriteAttribute
-    public var depthBias: GPUDepthBias
-
-    @ReadWriteAttribute
-    public var depthBiasSlopeScale: Float
-
-    @ReadWriteAttribute
-    public var depthBiasClamp: Float
-}
-
-public class GPUDevice: EventTarget, GPUObjectBase {
-    @inlinable override public 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)
-    }
-
-    @ReadonlyAttribute
-    public var features: GPUSupportedFeatures
-
-    @ReadonlyAttribute
-    public var limits: GPUSupportedLimits
-
-    @ReadonlyAttribute
-    public var queue: GPUQueue
-
-    @inlinable public func destroy() {
-        let this = jsObject
-        _ = this[Strings.destroy].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func createBuffer(descriptor: GPUBufferDescriptor) -> GPUBuffer {
-        let this = jsObject
-        return this[Strings.createBuffer].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createTexture(descriptor: GPUTextureDescriptor) -> GPUTexture {
-        let this = jsObject
-        return this[Strings.createTexture].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createSampler(descriptor: GPUSamplerDescriptor? = nil) -> GPUSampler {
-        let this = jsObject
-        return this[Strings.createSampler].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func importExternalTexture(descriptor: GPUExternalTextureDescriptor) -> GPUExternalTexture {
-        let this = jsObject
-        return this[Strings.importExternalTexture].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor) -> GPUBindGroupLayout {
-        let this = jsObject
-        return this[Strings.createBindGroupLayout].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor) -> GPUPipelineLayout {
-        let this = jsObject
-        return this[Strings.createPipelineLayout].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createBindGroup(descriptor: GPUBindGroupDescriptor) -> GPUBindGroup {
-        let this = jsObject
-        return this[Strings.createBindGroup].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createShaderModule(descriptor: GPUShaderModuleDescriptor) -> GPUShaderModule {
-        let this = jsObject
-        return this[Strings.createShaderModule].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createComputePipeline(descriptor: GPUComputePipelineDescriptor) -> GPUComputePipeline {
-        let this = jsObject
-        return this[Strings.createComputePipeline].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createRenderPipeline(descriptor: GPURenderPipelineDescriptor) -> GPURenderPipeline {
-        let this = jsObject
-        return this[Strings.createRenderPipeline].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor) -> JSPromise {
-        let this = jsObject
-        return this[Strings.createComputePipelineAsync].function!(this: this, arguments: [descriptor.jsValue]).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: [descriptor.jsValue]).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: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor) async throws -> GPURenderPipeline {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.createRenderPipelineAsync].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-
-    @inlinable public func createCommandEncoder(descriptor: GPUCommandEncoderDescriptor? = nil) -> GPUCommandEncoder {
-        let this = jsObject
-        return this[Strings.createCommandEncoder].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor) -> GPURenderBundleEncoder {
-        let this = jsObject
-        return this[Strings.createRenderBundleEncoder].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func createQuerySet(descriptor: GPUQuerySetDescriptor) -> GPUQuerySet {
-        let this = jsObject
-        return this[Strings.createQuerySet].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var lost: JSPromise
-
-    @inlinable public func pushErrorScope(filter: GPUErrorFilter) {
-        let this = jsObject
-        _ = this[Strings.pushErrorScope].function!(this: this, arguments: [filter.jsValue])
-    }
-
-    @inlinable 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()!
-    }
-
-    @ClosureAttribute1Optional
-    public var onuncapturederror: EventHandler
-}
-
-public class GPUDeviceDescriptor: BridgedDictionary {
-    public convenience init(requiredFeatures: [GPUFeatureName], requiredLimits: [String: GPUSize64], defaultQueue: GPUQueueDescriptor) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.requiredFeatures] = requiredFeatures.jsValue
-        object[Strings.requiredLimits] = requiredLimits.jsValue
-        object[Strings.defaultQueue] = defaultQueue.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var requiredFeatures: [GPUFeatureName]
-
-    @ReadWriteAttribute
-    public var requiredLimits: [String: GPUSize64]
-
-    @ReadWriteAttribute
-    public var defaultQueue: GPUQueueDescriptor
-}
-
-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
-    }
-
-    @ReadonlyAttribute
-    public var reason: GPUDeviceLostReason?
-
-    @ReadonlyAttribute
-    public var message: String
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public enum GPUErrorFilter: JSString, JSValueCompatible {
-    case outOfMemory = "out-of-memory"
-    case validation = "validation"
-
-    @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 GPUExtent3DDict: BridgedDictionary {
-    public convenience init(width: GPUIntegerCoordinate, height: GPUIntegerCoordinate, depthOrArrayLayers: GPUIntegerCoordinate) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.depthOrArrayLayers] = depthOrArrayLayers.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var width: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var height: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var depthOrArrayLayers: GPUIntegerCoordinate
-}
-
-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) {
-        _expired = ReadonlyAttribute(jsObject: jsObject, name: Strings.expired)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var expired: Bool
-}
-
-public class GPUExternalTextureBindingLayout: 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 class GPUExternalTextureDescriptor: BridgedDictionary {
-    public convenience init(source: HTMLVideoElement, colorSpace: GPUPredefinedColorSpace) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.source] = source.jsValue
-        object[Strings.colorSpace] = colorSpace.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var source: HTMLVideoElement
-
-    @ReadWriteAttribute
-    public var colorSpace: GPUPredefinedColorSpace
-}
-
-public enum GPUFeatureName: JSString, JSValueCompatible {
-    case depthClipControl = "depth-clip-control"
-    case depth24unormStencil8 = "depth24unorm-stencil8"
-    case depth32floatStencil8 = "depth32float-stencil8"
-    case textureCompressionBc = "texture-compression-bc"
-    case textureCompressionEtc2 = "texture-compression-etc2"
-    case textureCompressionAstc = "texture-compression-astc"
-    case timestampQuery = "timestamp-query"
-    case indirectFirstInstance = "indirect-first-instance"
-
-    @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 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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class GPUFragmentState: BridgedDictionary {
-    public convenience init(targets: [GPUColorTargetState?]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.targets] = targets.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _targets = ReadWriteAttribute(jsObject: object, name: Strings.targets)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var targets: [GPUColorTargetState?]
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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] = buffer.jsValue
-        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: HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas, origin: GPUOrigin2D, flipY: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.source] = source.jsValue
-        object[Strings.origin] = origin.jsValue
-        object[Strings.flipY] = flipY.jsValue
-        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: HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas
-
-    @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] = texture.jsValue
-        object[Strings.mipLevel] = mipLevel.jsValue
-        object[Strings.origin] = origin.jsValue
-        object[Strings.aspect] = aspect.jsValue
-        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: GPUPredefinedColorSpace, premultipliedAlpha: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.colorSpace] = colorSpace.jsValue
-        object[Strings.premultipliedAlpha] = premultipliedAlpha.jsValue
-        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: GPUPredefinedColorSpace
-
-    @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] = offset.jsValue
-        object[Strings.bytesPerRow] = bytesPerRow.jsValue
-        object[Strings.rowsPerImage] = rowsPerImage.jsValue
-        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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public enum GPULoadOp: JSString, JSValueCompatible {
-    case load = "load"
-    case clear = "clear"
-
-    @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 GPUMapMode {
-    @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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class GPUMultisampleState: BridgedDictionary {
-    public convenience init(count: GPUSize32, mask: GPUSampleMask, alphaToCoverageEnabled: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.count] = count.jsValue
-        object[Strings.mask] = mask.jsValue
-        object[Strings.alphaToCoverageEnabled] = alphaToCoverageEnabled.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var count: GPUSize32
-
-    @ReadWriteAttribute
-    public var mask: GPUSampleMask
-
-    @ReadWriteAttribute
-    public var alphaToCoverageEnabled: Bool
-}
-
-public protocol GPUObjectBase: JSBridgedClass {}
-public extension GPUObjectBase {
-    @inlinable var label: String? {
-        get { jsObject[Strings.label].fromJSValue()! }
-        nonmutating set { jsObject[Strings.label] = newValue.jsValue }
-    }
-}
-
-public class GPUObjectDescriptorBase: BridgedDictionary {
-    public convenience init(label: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.label] = label.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _label = ReadWriteAttribute(jsObject: object, name: Strings.label)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var label: String
-}
-
-public class GPUOrigin2DDict: BridgedDictionary {
-    public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.x] = x.jsValue
-        object[Strings.y] = y.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var x: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var y: GPUIntegerCoordinate
-}
-
-public class GPUOrigin3DDict: BridgedDictionary {
-    public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, z: GPUIntegerCoordinate) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.x] = x.jsValue
-        object[Strings.y] = y.jsValue
-        object[Strings.z] = z.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var x: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var y: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var z: GPUIntegerCoordinate
-}
-
-public class GPUOutOfMemoryError: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUOutOfMemoryError].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-}
-
-public protocol GPUPipelineBase: JSBridgedClass {}
-public extension GPUPipelineBase {
-    @inlinable func getBindGroupLayout(index: UInt32) -> GPUBindGroupLayout {
-        let this = jsObject
-        return this[Strings.getBindGroupLayout].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
-    }
-}
-
-public class GPUPipelineDescriptorBase: BridgedDictionary {
-    public convenience init(layout: GPUPipelineLayout) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.layout] = layout.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var layout: GPUPipelineLayout
-}
-
-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 class GPUPipelineLayoutDescriptor: BridgedDictionary {
-    public convenience init(bindGroupLayouts: [GPUBindGroupLayout]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.bindGroupLayouts] = bindGroupLayouts.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _bindGroupLayouts = ReadWriteAttribute(jsObject: object, name: Strings.bindGroupLayouts)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var bindGroupLayouts: [GPUBindGroupLayout]
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public enum GPUPredefinedColorSpace: JSString, JSValueCompatible {
-    case srgb = "srgb"
-
-    @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 GPUPrimitiveState: BridgedDictionary {
-    public convenience init(topology: GPUPrimitiveTopology, stripIndexFormat: GPUIndexFormat, frontFace: GPUFrontFace, cullMode: GPUCullMode, unclippedDepth: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.topology] = topology.jsValue
-        object[Strings.stripIndexFormat] = stripIndexFormat.jsValue
-        object[Strings.frontFace] = frontFace.jsValue
-        object[Strings.cullMode] = cullMode.jsValue
-        object[Strings.unclippedDepth] = unclippedDepth.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var topology: GPUPrimitiveTopology
-
-    @ReadWriteAttribute
-    public var stripIndexFormat: GPUIndexFormat
-
-    @ReadWriteAttribute
-    public var frontFace: GPUFrontFace
-
-    @ReadWriteAttribute
-    public var cullMode: GPUCullMode
-
-    @ReadWriteAttribute
-    public var unclippedDepth: Bool
-}
-
-public enum GPUPrimitiveTopology: JSString, JSValueCompatible {
-    case pointList = "point-list"
-    case lineList = "line-list"
-    case lineStrip = "line-strip"
-    case triangleList = "triangle-list"
-    case triangleStrip = "triangle-strip"
-
-    @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 GPUProgrammablePassEncoder: JSBridgedClass {}
-public extension GPUProgrammablePassEncoder {
-    @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets: [GPUBufferDynamicOffset]? = nil) {
-        let this = jsObject
-        _ = this[Strings.setBindGroup].function!(this: this, arguments: [index.jsValue, bindGroup.jsValue, dynamicOffsets?.jsValue ?? .undefined])
-    }
-
-    @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32) {
-        let this = jsObject
-        _ = this[Strings.setBindGroup].function!(this: this, arguments: [index.jsValue, bindGroup.jsValue, dynamicOffsetsData.jsValue, dynamicOffsetsDataStart.jsValue, dynamicOffsetsDataLength.jsValue])
-    }
-}
-
-public class GPUProgrammableStage: BridgedDictionary {
-    public convenience init(module: GPUShaderModule, entryPoint: String, constants: [String: GPUPipelineConstantValue]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.module] = module.jsValue
-        object[Strings.entryPoint] = entryPoint.jsValue
-        object[Strings.constants] = constants.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var module: GPUShaderModule
-
-    @ReadWriteAttribute
-    public var entryPoint: String
-
-    @ReadWriteAttribute
-    public var constants: [String: GPUPipelineConstantValue]
-}
-
-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) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func destroy() {
-        let this = jsObject
-        _ = this[Strings.destroy].function!(this: this, arguments: [])
-    }
-}
-
-public class GPUQuerySetDescriptor: BridgedDictionary {
-    public convenience init(type: GPUQueryType, count: GPUSize32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.count] = count.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var type: GPUQueryType
-
-    @ReadWriteAttribute
-    public var count: GPUSize32
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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
-    }
-
-    @inlinable public func submit(commandBuffers: [GPUCommandBuffer]) {
-        let this = jsObject
-        _ = this[Strings.submit].function!(this: this, arguments: [commandBuffers.jsValue])
-    }
-
-    @inlinable 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: BufferSource, dataOffset: GPUSize64? = nil, size: GPUSize64? = nil) {
-        let this = jsObject
-        _ = this[Strings.writeBuffer].function!(this: this, arguments: [buffer.jsValue, bufferOffset.jsValue, data.jsValue, dataOffset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func writeTexture(destination: GPUImageCopyTexture, data: BufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D) {
-        let this = jsObject
-        _ = this[Strings.writeTexture].function!(this: this, arguments: [destination.jsValue, data.jsValue, dataLayout.jsValue, size.jsValue])
-    }
-
-    @inlinable public func copyExternalImageToTexture(source: GPUImageCopyExternalImage, destination: GPUImageCopyTextureTagged, copySize: GPUExtent3D) {
-        let this = jsObject
-        _ = this[Strings.copyExternalImageToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
-    }
-}
-
-public class GPUQueueDescriptor: 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 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 class GPURenderBundleDescriptor: 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 class GPURenderBundleEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder, GPURenderEncoderBase {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderBundleEncoder].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func finish(descriptor: GPURenderBundleDescriptor? = nil) -> GPURenderBundle {
-        let this = jsObject
-        return this[Strings.finish].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-    }
-}
-
-public class GPURenderBundleEncoderDescriptor: BridgedDictionary {
-    public convenience init(depthReadOnly: Bool, stencilReadOnly: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.depthReadOnly] = depthReadOnly.jsValue
-        object[Strings.stencilReadOnly] = stencilReadOnly.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var depthReadOnly: Bool
-
-    @ReadWriteAttribute
-    public var stencilReadOnly: Bool
-}
-
-public protocol GPURenderEncoderBase: JSBridgedClass {}
-public extension GPURenderEncoderBase {
-    @inlinable func setPipeline(pipeline: GPURenderPipeline) {
-        let this = jsObject
-        _ = this[Strings.setPipeline].function!(this: this, arguments: [pipeline.jsValue])
-    }
-
-    @inlinable func setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
-        let this = jsObject
-        _ = this[Strings.setIndexBuffer].function!(this: this, arguments: [buffer.jsValue, indexFormat.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
-    }
-
-    @inlinable func setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
-        let this = jsObject
-        _ = this[Strings.setVertexBuffer].function!(this: this, arguments: [slot.jsValue, buffer.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
-    }
-
-    @inlinable func draw(vertexCount: GPUSize32, instanceCount: GPUSize32? = nil, firstVertex: GPUSize32? = nil, firstInstance: GPUSize32? = nil) {
-        let this = jsObject
-        _ = this[Strings.draw].function!(this: this, arguments: [vertexCount.jsValue, instanceCount?.jsValue ?? .undefined, firstVertex?.jsValue ?? .undefined, firstInstance?.jsValue ?? .undefined])
-    }
-
-    @inlinable 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: [indexCount.jsValue, instanceCount?.jsValue ?? .undefined, firstIndex?.jsValue ?? .undefined, baseVertex?.jsValue ?? .undefined, firstInstance?.jsValue ?? .undefined])
-    }
-
-    @inlinable func drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
-        let this = jsObject
-        _ = this[Strings.drawIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
-    }
-
-    @inlinable func drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
-        let this = jsObject
-        _ = this[Strings.drawIndexedIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
-    }
-}
-
-public class GPURenderPassColorAttachment: BridgedDictionary {
-    public convenience init(view: GPUTextureView, resolveTarget: GPUTextureView, clearValue: GPUColor, loadOp: GPULoadOp, storeOp: GPUStoreOp) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.view] = view.jsValue
-        object[Strings.resolveTarget] = resolveTarget.jsValue
-        object[Strings.clearValue] = clearValue.jsValue
-        object[Strings.loadOp] = loadOp.jsValue
-        object[Strings.storeOp] = storeOp.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var view: GPUTextureView
-
-    @ReadWriteAttribute
-    public var resolveTarget: GPUTextureView
-
-    @ReadWriteAttribute
-    public var clearValue: GPUColor
-
-    @ReadWriteAttribute
-    public var loadOp: GPULoadOp
-
-    @ReadWriteAttribute
-    public var storeOp: GPUStoreOp
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.view] = view.jsValue
-        object[Strings.depthClearValue] = depthClearValue.jsValue
-        object[Strings.depthLoadOp] = depthLoadOp.jsValue
-        object[Strings.depthStoreOp] = depthStoreOp.jsValue
-        object[Strings.depthReadOnly] = depthReadOnly.jsValue
-        object[Strings.stencilClearValue] = stencilClearValue.jsValue
-        object[Strings.stencilLoadOp] = stencilLoadOp.jsValue
-        object[Strings.stencilStoreOp] = stencilStoreOp.jsValue
-        object[Strings.stencilReadOnly] = stencilReadOnly.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var stencilClearValue: GPUStencilValue
-
-    @ReadWriteAttribute
-    public var stencilLoadOp: GPULoadOp
-
-    @ReadWriteAttribute
-    public var stencilStoreOp: GPUStoreOp
-
-    @ReadWriteAttribute
-    public var stencilReadOnly: Bool
-}
-
-public class GPURenderPassDescriptor: BridgedDictionary {
-    public convenience init(colorAttachments: [GPURenderPassColorAttachment?], depthStencilAttachment: GPURenderPassDepthStencilAttachment, occlusionQuerySet: GPUQuerySet, timestampWrites: GPURenderPassTimestampWrites) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.colorAttachments] = colorAttachments.jsValue
-        object[Strings.depthStencilAttachment] = depthStencilAttachment.jsValue
-        object[Strings.occlusionQuerySet] = occlusionQuerySet.jsValue
-        object[Strings.timestampWrites] = timestampWrites.jsValue
-        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)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var colorAttachments: [GPURenderPassColorAttachment?]
-
-    @ReadWriteAttribute
-    public var depthStencilAttachment: GPURenderPassDepthStencilAttachment
-
-    @ReadWriteAttribute
-    public var occlusionQuerySet: GPUQuerySet
-
-    @ReadWriteAttribute
-    public var timestampWrites: GPURenderPassTimestampWrites
-}
-
-public class GPURenderPassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder, GPURenderEncoderBase {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderPassEncoder].function }
-
-    public let 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) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = width.jsValue
-        let _arg3 = height.jsValue
-        let _arg4 = minDepth.jsValue
-        let _arg5 = maxDepth.jsValue
-        let this = jsObject
-        _ = this[Strings.setViewport].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
-    }
-
-    @inlinable public func setScissorRect(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, width: GPUIntegerCoordinate, height: GPUIntegerCoordinate) {
-        let this = jsObject
-        _ = this[Strings.setScissorRect].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
-    }
-
-    @inlinable public func setBlendConstant(color: GPUColor) {
-        let this = jsObject
-        _ = this[Strings.setBlendConstant].function!(this: this, arguments: [color.jsValue])
-    }
-
-    @inlinable public func setStencilReference(reference: GPUStencilValue) {
-        let this = jsObject
-        _ = this[Strings.setStencilReference].function!(this: this, arguments: [reference.jsValue])
-    }
-
-    @inlinable public func beginOcclusionQuery(queryIndex: GPUSize32) {
-        let this = jsObject
-        _ = this[Strings.beginOcclusionQuery].function!(this: this, arguments: [queryIndex.jsValue])
-    }
-
-    @inlinable public func endOcclusionQuery() {
-        let this = jsObject
-        _ = this[Strings.endOcclusionQuery].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func executeBundles(bundles: [GPURenderBundle]) {
-        let this = jsObject
-        _ = this[Strings.executeBundles].function!(this: this, arguments: [bundles.jsValue])
-    }
-
-    @inlinable 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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.colorFormats] = colorFormats.jsValue
-        object[Strings.depthStencilFormat] = depthStencilFormat.jsValue
-        object[Strings.sampleCount] = sampleCount.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var colorFormats: [GPUTextureFormat?]
-
-    @ReadWriteAttribute
-    public var depthStencilFormat: GPUTextureFormat
-
-    @ReadWriteAttribute
-    public var sampleCount: GPUSize32
-}
-
-public enum GPURenderPassTimestampLocation: JSString, JSValueCompatible {
-    case beginning = "beginning"
-    case end = "end"
-
-    @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 GPURenderPassTimestampWrite: BridgedDictionary {
-    public convenience init(querySet: GPUQuerySet, queryIndex: GPUSize32, location: GPURenderPassTimestampLocation) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.querySet] = querySet.jsValue
-        object[Strings.queryIndex] = queryIndex.jsValue
-        object[Strings.location] = location.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet)
-        _queryIndex = ReadWriteAttribute(jsObject: object, name: Strings.queryIndex)
-        _location = ReadWriteAttribute(jsObject: object, name: Strings.location)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var querySet: GPUQuerySet
-
-    @ReadWriteAttribute
-    public var queryIndex: GPUSize32
-
-    @ReadWriteAttribute
-    public var location: GPURenderPassTimestampLocation
-}
-
-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 class GPURenderPipelineDescriptor: BridgedDictionary {
-    public convenience init(vertex: GPUVertexState, primitive: GPUPrimitiveState, depthStencil: GPUDepthStencilState, multisample: GPUMultisampleState, fragment: GPUFragmentState) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.vertex] = vertex.jsValue
-        object[Strings.primitive] = primitive.jsValue
-        object[Strings.depthStencil] = depthStencil.jsValue
-        object[Strings.multisample] = multisample.jsValue
-        object[Strings.fragment] = fragment.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var vertex: GPUVertexState
-
-    @ReadWriteAttribute
-    public var primitive: GPUPrimitiveState
-
-    @ReadWriteAttribute
-    public var depthStencil: GPUDepthStencilState
-
-    @ReadWriteAttribute
-    public var multisample: GPUMultisampleState
-
-    @ReadWriteAttribute
-    public var fragment: GPUFragmentState
-}
-
-public class GPURequestAdapterOptions: BridgedDictionary {
-    public convenience init(powerPreference: GPUPowerPreference, forceFallbackAdapter: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.powerPreference] = powerPreference.jsValue
-        object[Strings.forceFallbackAdapter] = forceFallbackAdapter.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _powerPreference = ReadWriteAttribute(jsObject: object, name: Strings.powerPreference)
-        _forceFallbackAdapter = ReadWriteAttribute(jsObject: object, name: Strings.forceFallbackAdapter)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var powerPreference: GPUPowerPreference
-
-    @ReadWriteAttribute
-    public var forceFallbackAdapter: Bool
-}
-
-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 class GPUSamplerBindingLayout: BridgedDictionary {
-    public convenience init(type: GPUSamplerBindingType) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var type: GPUSamplerBindingType
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.addressModeU] = addressModeU.jsValue
-        object[Strings.addressModeV] = addressModeV.jsValue
-        object[Strings.addressModeW] = addressModeW.jsValue
-        object[Strings.magFilter] = magFilter.jsValue
-        object[Strings.minFilter] = minFilter.jsValue
-        object[Strings.mipmapFilter] = mipmapFilter.jsValue
-        object[Strings.lodMinClamp] = lodMinClamp.jsValue
-        object[Strings.lodMaxClamp] = lodMaxClamp.jsValue
-        object[Strings.compare] = compare.jsValue
-        object[Strings.maxAnisotropy] = maxAnisotropy.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var lodMinClamp: Float
-
-    @ReadWriteAttribute
-    public var lodMaxClamp: Float
-
-    @ReadWriteAttribute
-    public var compare: GPUCompareFunction
-
-    @ReadWriteAttribute
-    public var maxAnisotropy: UInt16
-}
-
-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
-    }
-
-    @inlinable public func compilationInfo() -> JSPromise {
-        let this = jsObject
-        return this[Strings.compilationInfo].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func compilationInfo() async throws -> GPUCompilationInfo {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.compilationInfo].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-}
-
-public class GPUShaderModuleCompilationHint: BridgedDictionary {
-    public convenience init(layout: GPUPipelineLayout) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.layout] = layout.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var layout: GPUPipelineLayout
-}
-
-public class GPUShaderModuleDescriptor: BridgedDictionary {
-    public convenience init(code: String, sourceMap: JSObject, hints: [String: GPUShaderModuleCompilationHint]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.code] = code.jsValue
-        object[Strings.sourceMap] = sourceMap.jsValue
-        object[Strings.hints] = hints.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    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)
-    }
-
-    @ReadWriteAttribute
-    public var code: String
-
-    @ReadWriteAttribute
-    public var sourceMap: JSObject
-
-    @ReadWriteAttribute
-    public var hints: [String: GPUShaderModuleCompilationHint]
-}
-
-public enum GPUShaderStage {
-    @inlinable public static var jsObject: JSObject {
-        JSObject.global[Strings.GPUShaderStage].object!
-    }
-
-    public static let VERTEX: GPUFlagsConstant = 0x1
-
-    public static let FRAGMENT: GPUFlagsConstant = 0x2
-
-    public static let COMPUTE: GPUFlagsConstant = 0x4
-}
-
-public class GPUStencilFaceState: BridgedDictionary {
-    public convenience init(compare: GPUCompareFunction, failOp: GPUStencilOperation, depthFailOp: GPUStencilOperation, passOp: GPUStencilOperation) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.compare] = compare.jsValue
-        object[Strings.failOp] = failOp.jsValue
-        object[Strings.depthFailOp] = depthFailOp.jsValue
-        object[Strings.passOp] = passOp.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var compare: GPUCompareFunction
-
-    @ReadWriteAttribute
-    public var failOp: GPUStencilOperation
-
-    @ReadWriteAttribute
-    public var depthFailOp: GPUStencilOperation
-
-    @ReadWriteAttribute
-    public var passOp: GPUStencilOperation
-}
-
-public enum GPUStencilOperation: JSString, JSValueCompatible {
-    case keep = "keep"
-    case zero = "zero"
-    case replace = "replace"
-    case invert = "invert"
-    case incrementClamp = "increment-clamp"
-    case decrementClamp = "decrement-clamp"
-    case incrementWrap = "increment-wrap"
-    case decrementWrap = "decrement-wrap"
-
-    @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 GPUStorageTextureAccess: JSString, JSValueCompatible {
-    case writeOnly = "write-only"
-
-    @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 GPUStorageTextureBindingLayout: BridgedDictionary {
-    public convenience init(access: GPUStorageTextureAccess, format: GPUTextureFormat, viewDimension: GPUTextureViewDimension) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.access] = access.jsValue
-        object[Strings.format] = format.jsValue
-        object[Strings.viewDimension] = viewDimension.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var access: GPUStorageTextureAccess
-
-    @ReadWriteAttribute
-    public var format: GPUTextureFormat
-
-    @ReadWriteAttribute
-    public var viewDimension: GPUTextureViewDimension
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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
-    }
-
-    // XXX: make me Set-like!
-}
-
-public class GPUSupportedLimits: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUSupportedLimits].function }
-
-    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)
-        _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)
-        _maxVertexAttributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexAttributes)
-        _maxVertexBufferArrayStride = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexBufferArrayStride)
-        _maxInterStageShaderComponents = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxInterStageShaderComponents)
-        _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
-    }
-
-    @ReadonlyAttribute
-    public var maxTextureDimension1D: UInt32
-
-    @ReadonlyAttribute
-    public var maxTextureDimension2D: UInt32
-
-    @ReadonlyAttribute
-    public var maxTextureDimension3D: UInt32
-
-    @ReadonlyAttribute
-    public var maxTextureArrayLayers: UInt32
-
-    @ReadonlyAttribute
-    public var maxBindGroups: UInt32
-
-    @ReadonlyAttribute
-    public var maxDynamicUniformBuffersPerPipelineLayout: UInt32
-
-    @ReadonlyAttribute
-    public var maxDynamicStorageBuffersPerPipelineLayout: UInt32
-
-    @ReadonlyAttribute
-    public var maxSampledTexturesPerShaderStage: UInt32
-
-    @ReadonlyAttribute
-    public var maxSamplersPerShaderStage: UInt32
-
-    @ReadonlyAttribute
-    public var maxStorageBuffersPerShaderStage: UInt32
-
-    @ReadonlyAttribute
-    public var maxStorageTexturesPerShaderStage: UInt32
-
-    @ReadonlyAttribute
-    public var maxUniformBuffersPerShaderStage: UInt32
-
-    @ReadonlyAttribute
-    public var maxUniformBufferBindingSize: UInt64
-
-    @ReadonlyAttribute
-    public var maxStorageBufferBindingSize: UInt64
-
-    @ReadonlyAttribute
-    public var minUniformBufferOffsetAlignment: UInt32
-
-    @ReadonlyAttribute
-    public var minStorageBufferOffsetAlignment: UInt32
-
-    @ReadonlyAttribute
-    public var maxVertexBuffers: UInt32
-
-    @ReadonlyAttribute
-    public var maxVertexAttributes: UInt32
-
-    @ReadonlyAttribute
-    public var maxVertexBufferArrayStride: UInt32
-
-    @ReadonlyAttribute
-    public var maxInterStageShaderComponents: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeWorkgroupStorageSize: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeInvocationsPerWorkgroup: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeWorkgroupSizeX: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeWorkgroupSizeY: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeWorkgroupSizeZ: UInt32
-
-    @ReadonlyAttribute
-    public var maxComputeWorkgroupsPerDimension: UInt32
-}
-
-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) {
-        self.jsObject = jsObject
-    }
-
-    @inlinable public func createView(descriptor: GPUTextureViewDescriptor? = nil) -> GPUTextureView {
-        let this = jsObject
-        return this[Strings.createView].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func destroy() {
-        let this = jsObject
-        _ = this[Strings.destroy].function!(this: this, arguments: [])
-    }
-}
-
-public enum GPUTextureAspect: JSString, JSValueCompatible {
-    case all = "all"
-    case stencilOnly = "stencil-only"
-    case depthOnly = "depth-only"
-
-    @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 GPUTextureBindingLayout: BridgedDictionary {
-    public convenience init(sampleType: GPUTextureSampleType, viewDimension: GPUTextureViewDimension, multisampled: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.sampleType] = sampleType.jsValue
-        object[Strings.viewDimension] = viewDimension.jsValue
-        object[Strings.multisampled] = multisampled.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var sampleType: GPUTextureSampleType
-
-    @ReadWriteAttribute
-    public var viewDimension: GPUTextureViewDimension
-
-    @ReadWriteAttribute
-    public var multisampled: Bool
-}
-
-public class GPUTextureDescriptor: BridgedDictionary {
-    public convenience init(size: GPUExtent3D, mipLevelCount: GPUIntegerCoordinate, sampleCount: GPUSize32, dimension: GPUTextureDimension, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.size] = size.jsValue
-        object[Strings.mipLevelCount] = mipLevelCount.jsValue
-        object[Strings.sampleCount] = sampleCount.jsValue
-        object[Strings.dimension] = dimension.jsValue
-        object[Strings.format] = format.jsValue
-        object[Strings.usage] = usage.jsValue
-        object[Strings.viewFormats] = viewFormats.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var usage: GPUTextureUsageFlags
-
-    @ReadWriteAttribute
-    public var viewFormats: [GPUTextureFormat]
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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"
-    case r8uint = "r8uint"
-    case r8sint = "r8sint"
-    case r16uint = "r16uint"
-    case r16sint = "r16sint"
-    case r16float = "r16float"
-    case rg8unorm = "rg8unorm"
-    case rg8snorm = "rg8snorm"
-    case rg8uint = "rg8uint"
-    case rg8sint = "rg8sint"
-    case r32uint = "r32uint"
-    case r32sint = "r32sint"
-    case r32float = "r32float"
-    case rg16uint = "rg16uint"
-    case rg16sint = "rg16sint"
-    case rg16float = "rg16float"
-    case rgba8unorm = "rgba8unorm"
-    case rgba8unormSrgb = "rgba8unorm-srgb"
-    case rgba8snorm = "rgba8snorm"
-    case rgba8uint = "rgba8uint"
-    case rgba8sint = "rgba8sint"
-    case bgra8unorm = "bgra8unorm"
-    case bgra8unormSrgb = "bgra8unorm-srgb"
-    case rgb9e5ufloat = "rgb9e5ufloat"
-    case rgb10a2unorm = "rgb10a2unorm"
-    case rg11b10ufloat = "rg11b10ufloat"
-    case rg32uint = "rg32uint"
-    case rg32sint = "rg32sint"
-    case rg32float = "rg32float"
-    case rgba16uint = "rgba16uint"
-    case rgba16sint = "rgba16sint"
-    case rgba16float = "rgba16float"
-    case rgba32uint = "rgba32uint"
-    case rgba32sint = "rgba32sint"
-    case rgba32float = "rgba32float"
-    case stencil8 = "stencil8"
-    case depth16unorm = "depth16unorm"
-    case depth24plus = "depth24plus"
-    case depth24plusStencil8 = "depth24plus-stencil8"
-    case depth32float = "depth32float"
-    case depth24unormStencil8 = "depth24unorm-stencil8"
-    case depth32floatStencil8 = "depth32float-stencil8"
-    case bc1RgbaUnorm = "bc1-rgba-unorm"
-    case bc1RgbaUnormSrgb = "bc1-rgba-unorm-srgb"
-    case bc2RgbaUnorm = "bc2-rgba-unorm"
-    case bc2RgbaUnormSrgb = "bc2-rgba-unorm-srgb"
-    case bc3RgbaUnorm = "bc3-rgba-unorm"
-    case bc3RgbaUnormSrgb = "bc3-rgba-unorm-srgb"
-    case bc4RUnorm = "bc4-r-unorm"
-    case bc4RSnorm = "bc4-r-snorm"
-    case bc5RgUnorm = "bc5-rg-unorm"
-    case bc5RgSnorm = "bc5-rg-snorm"
-    case bc6hRgbUfloat = "bc6h-rgb-ufloat"
-    case bc6hRgbFloat = "bc6h-rgb-float"
-    case bc7RgbaUnorm = "bc7-rgba-unorm"
-    case bc7RgbaUnormSrgb = "bc7-rgba-unorm-srgb"
-    case etc2Rgb8unorm = "etc2-rgb8unorm"
-    case etc2Rgb8unormSrgb = "etc2-rgb8unorm-srgb"
-    case etc2Rgb8a1unorm = "etc2-rgb8a1unorm"
-    case etc2Rgb8a1unormSrgb = "etc2-rgb8a1unorm-srgb"
-    case etc2Rgba8unorm = "etc2-rgba8unorm"
-    case etc2Rgba8unormSrgb = "etc2-rgba8unorm-srgb"
-    case eacR11unorm = "eac-r11unorm"
-    case eacR11snorm = "eac-r11snorm"
-    case eacRg11unorm = "eac-rg11unorm"
-    case eacRg11snorm = "eac-rg11snorm"
-    case astc4x4Unorm = "astc-4x4-unorm"
-    case astc4x4UnormSrgb = "astc-4x4-unorm-srgb"
-    case astc5x4Unorm = "astc-5x4-unorm"
-    case astc5x4UnormSrgb = "astc-5x4-unorm-srgb"
-    case astc5x5Unorm = "astc-5x5-unorm"
-    case astc5x5UnormSrgb = "astc-5x5-unorm-srgb"
-    case astc6x5Unorm = "astc-6x5-unorm"
-    case astc6x5UnormSrgb = "astc-6x5-unorm-srgb"
-    case astc6x6Unorm = "astc-6x6-unorm"
-    case astc6x6UnormSrgb = "astc-6x6-unorm-srgb"
-    case astc8x5Unorm = "astc-8x5-unorm"
-    case astc8x5UnormSrgb = "astc-8x5-unorm-srgb"
-    case astc8x6Unorm = "astc-8x6-unorm"
-    case astc8x6UnormSrgb = "astc-8x6-unorm-srgb"
-    case astc8x8Unorm = "astc-8x8-unorm"
-    case astc8x8UnormSrgb = "astc-8x8-unorm-srgb"
-    case astc10x5Unorm = "astc-10x5-unorm"
-    case astc10x5UnormSrgb = "astc-10x5-unorm-srgb"
-    case astc10x6Unorm = "astc-10x6-unorm"
-    case astc10x6UnormSrgb = "astc-10x6-unorm-srgb"
-    case astc10x8Unorm = "astc-10x8-unorm"
-    case astc10x8UnormSrgb = "astc-10x8-unorm-srgb"
-    case astc10x10Unorm = "astc-10x10-unorm"
-    case astc10x10UnormSrgb = "astc-10x10-unorm-srgb"
-    case astc12x10Unorm = "astc-12x10-unorm"
-    case astc12x10UnormSrgb = "astc-12x10-unorm-srgb"
-    case astc12x12Unorm = "astc-12x12-unorm"
-    case astc12x12UnormSrgb = "astc-12x12-unorm-srgb"
-
-    @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 GPUTextureSampleType: JSString, JSValueCompatible {
-    case float = "float"
-    case unfilterableFloat = "unfilterable-float"
-    case depth = "depth"
-    case sint = "sint"
-    case uint = "uint"
-
-    @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 GPUTextureUsage {
-    @inlinable public static var jsObject: JSObject {
-        JSObject.global[Strings.GPUTextureUsage].object!
-    }
-
-    public static let COPY_SRC: GPUFlagsConstant = 0x01
-
-    public static let COPY_DST: GPUFlagsConstant = 0x02
-
-    public static let TEXTURE_BINDING: GPUFlagsConstant = 0x04
-
-    public static let STORAGE_BINDING: GPUFlagsConstant = 0x08
-
-    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 class GPUTextureViewDescriptor: BridgedDictionary {
-    public convenience init(format: GPUTextureFormat, dimension: GPUTextureViewDimension, aspect: GPUTextureAspect, baseMipLevel: GPUIntegerCoordinate, mipLevelCount: GPUIntegerCoordinate, baseArrayLayer: GPUIntegerCoordinate, arrayLayerCount: GPUIntegerCoordinate) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.dimension] = dimension.jsValue
-        object[Strings.aspect] = aspect.jsValue
-        object[Strings.baseMipLevel] = baseMipLevel.jsValue
-        object[Strings.mipLevelCount] = mipLevelCount.jsValue
-        object[Strings.baseArrayLayer] = baseArrayLayer.jsValue
-        object[Strings.arrayLayerCount] = arrayLayerCount.jsValue
-        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)
-    }
-
-    @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
-
-    @ReadWriteAttribute
-    public var baseArrayLayer: GPUIntegerCoordinate
-
-    @ReadWriteAttribute
-    public var arrayLayerCount: GPUIntegerCoordinate
-}
-
-public enum GPUTextureViewDimension: JSString, JSValueCompatible {
-    case _1d = "1d"
-    case _2d = "2d"
-    case _2dArray = "2d-array"
-    case cube = "cube"
-    case cubeArray = "cube-array"
-    case _3d = "3d"
-
-    @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 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 convenience init(type: String, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, gpuUncapturedErrorEventInitDict.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var error: GPUError
-}
-
-public class GPUUncapturedErrorEventInit: BridgedDictionary {
-    public convenience init(error: GPUError) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.error] = error.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _error = ReadWriteAttribute(jsObject: object, name: Strings.error)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var error: GPUError
-}
-
-public class GPUValidationError: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUValidationError].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message)
-        self.jsObject = jsObject
-    }
-
-    @inlinable public convenience init(message: String) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [message.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var message: String
-}
-
-public class GPUVertexAttribute: BridgedDictionary {
-    public convenience init(format: GPUVertexFormat, offset: GPUSize64, shaderLocation: GPUIndex32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.offset] = offset.jsValue
-        object[Strings.shaderLocation] = shaderLocation.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var format: GPUVertexFormat
-
-    @ReadWriteAttribute
-    public var offset: GPUSize64
-
-    @ReadWriteAttribute
-    public var shaderLocation: GPUIndex32
-}
-
-public class GPUVertexBufferLayout: BridgedDictionary {
-    public convenience init(arrayStride: GPUSize64, stepMode: GPUVertexStepMode, attributes: [GPUVertexAttribute]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.arrayStride] = arrayStride.jsValue
-        object[Strings.stepMode] = stepMode.jsValue
-        object[Strings.attributes] = attributes.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var arrayStride: GPUSize64
-
-    @ReadWriteAttribute
-    public var stepMode: GPUVertexStepMode
-
-    @ReadWriteAttribute
-    public var attributes: [GPUVertexAttribute]
-}
-
-public enum GPUVertexFormat: JSString, JSValueCompatible {
-    case uint8x2 = "uint8x2"
-    case uint8x4 = "uint8x4"
-    case sint8x2 = "sint8x2"
-    case sint8x4 = "sint8x4"
-    case unorm8x2 = "unorm8x2"
-    case unorm8x4 = "unorm8x4"
-    case snorm8x2 = "snorm8x2"
-    case snorm8x4 = "snorm8x4"
-    case uint16x2 = "uint16x2"
-    case uint16x4 = "uint16x4"
-    case sint16x2 = "sint16x2"
-    case sint16x4 = "sint16x4"
-    case unorm16x2 = "unorm16x2"
-    case unorm16x4 = "unorm16x4"
-    case snorm16x2 = "snorm16x2"
-    case snorm16x4 = "snorm16x4"
-    case float16x2 = "float16x2"
-    case float16x4 = "float16x4"
-    case float32 = "float32"
-    case float32x2 = "float32x2"
-    case float32x3 = "float32x3"
-    case float32x4 = "float32x4"
-    case uint32 = "uint32"
-    case uint32x2 = "uint32x2"
-    case uint32x3 = "uint32x3"
-    case uint32x4 = "uint32x4"
-    case sint32 = "sint32"
-    case sint32x2 = "sint32x2"
-    case sint32x3 = "sint32x3"
-    case sint32x4 = "sint32x4"
-
-    @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 GPUVertexState: BridgedDictionary {
-    public convenience init(buffers: [GPUVertexBufferLayout?]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.buffers] = buffers.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _buffers = ReadWriteAttribute(jsObject: object, name: Strings.buffers)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var buffers: [GPUVertexBufferLayout?]
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class GainNode: AudioNode {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(context: BaseAudioContext, options: GainOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var gain: AudioParam
-}
-
-public class GainOptions: BridgedDictionary {
-    public convenience init(gain: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.gain] = gain.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var gain: Float
-}
-
-public protocol GenericTransformStream: JSBridgedClass {}
-public extension GenericTransformStream {
-    @inlinable var readable: ReadableStream { jsObject[Strings.readable].fromJSValue()! }
-
-    @inlinable var writable: WritableStream { jsObject[Strings.writable].fromJSValue()! }
-}
-
-public protocol GeometryUtils: JSBridgedClass {}
-public extension GeometryUtils {
-    @inlinable func getBoxQuads(options: BoxQuadOptions? = nil) -> [DOMQuad] {
-        let this = jsObject
-        return this[Strings.getBoxQuads].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable func convertQuadFromNode(quad: DOMQuadInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad {
-        let this = jsObject
-        return this[Strings.convertQuadFromNode].function!(this: this, arguments: [quad.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable func convertRectFromNode(rect: DOMRectReadOnly, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMQuad {
-        let this = jsObject
-        return this[Strings.convertRectFromNode].function!(this: this, arguments: [rect.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable func convertPointFromNode(point: DOMPointInit, from: GeometryNode, options: ConvertCoordinateOptions? = nil) -> DOMPoint {
-        let this = jsObject
-        return this[Strings.convertPointFromNode].function!(this: this, arguments: [point.jsValue, from.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-}
-
-public class GetAnimationsOptions: BridgedDictionary {
-    public convenience init(subtree: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.subtree] = subtree.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _subtree = ReadWriteAttribute(jsObject: object, name: Strings.subtree)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var subtree: Bool
-}
-
-public class GetRootNodeOptions: BridgedDictionary {
-    public convenience init(composed: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.composed] = composed.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _composed = ReadWriteAttribute(jsObject: object, name: Strings.composed)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var composed: Bool
-}
-
-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 var onauxclick: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onauxclick, in: jsObject] = newValue }
-    }
-
-    @inlinable var onblur: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onblur, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onblur, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncancel: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncancel, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncanplay: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncanplay, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncanplaythrough: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncanplaythrough, in: jsObject] = newValue }
-    }
-
-    @inlinable var onchange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onchange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onchange, in: jsObject] = newValue }
-    }
-
-    @inlinable var onclick: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onclick, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onclick, in: jsObject] = newValue }
-    }
-
-    @inlinable var onclose: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onclose, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onclose, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncontextlost: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncontextlost, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncontextmenu: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncontextmenu, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncontextrestored: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncontextrestored, in: jsObject] = newValue }
-    }
-
-    @inlinable var oncuechange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oncuechange, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondblclick: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondblclick, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondrag: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondrag, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondragend: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondragend, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondragenter: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondragenter, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondragleave: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondragleave, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondragover: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondragover, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondragstart: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondragstart, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondrop: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondrop, in: jsObject] = newValue }
-    }
-
-    @inlinable var ondurationchange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ondurationchange, in: jsObject] = newValue }
-    }
-
-    @inlinable var onemptied: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onemptied, in: jsObject] = newValue }
-    }
-
-    @inlinable var onended: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onended, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onended, in: jsObject] = newValue }
-    }
-
-    @inlinable var onerror: OnErrorEventHandler {
-        get { ClosureAttribute5Optional[Strings.onerror, in: jsObject] }
-        nonmutating set { ClosureAttribute5Optional[Strings.onerror, in: jsObject] = newValue }
-    }
-
-    @inlinable var onfocus: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onfocus, in: jsObject] = newValue }
-    }
-
-    @inlinable var onformdata: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onformdata, in: jsObject] = newValue }
-    }
-
-    @inlinable var oninput: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oninput, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oninput, in: jsObject] = newValue }
-    }
-
-    @inlinable var oninvalid: EventHandler {
-        get { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.oninvalid, in: jsObject] = newValue }
-    }
-
-    @inlinable var onkeydown: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onkeydown, in: jsObject] = newValue }
-    }
-
-    @inlinable var onkeypress: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onkeypress, in: jsObject] = newValue }
-    }
-
-    @inlinable var onkeyup: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onkeyup, in: jsObject] = newValue }
-    }
-
-    @inlinable var onload: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onload, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onload, in: jsObject] = newValue }
-    }
-
-    @inlinable var onloadeddata: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onloadeddata, in: jsObject] = newValue }
-    }
-
-    @inlinable var onloadedmetadata: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onloadedmetadata, in: jsObject] = newValue }
-    }
-
-    @inlinable var onloadstart: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onloadstart, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmousedown: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmousedown, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmouseenter: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmouseenter, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmouseleave: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmouseleave, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmousemove: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmousemove, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmouseout: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmouseout, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmouseover: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmouseover, in: jsObject] = newValue }
-    }
-
-    @inlinable var onmouseup: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onmouseup, in: jsObject] = newValue }
-    }
-
-    @inlinable var onpause: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onpause, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onpause, in: jsObject] = newValue }
-    }
-
-    @inlinable var onplay: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onplay, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onplay, in: jsObject] = newValue }
-    }
-
-    @inlinable var onplaying: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onplaying, in: jsObject] = newValue }
-    }
-
-    @inlinable var onprogress: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onprogress, in: jsObject] = newValue }
-    }
-
-    @inlinable var onratechange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onratechange, in: jsObject] = newValue }
-    }
-
-    @inlinable var onreset: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onreset, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onreset, in: jsObject] = newValue }
-    }
-
-    @inlinable var onresize: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onresize, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onresize, in: jsObject] = newValue }
-    }
-
-    @inlinable var onscroll: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onscroll, in: jsObject] = newValue }
-    }
-
-    @inlinable var onsecuritypolicyviolation: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onsecuritypolicyviolation, in: jsObject] = newValue }
-    }
-
-    @inlinable var onseeked: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onseeked, in: jsObject] = newValue }
-    }
-
-    @inlinable var onseeking: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onseeking, in: jsObject] = newValue }
-    }
-
-    @inlinable var onselect: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onselect, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onselect, in: jsObject] = newValue }
-    }
-
-    @inlinable var onslotchange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onslotchange, in: jsObject] = newValue }
-    }
-
-    @inlinable var onstalled: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onstalled, in: jsObject] = newValue }
-    }
-
-    @inlinable var onsubmit: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onsubmit, in: jsObject] = newValue }
-    }
-
-    @inlinable var onsuspend: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onsuspend, in: jsObject] = newValue }
-    }
-
-    @inlinable var ontimeupdate: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ontimeupdate, in: jsObject] = newValue }
-    }
-
-    @inlinable var ontoggle: EventHandler {
-        get { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.ontoggle, in: jsObject] = newValue }
-    }
-
-    @inlinable var onvolumechange: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onvolumechange, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwaiting: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwaiting, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwebkitanimationend: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationend, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwebkitanimationiteration: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationiteration, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwebkitanimationstart: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwebkitanimationstart, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwebkittransitionend: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwebkittransitionend, in: jsObject] = newValue }
-    }
-
-    @inlinable var onwheel: EventHandler {
-        get { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] }
-        nonmutating set { ClosureAttribute1Optional[Strings.onwheel, in: jsObject] = newValue }
-    }
-}
-
-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
-    }
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> Element {
-        jsObject[key].fromJSValue()!
-    }
-
-    @inlinable public subscript(key: String) -> Element_or_HTMLCollection? {
-        jsObject[key].fromJSValue()
-    }
-
-    @inlinable public func item(nameOrIndex: String? = nil) -> Element_or_HTMLCollection? {
-        let this = jsObject
-        return this[Strings.item].function!(this: this, arguments: [nameOrIndex?.jsValue ?? .undefined]).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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var target: String
-
-    @ReadWriteAttribute
-    public var download: String
-
-    @ReadWriteAttribute
-    public var ping: String
-
-    @ReadWriteAttribute
-    public var rel: String
-
-    @ReadonlyAttribute
-    public var relList: DOMTokenList
-
-    @ReadWriteAttribute
-    public var hreflang: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var text: String
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadWriteAttribute
-    public var coords: String
-
-    @ReadWriteAttribute
-    public var charset: String
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var rev: String
-
-    @ReadWriteAttribute
-    public var shape: String
-}
-
-public class HTMLAreaElement: HTMLElement, HTMLHyperlinkElementUtils {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var alt: String
-
-    @ReadWriteAttribute
-    public var coords: String
-
-    @ReadWriteAttribute
-    public var shape: String
-
-    @ReadWriteAttribute
-    public var target: String
-
-    @ReadWriteAttribute
-    public var download: String
-
-    @ReadWriteAttribute
-    public var ping: String
-
-    @ReadWriteAttribute
-    public var rel: String
-
-    @ReadonlyAttribute
-    public var relList: DOMTokenList
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadWriteAttribute
-    public var noHref: Bool
-}
-
-public class HTMLAudioElement: HTMLMediaElement {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLAudioElement].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @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 }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _clear = ReadWriteAttribute(jsObject: jsObject, name: Strings.clear)
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var clear: String
-}
-
-public class HTMLBaseElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var href: String
-
-    @ReadWriteAttribute
-    public var target: String
-}
-
-public class HTMLBodyElement: HTMLElement, WindowEventHandlers {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var text: String
-
-    @ReadWriteAttribute
-    public var link: String
-
-    @ReadWriteAttribute
-    public var vLink: String
-
-    @ReadWriteAttribute
-    public var aLink: String
-
-    @ReadWriteAttribute
-    public var bgColor: String
-
-    @ReadWriteAttribute
-    public var background: String
-}
-
-public class HTMLButtonElement: HTMLElement {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLButtonElement].function }
-
-    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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var formAction: String
-
-    @ReadWriteAttribute
-    public var formEnctype: String
-
-    @ReadWriteAttribute
-    public var formMethod: String
-
-    @ReadWriteAttribute
-    public var formNoValidate: Bool
-
-    @ReadWriteAttribute
-    public var formTarget: String
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var width: UInt32
-
-    @ReadWriteAttribute
-    public var height: UInt32
-
-    // XXX: member 'getContext' is ignored
-
-    @inlinable public func toDataURL(type: String? = nil, quality: JSValue? = nil) -> String {
-        let this = jsObject
-        return this[Strings.toDataURL].function!(this: this, arguments: [type?.jsValue ?? .undefined, quality?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    // XXX: member 'toBlob' is ignored
-
-    @inlinable public func transferControlToOffscreen() -> OffscreenCanvas {
-        let this = jsObject
-        return this[Strings.transferControlToOffscreen].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
-
-public class HTMLCollection: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.HTMLCollection].function }
-
-    public let jsObject: JSObject
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> Element? {
-        jsObject[key].fromJSValue()
-    }
-
-    @inlinable public subscript(key: String) -> Element? {
-        jsObject[key].fromJSValue()
-    }
-}
-
-public class HTMLDListElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var compact: Bool
-}
-
-public class HTMLDataElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var value: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var options: HTMLCollection
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var open: Bool
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var open: Bool
-
-    @ReadWriteAttribute
-    public var returnValue: String
-
-    @inlinable public func show() {
-        let this = jsObject
-        _ = this[Strings.show].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func showModal() {
-        let this = jsObject
-        _ = this[Strings.showModal].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func close(returnValue: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [returnValue?.jsValue ?? .undefined])
-    }
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var compact: Bool
-}
-
-public class HTMLDivElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-}
-
-public class HTMLElement: Element, GlobalEventHandlers, DocumentAndElementEventHandlers, ElementContentEditable, HTMLOrSVGElement {
-    @inlinable override public 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)
-        _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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var title: String
-
-    @ReadWriteAttribute
-    public var lang: String
-
-    @ReadWriteAttribute
-    public var translate: Bool
-
-    @ReadWriteAttribute
-    public var dir: String
-
-    @ReadWriteAttribute
-    public var hidden: Bool
-
-    @ReadWriteAttribute
-    public var inert: Bool
-
-    @inlinable public func click() {
-        let this = jsObject
-        _ = this[Strings.click].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var accessKey: String
-
-    @ReadonlyAttribute
-    public var accessKeyLabel: String
-
-    @ReadWriteAttribute
-    public var draggable: Bool
-
-    @ReadWriteAttribute
-    public var spellcheck: Bool
-
-    @ReadWriteAttribute
-    public var autocapitalize: String
-
-    @ReadWriteAttribute
-    public var innerText: String
-
-    @ReadWriteAttribute
-    public var outerText: String
-
-    @inlinable public func attachInternals() -> ElementInternals {
-        let this = jsObject
-        return this[Strings.attachInternals].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var offsetParent: Element?
-
-    @ReadonlyAttribute
-    public var offsetTop: Int32
-
-    @ReadonlyAttribute
-    public var offsetLeft: Int32
-
-    @ReadonlyAttribute
-    public var offsetWidth: Int32
-
-    @ReadonlyAttribute
-    public var offsetHeight: Int32
-}
-
-public class HTMLEmbedElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @ReadWriteAttribute
-    public var height: String
-
-    @inlinable public func getSVGDocument() -> Document? {
-        let this = jsObject
-        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var name: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @ReadonlyAttribute
-    public var elements: HTMLCollection
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-}
-
-public class HTMLFontElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var color: String
-
-    @ReadWriteAttribute
-    public var face: String
-
-    @ReadWriteAttribute
-    public var size: String
-}
-
-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 subscript(key: String) -> Element_or_RadioNodeList? {
-        jsObject[key].fromJSValue()
-    }
-}
-
-public class HTMLFormElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var acceptCharset: String
-
-    @ReadWriteAttribute
-    public var action: String
-
-    @ReadWriteAttribute
-    public var autocomplete: String
-
-    @ReadWriteAttribute
-    public var enctype: String
-
-    @ReadWriteAttribute
-    public var encoding: String
-
-    @ReadWriteAttribute
-    public var method: String
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var noValidate: Bool
-
-    @ReadWriteAttribute
-    public var target: String
-
-    @ReadWriteAttribute
-    public var rel: String
-
-    @ReadonlyAttribute
-    public var relList: DOMTokenList
-
-    @ReadonlyAttribute
-    public var elements: HTMLFormControlsCollection
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> Element {
-        jsObject[key].fromJSValue()!
-    }
-
-    @inlinable public subscript(key: String) -> Element_or_RadioNodeList {
-        jsObject[key].fromJSValue()!
-    }
-
-    @inlinable public func submit() {
-        let this = jsObject
-        _ = this[Strings.submit].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func requestSubmit(submitter: HTMLElement? = nil) {
-        let this = jsObject
-        _ = this[Strings.requestSubmit].function!(this: this, arguments: [submitter?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func reset() {
-        let this = jsObject
-        _ = this[Strings.reset].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable 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 }
-
-    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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var scrolling: String
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var frameBorder: String
-
-    @ReadWriteAttribute
-    public var longDesc: String
-
-    @ReadWriteAttribute
-    public var noResize: Bool
-
-    @ReadonlyAttribute
-    public var contentDocument: Document?
-
-    @ReadonlyAttribute
-    public var contentWindow: WindowProxy?
-
-    @ReadWriteAttribute
-    public var marginHeight: String
-
-    @ReadWriteAttribute
-    public var marginWidth: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var cols: String
-
-    @ReadWriteAttribute
-    public var rows: String
-}
-
-public class HTMLHRElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var color: String
-
-    @ReadWriteAttribute
-    public var noShade: Bool
-
-    @ReadWriteAttribute
-    public var size: String
-
-    @ReadWriteAttribute
-    public var width: String
-}
-
-public class HTMLHeadElement: HTMLElement {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHeadElement].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-}
-
-public class HTMLHtmlElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var version: String
-}
-
-public protocol HTMLHyperlinkElementUtils: JSBridgedClass {}
-public extension HTMLHyperlinkElementUtils {
-    @inlinable var href: String {
-        get { jsObject[Strings.href].fromJSValue()! }
-        nonmutating set { jsObject[Strings.href] = newValue.jsValue }
-    }
-
-    @inlinable var origin: String { jsObject[Strings.origin].fromJSValue()! }
-
-    @inlinable var `protocol`: String {
-        get { jsObject[Strings.protocol].fromJSValue()! }
-        nonmutating set { jsObject[Strings.protocol] = newValue.jsValue }
-    }
-
-    @inlinable var username: String {
-        get { jsObject[Strings.username].fromJSValue()! }
-        nonmutating set { jsObject[Strings.username] = newValue.jsValue }
-    }
-
-    @inlinable var password: String {
-        get { jsObject[Strings.password].fromJSValue()! }
-        nonmutating set { jsObject[Strings.password] = newValue.jsValue }
-    }
-
-    @inlinable var host: String {
-        get { jsObject[Strings.host].fromJSValue()! }
-        nonmutating set { jsObject[Strings.host] = newValue.jsValue }
-    }
-
-    @inlinable var hostname: String {
-        get { jsObject[Strings.hostname].fromJSValue()! }
-        nonmutating set { jsObject[Strings.hostname] = newValue.jsValue }
-    }
-
-    @inlinable var port: String {
-        get { jsObject[Strings.port].fromJSValue()! }
-        nonmutating set { jsObject[Strings.port] = newValue.jsValue }
-    }
-
-    @inlinable var pathname: String {
-        get { jsObject[Strings.pathname].fromJSValue()! }
-        nonmutating set { jsObject[Strings.pathname] = newValue.jsValue }
-    }
-
-    @inlinable var search: String {
-        get { jsObject[Strings.search].fromJSValue()! }
-        nonmutating set { jsObject[Strings.search] = newValue.jsValue }
-    }
-
-    @inlinable var hash: String {
-        get { jsObject[Strings.hash].fromJSValue()! }
-        nonmutating set { jsObject[Strings.hash] = newValue.jsValue }
-    }
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var srcdoc: String
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var sandbox: DOMTokenList
-
-    @ReadWriteAttribute
-    public var allow: String
-
-    @ReadWriteAttribute
-    public var allowFullscreen: Bool
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @ReadWriteAttribute
-    public var height: String
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadWriteAttribute
-    public var loading: String
-
-    @ReadonlyAttribute
-    public var contentDocument: Document?
-
-    @ReadonlyAttribute
-    public var contentWindow: WindowProxy?
-
-    @inlinable public func getSVGDocument() -> Document? {
-        let this = jsObject
-        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var scrolling: String
-
-    @ReadWriteAttribute
-    public var frameBorder: String
-
-    @ReadWriteAttribute
-    public var longDesc: String
-
-    @ReadWriteAttribute
-    public var marginHeight: String
-
-    @ReadWriteAttribute
-    public var marginWidth: String
-}
-
-public class HTMLImageElement: HTMLElement {
-    @inlinable override public 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)
-        _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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var alt: String
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var srcset: String
-
-    @ReadWriteAttribute
-    public var sizes: String
-
-    @ReadWriteAttribute
-    public var crossOrigin: String?
-
-    @ReadWriteAttribute
-    public var useMap: String
-
-    @ReadWriteAttribute
-    public var isMap: Bool
-
-    @ReadWriteAttribute
-    public var width: UInt32
-
-    @ReadWriteAttribute
-    public var height: UInt32
-
-    @ReadonlyAttribute
-    public var naturalWidth: UInt32
-
-    @ReadonlyAttribute
-    public var naturalHeight: UInt32
-
-    @ReadonlyAttribute
-    public var complete: Bool
-
-    @ReadonlyAttribute
-    public var currentSrc: String
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadWriteAttribute
-    public var decoding: String
-
-    @ReadWriteAttribute
-    public var loading: String
-
-    @inlinable 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
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var lowsrc: String
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var hspace: UInt32
-
-    @ReadWriteAttribute
-    public var vspace: UInt32
-
-    @ReadWriteAttribute
-    public var longDesc: String
-
-    @ReadWriteAttribute
-    public var border: String
-
-    @ReadonlyAttribute
-    public var x: Int32
-
-    @ReadonlyAttribute
-    public var y: Int32
-}
-
-public class HTMLInputElement: HTMLElement {
-    @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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var accept: String
-
-    @ReadWriteAttribute
-    public var alt: String
-
-    @ReadWriteAttribute
-    public var autocomplete: String
-
-    @ReadWriteAttribute
-    public var defaultChecked: Bool
-
-    @ReadWriteAttribute
-    public var checked: Bool
-
-    @ReadWriteAttribute
-    public var dirName: String
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var files: FileList?
-
-    @ReadWriteAttribute
-    public var formAction: String
-
-    @ReadWriteAttribute
-    public var formEnctype: String
-
-    @ReadWriteAttribute
-    public var formMethod: String
-
-    @ReadWriteAttribute
-    public var formNoValidate: Bool
-
-    @ReadWriteAttribute
-    public var formTarget: String
-
-    @ReadWriteAttribute
-    public var height: UInt32
-
-    @ReadWriteAttribute
-    public var indeterminate: Bool
-
-    @ReadonlyAttribute
-    public var list: HTMLElement?
-
-    @ReadWriteAttribute
-    public var max: String
-
-    @ReadWriteAttribute
-    public var maxLength: Int32
-
-    @ReadWriteAttribute
-    public var min: String
-
-    @ReadWriteAttribute
-    public var minLength: Int32
-
-    @ReadWriteAttribute
-    public var multiple: Bool
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var pattern: String
-
-    @ReadWriteAttribute
-    public var placeholder: String
-
-    @ReadWriteAttribute
-    public var readOnly: Bool
-
-    @ReadWriteAttribute
-    public var required: Bool
-
-    @ReadWriteAttribute
-    public var size: UInt32
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var step: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var defaultValue: String
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadWriteAttribute
-    public var valueAsDate: JSObject?
-
-    @ReadWriteAttribute
-    public var valueAsNumber: Double
-
-    @ReadWriteAttribute
-    public var width: UInt32
-
-    @inlinable public func stepUp(n: Int32? = nil) {
-        let this = jsObject
-        _ = this[Strings.stepUp].function!(this: this, arguments: [n?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func stepDown(n: Int32? = nil) {
-        let this = jsObject
-        _ = this[Strings.stepDown].function!(this: this, arguments: [n?.jsValue ?? .undefined])
-    }
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var labels: NodeList?
-
-    @inlinable public func select() {
-        let this = jsObject
-        _ = this[Strings.select].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var selectionStart: UInt32?
-
-    @ReadWriteAttribute
-    public var selectionEnd: UInt32?
-
-    @ReadWriteAttribute
-    public var selectionDirection: String?
-
-    @inlinable public func setRangeText(replacement: String) {
-        let this = jsObject
-        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue])
-    }
-
-    @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) {
-        let this = jsObject
-        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue, start.jsValue, end.jsValue, selectionMode?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.setSelectionRange].function!(this: this, arguments: [start.jsValue, end.jsValue, direction?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func showPicker() {
-        let this = jsObject
-        _ = this[Strings.showPicker].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var useMap: String
-}
-
-public class HTMLLIElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var value: Int32
-
-    @ReadWriteAttribute
-    public var type: String
-}
-
-public class HTMLLabelElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var htmlFor: String
-
-    @ReadonlyAttribute
-    public var control: HTMLElement?
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var align: String
-}
-
-public class HTMLLinkElement: HTMLElement {
-    @inlinable override public 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)
-        _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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var href: String
-
-    @ReadWriteAttribute
-    public var crossOrigin: String?
-
-    @ReadWriteAttribute
-    public var rel: String
-
-    @ReadWriteAttribute
-    public var `as`: String
-
-    @ReadonlyAttribute
-    public var relList: DOMTokenList
-
-    @ReadWriteAttribute
-    public var media: String
-
-    @ReadWriteAttribute
-    public var integrity: String
-
-    @ReadWriteAttribute
-    public var hreflang: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadonlyAttribute
-    public var sizes: DOMTokenList
-
-    @ReadWriteAttribute
-    public var imageSrcset: String
-
-    @ReadWriteAttribute
-    public var imageSizes: String
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadonlyAttribute
-    public var blocking: DOMTokenList
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadWriteAttribute
-    public var charset: String
-
-    @ReadWriteAttribute
-    public var rev: String
-
-    @ReadWriteAttribute
-    public var target: String
-}
-
-public class HTMLMapElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var areas: HTMLCollection
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var behavior: String
-
-    @ReadWriteAttribute
-    public var bgColor: String
-
-    @ReadWriteAttribute
-    public var direction: String
-
-    @ReadWriteAttribute
-    public var height: String
-
-    @ReadWriteAttribute
-    public var hspace: UInt32
-
-    @ReadWriteAttribute
-    public var loop: Int32
-
-    @ReadWriteAttribute
-    public var scrollAmount: UInt32
-
-    @ReadWriteAttribute
-    public var scrollDelay: UInt32
-
-    @ReadWriteAttribute
-    public var trueSpeed: Bool
-
-    @ReadWriteAttribute
-    public var vspace: UInt32
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @inlinable public func start() {
-        let this = jsObject
-        _ = this[Strings.start].function!(this: this, arguments: [])
-    }
-
-    @inlinable 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)
-        _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
-
-    // XXX: member 'srcObject' is ignored
-
-    @ReadonlyAttribute
-    public var currentSrc: String
-
-    @ReadWriteAttribute
-    public var crossOrigin: String?
-
-    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
-
-    @ReadWriteAttribute
-    public var preload: String
-
-    @ReadonlyAttribute
-    public var buffered: TimeRanges
-
-    @inlinable public func load() {
-        let this = jsObject
-        _ = this[Strings.load].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func canPlayType(type: String) -> CanPlayTypeResult {
-        let this = jsObject
-        return this[Strings.canPlayType].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
-
-    public static let HAVE_NOTHING: UInt16 = 0
-
-    public static let HAVE_METADATA: UInt16 = 1
-
-    public static let HAVE_CURRENT_DATA: UInt16 = 2
-
-    public static let HAVE_FUTURE_DATA: UInt16 = 3
-
-    public static let HAVE_ENOUGH_DATA: UInt16 = 4
-
-    @ReadonlyAttribute
-    public var readyState: UInt16
-
-    @ReadonlyAttribute
-    public var seeking: Bool
-
-    @ReadWriteAttribute
-    public var currentTime: Double
-
-    @inlinable public func fastSeek(time: Double) {
-        let this = jsObject
-        _ = this[Strings.fastSeek].function!(this: this, arguments: [time.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var duration: Double
-
-    @inlinable public func getStartDate() -> JSObject {
-        let this = jsObject
-        return this[Strings.getStartDate].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var paused: Bool
-
-    @ReadWriteAttribute
-    public var defaultPlaybackRate: Double
-
-    @ReadWriteAttribute
-    public var playbackRate: Double
-
-    @ReadWriteAttribute
-    public var preservesPitch: Bool
-
-    @ReadonlyAttribute
-    public var played: TimeRanges
-
-    @ReadonlyAttribute
-    public var seekable: TimeRanges
-
-    @ReadonlyAttribute
-    public var ended: Bool
-
-    @ReadWriteAttribute
-    public var autoplay: Bool
-
-    @ReadWriteAttribute
-    public var loop: Bool
-
-    @inlinable 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
-    }
-
-    @inlinable public func pause() {
-        let this = jsObject
-        _ = this[Strings.pause].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var controls: Bool
-
-    @ReadWriteAttribute
-    public var volume: Double
-
-    @ReadWriteAttribute
-    public var muted: Bool
-
-    @ReadWriteAttribute
-    public var defaultMuted: Bool
-
-    @ReadonlyAttribute
-    public var audioTracks: AudioTrackList
-
-    @ReadonlyAttribute
-    public var videoTracks: VideoTrackList
-
-    @ReadonlyAttribute
-    public var textTracks: TextTrackList
-
-    @inlinable public func addTextTrack(kind: TextTrackKind, label: String? = nil, language: String? = nil) -> TextTrack {
-        let this = jsObject
-        return this[Strings.addTextTrack].function!(this: this, arguments: [kind.jsValue, label?.jsValue ?? .undefined, language?.jsValue ?? .undefined]).fromJSValue()!
-    }
-}
-
-public class HTMLMenuElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var compact: Bool
-}
-
-public class HTMLMetaElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var httpEquiv: String
-
-    @ReadWriteAttribute
-    public var content: String
-
-    @ReadWriteAttribute
-    public var media: String
-
-    @ReadWriteAttribute
-    public var scheme: String
-}
-
-public class HTMLMeterElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var value: Double
-
-    @ReadWriteAttribute
-    public var min: Double
-
-    @ReadWriteAttribute
-    public var max: Double
-
-    @ReadWriteAttribute
-    public var low: Double
-
-    @ReadWriteAttribute
-    public var high: Double
-
-    @ReadWriteAttribute
-    public var optimum: Double
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-}
-
-public class HTMLModElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var cite: String
-
-    @ReadWriteAttribute
-    public var dateTime: String
-}
-
-public class HTMLOListElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var reversed: Bool
-
-    @ReadWriteAttribute
-    public var start: Int32
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var compact: Bool
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var data: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @ReadWriteAttribute
-    public var height: String
-
-    @ReadonlyAttribute
-    public var contentDocument: Document?
-
-    @ReadonlyAttribute
-    public var contentWindow: WindowProxy?
-
-    @inlinable public func getSVGDocument() -> Document? {
-        let this = jsObject
-        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var archive: String
-
-    @ReadWriteAttribute
-    public var code: String
-
-    @ReadWriteAttribute
-    public var declare: Bool
-
-    @ReadWriteAttribute
-    public var hspace: UInt32
-
-    @ReadWriteAttribute
-    public var standby: String
-
-    @ReadWriteAttribute
-    public var vspace: UInt32
-
-    @ReadWriteAttribute
-    public var codeBase: String
-
-    @ReadWriteAttribute
-    public var codeType: String
-
-    @ReadWriteAttribute
-    public var useMap: String
-
-    @ReadWriteAttribute
-    public var border: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadWriteAttribute
-    public var label: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var label: String
-
-    @ReadWriteAttribute
-    public var defaultSelected: Bool
-
-    @ReadWriteAttribute
-    public var selected: Bool
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadWriteAttribute
-    public var text: String
-
-    @ReadonlyAttribute
-    public var index: Int32
-}
-
-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)
-    }
-
-    @usableFromInline let _length: ReadWriteAttribute<UInt32>
-    @inlinable override public var length: UInt32 {
-        get { _length.wrappedValue }
-        set { _length.wrappedValue = newValue }
-    }
-
-    // XXX: unsupported setter for keys of type UInt32
-
-    @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) {
-        let this = jsObject
-        _ = this[Strings.add].function!(this: this, arguments: [element.jsValue, before?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func remove(index: Int32) {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var selectedIndex: Int32
-}
-
-public protocol HTMLOrSVGElement: JSBridgedClass {}
-public extension HTMLOrSVGElement {
-    @inlinable var dataset: DOMStringMap { jsObject[Strings.dataset].fromJSValue()! }
-
-    @inlinable var nonce: String {
-        get { jsObject[Strings.nonce].fromJSValue()! }
-        nonmutating set { jsObject[Strings.nonce] = newValue.jsValue }
-    }
-
-    @inlinable var autofocus: Bool {
-        get { jsObject[Strings.autofocus].fromJSValue()! }
-        nonmutating set { jsObject[Strings.autofocus] = newValue.jsValue }
-    }
-
-    @inlinable var tabIndex: Int32 {
-        get { jsObject[Strings.tabIndex].fromJSValue()! }
-        nonmutating set { jsObject[Strings.tabIndex] = newValue.jsValue }
-    }
-
-    @inlinable func focus(options: FocusOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.focus].function!(this: this, arguments: [options?.jsValue ?? .undefined])
-    }
-
-    @inlinable 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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var htmlFor: DOMTokenList
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var defaultValue: String
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-}
-
-public class HTMLParamElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var valueType: String
-}
-
-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 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 }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width)
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var width: Int32
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var value: Double
-
-    @ReadWriteAttribute
-    public var max: Double
-
-    @ReadonlyAttribute
-    public var position: Double
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-}
-
-public class HTMLQuoteElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var cite: String
-}
-
-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)
-        _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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var noModule: Bool
-
-    @ReadWriteAttribute
-    public var async: Bool
-
-    @ReadWriteAttribute
-    public var `defer`: Bool
-
-    @ReadWriteAttribute
-    public var crossOrigin: String?
-
-    @ReadWriteAttribute
-    public var text: String
-
-    @ReadWriteAttribute
-    public var integrity: String
-
-    @ReadWriteAttribute
-    public var referrerPolicy: String
-
-    @ReadonlyAttribute
-    public var blocking: DOMTokenList
-
-    @inlinable public static func supports(type: String) -> Bool {
-        let this = constructor!
-        return this[Strings.supports].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
-
-    @ReadWriteAttribute
-    public var charset: String
-
-    @ReadWriteAttribute
-    public var event: String
-
-    @ReadWriteAttribute
-    public var htmlFor: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var autocomplete: String
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var multiple: Bool
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var required: Bool
-
-    @ReadWriteAttribute
-    public var size: UInt32
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @ReadonlyAttribute
-    public var options: HTMLOptionsCollection
-
-    @ReadWriteAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> HTMLOptionElement? {
-        jsObject[key].fromJSValue()
-    }
-
-    @inlinable public func namedItem(name: String) -> HTMLOptionElement? {
-        let this = jsObject
-        return this[Strings.namedItem].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) {
-        let this = jsObject
-        _ = this[Strings.add].function!(this: this, arguments: [element.jsValue, before?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func remove() {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func remove(index: Int32) {
-        let this = jsObject
-        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
-    }
-
-    // XXX: unsupported setter for keys of type UInt32
-
-    @ReadonlyAttribute
-    public var selectedOptions: HTMLCollection
-
-    @ReadWriteAttribute
-    public var selectedIndex: Int32
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-}
-
-public class HTMLSlotElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @inlinable public func assignedNodes(options: AssignedNodesOptions? = nil) -> [Node] {
-        let this = jsObject
-        return this[Strings.assignedNodes].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func assignedElements(options: AssignedNodesOptions? = nil) -> [Element] {
-        let this = jsObject
-        return this[Strings.assignedElements].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func assign(nodes: Element_or_Text...) {
-        let this = jsObject
-        _ = this[Strings.assign].function!(this: this, arguments: nodes.map(\.jsValue))
-    }
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var srcset: String
-
-    @ReadWriteAttribute
-    public var sizes: String
-
-    @ReadWriteAttribute
-    public var media: String
-
-    @ReadWriteAttribute
-    public var width: UInt32
-
-    @ReadWriteAttribute
-    public var height: UInt32
-}
-
-public class HTMLSpanElement: HTMLElement {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSpanElement].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @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 }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var media: String
-
-    @ReadonlyAttribute
-    public var blocking: DOMTokenList
-
-    @ReadWriteAttribute
-    public var type: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var colSpan: UInt32
-
-    @ReadWriteAttribute
-    public var rowSpan: UInt32
-
-    @ReadWriteAttribute
-    public var headers: String
-
-    @ReadonlyAttribute
-    public var cellIndex: Int32
-
-    @ReadWriteAttribute
-    public var scope: String
-
-    @ReadWriteAttribute
-    public var abbr: String
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var axis: String
-
-    @ReadWriteAttribute
-    public var height: String
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @ReadWriteAttribute
-    public var ch: String
-
-    @ReadWriteAttribute
-    public var chOff: String
-
-    @ReadWriteAttribute
-    public var noWrap: Bool
-
-    @ReadWriteAttribute
-    public var vAlign: String
-
-    @ReadWriteAttribute
-    public var bgColor: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var span: UInt32
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var ch: String
-
-    @ReadWriteAttribute
-    public var chOff: String
-
-    @ReadWriteAttribute
-    public var vAlign: String
-
-    @ReadWriteAttribute
-    public var width: String
-}
-
-public class HTMLTableElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var caption: HTMLTableCaptionElement?
-
-    @inlinable public func createCaption() -> HTMLTableCaptionElement {
-        let this = jsObject
-        return this[Strings.createCaption].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func deleteCaption() {
-        let this = jsObject
-        _ = this[Strings.deleteCaption].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var tHead: HTMLTableSectionElement?
-
-    @inlinable public func createTHead() -> HTMLTableSectionElement {
-        let this = jsObject
-        return this[Strings.createTHead].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func deleteTHead() {
-        let this = jsObject
-        _ = this[Strings.deleteTHead].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var tFoot: HTMLTableSectionElement?
-
-    @inlinable public func createTFoot() -> HTMLTableSectionElement {
-        let this = jsObject
-        return this[Strings.createTFoot].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func deleteTFoot() {
-        let this = jsObject
-        _ = this[Strings.deleteTFoot].function!(this: this, arguments: [])
-    }
-
-    @ReadonlyAttribute
-    public var tBodies: HTMLCollection
-
-    @inlinable public func createTBody() -> HTMLTableSectionElement {
-        let this = jsObject
-        return this[Strings.createTBody].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var rows: HTMLCollection
-
-    @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement {
-        let this = jsObject
-        return this[Strings.insertRow].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func deleteRow(index: Int32) {
-        let this = jsObject
-        _ = this[Strings.deleteRow].function!(this: this, arguments: [index.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var border: String
-
-    @ReadWriteAttribute
-    public var frame: String
-
-    @ReadWriteAttribute
-    public var rules: String
-
-    @ReadWriteAttribute
-    public var summary: String
-
-    @ReadWriteAttribute
-    public var width: String
-
-    @ReadWriteAttribute
-    public var bgColor: String
-
-    @ReadWriteAttribute
-    public var cellPadding: String
-
-    @ReadWriteAttribute
-    public var cellSpacing: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var rowIndex: Int32
-
-    @ReadonlyAttribute
-    public var sectionRowIndex: Int32
-
-    @ReadonlyAttribute
-    public var cells: HTMLCollection
-
-    @inlinable public func insertCell(index: Int32? = nil) -> HTMLTableCellElement {
-        let this = jsObject
-        return this[Strings.insertCell].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func deleteCell(index: Int32) {
-        let this = jsObject
-        _ = this[Strings.deleteCell].function!(this: this, arguments: [index.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var ch: String
-
-    @ReadWriteAttribute
-    public var chOff: String
-
-    @ReadWriteAttribute
-    public var vAlign: String
-
-    @ReadWriteAttribute
-    public var bgColor: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var rows: HTMLCollection
-
-    @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement {
-        let this = jsObject
-        return this[Strings.insertRow].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
-    }
-
-    @inlinable public func deleteRow(index: Int32) {
-        let this = jsObject
-        _ = this[Strings.deleteRow].function!(this: this, arguments: [index.jsValue])
-    }
-
-    @ReadWriteAttribute
-    public var align: String
-
-    @ReadWriteAttribute
-    public var ch: String
-
-    @ReadWriteAttribute
-    public var chOff: String
-
-    @ReadWriteAttribute
-    public var vAlign: String
-}
-
-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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadonlyAttribute
-    public var content: DocumentFragment
-}
-
-public class HTMLTextAreaElement: HTMLElement {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTextAreaElement].function }
-
-    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 convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var autocomplete: String
-
-    @ReadWriteAttribute
-    public var cols: UInt32
-
-    @ReadWriteAttribute
-    public var dirName: String
-
-    @ReadWriteAttribute
-    public var disabled: Bool
-
-    @ReadonlyAttribute
-    public var form: HTMLFormElement?
-
-    @ReadWriteAttribute
-    public var maxLength: Int32
-
-    @ReadWriteAttribute
-    public var minLength: Int32
-
-    @ReadWriteAttribute
-    public var name: String
-
-    @ReadWriteAttribute
-    public var placeholder: String
-
-    @ReadWriteAttribute
-    public var readOnly: Bool
-
-    @ReadWriteAttribute
-    public var required: Bool
-
-    @ReadWriteAttribute
-    public var rows: UInt32
-
-    @ReadWriteAttribute
-    public var wrap: String
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var defaultValue: String
-
-    @ReadWriteAttribute
-    public var value: String
-
-    @ReadonlyAttribute
-    public var textLength: UInt32
-
-    @ReadonlyAttribute
-    public var willValidate: Bool
-
-    @ReadonlyAttribute
-    public var validity: ValidityState
-
-    @ReadonlyAttribute
-    public var validationMessage: String
-
-    @inlinable public func checkValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func reportValidity() -> Bool {
-        let this = jsObject
-        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setCustomValidity(error: String) {
-        let this = jsObject
-        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
-    }
-
-    @ReadonlyAttribute
-    public var labels: NodeList
-
-    @inlinable public func select() {
-        let this = jsObject
-        _ = this[Strings.select].function!(this: this, arguments: [])
-    }
-
-    @ReadWriteAttribute
-    public var selectionStart: UInt32
-
-    @ReadWriteAttribute
-    public var selectionEnd: UInt32
-
-    @ReadWriteAttribute
-    public var selectionDirection: String
-
-    @inlinable public func setRangeText(replacement: String) {
-        let this = jsObject
-        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue])
-    }
-
-    @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) {
-        let this = jsObject
-        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue, start.jsValue, end.jsValue, selectionMode?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.setSelectionRange].function!(this: this, arguments: [start.jsValue, end.jsValue, direction?.jsValue ?? .undefined])
-    }
-}
-
-public class HTMLTimeElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var dateTime: String
-}
-
-public class HTMLTitleElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var text: String
-}
-
-public class HTMLTrackElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var kind: String
-
-    @ReadWriteAttribute
-    public var src: String
-
-    @ReadWriteAttribute
-    public var srclang: String
-
-    @ReadWriteAttribute
-    public var label: String
-
-    @ReadWriteAttribute
-    public var `default`: Bool
-
-    public static let NONE: UInt16 = 0
-
-    public static let LOADING: UInt16 = 1
-
-    public static let LOADED: UInt16 = 2
-
-    public static let ERROR: UInt16 = 3
-
-    @ReadonlyAttribute
-    public var readyState: UInt16
-
-    @ReadonlyAttribute
-    public var track: TextTrack
-}
-
-public class HTMLUListElement: HTMLElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var compact: Bool
-
-    @ReadWriteAttribute
-    public var type: String
-}
-
-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)
-    }
-}
-
-public class HTMLVideoElement: HTMLMediaElement {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @ReadWriteAttribute
-    public var width: UInt32
-
-    @ReadWriteAttribute
-    public var height: UInt32
-
-    @ReadonlyAttribute
-    public var videoWidth: UInt32
-
-    @ReadonlyAttribute
-    public var videoHeight: UInt32
-
-    @ReadWriteAttribute
-    public var poster: String
-
-    @ReadWriteAttribute
-    public var playsInline: Bool
-}
-
-public enum HardwareAcceleration: JSString, JSValueCompatible {
-    case noPreference = "no-preference"
-    case preferHardware = "prefer-hardware"
-    case preferSoftware = "prefer-software"
-
-    @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 HashChangeEvent: Event {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(type: String, eventInitDict: HashChangeEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var oldURL: String
-
-    @ReadonlyAttribute
-    public var newURL: String
-}
-
-public class HashChangeEventInit: BridgedDictionary {
-    public convenience init(oldURL: String, newURL: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.oldURL] = oldURL.jsValue
-        object[Strings.newURL] = newURL.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var oldURL: String
-
-    @ReadWriteAttribute
-    public var newURL: String
-}
-
-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
-    }
-
-    @inlinable public convenience init(init: HeadersInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public func append(name: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
-    }
-
-    @inlinable public func delete(name: String) {
-        let this = jsObject
-        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
-    }
-
-    @inlinable public func get(name: String) -> String? {
-        let this = jsObject
-        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func has(name: String) -> Bool {
-        let this = jsObject
-        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func set(name: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
-    }
-
-    public typealias Element = String
-    public func makeIterator() -> ValueIterableIterator<Headers> {
-        ValueIterableIterator(sequence: self)
-    }
-}
-
-public class History: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.History].function }
-
-    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
-    }
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @ReadWriteAttribute
-    public var scrollRestoration: ScrollRestoration
-
-    @ReadonlyAttribute
-    public var state: JSValue
-
-    @inlinable public func go(delta: Int32? = nil) {
-        let this = jsObject
-        _ = this[Strings.go].function!(this: this, arguments: [delta?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func back() {
-        let this = jsObject
-        _ = this[Strings.back].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func forward() {
-        let this = jsObject
-        _ = this[Strings.forward].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func pushState(data: JSValue, unused: String, url: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.pushState].function!(this: this, arguments: [data.jsValue, unused.jsValue, url?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func replaceState(data: JSValue, unused: String, url: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.replaceState].function!(this: this, arguments: [data.jsValue, unused.jsValue, url?.jsValue ?? .undefined])
-    }
-}
-
-public class IIRFilterNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.IIRFilterNode].function }
-
-    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: [context.jsValue, options.jsValue]))
-    }
-
-    @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) {
-        let this = jsObject
-        _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue])
-    }
-}
-
-public class IIRFilterOptions: BridgedDictionary {
-    public convenience init(feedforward: [Double], feedback: [Double]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.feedforward] = feedforward.jsValue
-        object[Strings.feedback] = feedback.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var feedforward: [Double]
-
-    @ReadWriteAttribute
-    public var feedback: [Double]
-}
-
-public class ImageBitmap: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageBitmap].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)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var width: UInt32
-
-    @ReadonlyAttribute
-    public var height: UInt32
-
-    @inlinable 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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.imageOrientation] = imageOrientation.jsValue
-        object[Strings.premultiplyAlpha] = premultiplyAlpha.jsValue
-        object[Strings.colorSpaceConversion] = colorSpaceConversion.jsValue
-        object[Strings.resizeWidth] = resizeWidth.jsValue
-        object[Strings.resizeHeight] = resizeHeight.jsValue
-        object[Strings.resizeQuality] = resizeQuality.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var imageOrientation: ImageOrientation
-
-    @ReadWriteAttribute
-    public var premultiplyAlpha: PremultiplyAlpha
-
-    @ReadWriteAttribute
-    public var colorSpaceConversion: ColorSpaceConversion
-
-    @ReadWriteAttribute
-    public var resizeWidth: UInt32
-
-    @ReadWriteAttribute
-    public var resizeHeight: UInt32
-
-    @ReadWriteAttribute
-    public var resizeQuality: ResizeQuality
-}
-
-public class ImageBitmapRenderingContext: JSBridgedClass {
-    @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
-    }
-
-    @ReadonlyAttribute
-    public var canvas: HTMLCanvasElement_or_OffscreenCanvas
-
-    @inlinable public func transferFromImageBitmap(bitmap: ImageBitmap?) {
-        let this = jsObject
-        _ = this[Strings.transferFromImageBitmap].function!(this: this, arguments: [bitmap.jsValue])
-    }
-}
-
-public class ImageBitmapRenderingContextSettings: BridgedDictionary {
-    public convenience init(alpha: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.alpha] = alpha.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var alpha: Bool
-}
-
-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
-    }
-
-    @inlinable public convenience init(sw: UInt32, sh: UInt32, settings: ImageDataSettings? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public convenience init(data: Uint8ClampedArray, sw: UInt32, sh: UInt32? = nil, settings: ImageDataSettings? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data.jsValue, sw.jsValue, sh?.jsValue ?? .undefined, settings?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var width: UInt32
-
-    @ReadonlyAttribute
-    public var height: UInt32
-
-    @ReadonlyAttribute
-    public var data: Uint8ClampedArray
-
-    @ReadonlyAttribute
-    public var colorSpace: PredefinedColorSpace
-}
-
-public class ImageDataSettings: BridgedDictionary {
-    public convenience init(colorSpace: PredefinedColorSpace) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.colorSpace] = colorSpace.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var colorSpace: PredefinedColorSpace
-}
-
-public class ImageDecodeOptions: BridgedDictionary {
-    public convenience init(frameIndex: UInt32, completeFramesOnly: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.frameIndex] = frameIndex.jsValue
-        object[Strings.completeFramesOnly] = completeFramesOnly.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var frameIndex: UInt32
-
-    @ReadWriteAttribute
-    public var completeFramesOnly: Bool
-}
-
-public class ImageDecodeResult: BridgedDictionary {
-    public convenience init(image: VideoFrame, complete: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.image] = image.jsValue
-        object[Strings.complete] = complete.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var image: VideoFrame
-
-    @ReadWriteAttribute
-    public var complete: Bool
-}
-
-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
-    }
-
-    @inlinable public convenience init(init: ImageDecoderInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var type: String
-
-    @ReadonlyAttribute
-    public var complete: Bool
-
-    @ReadonlyAttribute
-    public var completed: JSPromise
-
-    @ReadonlyAttribute
-    public var tracks: ImageTrackList
-
-    @inlinable public func decode(options: ImageDecodeOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.decode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).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: [options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-
-    @inlinable public func reset() {
-        let this = jsObject
-        _ = this[Strings.reset].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func close() {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
-    }
-
-    @inlinable public static func isTypeSupported(type: String) -> JSPromise {
-        let this = constructor!
-        return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
-
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public static func isTypeSupported(type: String) async throws -> Bool {
-        let this = constructor!
-        let _promise: JSPromise = this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-}
-
-public class ImageDecoderInit: BridgedDictionary {
-    public convenience init(type: String, data: ImageBufferSource, premultiplyAlpha: PremultiplyAlpha, colorSpaceConversion: ColorSpaceConversion, desiredWidth: UInt32, desiredHeight: UInt32, preferAnimation: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.data] = data.jsValue
-        object[Strings.premultiplyAlpha] = premultiplyAlpha.jsValue
-        object[Strings.colorSpaceConversion] = colorSpaceConversion.jsValue
-        object[Strings.desiredWidth] = desiredWidth.jsValue
-        object[Strings.desiredHeight] = desiredHeight.jsValue
-        object[Strings.preferAnimation] = preferAnimation.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
-        _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
-        _premultiplyAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultiplyAlpha)
-        _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)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var data: ImageBufferSource
-
-    @ReadWriteAttribute
-    public var premultiplyAlpha: PremultiplyAlpha
-
-    @ReadWriteAttribute
-    public var colorSpaceConversion: ColorSpaceConversion
-
-    @ReadWriteAttribute
-    public var desiredWidth: UInt32
-
-    @ReadWriteAttribute
-    public var desiredHeight: UInt32
-
-    @ReadWriteAttribute
-    public var preferAnimation: Bool
-}
-
-public class ImageEncodeOptions: BridgedDictionary {
-    public convenience init(type: String, quality: Double) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.quality] = quality.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var type: String
-
-    @ReadWriteAttribute
-    public var quality: Double
-}
-
-public enum ImageOrientation: JSString, JSValueCompatible {
-    case none = "none"
-    case flipY = "flipY"
-
-    @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 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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class ImageTrack: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ImageTrack].function }
-
-    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)
-        _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange)
-        _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected)
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @ReadonlyAttribute
-    public var animated: Bool
-
-    @ReadonlyAttribute
-    public var frameCount: UInt32
-
-    @ReadonlyAttribute
-    public var repetitionCount: Float
-
-    @ClosureAttribute1Optional
-    public var onchange: EventHandler
-
-    @ReadWriteAttribute
-    public var selected: Bool
-}
-
-public class ImageTrackList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageTrackList].function }
-
-    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
-    }
-
-    @inlinable public subscript(key: Int) -> ImageTrack {
-        jsObject[key].fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var ready: JSPromise
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @ReadonlyAttribute
-    public var selectedIndex: Int32
-
-    @ReadonlyAttribute
-    public var selectedTrack: ImageTrack?
-}
-
-public class InputDeviceInfo: MediaDeviceInfo {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.InputDeviceInfo].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @inlinable 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 }
-
-    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)
-    }
-
-    @inlinable public convenience init(type: String, eventInitDict: InputEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var data: String?
-
-    @ReadonlyAttribute
-    public var isComposing: Bool
-
-    @ReadonlyAttribute
-    public var inputType: String
-}
-
-public class InputEventInit: BridgedDictionary {
-    public convenience init(data: String?, isComposing: Bool, inputType: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.data] = data.jsValue
-        object[Strings.isComposing] = isComposing.jsValue
-        object[Strings.inputType] = inputType.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var data: String?
-
-    @ReadWriteAttribute
-    public var isComposing: Bool
-
-    @ReadWriteAttribute
-    public var inputType: String
-}
-
-public class IsVisibleOptions: 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 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 convenience init(type: String, eventInitDict: KeyboardEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    public static let DOM_KEY_LOCATION_STANDARD: UInt32 = 0x00
-
-    public static let DOM_KEY_LOCATION_LEFT: UInt32 = 0x01
-
-    public static let DOM_KEY_LOCATION_RIGHT: UInt32 = 0x02
-
-    public static let DOM_KEY_LOCATION_NUMPAD: UInt32 = 0x03
-
-    @ReadonlyAttribute
-    public var key: String
-
-    @ReadonlyAttribute
-    public var code: String
-
-    @ReadonlyAttribute
-    public var location: UInt32
-
-    @ReadonlyAttribute
-    public var ctrlKey: Bool
-
-    @ReadonlyAttribute
-    public var shiftKey: Bool
-
-    @ReadonlyAttribute
-    public var altKey: Bool
-
-    @ReadonlyAttribute
-    public var metaKey: Bool
-
-    @ReadonlyAttribute
-    public var `repeat`: Bool
-
-    @ReadonlyAttribute
-    public var isComposing: Bool
-
-    @inlinable public func getModifierState(keyArg: String) -> Bool {
-        let this = jsObject
-        return this[Strings.getModifierState].function!(this: this, arguments: [keyArg.jsValue]).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 _arg0 = typeArg.jsValue
-        let _arg1 = bubblesArg?.jsValue ?? .undefined
-        let _arg2 = cancelableArg?.jsValue ?? .undefined
-        let _arg3 = viewArg?.jsValue ?? .undefined
-        let _arg4 = keyArg?.jsValue ?? .undefined
-        let _arg5 = locationArg?.jsValue ?? .undefined
-        let _arg6 = ctrlKey?.jsValue ?? .undefined
-        let _arg7 = altKey?.jsValue ?? .undefined
-        let _arg8 = shiftKey?.jsValue ?? .undefined
-        let _arg9 = metaKey?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.initKeyboardEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
-    }
-
-    @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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.key] = key.jsValue
-        object[Strings.code] = code.jsValue
-        object[Strings.location] = location.jsValue
-        object[Strings.repeat] = `repeat`.jsValue
-        object[Strings.isComposing] = isComposing.jsValue
-        object[Strings.charCode] = charCode.jsValue
-        object[Strings.keyCode] = keyCode.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var key: String
-
-    @ReadWriteAttribute
-    public var code: String
-
-    @ReadWriteAttribute
-    public var location: UInt32
-
-    @ReadWriteAttribute
-    public var `repeat`: Bool
-
-    @ReadWriteAttribute
-    public var isComposing: Bool
-
-    @ReadWriteAttribute
-    public var charCode: UInt32
-
-    @ReadWriteAttribute
-    public var keyCode: UInt32
-}
-
-public class KeyframeAnimationOptions: BridgedDictionary {
-    public convenience init(id: String, timeline: AnimationTimeline?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.id] = id.jsValue
-        object[Strings.timeline] = timeline.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var id: String
-
-    @ReadWriteAttribute
-    public var timeline: AnimationTimeline?
-}
-
-public class KeyframeEffect: AnimationEffect {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(target: Element?, keyframes: JSObject?, options: Double_or_KeyframeEffectOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [target.jsValue, keyframes.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @inlinable public convenience init(source: KeyframeEffect) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [source.jsValue]))
-    }
-
-    @ReadWriteAttribute
-    public var target: Element?
-
-    @ReadWriteAttribute
-    public var pseudoElement: String?
-
-    @ReadWriteAttribute
-    public var composite: CompositeOperation
-
-    @inlinable public func getKeyframes() -> [JSObject] {
-        let this = jsObject
-        return this[Strings.getKeyframes].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func setKeyframes(keyframes: JSObject?) {
-        let this = jsObject
-        _ = this[Strings.setKeyframes].function!(this: this, arguments: [keyframes.jsValue])
-    }
-}
-
-public class KeyframeEffectOptions: BridgedDictionary {
-    public convenience init(composite: CompositeOperation, pseudoElement: String?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.composite] = composite.jsValue
-        object[Strings.pseudoElement] = pseudoElement.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var composite: CompositeOperation
-
-    @ReadWriteAttribute
-    public var pseudoElement: String?
-}
-
-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)
-        }
-        return nil
-    }
-
-    @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
-    }
-
-    @ReadWriteAttribute
-    public var href: String
-
-    @ReadonlyAttribute
-    public var origin: String
-
-    @ReadWriteAttribute
-    public var `protocol`: String
-
-    @ReadWriteAttribute
-    public var host: String
-
-    @ReadWriteAttribute
-    public var hostname: String
-
-    @ReadWriteAttribute
-    public var port: String
-
-    @ReadWriteAttribute
-    public var pathname: String
-
-    @ReadWriteAttribute
-    public var search: String
-
-    @ReadWriteAttribute
-    public var hash: String
-
-    @inlinable public func assign(url: String) {
-        let this = jsObject
-        _ = this[Strings.assign].function!(this: this, arguments: [url.jsValue])
-    }
-
-    @inlinable public func replace(url: String) {
-        let this = jsObject
-        _ = this[Strings.replace].function!(this: this, arguments: [url.jsValue])
-    }
-
-    @inlinable public func reload() {
-        let this = jsObject
-        _ = this[Strings.reload].function!(this: this, arguments: [])
-    }
-
-    @ReadonlyAttribute
-    public var ancestorOrigins: DOMStringList
-}
-
-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
-    }
-
-    @ReadonlyAttribute
-    public var deviceId: String
-
-    @ReadonlyAttribute
-    public var kind: MediaDeviceKind
-
-    @ReadonlyAttribute
-    public var label: String
-
-    @ReadonlyAttribute
-    public var groupId: String
-
-    @inlinable public func toJSON() -> JSObject {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
-
-public enum MediaDeviceKind: JSString, JSValueCompatible {
-    case audioinput = "audioinput"
-    case audiooutput = "audiooutput"
-    case videoinput = "videoinput"
-
-    @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 MediaDevices: EventTarget {
-    @inlinable override public 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
-
-    @inlinable public func enumerateDevices() -> JSPromise {
-        let this = jsObject
-        return this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func enumerateDevices() async throws -> [MediaDeviceInfo] {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-
-    @inlinable public func getSupportedConstraints() -> MediaTrackSupportedConstraints {
-        let this = jsObject
-        return this[Strings.getSupportedConstraints].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.getUserMedia].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).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: [constraints?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-}
-
-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 convenience init(context: AudioContext, options: MediaElementAudioSourceOptions) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var mediaElement: HTMLMediaElement
-}
-
-public class MediaElementAudioSourceOptions: BridgedDictionary {
-    public convenience init(mediaElement: HTMLMediaElement) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mediaElement] = mediaElement.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _mediaElement = ReadWriteAttribute(jsObject: object, name: Strings.mediaElement)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var mediaElement: HTMLMediaElement
-}
-
-public class MediaError: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MediaError].function }
-
-    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 static let MEDIA_ERR_ABORTED: UInt16 = 1
-
-    public static let MEDIA_ERR_NETWORK: UInt16 = 2
-
-    public static let MEDIA_ERR_DECODE: UInt16 = 3
-
-    public static let MEDIA_ERR_SRC_NOT_SUPPORTED: UInt16 = 4
-
-    @ReadonlyAttribute
-    public var code: UInt16
-
-    @ReadonlyAttribute
-    public var message: String
-}
-
-public class MediaQueryList: EventTarget {
-    @inlinable override public 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)
-    }
-
-    @ReadonlyAttribute
-    public var media: String
-
-    @ReadonlyAttribute
-    public var matches: Bool
-
-    // XXX: member 'addListener' is ignored
-
-    // XXX: member 'removeListener' is ignored
-
-    @ClosureAttribute1Optional
-    public var onchange: EventHandler
-}
-
-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 convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var media: String
-
-    @ReadonlyAttribute
-    public var matches: Bool
-}
-
-public class MediaQueryListEventInit: BridgedDictionary {
-    public convenience init(media: String, matches: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.media] = media.jsValue
-        object[Strings.matches] = matches.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var media: String
-
-    @ReadWriteAttribute
-    public var matches: Bool
-}
-
-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 convenience init(stream: MediaStream, options: MediaRecorderOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var stream: MediaStream
-
-    @ReadonlyAttribute
-    public var mimeType: String
-
-    @ReadonlyAttribute
-    public var state: RecordingState
-
-    @ClosureAttribute1Optional
-    public var onstart: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onstop: EventHandler
-
-    @ClosureAttribute1Optional
-    public var ondataavailable: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onpause: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onresume: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onerror: EventHandler
-
-    @ReadonlyAttribute
-    public var videoBitsPerSecond: UInt32
-
-    @ReadonlyAttribute
-    public var audioBitsPerSecond: UInt32
-
-    @ReadonlyAttribute
-    public var audioBitrateMode: BitrateMode
-
-    @inlinable public func start(timeslice: UInt32? = nil) {
-        let this = jsObject
-        _ = this[Strings.start].function!(this: this, arguments: [timeslice?.jsValue ?? .undefined])
-    }
-
-    @inlinable public func stop() {
-        let this = jsObject
-        _ = this[Strings.stop].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func pause() {
-        let this = jsObject
-        _ = this[Strings.pause].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func resume() {
-        let this = jsObject
-        _ = this[Strings.resume].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func requestData() {
-        let this = jsObject
-        _ = this[Strings.requestData].function!(this: this, arguments: [])
-    }
-
-    @inlinable public static func isTypeSupported(type: String) -> Bool {
-        let this = constructor!
-        return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
-}
-
-public class MediaRecorderErrorEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaRecorderErrorEvent].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error)
-        super.init(unsafelyWrapping: jsObject)
-    }
-
-    @inlinable public convenience init(type: String, eventInitDict: MediaRecorderErrorEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var error: DOMException
-}
-
-public class MediaRecorderErrorEventInit: BridgedDictionary {
-    public convenience init(error: DOMException) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.error] = error.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _error = ReadWriteAttribute(jsObject: object, name: Strings.error)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var error: DOMException
-}
-
-public class MediaRecorderOptions: BridgedDictionary {
-    public convenience init(mimeType: String, audioBitsPerSecond: UInt32, videoBitsPerSecond: UInt32, bitsPerSecond: UInt32, audioBitrateMode: BitrateMode) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mimeType] = mimeType.jsValue
-        object[Strings.audioBitsPerSecond] = audioBitsPerSecond.jsValue
-        object[Strings.videoBitsPerSecond] = videoBitsPerSecond.jsValue
-        object[Strings.bitsPerSecond] = bitsPerSecond.jsValue
-        object[Strings.audioBitrateMode] = audioBitrateMode.jsValue
-        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)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var mimeType: String
-
-    @ReadWriteAttribute
-    public var audioBitsPerSecond: UInt32
-
-    @ReadWriteAttribute
-    public var videoBitsPerSecond: UInt32
-
-    @ReadWriteAttribute
-    public var bitsPerSecond: UInt32
-
-    @ReadWriteAttribute
-    public var audioBitrateMode: BitrateMode
-}
-
-public class MediaStream: EventTarget {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init() {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
-    }
-
-    @inlinable public convenience init(stream: MediaStream) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
-    }
-
-    @inlinable public convenience init(tracks: [MediaStreamTrack]) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [tracks.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var id: String
-
-    @inlinable public func getAudioTracks() -> [MediaStreamTrack] {
-        let this = jsObject
-        return this[Strings.getAudioTracks].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getVideoTracks() -> [MediaStreamTrack] {
-        let this = jsObject
-        return this[Strings.getVideoTracks].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getTracks() -> [MediaStreamTrack] {
-        let this = jsObject
-        return this[Strings.getTracks].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getTrackById(trackId: String) -> MediaStreamTrack? {
-        let this = jsObject
-        return this[Strings.getTrackById].function!(this: this, arguments: [trackId.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public func addTrack(track: MediaStreamTrack) {
-        let this = jsObject
-        _ = this[Strings.addTrack].function!(this: this, arguments: [track.jsValue])
-    }
-
-    @inlinable public func removeTrack(track: MediaStreamTrack) {
-        let this = jsObject
-        _ = this[Strings.removeTrack].function!(this: this, arguments: [track.jsValue])
-    }
-
-    @inlinable public func clone() -> Self {
-        let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @ReadonlyAttribute
-    public var active: Bool
-
-    @ClosureAttribute1Optional
-    public var onaddtrack: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onremovetrack: EventHandler
-}
-
-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 convenience init(context: AudioContext, options: AudioNodeOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var stream: MediaStream
-}
-
-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 convenience init(context: AudioContext, options: MediaStreamAudioSourceOptions) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var mediaStream: MediaStream
-}
-
-public class MediaStreamAudioSourceOptions: BridgedDictionary {
-    public convenience init(mediaStream: MediaStream) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mediaStream] = mediaStream.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _mediaStream = ReadWriteAttribute(jsObject: object, name: Strings.mediaStream)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var mediaStream: MediaStream
-}
-
-public class MediaStreamConstraints: BridgedDictionary {
-    public convenience init(video: Bool_or_MediaTrackConstraints, audio: Bool_or_MediaTrackConstraints) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.video] = video.jsValue
-        object[Strings.audio] = audio.jsValue
-        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)
-    }
-
-    @ReadWriteAttribute
-    public var video: Bool_or_MediaTrackConstraints
-
-    @ReadWriteAttribute
-    public var audio: Bool_or_MediaTrackConstraints
-}
-
-public class MediaStreamTrack: EventTarget {
-    @inlinable override public 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)
-    }
-
-    @ReadonlyAttribute
-    public var kind: String
-
-    @ReadonlyAttribute
-    public var id: String
-
-    @ReadonlyAttribute
-    public var label: String
-
-    @ReadWriteAttribute
-    public var enabled: Bool
-
-    @ReadonlyAttribute
-    public var muted: Bool
-
-    @ClosureAttribute1Optional
-    public var onmute: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onunmute: EventHandler
-
-    @ReadonlyAttribute
-    public var readyState: MediaStreamTrackState
-
-    @ClosureAttribute1Optional
-    public var onended: EventHandler
-
-    @inlinable public func clone() -> Self {
-        let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func stop() {
-        let this = jsObject
-        _ = this[Strings.stop].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func getCapabilities() -> MediaTrackCapabilities {
-        let this = jsObject
-        return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getConstraints() -> MediaTrackConstraints {
-        let this = jsObject
-        return this[Strings.getConstraints].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func getSettings() -> MediaTrackSettings {
-        let this = jsObject
-        return this[Strings.getSettings].function!(this: this, arguments: []).fromJSValue()!
-    }
-
-    @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.applyConstraints].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).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: [constraints?.jsValue ?? .undefined]).fromJSValue()!
-        _ = try await _promise.value
-    }
-}
-
-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 convenience init(context: AudioContext, options: MediaStreamTrackAudioSourceOptions) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
-    }
-}
-
-public class MediaStreamTrackAudioSourceOptions: BridgedDictionary {
-    public convenience init(mediaStreamTrack: MediaStreamTrack) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mediaStreamTrack] = mediaStreamTrack.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _mediaStreamTrack = ReadWriteAttribute(jsObject: object, name: Strings.mediaStreamTrack)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var mediaStreamTrack: MediaStreamTrack
-}
-
-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 convenience init(type: String, eventInitDict: MediaStreamTrackEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var track: MediaStreamTrack
-}
-
-public class MediaStreamTrackEventInit: BridgedDictionary {
-    public convenience init(track: MediaStreamTrack) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.track] = track.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _track = ReadWriteAttribute(jsObject: object, name: Strings.track)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var track: MediaStreamTrack
-}
-
-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)
-        }
-        return nil
-    }
-
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.aspectRatio] = aspectRatio.jsValue
-        object[Strings.frameRate] = frameRate.jsValue
-        object[Strings.facingMode] = facingMode.jsValue
-        object[Strings.resizeMode] = resizeMode.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        object[Strings.sampleSize] = sampleSize.jsValue
-        object[Strings.echoCancellation] = echoCancellation.jsValue
-        object[Strings.autoGainControl] = autoGainControl.jsValue
-        object[Strings.noiseSuppression] = noiseSuppression.jsValue
-        object[Strings.latency] = latency.jsValue
-        object[Strings.channelCount] = channelCount.jsValue
-        object[Strings.deviceId] = deviceId.jsValue
-        object[Strings.groupId] = groupId.jsValue
-        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: ULongRange
-
-    @ReadWriteAttribute
-    public var height: ULongRange
-
-    @ReadWriteAttribute
-    public var aspectRatio: DoubleRange
-
-    @ReadWriteAttribute
-    public var frameRate: DoubleRange
-
-    @ReadWriteAttribute
-    public var facingMode: [String]
-
-    @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
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.aspectRatio] = aspectRatio.jsValue
-        object[Strings.frameRate] = frameRate.jsValue
-        object[Strings.facingMode] = facingMode.jsValue
-        object[Strings.resizeMode] = resizeMode.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        object[Strings.sampleSize] = sampleSize.jsValue
-        object[Strings.echoCancellation] = echoCancellation.jsValue
-        object[Strings.autoGainControl] = autoGainControl.jsValue
-        object[Strings.noiseSuppression] = noiseSuppression.jsValue
-        object[Strings.latency] = latency.jsValue
-        object[Strings.channelCount] = channelCount.jsValue
-        object[Strings.deviceId] = deviceId.jsValue
-        object[Strings.groupId] = groupId.jsValue
-        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
-
-    @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] = advanced.jsValue
-        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: Int32, height: Int32, aspectRatio: Double, frameRate: Double, facingMode: String, resizeMode: String, sampleRate: Int32, sampleSize: Int32, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Double, channelCount: Int32, deviceId: String, groupId: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.aspectRatio] = aspectRatio.jsValue
-        object[Strings.frameRate] = frameRate.jsValue
-        object[Strings.facingMode] = facingMode.jsValue
-        object[Strings.resizeMode] = resizeMode.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        object[Strings.sampleSize] = sampleSize.jsValue
-        object[Strings.echoCancellation] = echoCancellation.jsValue
-        object[Strings.autoGainControl] = autoGainControl.jsValue
-        object[Strings.noiseSuppression] = noiseSuppression.jsValue
-        object[Strings.latency] = latency.jsValue
-        object[Strings.channelCount] = channelCount.jsValue
-        object[Strings.deviceId] = deviceId.jsValue
-        object[Strings.groupId] = groupId.jsValue
-        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: Int32
-
-    @ReadWriteAttribute
-    public var height: Int32
-
-    @ReadWriteAttribute
-    public var aspectRatio: Double
-
-    @ReadWriteAttribute
-    public var frameRate: Double
-
-    @ReadWriteAttribute
-    public var facingMode: String
-
-    @ReadWriteAttribute
-    public var resizeMode: String
-
-    @ReadWriteAttribute
-    public var sampleRate: Int32
-
-    @ReadWriteAttribute
-    public var sampleSize: Int32
-
-    @ReadWriteAttribute
-    public var echoCancellation: Bool
-
-    @ReadWriteAttribute
-    public var autoGainControl: Bool
-
-    @ReadWriteAttribute
-    public var noiseSuppression: Bool
-
-    @ReadWriteAttribute
-    public var latency: Double
-
-    @ReadWriteAttribute
-    public var channelCount: Int32
-
-    @ReadWriteAttribute
-    public var deviceId: String
-
-    @ReadWriteAttribute
-    public var groupId: String
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.aspectRatio] = aspectRatio.jsValue
-        object[Strings.frameRate] = frameRate.jsValue
-        object[Strings.facingMode] = facingMode.jsValue
-        object[Strings.resizeMode] = resizeMode.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        object[Strings.sampleSize] = sampleSize.jsValue
-        object[Strings.echoCancellation] = echoCancellation.jsValue
-        object[Strings.autoGainControl] = autoGainControl.jsValue
-        object[Strings.noiseSuppression] = noiseSuppression.jsValue
-        object[Strings.latency] = latency.jsValue
-        object[Strings.channelCount] = channelCount.jsValue
-        object[Strings.deviceId] = deviceId.jsValue
-        object[Strings.groupId] = groupId.jsValue
-        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: Bool
 
     @ReadWriteAttribute
-    public var height: Bool
+    public var title: String
 
     @ReadWriteAttribute
-    public var aspectRatio: Bool
+    public var lang: String
 
     @ReadWriteAttribute
-    public var frameRate: Bool
+    public var translate: Bool
 
     @ReadWriteAttribute
-    public var facingMode: Bool
+    public var dir: String
 
     @ReadWriteAttribute
-    public var resizeMode: Bool
+    public var hidden: Bool
 
     @ReadWriteAttribute
-    public var sampleRate: Bool
+    public var inert: Bool
 
-    @ReadWriteAttribute
-    public var sampleSize: Bool
+    @inlinable public func click() {
+        let this = jsObject
+        _ = this[Strings.click].function!(this: this, arguments: [])
+    }
 
     @ReadWriteAttribute
-    public var echoCancellation: Bool
+    public var accessKey: String
 
-    @ReadWriteAttribute
-    public var autoGainControl: Bool
+    @ReadonlyAttribute
+    public var accessKeyLabel: String
 
     @ReadWriteAttribute
-    public var noiseSuppression: Bool
+    public var draggable: Bool
 
     @ReadWriteAttribute
-    public var latency: Bool
+    public var spellcheck: Bool
 
     @ReadWriteAttribute
-    public var channelCount: Bool
+    public var autocapitalize: String
 
     @ReadWriteAttribute
-    public var deviceId: Bool
+    public var innerText: String
 
     @ReadWriteAttribute
-    public var groupId: Bool
-}
+    public var outerText: String
 
-public class MessageChannel: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MessageChannel].function }
+    @inlinable public func attachInternals() -> ElementInternals {
+        let this = jsObject
+        return this[Strings.attachInternals].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var offsetParent: Element?
+
+    @ReadonlyAttribute
+    public var offsetTop: Int32
+
+    @ReadonlyAttribute
+    public var offsetLeft: Int32
+
+    @ReadonlyAttribute
+    public var offsetWidth: Int32
+
+    @ReadonlyAttribute
+    public var offsetHeight: Int32
+}
+
+public class HTMLEmbedElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLEmbedElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _port1 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port1)
-        _port2 = ReadonlyAttribute(jsObject: jsObject, name: Strings.port2)
-        self.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)
     }
 
     @inlinable public convenience init() {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var port1: MessagePort
+    @ReadWriteAttribute
+    public var src: String
 
-    @ReadonlyAttribute
-    public var port2: MessagePort
+    @ReadWriteAttribute
+    public var type: String
+
+    @ReadWriteAttribute
+    public var width: String
+
+    @ReadWriteAttribute
+    public var height: String
+
+    @inlinable public func getSVGDocument() -> Document? {
+        let this = jsObject
+        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @ReadWriteAttribute
+    public var align: String
+
+    @ReadWriteAttribute
+    public var name: String
 }
 
-public class MessageEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MessageEvent].function }
+public class HTMLFieldSetElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFieldSetElement].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)
+        _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 convenience init(type: String, eventInitDict: MessageEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
+    @ReadWriteAttribute
+    public var disabled: Bool
+
     @ReadonlyAttribute
-    public var data: JSValue
+    public var form: HTMLFormElement?
+
+    @ReadWriteAttribute
+    public var name: String
 
     @ReadonlyAttribute
-    public var origin: String
+    public var type: String
 
     @ReadonlyAttribute
-    public var lastEventId: String
+    public var elements: HTMLCollection
 
     @ReadonlyAttribute
-    public var source: MessageEventSource?
+    public var willValidate: Bool
 
     @ReadonlyAttribute
-    public var ports: [MessagePort]
+    public var validity: ValidityState
 
-    @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) {
-        let _arg0 = type.jsValue
-        let _arg1 = bubbles?.jsValue ?? .undefined
-        let _arg2 = cancelable?.jsValue ?? .undefined
-        let _arg3 = data?.jsValue ?? .undefined
-        let _arg4 = origin?.jsValue ?? .undefined
-        let _arg5 = lastEventId?.jsValue ?? .undefined
-        let _arg6 = source?.jsValue ?? .undefined
-        let _arg7 = ports?.jsValue ?? .undefined
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.initMessageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
-}
 
-public class MessageEventInit: BridgedDictionary {
-    public convenience init(data: JSValue, origin: String, lastEventId: String, source: MessageEventSource?, ports: [MessagePort]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.data] = data.jsValue
-        object[Strings.origin] = origin.jsValue
-        object[Strings.lastEventId] = lastEventId.jsValue
-        object[Strings.source] = source.jsValue
-        object[Strings.ports] = ports.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    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)
+    @inlinable public func setCustomValidity(error: String) {
+        let this = jsObject
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
     }
+}
 
-    @ReadWriteAttribute
-    public var data: JSValue
+public class HTMLFontElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFontElement].function }
 
-    @ReadWriteAttribute
-    public var origin: String
+    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)
+    }
+
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var lastEventId: String
+    public var color: String
 
     @ReadWriteAttribute
-    public var source: MessageEventSource?
+    public var face: String
 
     @ReadWriteAttribute
-    public var ports: [MessagePort]
+    public var size: String
 }
 
-public class MessagePort: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MessagePort].function }
+public class HTMLFormControlsCollection: HTMLCollection {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFormControlsCollection].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 func postMessage(message: JSValue, transfer: [JSObject]) {
-        let this = jsObject
-        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, transfer.jsValue])
+    @inlinable public subscript(key: String) -> Element_or_RadioNodeList? {
+        jsObject[key].fromJSValue()
     }
+}
 
-    @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, options?.jsValue ?? .undefined])
-    }
+public class HTMLFormElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFormElement].function }
 
-    @inlinable public func start() {
-        let this = jsObject
-        _ = this[Strings.start].function!(this: this, arguments: [])
+    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)
     }
 
-    @inlinable public func close() {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ClosureAttribute1Optional
-    public var onmessage: EventHandler
+    @ReadWriteAttribute
+    public var acceptCharset: String
 
-    @ClosureAttribute1Optional
-    public var onmessageerror: EventHandler
-}
+    @ReadWriteAttribute
+    public var action: String
+
+    @ReadWriteAttribute
+    public var autocomplete: String
+
+    @ReadWriteAttribute
+    public var enctype: String
+
+    @ReadWriteAttribute
+    public var encoding: String
+
+    @ReadWriteAttribute
+    public var method: String
+
+    @ReadWriteAttribute
+    public var name: String
 
-public class MimeType: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MimeType].function }
+    @ReadWriteAttribute
+    public var noValidate: Bool
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var target: String
 
-    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
-    }
+    @ReadWriteAttribute
+    public var rel: String
 
     @ReadonlyAttribute
-    public var type: String
+    public var relList: DOMTokenList
 
     @ReadonlyAttribute
-    public var description: String
+    public var elements: HTMLFormControlsCollection
 
     @ReadonlyAttribute
-    public var suffixes: String
+    public var length: UInt32
 
-    @ReadonlyAttribute
-    public var enabledPlugin: Plugin
-}
+    @inlinable public subscript(key: Int) -> Element {
+        jsObject[key].fromJSValue()!
+    }
 
-public class MimeTypeArray: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MimeTypeArray].function }
+    @inlinable public subscript(key: String) -> Element_or_RadioNodeList {
+        jsObject[key].fromJSValue()!
+    }
 
-    public let jsObject: JSObject
+    @inlinable public func submit() {
+        let this = jsObject
+        _ = this[Strings.submit].function!(this: this, arguments: [])
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+    @inlinable public func requestSubmit(submitter: HTMLElement? = nil) {
+        let this = jsObject
+        _ = this[Strings.requestSubmit].function!(this: this, arguments: [submitter?.jsValue ?? .undefined])
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @inlinable public func reset() {
+        let this = jsObject
+        _ = this[Strings.reset].function!(this: this, arguments: [])
+    }
 
-    @inlinable public subscript(key: Int) -> MimeType? {
-        jsObject[key].fromJSValue()
+    @inlinable public func checkValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public subscript(key: String) -> MimeType? {
-        jsObject[key].fromJSValue()
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 }
 
-public class MouseEvent: UIEvent {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MouseEvent].function }
+public class HTMLFrameElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFrameElement].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)
+        _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)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: MouseEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var screenX: Int32
+    @ReadWriteAttribute
+    public var name: String
 
-    @ReadonlyAttribute
-    public var screenY: Int32
+    @ReadWriteAttribute
+    public var scrolling: String
 
-    @ReadonlyAttribute
-    public var clientX: Int32
+    @ReadWriteAttribute
+    public var src: String
 
-    @ReadonlyAttribute
-    public var clientY: Int32
+    @ReadWriteAttribute
+    public var frameBorder: String
 
-    @ReadonlyAttribute
-    public var ctrlKey: Bool
+    @ReadWriteAttribute
+    public var longDesc: String
 
-    @ReadonlyAttribute
-    public var shiftKey: Bool
+    @ReadWriteAttribute
+    public var noResize: Bool
 
     @ReadonlyAttribute
-    public var altKey: Bool
+    public var contentDocument: Document?
 
     @ReadonlyAttribute
-    public var metaKey: Bool
+    public var contentWindow: WindowProxy?
 
-    @ReadonlyAttribute
-    public var button: Int16
+    @ReadWriteAttribute
+    public var marginHeight: String
 
-    @ReadonlyAttribute
-    public var buttons: UInt16
+    @ReadWriteAttribute
+    public var marginWidth: String
+}
 
-    @ReadonlyAttribute
-    public var relatedTarget: EventTarget?
+public class HTMLFrameSetElement: HTMLElement, WindowEventHandlers {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLFrameSetElement].function }
 
-    @inlinable public func getModifierState(keyArg: String) -> Bool {
-        let this = jsObject
-        return this[Strings.getModifierState].function!(this: this, arguments: [keyArg.jsValue]).fromJSValue()!
+    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 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 _arg0 = typeArg.jsValue
-        let _arg1 = bubblesArg?.jsValue ?? .undefined
-        let _arg2 = cancelableArg?.jsValue ?? .undefined
-        let _arg3 = viewArg?.jsValue ?? .undefined
-        let _arg4 = detailArg?.jsValue ?? .undefined
-        let _arg5 = screenXArg?.jsValue ?? .undefined
-        let _arg6 = screenYArg?.jsValue ?? .undefined
-        let _arg7 = clientXArg?.jsValue ?? .undefined
-        let _arg8 = clientYArg?.jsValue ?? .undefined
-        let _arg9 = ctrlKeyArg?.jsValue ?? .undefined
-        let _arg10 = altKeyArg?.jsValue ?? .undefined
-        let _arg11 = shiftKeyArg?.jsValue ?? .undefined
-        let _arg12 = metaKeyArg?.jsValue ?? .undefined
-        let _arg13 = buttonArg?.jsValue ?? .undefined
-        let _arg14 = relatedTargetArg?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.initMouseEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @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
+    @ReadWriteAttribute
+    public var cols: String
 
-    @ReadonlyAttribute
-    public var offsetY: Double
+    @ReadWriteAttribute
+    public var rows: String
 }
 
-public class MouseEventInit: BridgedDictionary {
-    public convenience init(screenX: Int32, screenY: Int32, clientX: Int32, clientY: Int32, button: Int16, buttons: UInt16, relatedTarget: EventTarget?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.screenX] = screenX.jsValue
-        object[Strings.screenY] = screenY.jsValue
-        object[Strings.clientX] = clientX.jsValue
-        object[Strings.clientY] = clientY.jsValue
-        object[Strings.button] = button.jsValue
-        object[Strings.buttons] = buttons.jsValue
-        object[Strings.relatedTarget] = relatedTarget.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLHRElement: HTMLElement {
+    @inlinable override public 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 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)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var screenX: Int32
+    public var align: String
 
     @ReadWriteAttribute
-    public var screenY: Int32
+    public var color: String
 
     @ReadWriteAttribute
-    public var clientX: Int32
+    public var noShade: Bool
 
     @ReadWriteAttribute
-    public var clientY: Int32
+    public var size: String
 
     @ReadWriteAttribute
-    public var button: Int16
+    public var width: String
+}
 
-    @ReadWriteAttribute
-    public var buttons: UInt16
+public class HTMLHeadElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHeadElement].function }
 
-    @ReadWriteAttribute
-    public var relatedTarget: EventTarget?
-}
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-public class MultiCacheQueryOptions: BridgedDictionary {
-    public convenience init(cacheName: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.cacheName] = cacheName.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
+}
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _cacheName = ReadWriteAttribute(jsObject: object, name: Strings.cacheName)
-        super.init(unsafelyWrapping: object)
+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 convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var cacheName: String
+    public var align: String
 }
 
-public class MutationEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MutationEvent].function }
+public class HTMLHtmlElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLHtmlElement].function }
 
     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)
+        _version = ReadWriteAttribute(jsObject: jsObject, name: Strings.version)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    public static let MODIFICATION: UInt16 = 1
-
-    public static let ADDITION: UInt16 = 2
-
-    public static let REMOVAL: UInt16 = 3
-
-    @ReadonlyAttribute
-    public var relatedNode: Node?
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
-    @ReadonlyAttribute
-    public var prevValue: String
+    @ReadWriteAttribute
+    public var version: String
+}
 
-    @ReadonlyAttribute
-    public var newValue: String
+public protocol HTMLHyperlinkElementUtils: JSBridgedClass {}
+public extension HTMLHyperlinkElementUtils {
+    @inlinable var href: String {
+        get { jsObject[Strings.href].fromJSValue()! }
+        nonmutating set { jsObject[Strings.href] = newValue.jsValue }
+    }
 
-    @ReadonlyAttribute
-    public var attrName: String
+    @inlinable var origin: String { jsObject[Strings.origin].fromJSValue()! }
 
-    @ReadonlyAttribute
-    public var attrChange: UInt16
+    @inlinable var `protocol`: String {
+        get { jsObject[Strings.protocol].fromJSValue()! }
+        nonmutating set { jsObject[Strings.protocol] = newValue.jsValue }
+    }
 
-    @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 _arg0 = typeArg.jsValue
-        let _arg1 = bubblesArg?.jsValue ?? .undefined
-        let _arg2 = cancelableArg?.jsValue ?? .undefined
-        let _arg3 = relatedNodeArg?.jsValue ?? .undefined
-        let _arg4 = prevValueArg?.jsValue ?? .undefined
-        let _arg5 = newValueArg?.jsValue ?? .undefined
-        let _arg6 = attrNameArg?.jsValue ?? .undefined
-        let _arg7 = attrChangeArg?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.initMutationEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    @inlinable var username: String {
+        get { jsObject[Strings.username].fromJSValue()! }
+        nonmutating set { jsObject[Strings.username] = newValue.jsValue }
     }
-}
 
-public class MutationObserver: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationObserver].function }
+    @inlinable var password: String {
+        get { jsObject[Strings.password].fromJSValue()! }
+        nonmutating set { jsObject[Strings.password] = newValue.jsValue }
+    }
 
-    public let jsObject: JSObject
+    @inlinable var host: String {
+        get { jsObject[Strings.host].fromJSValue()! }
+        nonmutating set { jsObject[Strings.host] = newValue.jsValue }
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @inlinable var hostname: String {
+        get { jsObject[Strings.hostname].fromJSValue()! }
+        nonmutating set { jsObject[Strings.hostname] = newValue.jsValue }
     }
 
-    // XXX: constructor is ignored
+    @inlinable var port: String {
+        get { jsObject[Strings.port].fromJSValue()! }
+        nonmutating set { jsObject[Strings.port] = newValue.jsValue }
+    }
 
-    @inlinable public func observe(target: Node, options: MutationObserverInit? = nil) {
-        let this = jsObject
-        _ = this[Strings.observe].function!(this: this, arguments: [target.jsValue, options?.jsValue ?? .undefined])
+    @inlinable var pathname: String {
+        get { jsObject[Strings.pathname].fromJSValue()! }
+        nonmutating set { jsObject[Strings.pathname] = newValue.jsValue }
     }
 
-    @inlinable public func disconnect() {
-        let this = jsObject
-        _ = this[Strings.disconnect].function!(this: this, arguments: [])
+    @inlinable var search: String {
+        get { jsObject[Strings.search].fromJSValue()! }
+        nonmutating set { jsObject[Strings.search] = newValue.jsValue }
     }
 
-    @inlinable public func takeRecords() -> [MutationRecord] {
-        let this = jsObject
-        return this[Strings.takeRecords].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable var hash: String {
+        get { jsObject[Strings.hash].fromJSValue()! }
+        nonmutating set { jsObject[Strings.hash] = newValue.jsValue }
     }
 }
 
-public class MutationObserverInit: BridgedDictionary {
-    public convenience init(childList: Bool, attributes: Bool, characterData: Bool, subtree: Bool, attributeOldValue: Bool, characterDataOldValue: Bool, attributeFilter: [String]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.childList] = childList.jsValue
-        object[Strings.attributes] = attributes.jsValue
-        object[Strings.characterData] = characterData.jsValue
-        object[Strings.subtree] = subtree.jsValue
-        object[Strings.attributeOldValue] = attributeOldValue.jsValue
-        object[Strings.characterDataOldValue] = characterDataOldValue.jsValue
-        object[Strings.attributeFilter] = attributeFilter.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    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)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var childList: Bool
+    public var src: String
 
     @ReadWriteAttribute
-    public var attributes: Bool
+    public var srcdoc: String
 
     @ReadWriteAttribute
-    public var characterData: Bool
+    public var name: String
 
-    @ReadWriteAttribute
-    public var subtree: Bool
+    @ReadonlyAttribute
+    public var sandbox: DOMTokenList
 
     @ReadWriteAttribute
-    public var attributeOldValue: Bool
+    public var allow: String
 
     @ReadWriteAttribute
-    public var characterDataOldValue: Bool
+    public var allowFullscreen: Bool
 
     @ReadWriteAttribute
-    public var attributeFilter: [String]
-}
+    public var width: String
 
-public class MutationRecord: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationRecord].function }
+    @ReadWriteAttribute
+    public var height: String
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var referrerPolicy: String
 
-    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
-    }
+    @ReadWriteAttribute
+    public var loading: String
 
     @ReadonlyAttribute
-    public var type: String
+    public var contentDocument: Document?
 
     @ReadonlyAttribute
-    public var target: Node
+    public var contentWindow: WindowProxy?
 
-    @ReadonlyAttribute
-    public var addedNodes: NodeList
+    @inlinable public func getSVGDocument() -> Document? {
+        let this = jsObject
+        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var removedNodes: NodeList
+    @ReadWriteAttribute
+    public var align: String
 
-    @ReadonlyAttribute
-    public var previousSibling: Node?
+    @ReadWriteAttribute
+    public var scrolling: String
 
-    @ReadonlyAttribute
-    public var nextSibling: Node?
+    @ReadWriteAttribute
+    public var frameBorder: String
 
-    @ReadonlyAttribute
-    public var attributeName: String?
+    @ReadWriteAttribute
+    public var longDesc: String
 
-    @ReadonlyAttribute
-    public var attributeNamespace: String?
+    @ReadWriteAttribute
+    public var marginHeight: String
 
-    @ReadonlyAttribute
-    public var oldValue: String?
+    @ReadWriteAttribute
+    public var marginWidth: String
 }
 
-public class NamedNodeMap: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NamedNodeMap].function }
-
-    public let jsObject: JSObject
+public class HTMLImageElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLImageElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @inlinable public subscript(key: Int) -> Attr? {
-        jsObject[key].fromJSValue()
+        _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)
+        _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)
     }
 
-    @inlinable public subscript(key: String) -> Attr? {
-        jsObject[key].fromJSValue()
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func getNamedItemNS(namespace: String?, localName: String) -> Attr? {
-        let this = jsObject
-        return this[Strings.getNamedItemNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var alt: String
 
-    @inlinable public func setNamedItem(attr: Attr) -> Attr? {
-        let this = jsObject
-        return this[Strings.setNamedItem].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var src: String
 
-    @inlinable public func setNamedItemNS(attr: Attr) -> Attr? {
-        let this = jsObject
-        return this[Strings.setNamedItemNS].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var srcset: String
 
-    @inlinable public func removeNamedItem(qualifiedName: String) -> Attr {
-        let this = jsObject
-        return this[Strings.removeNamedItem].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var sizes: String
 
-    @inlinable public func removeNamedItemNS(namespace: String?, localName: String) -> Attr {
-        let this = jsObject
-        return this[Strings.removeNamedItemNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
-    }
-}
+    @ReadWriteAttribute
+    public var crossOrigin: String?
 
-public class NavigationPreloadManager: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NavigationPreloadManager].function }
+    @ReadWriteAttribute
+    public var useMap: String
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var isMap: Bool
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var width: UInt32
 
-    @inlinable public func enable() -> JSPromise {
-        let this = jsObject
-        return this[Strings.enable].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var height: UInt32
 
-    @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
-    }
+    @ReadonlyAttribute
+    public var naturalWidth: UInt32
 
-    @inlinable public func disable() -> JSPromise {
-        let this = jsObject
-        return this[Strings.disable].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var naturalHeight: UInt32
 
-    @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
-    }
+    @ReadonlyAttribute
+    public var complete: Bool
 
-    @inlinable public func setHeaderValue(value: String) -> JSPromise {
-        let this = jsObject
-        return this[Strings.setHeaderValue].function!(this: this, arguments: [value.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var currentSrc: String
 
-    @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: [value.jsValue]).fromJSValue()!
-        _ = try await _promise.value
-    }
+    @ReadWriteAttribute
+    public var referrerPolicy: String
 
-    @inlinable public func getState() -> JSPromise {
+    @ReadWriteAttribute
+    public var decoding: String
+
+    @ReadWriteAttribute
+    public var loading: String
+
+    @inlinable public func decode() -> JSPromise {
         let this = jsObject
-        return this[Strings.getState].function!(this: this, arguments: []).fromJSValue()!
+        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 getState() async throws -> NavigationPreloadState {
+    @inlinable public func decode() async throws {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.getState].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: []).fromJSValue()!
+        _ = try await _promise.value
     }
-}
 
-public class NavigationPreloadState: BridgedDictionary {
-    public convenience init(enabled: Bool, headerValue: String) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.enabled] = enabled.jsValue
-        object[Strings.headerValue] = headerValue.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var name: String
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _enabled = ReadWriteAttribute(jsObject: object, name: Strings.enabled)
-        _headerValue = ReadWriteAttribute(jsObject: object, name: Strings.headerValue)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var lowsrc: String
 
     @ReadWriteAttribute
-    public var enabled: Bool
+    public var align: String
 
     @ReadWriteAttribute
-    public var headerValue: String
-}
+    public var hspace: UInt32
 
-public class Navigator: JSBridgedClass, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware, NavigatorGPU {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Navigator].function }
+    @ReadWriteAttribute
+    public var vspace: UInt32
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var longDesc: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _serviceWorker = ReadonlyAttribute(jsObject: jsObject, name: Strings.serviceWorker)
-        _mediaDevices = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaDevices)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var border: String
 
     @ReadonlyAttribute
-    public var serviceWorker: ServiceWorkerContainer
+    public var x: Int32
 
     @ReadonlyAttribute
-    public var mediaDevices: MediaDevices
-
-    // XXX: member 'getUserMedia' is ignored
+    public var y: Int32
 }
 
-public protocol NavigatorConcurrentHardware: JSBridgedClass {}
-public extension NavigatorConcurrentHardware {
-    @inlinable var hardwareConcurrency: UInt64 { jsObject[Strings.hardwareConcurrency].fromJSValue()! }
-}
+public class HTMLInputElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLInputElement].function }
 
-public protocol NavigatorContentUtils: JSBridgedClass {}
-public extension NavigatorContentUtils {
-    @inlinable func registerProtocolHandler(scheme: String, url: String) {
-        let this = jsObject
-        _ = this[Strings.registerProtocolHandler].function!(this: this, arguments: [scheme.jsValue, url.jsValue])
+    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 func unregisterProtocolHandler(scheme: String, url: String) {
-        let this = jsObject
-        _ = this[Strings.unregisterProtocolHandler].function!(this: this, arguments: [scheme.jsValue, url.jsValue])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
-}
-
-public protocol NavigatorCookies: JSBridgedClass {}
-public extension NavigatorCookies {
-    @inlinable var cookieEnabled: Bool { jsObject[Strings.cookieEnabled].fromJSValue()! }
-}
-
-public protocol NavigatorGPU: JSBridgedClass {}
-public extension NavigatorGPU {
-    @inlinable var gpu: GPU { jsObject[Strings.gpu].fromJSValue()! }
-}
 
-public protocol NavigatorID: JSBridgedClass {}
-public extension NavigatorID {
-    @inlinable var appCodeName: String { jsObject[Strings.appCodeName].fromJSValue()! }
+    @ReadWriteAttribute
+    public var accept: String
 
-    @inlinable var appName: String { jsObject[Strings.appName].fromJSValue()! }
+    @ReadWriteAttribute
+    public var alt: String
 
-    @inlinable var appVersion: String { jsObject[Strings.appVersion].fromJSValue()! }
+    @ReadWriteAttribute
+    public var autocomplete: String
 
-    @inlinable var platform: String { jsObject[Strings.platform].fromJSValue()! }
+    @ReadWriteAttribute
+    public var defaultChecked: Bool
 
-    @inlinable var product: String { jsObject[Strings.product].fromJSValue()! }
+    @ReadWriteAttribute
+    public var checked: Bool
 
-    @inlinable var productSub: String { jsObject[Strings.productSub].fromJSValue()! }
+    @ReadWriteAttribute
+    public var dirName: String
 
-    @inlinable var userAgent: String { jsObject[Strings.userAgent].fromJSValue()! }
+    @ReadWriteAttribute
+    public var disabled: Bool
 
-    @inlinable var vendor: String { jsObject[Strings.vendor].fromJSValue()! }
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
-    @inlinable var vendorSub: String { jsObject[Strings.vendorSub].fromJSValue()! }
+    @ReadWriteAttribute
+    public var files: FileList?
 
-    @inlinable func taintEnabled() -> Bool {
-        let this = jsObject
-        return this[Strings.taintEnabled].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var formAction: String
 
-    @inlinable var oscpu: String { jsObject[Strings.oscpu].fromJSValue()! }
-}
+    @ReadWriteAttribute
+    public var formEnctype: String
 
-public protocol NavigatorLanguage: JSBridgedClass {}
-public extension NavigatorLanguage {
-    @inlinable var language: String { jsObject[Strings.language].fromJSValue()! }
+    @ReadWriteAttribute
+    public var formMethod: String
 
-    @inlinable var languages: [String] { jsObject[Strings.languages].fromJSValue()! }
-}
+    @ReadWriteAttribute
+    public var formNoValidate: Bool
 
-public protocol NavigatorOnLine: JSBridgedClass {}
-public extension NavigatorOnLine {
-    @inlinable var onLine: Bool { jsObject[Strings.onLine].fromJSValue()! }
-}
+    @ReadWriteAttribute
+    public var formTarget: String
 
-public protocol NavigatorPlugins: JSBridgedClass {}
-public extension NavigatorPlugins {
-    @inlinable var plugins: PluginArray { jsObject[Strings.plugins].fromJSValue()! }
+    @ReadWriteAttribute
+    public var height: UInt32
 
-    @inlinable var mimeTypes: MimeTypeArray { jsObject[Strings.mimeTypes].fromJSValue()! }
+    @ReadWriteAttribute
+    public var indeterminate: Bool
 
-    @inlinable func javaEnabled() -> Bool {
-        let this = jsObject
-        return this[Strings.javaEnabled].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var list: HTMLElement?
 
-    @inlinable var pdfViewerEnabled: Bool { jsObject[Strings.pdfViewerEnabled].fromJSValue()! }
-}
+    @ReadWriteAttribute
+    public var max: String
 
-public class Node: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Node].function }
+    @ReadWriteAttribute
+    public var maxLength: Int32
 
-    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)
-    }
+    @ReadWriteAttribute
+    public var min: String
 
-    public static let ELEMENT_NODE: UInt16 = 1
+    @ReadWriteAttribute
+    public var minLength: Int32
 
-    public static let ATTRIBUTE_NODE: UInt16 = 2
+    @ReadWriteAttribute
+    public var multiple: Bool
 
-    public static let TEXT_NODE: UInt16 = 3
+    @ReadWriteAttribute
+    public var name: String
 
-    public static let CDATA_SECTION_NODE: UInt16 = 4
+    @ReadWriteAttribute
+    public var pattern: String
 
-    public static let ENTITY_REFERENCE_NODE: UInt16 = 5
+    @ReadWriteAttribute
+    public var placeholder: String
 
-    public static let ENTITY_NODE: UInt16 = 6
+    @ReadWriteAttribute
+    public var readOnly: Bool
 
-    public static let PROCESSING_INSTRUCTION_NODE: UInt16 = 7
+    @ReadWriteAttribute
+    public var required: Bool
 
-    public static let COMMENT_NODE: UInt16 = 8
+    @ReadWriteAttribute
+    public var size: UInt32
 
-    public static let DOCUMENT_NODE: UInt16 = 9
+    @ReadWriteAttribute
+    public var src: String
 
-    public static let DOCUMENT_TYPE_NODE: UInt16 = 10
+    @ReadWriteAttribute
+    public var step: String
 
-    public static let DOCUMENT_FRAGMENT_NODE: UInt16 = 11
+    @ReadWriteAttribute
+    public var type: String
 
-    public static let NOTATION_NODE: UInt16 = 12
+    @ReadWriteAttribute
+    public var defaultValue: String
 
-    @ReadonlyAttribute
-    public var nodeType: UInt16
+    @ReadWriteAttribute
+    public var value: String
 
-    @ReadonlyAttribute
-    public var nodeName: String
+    @ReadWriteAttribute
+    public var valueAsDate: JSObject?
 
-    @ReadonlyAttribute
-    public var baseURI: String
+    @ReadWriteAttribute
+    public var valueAsNumber: Double
 
-    @ReadonlyAttribute
-    public var isConnected: Bool
+    @ReadWriteAttribute
+    public var width: UInt32
 
-    @ReadonlyAttribute
-    public var ownerDocument: Document?
+    @inlinable public func stepUp(n: Int32? = nil) {
+        let this = jsObject
+        _ = this[Strings.stepUp].function!(this: this, arguments: [n?.jsValue ?? .undefined])
+    }
 
-    @inlinable public func getRootNode(options: GetRootNodeOptions? = nil) -> Self {
+    @inlinable public func stepDown(n: Int32? = nil) {
         let this = jsObject
-        return this[Strings.getRootNode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.stepDown].function!(this: this, arguments: [n?.jsValue ?? .undefined])
     }
 
     @ReadonlyAttribute
-    public var parentNode: Node?
+    public var willValidate: Bool
 
     @ReadonlyAttribute
-    public var parentElement: Element?
+    public var validity: ValidityState
 
-    @inlinable public func hasChildNodes() -> Bool {
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
         let this = jsObject
-        return this[Strings.hasChildNodes].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var childNodes: NodeList
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var firstChild: Node?
+    @inlinable public func setCustomValidity(error: String) {
+        let this = jsObject
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
+    }
 
     @ReadonlyAttribute
-    public var lastChild: Node?
+    public var labels: NodeList?
 
-    @ReadonlyAttribute
-    public var previousSibling: Node?
+    @inlinable public func select() {
+        let this = jsObject
+        _ = this[Strings.select].function!(this: this, arguments: [])
+    }
 
-    @ReadonlyAttribute
-    public var nextSibling: Node?
+    @ReadWriteAttribute
+    public var selectionStart: UInt32?
 
     @ReadWriteAttribute
-    public var nodeValue: String?
+    public var selectionEnd: UInt32?
 
     @ReadWriteAttribute
-    public var textContent: String?
+    public var selectionDirection: String?
 
-    @inlinable public func normalize() {
+    @inlinable public func setRangeText(replacement: String) {
         let this = jsObject
-        _ = this[Strings.normalize].function!(this: this, arguments: [])
+        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue])
     }
 
-    @inlinable public func cloneNode(deep: Bool? = nil) -> Self {
+    @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) {
         let this = jsObject
-        return this[Strings.cloneNode].function!(this: this, arguments: [deep?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue, start.jsValue, end.jsValue, selectionMode?.jsValue ?? .undefined])
     }
 
-    @inlinable public func isEqualNode(otherNode: Node?) -> Bool {
+    @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) {
         let this = jsObject
-        return this[Strings.isEqualNode].function!(this: this, arguments: [otherNode.jsValue]).fromJSValue()!
+        _ = this[Strings.setSelectionRange].function!(this: this, arguments: [start.jsValue, end.jsValue, direction?.jsValue ?? .undefined])
     }
 
-    @inlinable public func isSameNode(otherNode: Node?) -> Bool {
+    @inlinable public func showPicker() {
         let this = jsObject
-        return this[Strings.isSameNode].function!(this: this, arguments: [otherNode.jsValue]).fromJSValue()!
+        _ = this[Strings.showPicker].function!(this: this, arguments: [])
     }
 
-    public static let DOCUMENT_POSITION_DISCONNECTED: UInt16 = 0x01
+    @ReadWriteAttribute
+    public var align: String
 
-    public static let DOCUMENT_POSITION_PRECEDING: UInt16 = 0x02
+    @ReadWriteAttribute
+    public var useMap: String
+}
 
-    public static let DOCUMENT_POSITION_FOLLOWING: UInt16 = 0x04
+public class HTMLLIElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLIElement].function }
 
-    public static let DOCUMENT_POSITION_CONTAINS: UInt16 = 0x08
+    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 static let DOCUMENT_POSITION_CONTAINED_BY: UInt16 = 0x10
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
-    public static let DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: UInt16 = 0x20
+    @ReadWriteAttribute
+    public var value: Int32
 
-    @inlinable public func compareDocumentPosition(other: Node) -> UInt16 {
-        let this = jsObject
-        return this[Strings.compareDocumentPosition].function!(this: this, arguments: [other.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var type: String
+}
 
-    @inlinable public func contains(other: Node?) -> Bool {
-        let this = jsObject
-        return this[Strings.contains].function!(this: this, arguments: [other.jsValue]).fromJSValue()!
-    }
+public class HTMLLabelElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLabelElement].function }
 
-    @inlinable public func lookupPrefix(namespace: String?) -> String? {
-        let this = jsObject
-        return this[Strings.lookupPrefix].function!(this: this, arguments: [namespace.jsValue]).fromJSValue()!
+    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)
     }
 
-    @inlinable public func lookupNamespaceURI(prefix: String?) -> String? {
-        let this = jsObject
-        return this[Strings.lookupNamespaceURI].function!(this: this, arguments: [prefix.jsValue]).fromJSValue()!
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func isDefaultNamespace(namespace: String?) -> Bool {
-        let this = jsObject
-        return this[Strings.isDefaultNamespace].function!(this: this, arguments: [namespace.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
-    @inlinable public func insertBefore(node: Node, child: Node?) -> Self {
-        let this = jsObject
-        return this[Strings.insertBefore].function!(this: this, arguments: [node.jsValue, child.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var htmlFor: String
 
-    @inlinable public func appendChild(node: Node) -> Self {
-        let this = jsObject
-        return this[Strings.appendChild].function!(this: this, arguments: [node.jsValue]).fromJSValue()!
+    @ReadonlyAttribute
+    public var control: HTMLElement?
+}
+
+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 func replaceChild(node: Node, child: Node) -> Self {
-        let this = jsObject
-        return this[Strings.replaceChild].function!(this: this, arguments: [node.jsValue, child.jsValue]).fromJSValue()!
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func removeChild(child: Node) -> Self {
-        let this = jsObject
-        return this[Strings.removeChild].function!(this: this, arguments: [child.jsValue]).fromJSValue()!
-    }
-}
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
-public class NodeIterator: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NodeIterator].function }
+    @ReadWriteAttribute
+    public var align: String
+}
 
-    public let jsObject: JSObject
+public class HTMLLinkElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLLinkElement].function }
 
     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
+        _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)
+        _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)
     }
 
-    @ReadonlyAttribute
-    public var root: Node
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
-    @ReadonlyAttribute
-    public var referenceNode: Node
+    @ReadWriteAttribute
+    public var href: String
 
-    @ReadonlyAttribute
-    public var pointerBeforeReferenceNode: Bool
+    @ReadWriteAttribute
+    public var crossOrigin: String?
+
+    @ReadWriteAttribute
+    public var rel: String
+
+    @ReadWriteAttribute
+    public var `as`: String
 
     @ReadonlyAttribute
-    public var whatToShow: UInt32
+    public var relList: DOMTokenList
 
-    // XXX: member 'filter' is ignored
+    @ReadWriteAttribute
+    public var media: String
 
-    @inlinable public func nextNode() -> Node? {
-        let this = jsObject
-        return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var integrity: String
 
-    @inlinable public func previousNode() -> Node? {
-        let this = jsObject
-        return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var hreflang: String
 
-    @inlinable public func detach() {
-        let this = jsObject
-        _ = this[Strings.detach].function!(this: this, arguments: [])
-    }
-}
+    @ReadWriteAttribute
+    public var type: String
 
-public class NodeList: JSBridgedClass, Sequence {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NodeList].function }
+    @ReadonlyAttribute
+    public var sizes: DOMTokenList
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var imageSrcset: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var imageSizes: String
 
-    @inlinable public subscript(key: Int) -> Node? {
-        jsObject[key].fromJSValue()
-    }
+    @ReadWriteAttribute
+    public var referrerPolicy: String
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var blocking: DOMTokenList
 
-    public typealias Element = Node
-    public func makeIterator() -> ValueIterableIterator<NodeList> {
-        ValueIterableIterator(sequence: self)
-    }
-}
+    @ReadWriteAttribute
+    public var disabled: Bool
 
-public protocol NonDocumentTypeChildNode: JSBridgedClass {}
-public extension NonDocumentTypeChildNode {
-    @inlinable var previousElementSibling: Element? { jsObject[Strings.previousElementSibling].fromJSValue()! }
+    @ReadWriteAttribute
+    public var charset: String
 
-    @inlinable var nextElementSibling: Element? { jsObject[Strings.nextElementSibling].fromJSValue()! }
-}
+    @ReadWriteAttribute
+    public var rev: String
 
-public protocol NonElementParentNode: JSBridgedClass {}
-public extension NonElementParentNode {
-    @inlinable func getElementById(elementId: String) -> Element? {
-        let this = jsObject
-        return this[Strings.getElementById].function!(this: this, arguments: [elementId.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var target: String
 }
 
-public class OfflineAudioCompletionEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OfflineAudioCompletionEvent].function }
+public class HTMLMapElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMapElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _renderedBuffer = ReadonlyAttribute(jsObject: jsObject, name: Strings.renderedBuffer)
+        _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name)
+        _areas = ReadonlyAttribute(jsObject: jsObject, name: Strings.areas)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: OfflineAudioCompletionEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
+    @ReadWriteAttribute
+    public var name: String
+
     @ReadonlyAttribute
-    public var renderedBuffer: AudioBuffer
+    public var areas: HTMLCollection
 }
 
-public class OfflineAudioCompletionEventInit: BridgedDictionary {
-    public convenience init(renderedBuffer: AudioBuffer) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.renderedBuffer] = renderedBuffer.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _renderedBuffer = ReadWriteAttribute(jsObject: object, name: Strings.renderedBuffer)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var renderedBuffer: AudioBuffer
-}
+    public var behavior: String
 
-public class OfflineAudioContext: BaseAudioContext {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OfflineAudioContext].function }
+    @ReadWriteAttribute
+    public var bgColor: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        _oncomplete = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncomplete)
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadWriteAttribute
+    public var direction: String
 
-    @inlinable public convenience init(contextOptions: OfflineAudioContextOptions) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [contextOptions.jsValue]))
-    }
+    @ReadWriteAttribute
+    public var height: String
 
-    @inlinable public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]))
-    }
+    @ReadWriteAttribute
+    public var hspace: UInt32
 
-    @inlinable public func startRendering() -> JSPromise {
-        let this = jsObject
-        return this[Strings.startRendering].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var loop: Int32
 
-    @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()!
-    }
+    @ReadWriteAttribute
+    public var scrollAmount: UInt32
 
-    @inlinable public func resume() -> JSPromise {
-        let this = jsObject
-        return this[Strings.resume].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var scrollDelay: UInt32
 
-    @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
-    }
+    @ReadWriteAttribute
+    public var trueSpeed: Bool
+
+    @ReadWriteAttribute
+    public var vspace: UInt32
+
+    @ReadWriteAttribute
+    public var width: String
 
-    @inlinable public func suspend(suspendTime: Double) -> JSPromise {
+    @inlinable public func start() {
         let this = jsObject
-        return this[Strings.suspend].function!(this: this, arguments: [suspendTime.jsValue]).fromJSValue()!
+        _ = this[Strings.start].function!(this: this, arguments: [])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func suspend(suspendTime: Double) async throws {
+    @inlinable public func stop() {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.suspend].function!(this: this, arguments: [suspendTime.jsValue]).fromJSValue()!
-        _ = try await _promise.value
+        _ = this[Strings.stop].function!(this: this, arguments: [])
     }
-
-    @ReadonlyAttribute
-    public var length: UInt32
-
-    @ClosureAttribute1Optional
-    public var oncomplete: EventHandler
 }
 
-public class OfflineAudioContextOptions: BridgedDictionary {
-    public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.numberOfChannels] = numberOfChannels.jsValue
-        object[Strings.length] = length.jsValue
-        object[Strings.sampleRate] = sampleRate.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public class HTMLMediaElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMediaElement].function }
 
-    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)
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error)
+        _src = ReadWriteAttribute(jsObject: jsObject, name: Strings.src)
+        _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 numberOfChannels: UInt32
+    public var src: String
 
-    @ReadWriteAttribute
-    public var length: UInt32
+    // XXX: member 'srcObject' is ignored
+
+    @ReadonlyAttribute
+    public var currentSrc: String
 
     @ReadWriteAttribute
-    public var sampleRate: Float
-}
+    public var crossOrigin: String?
 
-public class OffscreenCanvas: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OffscreenCanvas].function }
+    public static let NETWORK_EMPTY: UInt16 = 0
 
-    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)
-    }
+    public static let NETWORK_IDLE: UInt16 = 1
 
-    @inlinable public convenience init(width: UInt64, height: UInt64) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [width.jsValue, height.jsValue]))
-    }
+    public static let NETWORK_LOADING: UInt16 = 2
 
-    @ReadWriteAttribute
-    public var width: UInt64
+    public static let NETWORK_NO_SOURCE: UInt16 = 3
+
+    @ReadonlyAttribute
+    public var networkState: UInt16
 
     @ReadWriteAttribute
-    public var height: UInt64
+    public var preload: String
 
-    // XXX: member 'getContext' is ignored
+    @ReadonlyAttribute
+    public var buffered: TimeRanges
 
-    @inlinable public func transferToImageBitmap() -> ImageBitmap {
+    @inlinable public func load() {
         let this = jsObject
-        return this[Strings.transferToImageBitmap].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.load].function!(this: this, arguments: [])
     }
 
-    @inlinable public func convertToBlob(options: ImageEncodeOptions? = nil) -> JSPromise {
+    @inlinable public func canPlayType(type: String) -> CanPlayTypeResult {
         let this = jsObject
-        return this[Strings.convertToBlob].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.canPlayType].function!(this: this, arguments: [type.jsValue]).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: [options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
+    public static let HAVE_NOTHING: UInt16 = 0
 
-    @ClosureAttribute1Optional
-    public var oncontextlost: EventHandler
+    public static let HAVE_METADATA: UInt16 = 1
 
-    @ClosureAttribute1Optional
-    public var oncontextrestored: EventHandler
-}
+    public static let HAVE_CURRENT_DATA: UInt16 = 2
 
-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 static let HAVE_FUTURE_DATA: UInt16 = 3
 
-    public let jsObject: JSObject
+    public static let HAVE_ENOUGH_DATA: UInt16 = 4
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas)
-        self.jsObject = jsObject
-    }
+    @ReadonlyAttribute
+    public var readyState: UInt16
 
-    @inlinable public func commit() {
+    @ReadonlyAttribute
+    public var seeking: Bool
+
+    @ReadWriteAttribute
+    public var currentTime: Double
+
+    @inlinable public func fastSeek(time: Double) {
         let this = jsObject
-        _ = this[Strings.commit].function!(this: this, arguments: [])
+        _ = this[Strings.fastSeek].function!(this: this, arguments: [time.jsValue])
     }
 
     @ReadonlyAttribute
-    public var canvas: OffscreenCanvas
-}
-
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.delay] = delay.jsValue
-        object[Strings.endDelay] = endDelay.jsValue
-        object[Strings.fill] = fill.jsValue
-        object[Strings.iterationStart] = iterationStart.jsValue
-        object[Strings.iterations] = iterations.jsValue
-        object[Strings.duration] = duration.jsValue
-        object[Strings.direction] = direction.jsValue
-        object[Strings.easing] = easing.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    public var duration: Double
 
-    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)
+    @inlinable public func getStartDate() -> JSObject {
+        let this = jsObject
+        return this[Strings.getStartDate].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var delay: Double
+    @ReadonlyAttribute
+    public var paused: Bool
 
     @ReadWriteAttribute
-    public var endDelay: Double
+    public var defaultPlaybackRate: Double
 
     @ReadWriteAttribute
-    public var fill: FillMode
+    public var playbackRate: Double
 
     @ReadWriteAttribute
-    public var iterationStart: Double
+    public var preservesPitch: Bool
 
-    @ReadWriteAttribute
-    public var iterations: Double
+    @ReadonlyAttribute
+    public var played: TimeRanges
 
-    @ReadWriteAttribute
-    public var duration: Double_or_String
+    @ReadonlyAttribute
+    public var seekable: TimeRanges
 
-    @ReadWriteAttribute
-    public var direction: PlaybackDirection
+    @ReadonlyAttribute
+    public var ended: Bool
 
     @ReadWriteAttribute
-    public var easing: String
-}
-
-public class OscillatorNode: AudioScheduledSourceNode {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(context: BaseAudioContext, options: OscillatorOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
+    public var autoplay: Bool
 
     @ReadWriteAttribute
-    public var type: OscillatorType
-
-    @ReadonlyAttribute
-    public var frequency: AudioParam
-
-    @ReadonlyAttribute
-    public var detune: AudioParam
+    public var loop: Bool
 
-    @inlinable public func setPeriodicWave(periodicWave: PeriodicWave) {
+    @inlinable public func play() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.setPeriodicWave].function!(this: this, arguments: [periodicWave.jsValue])
+        return this[Strings.play].function!(this: this, arguments: []).fromJSValue()!
     }
-}
 
-public class OscillatorOptions: BridgedDictionary {
-    public convenience init(type: OscillatorType, frequency: Float, detune: Float, periodicWave: PeriodicWave) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.type] = type.jsValue
-        object[Strings.frequency] = frequency.jsValue
-        object[Strings.detune] = detune.jsValue
-        object[Strings.periodicWave] = periodicWave.jsValue
-        self.init(unsafelyWrapping: object)
+    @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
     }
 
-    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)
+    @inlinable public func pause() {
+        let this = jsObject
+        _ = this[Strings.pause].function!(this: this, arguments: [])
     }
 
     @ReadWriteAttribute
-    public var type: OscillatorType
+    public var controls: Bool
 
     @ReadWriteAttribute
-    public var frequency: Float
+    public var volume: Double
 
     @ReadWriteAttribute
-    public var detune: Float
+    public var muted: Bool
 
     @ReadWriteAttribute
-    public var periodicWave: PeriodicWave
-}
-
-public enum OscillatorType: JSString, JSValueCompatible {
-    case sine = "sine"
-    case square = "square"
-    case sawtooth = "sawtooth"
-    case triangle = "triangle"
-    case custom = "custom"
-
-    @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))
-    }
+    public var defaultMuted: Bool
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadonlyAttribute
+    public var audioTracks: AudioTrackList
 
-public enum OverSampleType: JSString, JSValueCompatible {
-    case none = "none"
-    case _2x = "2x"
-    case _4x = "4x"
+    @ReadonlyAttribute
+    public var videoTracks: VideoTrackList
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var textTracks: TextTrackList
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func addTextTrack(kind: TextTrackKind, label: String? = nil, language: String? = nil) -> TextTrack {
+        let this = jsObject
+        return this[Strings.addTextTrack].function!(this: this, arguments: [kind.jsValue, label?.jsValue ?? .undefined, language?.jsValue ?? .undefined]).fromJSValue()!
     }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class OverconstrainedError: DOMException {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OverconstrainedError].function }
+public class HTMLMenuElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMenuElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint)
+        _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(constraint: String, message: String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [constraint.jsValue, message?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var constraint: String
+    @ReadWriteAttribute
+    public var compact: Bool
 }
 
-public class PageTransitionEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PageTransitionEvent].function }
+public class HTMLMetaElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMetaElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _persisted = ReadonlyAttribute(jsObject: jsObject, name: Strings.persisted)
+        _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)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: PageTransitionEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var persisted: Bool
-}
+    @ReadWriteAttribute
+    public var name: String
 
-public class PageTransitionEventInit: BridgedDictionary {
-    public convenience init(persisted: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.persisted] = persisted.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var httpEquiv: String
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _persisted = ReadWriteAttribute(jsObject: object, name: Strings.persisted)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var content: String
 
     @ReadWriteAttribute
-    public var persisted: Bool
+    public var media: String
+
+    @ReadWriteAttribute
+    public var scheme: String
 }
 
-public class PannerNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PannerNode].function }
+public class HTMLMeterElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLMeterElement].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)
+        _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)
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: PannerOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadWriteAttribute
-    public var panningModel: PanningModelType
-
-    @ReadonlyAttribute
-    public var positionX: AudioParam
-
-    @ReadonlyAttribute
-    public var positionY: AudioParam
-
-    @ReadonlyAttribute
-    public var positionZ: AudioParam
-
-    @ReadonlyAttribute
-    public var orientationX: AudioParam
-
-    @ReadonlyAttribute
-    public var orientationY: AudioParam
-
-    @ReadonlyAttribute
-    public var orientationZ: AudioParam
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var distanceModel: DistanceModelType
+    public var value: Double
 
     @ReadWriteAttribute
-    public var refDistance: Double
+    public var min: Double
 
     @ReadWriteAttribute
-    public var maxDistance: Double
+    public var max: Double
 
     @ReadWriteAttribute
-    public var rolloffFactor: Double
+    public var low: Double
 
     @ReadWriteAttribute
-    public var coneInnerAngle: Double
+    public var high: Double
 
     @ReadWriteAttribute
-    public var coneOuterAngle: Double
+    public var optimum: Double
 
-    @ReadWriteAttribute
-    public var coneOuterGain: Double
+    @ReadonlyAttribute
+    public var labels: NodeList
+}
 
-    @inlinable public func setPosition(x: Float, y: Float, z: Float) {
-        let this = jsObject
-        _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+public class HTMLModElement: HTMLElement {
+    @inlinable override public 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)
     }
 
-    @inlinable public func setOrientation(x: Float, y: Float, z: Float) {
-        let this = jsObject
-        _ = this[Strings.setOrientation].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
+
+    @ReadWriteAttribute
+    public var cite: String
+
+    @ReadWriteAttribute
+    public var dateTime: String
 }
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.panningModel] = panningModel.jsValue
-        object[Strings.distanceModel] = distanceModel.jsValue
-        object[Strings.positionX] = positionX.jsValue
-        object[Strings.positionY] = positionY.jsValue
-        object[Strings.positionZ] = positionZ.jsValue
-        object[Strings.orientationX] = orientationX.jsValue
-        object[Strings.orientationY] = orientationY.jsValue
-        object[Strings.orientationZ] = orientationZ.jsValue
-        object[Strings.refDistance] = refDistance.jsValue
-        object[Strings.maxDistance] = maxDistance.jsValue
-        object[Strings.rolloffFactor] = rolloffFactor.jsValue
-        object[Strings.coneInnerAngle] = coneInnerAngle.jsValue
-        object[Strings.coneOuterAngle] = coneOuterAngle.jsValue
-        object[Strings.coneOuterGain] = coneOuterGain.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public class HTMLOListElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOListElement].function }
 
-    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)
+    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)
     }
 
-    @ReadWriteAttribute
-    public var panningModel: PanningModelType
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var distanceModel: DistanceModelType
+    public var reversed: Bool
 
     @ReadWriteAttribute
-    public var positionX: Float
+    public var start: Int32
 
     @ReadWriteAttribute
-    public var positionY: Float
+    public var type: String
 
     @ReadWriteAttribute
-    public var positionZ: Float
+    public var compact: Bool
+}
 
-    @ReadWriteAttribute
-    public var orientationX: Float
+public class HTMLObjectElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLObjectElement].function }
 
-    @ReadWriteAttribute
-    public var orientationY: Float
+    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)
+    }
 
-    @ReadWriteAttribute
-    public var orientationZ: Float
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var refDistance: Double
+    public var data: String
 
     @ReadWriteAttribute
-    public var maxDistance: Double
+    public var type: String
 
     @ReadWriteAttribute
-    public var rolloffFactor: Double
+    public var name: String
 
-    @ReadWriteAttribute
-    public var coneInnerAngle: Double
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
     @ReadWriteAttribute
-    public var coneOuterAngle: Double
+    public var width: String
 
     @ReadWriteAttribute
-    public var coneOuterGain: Double
-}
+    public var height: String
 
-public enum PanningModelType: JSString, JSValueCompatible {
-    case equalpower = "equalpower"
-    case hRTF = "HRTF"
+    @ReadonlyAttribute
+    public var contentDocument: Document?
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var contentWindow: WindowProxy?
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func getSVGDocument() -> Document? {
+        let this = jsObject
+        return this[Strings.getSVGDocument].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public protocol ParentNode: JSBridgedClass {}
-public extension ParentNode {
-    @inlinable var children: HTMLCollection { jsObject[Strings.children].fromJSValue()! }
-
-    @inlinable var firstElementChild: Element? { jsObject[Strings.firstElementChild].fromJSValue()! }
-
-    @inlinable var lastElementChild: Element? { jsObject[Strings.lastElementChild].fromJSValue()! }
+    @ReadonlyAttribute
+    public var willValidate: Bool
 
-    @inlinable var childElementCount: UInt32 { jsObject[Strings.childElementCount].fromJSValue()! }
+    @ReadonlyAttribute
+    public var validity: ValidityState
 
-    @inlinable func prepend(nodes: Node_or_String...) {
-        let this = jsObject
-        _ = this[Strings.prepend].function!(this: this, arguments: nodes.map(\.jsValue))
-    }
+    @ReadonlyAttribute
+    public var validationMessage: String
 
-    @inlinable func append(nodes: Node_or_String...) {
+    @inlinable public func checkValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.append].function!(this: this, arguments: nodes.map(\.jsValue))
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func replaceChildren(nodes: Node_or_String...) {
+    @inlinable public func reportValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.replaceChildren].function!(this: this, arguments: nodes.map(\.jsValue))
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func querySelector(selectors: String) -> Element? {
+    @inlinable public func setCustomValidity(error: String) {
         let this = jsObject
-        return this[Strings.querySelector].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
     }
 
-    @inlinable func querySelectorAll(selectors: String) -> NodeList {
-        let this = jsObject
-        return this[Strings.querySelectorAll].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
-    }
-}
+    @ReadWriteAttribute
+    public var align: String
 
-public class Path2D: JSBridgedClass, CanvasPath {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Path2D].function }
+    @ReadWriteAttribute
+    public var archive: String
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var code: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var declare: Bool
 
-    @inlinable public convenience init(path: Path2D_or_String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [path?.jsValue ?? .undefined]))
-    }
+    @ReadWriteAttribute
+    public var hspace: UInt32
 
-    @inlinable public func addPath(path: Path2D, transform: DOMMatrix2DInit? = nil) {
-        let this = jsObject
-        _ = this[Strings.addPath].function!(this: this, arguments: [path.jsValue, transform?.jsValue ?? .undefined])
-    }
-}
+    @ReadWriteAttribute
+    public var standby: String
 
-public class Performance: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Performance].function }
+    @ReadWriteAttribute
+    public var vspace: UInt32
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _timeOrigin = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeOrigin)
-        super.init(unsafelyWrapping: jsObject)
-    }
+    @ReadWriteAttribute
+    public var codeBase: String
 
-    @inlinable public func now() -> DOMHighResTimeStamp {
-        let this = jsObject
-        return this[Strings.now].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var codeType: String
 
-    @ReadonlyAttribute
-    public var timeOrigin: DOMHighResTimeStamp
+    @ReadWriteAttribute
+    public var useMap: String
 
-    @inlinable public func toJSON() -> JSObject {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var border: String
 }
 
-public class PeriodicWave: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.PeriodicWave].function }
-
-    public let jsObject: JSObject
+public class HTMLOptGroupElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOptGroupElement].function }
 
     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: [context.jsValue, options?.jsValue ?? .undefined]))
-    }
-}
-
-public class PeriodicWaveConstraints: BridgedDictionary {
-    public convenience init(disableNormalization: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.disableNormalization] = disableNormalization.jsValue
-        self.init(unsafelyWrapping: object)
-    }
-
-    public required init(unsafelyWrapping object: JSObject) {
-        _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization)
-        super.init(unsafelyWrapping: object)
-    }
-
-    @ReadWriteAttribute
-    public var disableNormalization: Bool
-}
-
-public class PeriodicWaveOptions: BridgedDictionary {
-    public convenience init(real: [Float], imag: [Float]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.real] = real.jsValue
-        object[Strings.imag] = imag.jsValue
-        self.init(unsafelyWrapping: object)
+        _disabled = ReadWriteAttribute(jsObject: jsObject, name: Strings.disabled)
+        _label = ReadWriteAttribute(jsObject: jsObject, name: Strings.label)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _real = ReadWriteAttribute(jsObject: object, name: Strings.real)
-        _imag = ReadWriteAttribute(jsObject: object, name: Strings.imag)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var real: [Float]
+    public var disabled: Bool
 
     @ReadWriteAttribute
-    public var imag: [Float]
+    public var label: String
 }
 
-public class PlaneLayout: BridgedDictionary {
-    public convenience init(offset: UInt32, stride: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.offset] = offset.jsValue
-        object[Strings.stride] = stride.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset)
-        _stride = ReadWriteAttribute(jsObject: object, name: Strings.stride)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var offset: UInt32
+    public var disabled: Bool
+
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
     @ReadWriteAttribute
-    public var stride: UInt32
-}
+    public var label: String
 
-public enum PlaybackDirection: JSString, JSValueCompatible {
-    case normal = "normal"
-    case reverse = "reverse"
-    case alternate = "alternate"
-    case alternateReverse = "alternate-reverse"
+    @ReadWriteAttribute
+    public var defaultSelected: Bool
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var selected: Bool
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var value: String
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadWriteAttribute
+    public var text: String
 
-public class Plugin: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Plugin].function }
+    @ReadonlyAttribute
+    public var index: Int32
+}
 
-    public let jsObject: JSObject
+public class HTMLOptionsCollection: HTMLCollection {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOptionsCollection].function }
 
     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
+        _length = ReadWriteAttribute(jsObject: jsObject, name: Strings.length)
+        _selectedIndex = ReadWriteAttribute(jsObject: jsObject, name: Strings.selectedIndex)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadonlyAttribute
-    public var name: String
-
-    @ReadonlyAttribute
-    public var description: String
-
-    @ReadonlyAttribute
-    public var filename: String
+    @usableFromInline let _length: ReadWriteAttribute<UInt32>
+    @inlinable override public var length: UInt32 {
+        get { _length.wrappedValue }
+        set { _length.wrappedValue = newValue }
+    }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    // XXX: unsupported setter for keys of type UInt32
 
-    @inlinable public subscript(key: Int) -> MimeType? {
-        jsObject[key].fromJSValue()
+    @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) {
+        let this = jsObject
+        _ = this[Strings.add].function!(this: this, arguments: [element.jsValue, before?.jsValue ?? .undefined])
     }
 
-    @inlinable public subscript(key: String) -> MimeType? {
-        jsObject[key].fromJSValue()
+    @inlinable public func remove(index: Int32) {
+        let this = jsObject
+        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
     }
-}
 
-public class PluginArray: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.PluginArray].function }
+    @ReadWriteAttribute
+    public var selectedIndex: Int32
+}
 
-    public let jsObject: JSObject
+public protocol HTMLOrSVGElement: JSBridgedClass {}
+public extension HTMLOrSVGElement {
+    @inlinable var dataset: DOMStringMap { jsObject[Strings.dataset].fromJSValue()! }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+    @inlinable var nonce: String {
+        get { jsObject[Strings.nonce].fromJSValue()! }
+        nonmutating set { jsObject[Strings.nonce] = newValue.jsValue }
     }
 
-    @inlinable public func refresh() {
-        let this = jsObject
-        _ = this[Strings.refresh].function!(this: this, arguments: [])
+    @inlinable var autofocus: Bool {
+        get { jsObject[Strings.autofocus].fromJSValue()! }
+        nonmutating set { jsObject[Strings.autofocus] = newValue.jsValue }
     }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @inlinable var tabIndex: Int32 {
+        get { jsObject[Strings.tabIndex].fromJSValue()! }
+        nonmutating set { jsObject[Strings.tabIndex] = newValue.jsValue }
+    }
 
-    @inlinable public subscript(key: Int) -> Plugin? {
-        jsObject[key].fromJSValue()
+    @inlinable func focus(options: FocusOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.focus].function!(this: this, arguments: [options?.jsValue ?? .undefined])
     }
 
-    @inlinable public subscript(key: String) -> Plugin? {
-        jsObject[key].fromJSValue()
+    @inlinable func blur() {
+        let this = jsObject
+        _ = this[Strings.blur].function!(this: this, arguments: [])
     }
 }
 
-public class PopStateEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PopStateEvent].function }
+public class HTMLOutputElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLOutputElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
+        _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 convenience init(type: String, eventInitDict: PopStateEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadonlyAttribute
-    public var state: JSValue
-}
-
-public class PopStateEventInit: BridgedDictionary {
-    public convenience init(state: JSValue) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.state] = state.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    public var htmlFor: DOMTokenList
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _state = ReadWriteAttribute(jsObject: object, name: Strings.state)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
     @ReadWriteAttribute
-    public var state: JSValue
-}
+    public var name: String
 
-public enum PredefinedColorSpace: JSString, JSValueCompatible {
-    case srgb = "srgb"
-    case displayP3 = "display-p3"
+    @ReadonlyAttribute
+    public var type: String
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var defaultValue: String
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var value: String
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadonlyAttribute
+    public var willValidate: Bool
 
-public enum PremultiplyAlpha: JSString, JSValueCompatible {
-    case none = "none"
-    case premultiply = "premultiply"
-    case `default` = "default"
+    @ReadonlyAttribute
+    public var validity: ValidityState
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var validationMessage: String
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func checkValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class ProcessingInstruction: CharacterData {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProcessingInstruction].function }
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target)
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public func setCustomValidity(error: String) {
+        let this = jsObject
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
     }
 
     @ReadonlyAttribute
-    public var target: String
+    public var labels: NodeList
 }
 
-public class ProgressEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProgressEvent].function }
+public class HTMLParagraphElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLParagraphElement].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)
+        _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: ProgressEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var lengthComputable: Bool
-
-    @ReadonlyAttribute
-    public var loaded: UInt64
-
-    @ReadonlyAttribute
-    public var total: UInt64
+    @ReadWriteAttribute
+    public var align: String
 }
 
-public class ProgressEventInit: BridgedDictionary {
-    public convenience init(lengthComputable: Bool, loaded: UInt64, total: UInt64) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.lengthComputable] = lengthComputable.jsValue
-        object[Strings.loaded] = loaded.jsValue
-        object[Strings.total] = total.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLParamElement: HTMLElement {
+    @inlinable override public 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 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)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var lengthComputable: Bool
+    public var name: String
 
     @ReadWriteAttribute
-    public var loaded: UInt64
+    public var value: String
+
+    @ReadWriteAttribute
+    public var type: String
 
     @ReadWriteAttribute
-    public var total: UInt64
+    public var valueType: String
 }
 
-public class PromiseRejectionEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PromiseRejectionEvent].function }
+public class HTMLPictureElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLPictureElement].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 convenience init(type: String, eventInitDict: PromiseRejectionEventInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
-
-    @ReadonlyAttribute
-    public var promise: JSPromise
-
-    @ReadonlyAttribute
-    public var reason: JSValue
 }
 
-public class PromiseRejectionEventInit: BridgedDictionary {
-    public convenience init(promise: JSPromise, reason: JSValue) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.promise] = promise.jsValue
-        object[Strings.reason] = reason.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public class HTMLPreElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLPreElement].function }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _promise = ReadWriteAttribute(jsObject: object, name: Strings.promise)
-        _reason = ReadWriteAttribute(jsObject: object, name: Strings.reason)
-        super.init(unsafelyWrapping: object)
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _width = ReadWriteAttribute(jsObject: jsObject, name: Strings.width)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadWriteAttribute
-    public var promise: JSPromise
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadWriteAttribute
-    public var reason: JSValue
+    public var width: Int32
 }
 
-public class QueuingStrategy: BridgedDictionary {
-    public convenience init(highWaterMark: Double, size: @escaping QueuingStrategySize) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.highWaterMark] = highWaterMark.jsValue
-        ClosureAttribute1[Strings.size, in: object] = size
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark)
-        _size = ClosureAttribute1(jsObject: object, name: Strings.size)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var highWaterMark: Double
-
-    @ClosureAttribute1
-    public var size: QueuingStrategySize
-}
+    public var value: Double
 
-public class QueuingStrategyInit: BridgedDictionary {
-    public convenience init(highWaterMark: Double) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.highWaterMark] = highWaterMark.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var max: Double
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var position: Double
 
-    @ReadWriteAttribute
-    public var highWaterMark: Double
+    @ReadonlyAttribute
+    public var labels: NodeList
 }
 
-public class RadioNodeList: NodeList {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.RadioNodeList].function }
+public class HTMLQuoteElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLQuoteElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value)
+        _cite = ReadWriteAttribute(jsObject: jsObject, name: Strings.cite)
         super.init(unsafelyWrapping: jsObject)
     }
 
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
+
     @ReadWriteAttribute
-    public var value: String
+    public var cite: String
 }
 
-public class Range: AbstractRange {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Range].function }
+public class HTMLScriptElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLScriptElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _commonAncestorContainer = ReadonlyAttribute(jsObject: jsObject, name: Strings.commonAncestorContainer)
+        _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)
+        _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)
     }
 
@@ -18980,940 +8685,919 @@ public class Range: AbstractRange {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var commonAncestorContainer: Node
+    @ReadWriteAttribute
+    public var src: String
 
-    @inlinable public func setStart(node: Node, offset: UInt32) {
-        let this = jsObject
-        _ = this[Strings.setStart].function!(this: this, arguments: [node.jsValue, offset.jsValue])
-    }
+    @ReadWriteAttribute
+    public var type: String
 
-    @inlinable public func setEnd(node: Node, offset: UInt32) {
-        let this = jsObject
-        _ = this[Strings.setEnd].function!(this: this, arguments: [node.jsValue, offset.jsValue])
-    }
+    @ReadWriteAttribute
+    public var noModule: Bool
 
-    @inlinable public func setStartBefore(node: Node) {
-        let this = jsObject
-        _ = this[Strings.setStartBefore].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadWriteAttribute
+    public var async: Bool
 
-    @inlinable public func setStartAfter(node: Node) {
-        let this = jsObject
-        _ = this[Strings.setStartAfter].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadWriteAttribute
+    public var `defer`: Bool
 
-    @inlinable public func setEndBefore(node: Node) {
-        let this = jsObject
-        _ = this[Strings.setEndBefore].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadWriteAttribute
+    public var crossOrigin: String?
 
-    @inlinable public func setEndAfter(node: Node) {
-        let this = jsObject
-        _ = this[Strings.setEndAfter].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadWriteAttribute
+    public var text: String
 
-    @inlinable public func collapse(toStart: Bool? = nil) {
-        let this = jsObject
-        _ = this[Strings.collapse].function!(this: this, arguments: [toStart?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var integrity: String
 
-    @inlinable public func selectNode(node: Node) {
-        let this = jsObject
-        _ = this[Strings.selectNode].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadWriteAttribute
+    public var referrerPolicy: String
 
-    @inlinable public func selectNodeContents(node: Node) {
-        let this = jsObject
-        _ = this[Strings.selectNodeContents].function!(this: this, arguments: [node.jsValue])
+    @ReadonlyAttribute
+    public var blocking: DOMTokenList
+
+    @inlinable public static func supports(type: String) -> Bool {
+        let this = constructor!
+        return this[Strings.supports].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
     }
 
-    public static let START_TO_START: UInt16 = 0
+    @ReadWriteAttribute
+    public var charset: String
 
-    public static let START_TO_END: UInt16 = 1
+    @ReadWriteAttribute
+    public var event: String
 
-    public static let END_TO_END: UInt16 = 2
+    @ReadWriteAttribute
+    public var htmlFor: String
+}
 
-    public static let END_TO_START: UInt16 = 3
+public class HTMLSelectElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSelectElement].function }
 
-    @inlinable public func compareBoundaryPoints(how: UInt16, sourceRange: Range) -> Int16 {
-        let this = jsObject
-        return this[Strings.compareBoundaryPoints].function!(this: this, arguments: [how.jsValue, sourceRange.jsValue]).fromJSValue()!
+    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 func deleteContents() {
-        let this = jsObject
-        _ = this[Strings.deleteContents].function!(this: this, arguments: [])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func extractContents() -> DocumentFragment {
-        let this = jsObject
-        return this[Strings.extractContents].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var autocomplete: String
 
-    @inlinable public func cloneContents() -> DocumentFragment {
-        let this = jsObject
-        return this[Strings.cloneContents].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var disabled: Bool
 
-    @inlinable public func insertNode(node: Node) {
-        let this = jsObject
-        _ = this[Strings.insertNode].function!(this: this, arguments: [node.jsValue])
-    }
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
-    @inlinable public func surroundContents(newParent: Node) {
-        let this = jsObject
-        _ = this[Strings.surroundContents].function!(this: this, arguments: [newParent.jsValue])
-    }
+    @ReadWriteAttribute
+    public var multiple: Bool
+
+    @ReadWriteAttribute
+    public var name: String
+
+    @ReadWriteAttribute
+    public var required: Bool
+
+    @ReadWriteAttribute
+    public var size: UInt32
+
+    @ReadonlyAttribute
+    public var type: String
+
+    @ReadonlyAttribute
+    public var options: HTMLOptionsCollection
 
-    @inlinable public func cloneRange() -> Self {
-        let this = jsObject
-        return this[Strings.cloneRange].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var length: UInt32
 
-    @inlinable public func detach() {
-        let this = jsObject
-        _ = this[Strings.detach].function!(this: this, arguments: [])
+    @inlinable public subscript(key: Int) -> HTMLOptionElement? {
+        jsObject[key].fromJSValue()
     }
 
-    @inlinable public func isPointInRange(node: Node, offset: UInt32) -> Bool {
+    @inlinable public func namedItem(name: String) -> HTMLOptionElement? {
         let this = jsObject
-        return this[Strings.isPointInRange].function!(this: this, arguments: [node.jsValue, offset.jsValue]).fromJSValue()!
+        return this[Strings.namedItem].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func comparePoint(node: Node, offset: UInt32) -> Int16 {
+    @inlinable public func add(element: HTMLOptGroupElement_or_HTMLOptionElement, before: HTMLElement_or_Int32? = nil) {
         let this = jsObject
-        return this[Strings.comparePoint].function!(this: this, arguments: [node.jsValue, offset.jsValue]).fromJSValue()!
+        _ = this[Strings.add].function!(this: this, arguments: [element.jsValue, before?.jsValue ?? .undefined])
     }
 
-    @inlinable public func intersectsNode(node: Node) -> Bool {
+    @inlinable public func remove() {
         let this = jsObject
-        return this[Strings.intersectsNode].function!(this: this, arguments: [node.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public var description: String {
-        jsObject[Strings.toString]!().fromJSValue()!
+        _ = this[Strings.remove].function!(this: this, arguments: [])
     }
 
-    @inlinable public func getClientRects() -> DOMRectList {
+    @inlinable public func remove(index: Int32) {
         let this = jsObject
-        return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.remove].function!(this: this, arguments: [index.jsValue])
     }
 
-    @inlinable public func getBoundingClientRect() -> DOMRect {
-        let this = jsObject
-        return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()!
-    }
-}
+    // XXX: unsupported setter for keys of type UInt32
 
-public class ReadableByteStreamController: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableByteStreamController].function }
+    @ReadonlyAttribute
+    public var selectedOptions: HTMLCollection
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var selectedIndex: Int32
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _byobRequest = ReadonlyAttribute(jsObject: jsObject, name: Strings.byobRequest)
-        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var value: String
 
     @ReadonlyAttribute
-    public var byobRequest: ReadableStreamBYOBRequest?
+    public var willValidate: Bool
 
     @ReadonlyAttribute
-    public var desiredSize: Double?
+    public var validity: ValidityState
 
-    @inlinable public func close() {
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func enqueue(chunk: ArrayBufferView) {
+    @inlinable public func reportValidity() -> Bool {
         let this = jsObject
-        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk.jsValue])
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func error(e: JSValue? = nil) {
+    @inlinable public func setCustomValidity(error: String) {
         let this = jsObject
-        _ = this[Strings.error].function!(this: this, arguments: [e?.jsValue ?? .undefined])
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
     }
-}
 
-public class ReadableStream: JSBridgedClass, AsyncSequence {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStream].function }
+    @ReadonlyAttribute
+    public var labels: NodeList
+}
 
-    public let jsObject: JSObject
+public class HTMLSlotElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSlotElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _locked = ReadonlyAttribute(jsObject: jsObject, name: Strings.locked)
-        self.jsObject = jsObject
+        _name = ReadWriteAttribute(jsObject: jsObject, name: Strings.name)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(underlyingSource: JSObject? = nil, strategy: QueuingStrategy? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [underlyingSource?.jsValue ?? .undefined, strategy?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @ReadonlyAttribute
-    public var locked: Bool
+    @ReadWriteAttribute
+    public var name: String
 
-    @inlinable public func cancel(reason: JSValue? = nil) -> JSPromise {
+    @inlinable public func assignedNodes(options: AssignedNodesOptions? = nil) -> [Node] {
         let this = jsObject
-        return this[Strings.cancel].function!(this: this, arguments: [reason?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.assignedNodes].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func cancel(reason: JSValue? = nil) async throws {
+    @inlinable public func assignedElements(options: AssignedNodesOptions? = nil) -> [Element] {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.cancel].function!(this: this, arguments: [reason?.jsValue ?? .undefined]).fromJSValue()!
-        _ = try await _promise.value
+        return this[Strings.assignedElements].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public func getReader(options: ReadableStreamGetReaderOptions? = nil) -> ReadableStreamReader {
+    @inlinable public func assign(nodes: Element_or_Text...) {
         let this = jsObject
-        return this[Strings.getReader].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.assign].function!(this: this, arguments: nodes.map(\.jsValue))
     }
+}
 
-    @inlinable public func pipeThrough(transform: ReadableWritablePair, options: StreamPipeOptions? = nil) -> Self {
-        let this = jsObject
-        return this[Strings.pipeThrough].function!(this: this, arguments: [transform.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
+public class HTMLSourceElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSourceElement].function }
 
-    @inlinable public func pipeTo(destination: WritableStream, options: StreamPipeOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.pipeTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    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)
     }
 
-    @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: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        _ = try await _promise.value
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func tee() -> [ReadableStream] {
-        let this = jsObject
-        return this[Strings.tee].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var src: String
 
-    public typealias Element = JSValue
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    public func makeAsyncIterator() -> ValueIterableAsyncIterator<ReadableStream> {
-        ValueIterableAsyncIterator(sequence: self)
-    }
-}
+    @ReadWriteAttribute
+    public var type: String
 
-public class ReadableStreamBYOBReadResult: BridgedDictionary {
-    public convenience init(value: ArrayBufferView?, done: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.value] = value.jsValue
-        object[Strings.done] = done.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var srcset: String
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _value = ReadWriteAttribute(jsObject: object, name: Strings.value)
-        _done = ReadWriteAttribute(jsObject: object, name: Strings.done)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var sizes: String
 
     @ReadWriteAttribute
-    public var value: ArrayBufferView?
+    public var media: String
 
     @ReadWriteAttribute
-    public var done: Bool
-}
+    public var width: UInt32
 
-public class ReadableStreamBYOBReader: JSBridgedClass, ReadableStreamGenericReader {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamBYOBReader].function }
+    @ReadWriteAttribute
+    public var height: UInt32
+}
 
-    public let jsObject: JSObject
+public class HTMLSpanElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLSpanElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(stream: ReadableStream) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
+}
 
-    @inlinable public func read(view: ArrayBufferView) -> JSPromise {
-        let this = jsObject
-        return this[Strings.read].function!(this: this, arguments: [view.jsValue]).fromJSValue()!
-    }
+public class HTMLStyleElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLStyleElement].function }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func read(view: ArrayBufferView) async throws -> ReadableStreamBYOBReadResult {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: [view.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _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)
     }
 
-    @inlinable public func releaseLock() {
-        let this = jsObject
-        _ = this[Strings.releaseLock].function!(this: this, arguments: [])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
-}
-
-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
-    }
+    @ReadWriteAttribute
+    public var media: String
 
     @ReadonlyAttribute
-    public var view: ArrayBufferView?
-
-    @inlinable public func respond(bytesWritten: UInt64) {
-        let this = jsObject
-        _ = this[Strings.respond].function!(this: this, arguments: [bytesWritten.jsValue])
-    }
+    public var blocking: DOMTokenList
 
-    @inlinable public func respondWithNewView(view: ArrayBufferView) {
-        let this = jsObject
-        _ = this[Strings.respondWithNewView].function!(this: this, arguments: [view.jsValue])
-    }
+    @ReadWriteAttribute
+    public var type: String
 }
 
-public class ReadableStreamDefaultController: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultController].function }
-
-    public let jsObject: JSObject
+public class HTMLTableCaptionElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableCaptionElement].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
-        self.jsObject = jsObject
-    }
-
-    @ReadonlyAttribute
-    public var desiredSize: Double?
-
-    @inlinable public func close() {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
-    }
-
-    @inlinable public func enqueue(chunk: JSValue? = nil) {
-        let this = jsObject
-        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk?.jsValue ?? .undefined])
+        _align = ReadWriteAttribute(jsObject: jsObject, name: Strings.align)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public func error(e: JSValue? = nil) {
-        let this = jsObject
-        _ = this[Strings.error].function!(this: this, arguments: [e?.jsValue ?? .undefined])
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
+
+    @ReadWriteAttribute
+    public var align: String
 }
 
-public class ReadableStreamDefaultReadResult: BridgedDictionary {
-    public convenience init(value: JSValue, done: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.value] = value.jsValue
-        object[Strings.done] = done.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _value = ReadWriteAttribute(jsObject: object, name: Strings.value)
-        _done = ReadWriteAttribute(jsObject: object, name: Strings.done)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var value: JSValue
+    public var colSpan: UInt32
 
     @ReadWriteAttribute
-    public var done: Bool
-}
+    public var rowSpan: UInt32
 
-public class ReadableStreamDefaultReader: JSBridgedClass, ReadableStreamGenericReader {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultReader].function }
+    @ReadWriteAttribute
+    public var headers: String
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var cellIndex: Int32
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var scope: String
 
-    @inlinable public convenience init(stream: ReadableStream) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
-    }
+    @ReadWriteAttribute
+    public var abbr: String
 
-    @inlinable public func read() -> JSPromise {
-        let this = jsObject
-        return this[Strings.read].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var align: String
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func read() async throws -> ReadableStreamDefaultReadResult {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var axis: String
 
-    @inlinable public func releaseLock() {
-        let this = jsObject
-        _ = this[Strings.releaseLock].function!(this: this, arguments: [])
-    }
-}
+    @ReadWriteAttribute
+    public var height: String
 
-public protocol ReadableStreamGenericReader: JSBridgedClass {}
-public extension ReadableStreamGenericReader {
-    @inlinable var closed: JSPromise { jsObject[Strings.closed].fromJSValue()! }
+    @ReadWriteAttribute
+    public var width: String
 
-    @inlinable func cancel(reason: JSValue? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.cancel].function!(this: this, arguments: [reason?.jsValue ?? .undefined]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var ch: String
 
-    @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: [reason?.jsValue ?? .undefined]).fromJSValue()!
-        _ = try await _promise.value
-    }
-}
+    @ReadWriteAttribute
+    public var chOff: String
 
-public class ReadableStreamGetReaderOptions: BridgedDictionary {
-    public convenience init(mode: ReadableStreamReaderMode) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mode] = mode.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var noWrap: Bool
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var vAlign: String
 
     @ReadWriteAttribute
-    public var mode: ReadableStreamReaderMode
+    public var bgColor: String
 }
 
-public class ReadableStreamIteratorOptions: BridgedDictionary {
-    public convenience init(preventCancel: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.preventCancel] = preventCancel.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _preventCancel = ReadWriteAttribute(jsObject: object, name: Strings.preventCancel)
-        super.init(unsafelyWrapping: object)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var preventCancel: Bool
-}
+    public var span: UInt32
 
-public enum ReadableStreamReaderMode: JSString, JSValueCompatible {
-    case byob = "byob"
+    @ReadWriteAttribute
+    public var align: String
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var ch: String
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var chOff: String
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var vAlign: String
+
+    @ReadWriteAttribute
+    public var width: String
 }
 
-public enum ReadableStreamType: JSString, JSValueCompatible {
-    case bytes = "bytes"
+public class HTMLTableElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableElement].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    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)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadWriteAttribute
+    public var caption: HTMLTableCaptionElement?
 
-public class ReadableWritablePair: BridgedDictionary {
-    public convenience init(readable: ReadableStream, writable: WritableStream) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.readable] = readable.jsValue
-        object[Strings.writable] = writable.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func createCaption() -> HTMLTableCaptionElement {
+        let this = jsObject
+        return this[Strings.createCaption].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _readable = ReadWriteAttribute(jsObject: object, name: Strings.readable)
-        _writable = ReadWriteAttribute(jsObject: object, name: Strings.writable)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func deleteCaption() {
+        let this = jsObject
+        _ = this[Strings.deleteCaption].function!(this: this, arguments: [])
     }
 
     @ReadWriteAttribute
-    public var readable: ReadableStream
-
-    @ReadWriteAttribute
-    public var writable: WritableStream
-}
-
-public enum RecordingState: JSString, JSValueCompatible {
-    case inactive = "inactive"
-    case recording = "recording"
-    case paused = "paused"
+    public var tHead: HTMLTableSectionElement?
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func createTHead() -> HTMLTableSectionElement {
+        let this = jsObject
+        return this[Strings.createTHead].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func deleteTHead() {
+        let this = jsObject
+        _ = this[Strings.deleteTHead].function!(this: this, arguments: [])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public enum ReferrerPolicy: JSString, JSValueCompatible {
-    case _empty = ""
-    case noReferrer = "no-referrer"
-    case noReferrerWhenDowngrade = "no-referrer-when-downgrade"
-    case sameOrigin = "same-origin"
-    case origin = "origin"
-    case strictOrigin = "strict-origin"
-    case originWhenCrossOrigin = "origin-when-cross-origin"
-    case strictOriginWhenCrossOrigin = "strict-origin-when-cross-origin"
-    case unsafeUrl = "unsafe-url"
+    @ReadWriteAttribute
+    public var tFoot: HTMLTableSectionElement?
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func createTFoot() -> HTMLTableSectionElement {
+        let this = jsObject
+        return this[Strings.createTFoot].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func deleteTFoot() {
+        let this = jsObject
+        _ = this[Strings.deleteTFoot].function!(this: this, arguments: [])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadonlyAttribute
+    public var tBodies: HTMLCollection
 
-public class RegistrationOptions: BridgedDictionary {
-    public convenience init(scope: String, type: WorkerType, updateViaCache: ServiceWorkerUpdateViaCache) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.scope] = scope.jsValue
-        object[Strings.type] = type.jsValue
-        object[Strings.updateViaCache] = updateViaCache.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func createTBody() -> HTMLTableSectionElement {
+        let this = jsObject
+        return this[Strings.createTBody].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    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)
+    @ReadonlyAttribute
+    public var rows: HTMLCollection
+
+    @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement {
+        let this = jsObject
+        return this[Strings.insertRow].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func deleteRow(index: Int32) {
+        let this = jsObject
+        _ = this[Strings.deleteRow].function!(this: this, arguments: [index.jsValue])
     }
 
     @ReadWriteAttribute
-    public var scope: String
+    public var align: String
 
     @ReadWriteAttribute
-    public var type: WorkerType
+    public var border: String
 
     @ReadWriteAttribute
-    public var updateViaCache: ServiceWorkerUpdateViaCache
-}
+    public var frame: String
 
-public class Request: JSBridgedClass, Body {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Request].function }
+    @ReadWriteAttribute
+    public var rules: String
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var summary: String
+
+    @ReadWriteAttribute
+    public var width: String
+
+    @ReadWriteAttribute
+    public var bgColor: String
+
+    @ReadWriteAttribute
+    public var cellPadding: String
+
+    @ReadWriteAttribute
+    public var cellSpacing: String
+}
+
+public class HTMLTableRowElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableRowElement].function }
 
     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)
-        self.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 convenience init(input: RequestInfo, init: RequestInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [input.jsValue, `init`?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadonlyAttribute
-    public var method: String
+    public var rowIndex: Int32
 
     @ReadonlyAttribute
-    public var url: String
+    public var sectionRowIndex: Int32
 
     @ReadonlyAttribute
-    public var headers: Headers
+    public var cells: HTMLCollection
 
-    @ReadonlyAttribute
-    public var destination: RequestDestination
+    @inlinable public func insertCell(index: Int32? = nil) -> HTMLTableCellElement {
+        let this = jsObject
+        return this[Strings.insertCell].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @ReadonlyAttribute
-    public var referrer: String
+    @inlinable public func deleteCell(index: Int32) {
+        let this = jsObject
+        _ = this[Strings.deleteCell].function!(this: this, arguments: [index.jsValue])
+    }
 
-    @ReadonlyAttribute
-    public var referrerPolicy: ReferrerPolicy
+    @ReadWriteAttribute
+    public var align: String
 
-    @ReadonlyAttribute
-    public var mode: RequestMode
+    @ReadWriteAttribute
+    public var ch: String
 
-    @ReadonlyAttribute
-    public var credentials: RequestCredentials
+    @ReadWriteAttribute
+    public var chOff: String
 
-    @ReadonlyAttribute
-    public var cache: RequestCache
+    @ReadWriteAttribute
+    public var vAlign: String
 
-    @ReadonlyAttribute
-    public var redirect: RequestRedirect
+    @ReadWriteAttribute
+    public var bgColor: String
+}
 
-    @ReadonlyAttribute
-    public var integrity: String
+public class HTMLTableSectionElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTableSectionElement].function }
 
-    @ReadonlyAttribute
-    public var keepalive: Bool
+    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)
+    }
 
-    @ReadonlyAttribute
-    public var isReloadNavigation: Bool
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
     @ReadonlyAttribute
-    public var isHistoryNavigation: Bool
+    public var rows: HTMLCollection
 
-    @ReadonlyAttribute
-    public var signal: AbortSignal
+    @inlinable public func insertRow(index: Int32? = nil) -> HTMLTableRowElement {
+        let this = jsObject
+        return this[Strings.insertRow].function!(this: this, arguments: [index?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable public func clone() -> Self {
+    @inlinable public func deleteRow(index: Int32) {
         let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.deleteRow].function!(this: this, arguments: [index.jsValue])
     }
-}
 
-public enum RequestCache: JSString, JSValueCompatible {
-    case `default` = "default"
-    case noStore = "no-store"
-    case reload = "reload"
-    case noCache = "no-cache"
-    case forceCache = "force-cache"
-    case onlyIfCached = "only-if-cached"
+    @ReadWriteAttribute
+    public var align: String
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var ch: String
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var chOff: String
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var vAlign: String
 }
 
-public enum RequestCredentials: JSString, JSValueCompatible {
-    case omit = "omit"
-    case sameOrigin = "same-origin"
-    case include = "include"
+public class HTMLTemplateElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTemplateElement].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _content = ReadonlyAttribute(jsObject: jsObject, name: Strings.content)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadonlyAttribute
+    public var content: DocumentFragment
 }
 
-public enum RequestDestination: JSString, JSValueCompatible {
-    case _empty = ""
-    case audio = "audio"
-    case audioworklet = "audioworklet"
-    case document = "document"
-    case embed = "embed"
-    case font = "font"
-    case frame = "frame"
-    case iframe = "iframe"
-    case image = "image"
-    case manifest = "manifest"
-    case object = "object"
-    case paintworklet = "paintworklet"
-    case report = "report"
-    case script = "script"
-    case sharedworker = "sharedworker"
-    case style = "style"
-    case track = "track"
-    case video = "video"
-    case worker = "worker"
-    case xslt = "xslt"
+public class HTMLTextAreaElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTextAreaElement].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    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 init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @ReadWriteAttribute
+    public var autocomplete: String
 
-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?, window: JSValue) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.method] = method.jsValue
-        object[Strings.headers] = headers.jsValue
-        object[Strings.body] = body.jsValue
-        object[Strings.referrer] = referrer.jsValue
-        object[Strings.referrerPolicy] = referrerPolicy.jsValue
-        object[Strings.mode] = mode.jsValue
-        object[Strings.credentials] = credentials.jsValue
-        object[Strings.cache] = cache.jsValue
-        object[Strings.redirect] = redirect.jsValue
-        object[Strings.integrity] = integrity.jsValue
-        object[Strings.keepalive] = keepalive.jsValue
-        object[Strings.signal] = signal.jsValue
-        object[Strings.window] = window.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var cols: UInt32
 
-    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)
-        _window = ReadWriteAttribute(jsObject: object, name: Strings.window)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var dirName: String
 
     @ReadWriteAttribute
-    public var method: String
+    public var disabled: Bool
+
+    @ReadonlyAttribute
+    public var form: HTMLFormElement?
 
     @ReadWriteAttribute
-    public var headers: HeadersInit
+    public var maxLength: Int32
 
     @ReadWriteAttribute
-    public var body: BodyInit?
+    public var minLength: Int32
 
     @ReadWriteAttribute
-    public var referrer: String
+    public var name: String
 
     @ReadWriteAttribute
-    public var referrerPolicy: ReferrerPolicy
+    public var placeholder: String
 
     @ReadWriteAttribute
-    public var mode: RequestMode
+    public var readOnly: Bool
 
     @ReadWriteAttribute
-    public var credentials: RequestCredentials
+    public var required: Bool
 
     @ReadWriteAttribute
-    public var cache: RequestCache
+    public var rows: UInt32
 
     @ReadWriteAttribute
-    public var redirect: RequestRedirect
+    public var wrap: String
+
+    @ReadonlyAttribute
+    public var type: String
 
     @ReadWriteAttribute
-    public var integrity: String
+    public var defaultValue: String
 
     @ReadWriteAttribute
-    public var keepalive: Bool
+    public var value: String
+
+    @ReadonlyAttribute
+    public var textLength: UInt32
+
+    @ReadonlyAttribute
+    public var willValidate: Bool
+
+    @ReadonlyAttribute
+    public var validity: ValidityState
+
+    @ReadonlyAttribute
+    public var validationMessage: String
+
+    @inlinable public func checkValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.checkValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func reportValidity() -> Bool {
+        let this = jsObject
+        return this[Strings.reportValidity].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func setCustomValidity(error: String) {
+        let this = jsObject
+        _ = this[Strings.setCustomValidity].function!(this: this, arguments: [error.jsValue])
+    }
+
+    @ReadonlyAttribute
+    public var labels: NodeList
+
+    @inlinable public func select() {
+        let this = jsObject
+        _ = this[Strings.select].function!(this: this, arguments: [])
+    }
 
     @ReadWriteAttribute
-    public var signal: AbortSignal?
+    public var selectionStart: UInt32
 
     @ReadWriteAttribute
-    public var window: JSValue
-}
+    public var selectionEnd: UInt32
 
-public enum RequestMode: JSString, JSValueCompatible {
-    case navigate = "navigate"
-    case sameOrigin = "same-origin"
-    case noCors = "no-cors"
-    case cors = "cors"
+    @ReadWriteAttribute
+    public var selectionDirection: String
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func setRangeText(replacement: String) {
+        let this = jsObject
+        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue])
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func setRangeText(replacement: String, start: UInt32, end: UInt32, selectionMode: SelectionMode? = nil) {
+        let this = jsObject
+        _ = this[Strings.setRangeText].function!(this: this, arguments: [replacement.jsValue, start.jsValue, end.jsValue, selectionMode?.jsValue ?? .undefined])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @inlinable public func setSelectionRange(start: UInt32, end: UInt32, direction: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.setSelectionRange].function!(this: this, arguments: [start.jsValue, end.jsValue, direction?.jsValue ?? .undefined])
+    }
 }
 
-public enum RequestRedirect: JSString, JSValueCompatible {
-    case follow = "follow"
-    case error = "error"
-    case manual = "manual"
+public class HTMLTimeElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTimeElement].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _dateTime = ReadWriteAttribute(jsObject: jsObject, name: Strings.dateTime)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var dateTime: String
 }
 
-public enum ResizeQuality: JSString, JSValueCompatible {
-    case pixelated = "pixelated"
-    case low = "low"
-    case medium = "medium"
-    case high = "high"
+public class HTMLTitleElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTitleElement].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _text = ReadWriteAttribute(jsObject: jsObject, name: Strings.text)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var text: String
 }
 
-public class Response: JSBridgedClass, Body {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Response].function }
-
-    public let jsObject: JSObject
+public class HTMLTrackElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLTrackElement].function }
 
     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
+        _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)
     }
 
-    @inlinable public convenience init(body: BodyInit? = nil, init: ResponseInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [body?.jsValue ?? .undefined, `init`?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public static func error() -> Self {
-        let this = constructor!
-        return this[Strings.error].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var kind: String
 
-    @inlinable public static func redirect(url: String, status: UInt16? = nil) -> Self {
-        let this = constructor!
-        return this[Strings.redirect].function!(this: this, arguments: [url.jsValue, status?.jsValue ?? .undefined]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var src: String
 
-    @ReadonlyAttribute
-    public var type: ResponseType
+    @ReadWriteAttribute
+    public var srclang: String
+
+    @ReadWriteAttribute
+    public var label: String
+
+    @ReadWriteAttribute
+    public var `default`: Bool
+
+    public static let NONE: UInt16 = 0
+
+    public static let LOADING: UInt16 = 1
+
+    public static let LOADED: UInt16 = 2
+
+    public static let ERROR: UInt16 = 3
 
     @ReadonlyAttribute
-    public var url: String
+    public var readyState: UInt16
 
     @ReadonlyAttribute
-    public var redirected: Bool
+    public var track: TextTrack
+}
+
+public class HTMLUListElement: HTMLElement {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HTMLUListElement].function }
 
-    @ReadonlyAttribute
-    public var status: UInt16
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _compact = ReadWriteAttribute(jsObject: jsObject, name: Strings.compact)
+        _type = ReadWriteAttribute(jsObject: jsObject, name: Strings.type)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @ReadonlyAttribute
-    public var ok: Bool
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
-    @ReadonlyAttribute
-    public var statusText: String
+    @ReadWriteAttribute
+    public var compact: Bool
 
-    @ReadonlyAttribute
-    public var headers: Headers
+    @ReadWriteAttribute
+    public var type: String
+}
 
-    @inlinable public func clone() -> Self {
-        let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
+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)
     }
 }
 
-public class ResponseInit: BridgedDictionary {
-    public convenience init(status: UInt16, statusText: String, headers: HeadersInit) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.status] = status.jsValue
-        object[Strings.statusText] = statusText.jsValue
-        object[Strings.headers] = headers.jsValue
-        self.init(unsafelyWrapping: object)
+public class HTMLVideoElement: HTMLMediaElement {
+    @inlinable override public 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 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)
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
     @ReadWriteAttribute
-    public var status: UInt16
+    public var width: UInt32
 
     @ReadWriteAttribute
-    public var statusText: String
+    public var height: UInt32
+
+    @ReadonlyAttribute
+    public var videoWidth: UInt32
+
+    @ReadonlyAttribute
+    public var videoHeight: UInt32
 
     @ReadWriteAttribute
-    public var headers: HeadersInit
+    public var poster: String
+
+    @ReadWriteAttribute
+    public var playsInline: Bool
 }
 
-public enum ResponseType: JSString, JSValueCompatible {
-    case basic = "basic"
-    case cors = "cors"
-    case `default` = "default"
-    case error = "error"
-    case opaque = "opaque"
-    case opaqueredirect = "opaqueredirect"
+public enum HardwareAcceleration: JSString, JSValueCompatible {
+    case noPreference = "no-preference"
+    case preferHardware = "prefer-hardware"
+    case preferSoftware = "prefer-software"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -19929,447 +9613,463 @@ public enum ResponseType: JSString, JSValueCompatible {
     @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 class HashChangeEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.HashChangeEvent].function }
 
     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
+        _oldURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.oldURL)
+        _newURL = ReadonlyAttribute(jsObject: jsObject, name: Strings.newURL)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadonlyAttribute
-    public var availWidth: Int32
+    @inlinable public convenience init(type: String, eventInitDict: HashChangeEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var availHeight: Int32
+    public var oldURL: String
 
     @ReadonlyAttribute
-    public var width: Int32
+    public var newURL: String
+}
 
-    @ReadonlyAttribute
-    public var height: Int32
+public class HashChangeEventInit: BridgedDictionary {
+    public convenience init(oldURL: String, newURL: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.oldURL] = oldURL.jsValue
+        object[Strings.newURL] = newURL.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @ReadonlyAttribute
-    public var colorDepth: UInt32
+    public required init(unsafelyWrapping object: JSObject) {
+        _oldURL = ReadWriteAttribute(jsObject: object, name: Strings.oldURL)
+        _newURL = ReadWriteAttribute(jsObject: object, name: Strings.newURL)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @ReadonlyAttribute
-    public var pixelDepth: UInt32
+    @ReadWriteAttribute
+    public var oldURL: String
+
+    @ReadWriteAttribute
+    public var newURL: String
 }
 
-public class ScriptProcessorNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ScriptProcessorNode].function }
+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) {
-        _onaudioprocess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaudioprocess)
-        _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize)
-        super.init(unsafelyWrapping: jsObject)
+        self.jsObject = jsObject
     }
 
-    @ClosureAttribute1Optional
-    public var onaudioprocess: EventHandler
+    @inlinable public convenience init(init: HeadersInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    }
 
-    @ReadonlyAttribute
-    public var bufferSize: Int32
-}
+    @inlinable public func append(name: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
+    }
 
-public enum ScrollBehavior: JSString, JSValueCompatible {
-    case auto = "auto"
-    case smooth = "smooth"
+    @inlinable public func delete(name: String) {
+        let this = jsObject
+        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func get(name: String) -> String? {
+        let this = jsObject
+        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func has(name: String) -> Bool {
+        let this = jsObject
+        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    @inlinable public func set(name: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
+    }
 
-public class ScrollIntoViewOptions: BridgedDictionary {
-    public convenience init(block: ScrollLogicalPosition, inline: ScrollLogicalPosition) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.block] = block.jsValue
-        object[Strings.inline] = inline.jsValue
-        self.init(unsafelyWrapping: object)
+    public typealias Element = String
+    public func makeIterator() -> ValueIterableIterator<Headers> {
+        ValueIterableIterator(sequence: self)
     }
+}
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _block = ReadWriteAttribute(jsObject: object, name: Strings.block)
-        _inline = ReadWriteAttribute(jsObject: object, name: Strings.inline)
-        super.init(unsafelyWrapping: object)
+public class History: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.History].function }
+
+    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
     }
 
-    @ReadWriteAttribute
-    public var block: ScrollLogicalPosition
+    @ReadonlyAttribute
+    public var length: UInt32
 
     @ReadWriteAttribute
-    public var inline: ScrollLogicalPosition
-}
+    public var scrollRestoration: ScrollRestoration
 
-public enum ScrollLogicalPosition: JSString, JSValueCompatible {
-    case start = "start"
-    case center = "center"
-    case end = "end"
-    case nearest = "nearest"
+    @ReadonlyAttribute
+    public var state: JSValue
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func go(delta: Int32? = nil) {
+        let this = jsObject
+        _ = this[Strings.go].function!(this: this, arguments: [delta?.jsValue ?? .undefined])
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func back() {
+        let this = jsObject
+        _ = this[Strings.back].function!(this: this, arguments: [])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class ScrollOptions: BridgedDictionary {
-    public convenience init(behavior: ScrollBehavior) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.behavior] = behavior.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func forward() {
+        let this = jsObject
+        _ = this[Strings.forward].function!(this: this, arguments: [])
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _behavior = ReadWriteAttribute(jsObject: object, name: Strings.behavior)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func pushState(data: JSValue, unused: String, url: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.pushState].function!(this: this, arguments: [data.jsValue, unused.jsValue, url?.jsValue ?? .undefined])
     }
 
-    @ReadWriteAttribute
-    public var behavior: ScrollBehavior
+    @inlinable public func replaceState(data: JSValue, unused: String, url: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.replaceState].function!(this: this, arguments: [data.jsValue, unused.jsValue, url?.jsValue ?? .undefined])
+    }
 }
 
-public enum ScrollRestoration: JSString, JSValueCompatible {
-    case auto = "auto"
-    case manual = "manual"
+public class ImageBitmap: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageBitmap].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)
+        self.jsObject = jsObject
+    }
+
+    @ReadonlyAttribute
+    public var width: UInt32
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadonlyAttribute
+    public var height: UInt32
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
-
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class ScrollToOptions: BridgedDictionary {
-    public convenience init(left: Double, top: Double) {
+public class ImageBitmapOptions: BridgedDictionary {
+    public convenience init(imageOrientation: ImageOrientation, premultiplyAlpha: PremultiplyAlpha, colorSpaceConversion: ColorSpaceConversion, resizeWidth: UInt32, resizeHeight: UInt32, resizeQuality: ResizeQuality) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.left] = left.jsValue
-        object[Strings.top] = top.jsValue
+        object[Strings.imageOrientation] = imageOrientation.jsValue
+        object[Strings.premultiplyAlpha] = premultiplyAlpha.jsValue
+        object[Strings.colorSpaceConversion] = colorSpaceConversion.jsValue
+        object[Strings.resizeWidth] = resizeWidth.jsValue
+        object[Strings.resizeHeight] = resizeHeight.jsValue
+        object[Strings.resizeQuality] = resizeQuality.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _left = ReadWriteAttribute(jsObject: object, name: Strings.left)
-        _top = ReadWriteAttribute(jsObject: object, name: Strings.top)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var left: Double
+    public var imageOrientation: ImageOrientation
 
     @ReadWriteAttribute
-    public var top: Double
-}
+    public var premultiplyAlpha: PremultiplyAlpha
 
-public enum SelectionMode: JSString, JSValueCompatible {
-    case select = "select"
-    case start = "start"
-    case end = "end"
-    case preserve = "preserve"
+    @ReadWriteAttribute
+    public var colorSpaceConversion: ColorSpaceConversion
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    @ReadWriteAttribute
+    public var resizeWidth: UInt32
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    @ReadWriteAttribute
+    public var resizeHeight: UInt32
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadWriteAttribute
+    public var resizeQuality: ResizeQuality
 }
 
-public class ServiceWorker: EventTarget, AbstractWorker {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorker].function }
+public class ImageBitmapRenderingContext: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageBitmapRenderingContext].function }
+
+    public let jsObject: JSObject
 
     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)
+        _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas)
+        self.jsObject = jsObject
     }
 
     @ReadonlyAttribute
-    public var scriptURL: String
-
-    @ReadonlyAttribute
-    public var state: ServiceWorkerState
+    public var canvas: HTMLCanvasElement_or_OffscreenCanvas
 
-    @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) {
+    @inlinable public func transferFromImageBitmap(bitmap: ImageBitmap?) {
         let this = jsObject
-        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, transfer.jsValue])
+        _ = this[Strings.transferFromImageBitmap].function!(this: this, arguments: [bitmap.jsValue])
     }
+}
 
-    @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) {
-        let this = jsObject
-        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, options?.jsValue ?? .undefined])
+public class ImageBitmapRenderingContextSettings: BridgedDictionary {
+    public convenience init(alpha: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.alpha] = alpha.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @ClosureAttribute1Optional
-    public var onstatechange: EventHandler
+    public required init(unsafelyWrapping object: JSObject) {
+        _alpha = ReadWriteAttribute(jsObject: object, name: Strings.alpha)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var alpha: Bool
 }
 
-public class ServiceWorkerContainer: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerContainer].function }
+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) {
-        _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)
+        _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
+    }
+
+    @inlinable public convenience init(sw: UInt32, sh: UInt32, settings: ImageDataSettings? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [sw.jsValue, sh.jsValue, settings?.jsValue ?? .undefined]))
+    }
+
+    @inlinable public convenience init(data: Uint8ClampedArray, sw: UInt32, sh: UInt32? = nil, settings: ImageDataSettings? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data.jsValue, sw.jsValue, sh?.jsValue ?? .undefined, settings?.jsValue ?? .undefined]))
     }
 
     @ReadonlyAttribute
-    public var controller: ServiceWorker?
+    public var width: UInt32
 
     @ReadonlyAttribute
-    public var ready: JSPromise
+    public var height: UInt32
 
-    @inlinable public func register(scriptURL: String, options: RegistrationOptions? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.register].function!(this: this, arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var data: Uint8ClampedArray
 
-    @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 {
-        let this = jsObject
-        let _promise: JSPromise = this[Strings.register].function!(this: this, arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var colorSpace: PredefinedColorSpace
+}
 
-    @inlinable public func getRegistration(clientURL: String? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.getRegistration].function!(this: this, arguments: [clientURL?.jsValue ?? .undefined]).fromJSValue()!
+public class ImageDataSettings: BridgedDictionary {
+    public convenience init(colorSpace: PredefinedColorSpace) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.colorSpace] = colorSpace.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @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: [clientURL?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _colorSpace = ReadWriteAttribute(jsObject: object, name: Strings.colorSpace)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func getRegistrations() -> JSPromise {
-        let this = jsObject
-        return this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()!
+    @ReadWriteAttribute
+    public var colorSpace: PredefinedColorSpace
+}
+
+public class ImageDecodeOptions: BridgedDictionary {
+    public convenience init(frameIndex: UInt32, completeFramesOnly: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.frameIndex] = frameIndex.jsValue
+        object[Strings.completeFramesOnly] = completeFramesOnly.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @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()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _frameIndex = ReadWriteAttribute(jsObject: object, name: Strings.frameIndex)
+        _completeFramesOnly = ReadWriteAttribute(jsObject: object, name: Strings.completeFramesOnly)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func startMessages() {
-        let this = jsObject
-        _ = this[Strings.startMessages].function!(this: this, arguments: [])
+    @ReadWriteAttribute
+    public var frameIndex: UInt32
+
+    @ReadWriteAttribute
+    public var completeFramesOnly: Bool
+}
+
+public class ImageDecodeResult: BridgedDictionary {
+    public convenience init(image: VideoFrame, complete: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.image] = image.jsValue
+        object[Strings.complete] = complete.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @ClosureAttribute1Optional
-    public var oncontrollerchange: EventHandler
+    public required init(unsafelyWrapping object: JSObject) {
+        _image = ReadWriteAttribute(jsObject: object, name: Strings.image)
+        _complete = ReadWriteAttribute(jsObject: object, name: Strings.complete)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @ClosureAttribute1Optional
-    public var onmessage: EventHandler
+    @ReadWriteAttribute
+    public var image: VideoFrame
 
-    @ClosureAttribute1Optional
-    public var onmessageerror: EventHandler
+    @ReadWriteAttribute
+    public var complete: Bool
 }
 
-public class ServiceWorkerRegistration: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerRegistration].function }
+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) {
-        _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)
+        _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
     }
 
-    @ReadonlyAttribute
-    public var installing: ServiceWorker?
-
-    @ReadonlyAttribute
-    public var waiting: ServiceWorker?
+    @inlinable public convenience init(init: ImageDecoderInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    }
 
     @ReadonlyAttribute
-    public var active: ServiceWorker?
+    public var type: String
 
     @ReadonlyAttribute
-    public var navigationPreload: NavigationPreloadManager
+    public var complete: Bool
 
     @ReadonlyAttribute
-    public var scope: String
+    public var completed: JSPromise
 
     @ReadonlyAttribute
-    public var updateViaCache: ServiceWorkerUpdateViaCache
+    public var tracks: ImageTrackList
 
-    @inlinable public func update() -> JSPromise {
+    @inlinable public func decode(options: ImageDecodeOptions? = nil) -> JSPromise {
         let this = jsObject
-        return this[Strings.update].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.decode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
     @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func update() async throws {
+    @inlinable public func decode(options: ImageDecodeOptions? = nil) async throws -> ImageDecodeResult {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.update].function!(this: this, arguments: []).fromJSValue()!
-        _ = try await _promise.value
+        let _promise: JSPromise = this[Strings.decode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public func unregister() -> JSPromise {
+    @inlinable public func reset() {
         let this = jsObject
-        return this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()!
+        _ = this[Strings.reset].function!(this: this, arguments: [])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func unregister() async throws -> Bool {
+    @inlinable public func close() {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 
-    @ClosureAttribute1Optional
-    public var onupdatefound: EventHandler
-}
-
-public enum ServiceWorkerState: JSString, JSValueCompatible {
-    case parsed = "parsed"
-    case installing = "installing"
-    case installed = "installed"
-    case activating = "activating"
-    case activated = "activated"
-    case redundant = "redundant"
-
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public static func isTypeSupported(type: String) -> JSPromise {
+        let this = constructor!
+        return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public static func isTypeSupported(type: String) async throws -> Bool {
+        let this = constructor!
+        let _promise: JSPromise = this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
-
-    @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)
-        }
-        return nil
+public class ImageDecoderInit: BridgedDictionary {
+    public convenience init(type: String, data: ImageBufferSource, premultiplyAlpha: PremultiplyAlpha, colorSpaceConversion: ColorSpaceConversion, desiredWidth: UInt32, desiredHeight: UInt32, preferAnimation: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.data] = data.jsValue
+        object[Strings.premultiplyAlpha] = premultiplyAlpha.jsValue
+        object[Strings.colorSpaceConversion] = colorSpaceConversion.jsValue
+        object[Strings.desiredWidth] = desiredWidth.jsValue
+        object[Strings.desiredHeight] = desiredHeight.jsValue
+        object[Strings.preferAnimation] = preferAnimation.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    public required init(unsafelyWrapping object: JSObject) {
+        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
+        _data = ReadWriteAttribute(jsObject: object, name: Strings.data)
+        _premultiplyAlpha = ReadWriteAttribute(jsObject: object, name: Strings.premultiplyAlpha)
+        _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)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
-
-public class ShadowRoot: DocumentFragment, DocumentOrShadowRoot {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ShadowRoot].function }
+    @ReadWriteAttribute
+    public var type: String
 
-    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)
-    }
+    @ReadWriteAttribute
+    public var data: ImageBufferSource
 
-    @ReadonlyAttribute
-    public var mode: ShadowRootMode
+    @ReadWriteAttribute
+    public var premultiplyAlpha: PremultiplyAlpha
 
-    @ReadonlyAttribute
-    public var delegatesFocus: Bool
+    @ReadWriteAttribute
+    public var colorSpaceConversion: ColorSpaceConversion
 
-    @ReadonlyAttribute
-    public var slotAssignment: SlotAssignmentMode
+    @ReadWriteAttribute
+    public var desiredWidth: UInt32
 
-    @ReadonlyAttribute
-    public var host: Element
+    @ReadWriteAttribute
+    public var desiredHeight: UInt32
 
-    @ClosureAttribute1Optional
-    public var onslotchange: EventHandler
+    @ReadWriteAttribute
+    public var preferAnimation: Bool
 }
 
-public class ShadowRootInit: BridgedDictionary {
-    public convenience init(mode: ShadowRootMode, delegatesFocus: Bool, slotAssignment: SlotAssignmentMode) {
+public class ImageEncodeOptions: BridgedDictionary {
+    public convenience init(type: String, quality: Double) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.mode] = mode.jsValue
-        object[Strings.delegatesFocus] = delegatesFocus.jsValue
-        object[Strings.slotAssignment] = slotAssignment.jsValue
+        object[Strings.type] = type.jsValue
+        object[Strings.quality] = quality.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     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)
+        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
+        _quality = ReadWriteAttribute(jsObject: object, name: Strings.quality)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var mode: ShadowRootMode
-
-    @ReadWriteAttribute
-    public var delegatesFocus: Bool
+    public var type: String
 
     @ReadWriteAttribute
-    public var slotAssignment: SlotAssignmentMode
+    public var quality: Double
 }
 
-public enum ShadowRootMode: JSString, JSValueCompatible {
-    case open = "open"
-    case closed = "closed"
+public enum ImageOrientation: JSString, JSValueCompatible {
+    case none = "none"
+    case flipY = "flipY"
 
     @inlinable public static func construct(from jsValue: JSValue) -> Self? {
         if let string = jsValue.jsString {
@@ -20385,25 +10085,10 @@ public enum ShadowRootMode: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class SharedWorker: EventTarget, AbstractWorker {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(scriptURL: String, options: String_or_WorkerOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var port: MessagePort
-}
-
-public enum SlotAssignmentMode: JSString, JSValueCompatible {
-    case manual = "manual"
-    case named = "named"
+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 {
@@ -20419,588 +10104,900 @@ public enum SlotAssignmentMode: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public protocol Slottable: JSBridgedClass {}
-public extension Slottable {
-    @inlinable var assignedSlot: HTMLSlotElement? { jsObject[Strings.assignedSlot].fromJSValue()! }
-}
-
-public class StaticRange: AbstractRange {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StaticRange].function }
+public class ImageTrack: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ImageTrack].function }
 
     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)
+        _onchange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onchange)
+        _selected = ReadWriteAttribute(jsObject: jsObject, name: Strings.selected)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(init: StaticRangeInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
-    }
+    @ReadonlyAttribute
+    public var animated: Bool
+
+    @ReadonlyAttribute
+    public var frameCount: UInt32
+
+    @ReadonlyAttribute
+    public var repetitionCount: Float
+
+    @ClosureAttribute1Optional
+    public var onchange: EventHandler
+
+    @ReadWriteAttribute
+    public var selected: Bool
 }
 
-public class StaticRangeInit: BridgedDictionary {
-    public convenience init(startContainer: Node, startOffset: UInt32, endContainer: Node, endOffset: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.startContainer] = startContainer.jsValue
-        object[Strings.startOffset] = startOffset.jsValue
-        object[Strings.endContainer] = endContainer.jsValue
-        object[Strings.endOffset] = endOffset.jsValue
-        self.init(unsafelyWrapping: object)
+public class ImageTrackList: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ImageTrackList].function }
+
+    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 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)
+    @inlinable public subscript(key: Int) -> ImageTrack {
+        jsObject[key].fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var startContainer: Node
+    @ReadonlyAttribute
+    public var ready: JSPromise
 
-    @ReadWriteAttribute
-    public var startOffset: UInt32
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @ReadWriteAttribute
-    public var endContainer: Node
+    @ReadonlyAttribute
+    public var selectedIndex: Int32
 
-    @ReadWriteAttribute
-    public var endOffset: UInt32
+    @ReadonlyAttribute
+    public var selectedTrack: ImageTrack?
+}
+
+public class InputDeviceInfo: MediaDeviceInfo {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.InputDeviceInfo].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public func getCapabilities() -> MediaTrackCapabilities {
+        let this = jsObject
+        return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class StereoPannerNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StereoPannerNode].function }
+public class InputEvent: UIEvent {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.InputEvent].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _pan = ReadonlyAttribute(jsObject: jsObject, name: Strings.pan)
+        _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)
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: StereoPannerOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public convenience init(type: String, eventInitDict: InputEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
     @ReadonlyAttribute
-    public var pan: AudioParam
+    public var data: String?
+
+    @ReadonlyAttribute
+    public var isComposing: Bool
+
+    @ReadonlyAttribute
+    public var inputType: String
 }
 
-public class StereoPannerOptions: BridgedDictionary {
-    public convenience init(pan: Float) {
+public class InputEventInit: BridgedDictionary {
+    public convenience init(data: String?, isComposing: Bool, inputType: String) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.pan] = pan.jsValue
+        object[Strings.data] = data.jsValue
+        object[Strings.isComposing] = isComposing.jsValue
+        object[Strings.inputType] = inputType.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _pan = ReadWriteAttribute(jsObject: object, name: Strings.pan)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var pan: Float
-}
-
-public class Storage: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Storage].function }
-
-    public let jsObject: JSObject
+    public var data: String?
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var isComposing: Bool
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @ReadWriteAttribute
+    public var inputType: String
+}
 
-    @inlinable public func key(index: UInt32) -> String? {
-        let this = jsObject
-        return this[Strings.key].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
-    }
+public class IsVisibleOptions: BridgedDictionary {
+    public convenience init() {
+        let object = JSObject.global[Strings.Object].function!.new()
 
-    @inlinable public subscript(key: String) -> String? {
-        jsObject[key].fromJSValue()
+        self.init(unsafelyWrapping: object)
     }
 
-    // XXX: unsupported setter for keys of type String
-
-    // XXX: unsupported deleter for keys of type String
-
-    @inlinable public func clear() {
-        let this = jsObject
-        _ = this[Strings.clear].function!(this: this, arguments: [])
+    public required init(unsafelyWrapping object: JSObject) {
+        super.init(unsafelyWrapping: object)
     }
 }
 
-public class StorageEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StorageEvent].function }
+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)
-        _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)
+        _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 convenience init(type: String, eventInitDict: StorageEventInit? = nil) {
+    @inlinable public convenience init(type: String, eventInitDict: KeyboardEventInit? = nil) {
         self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
+    public static let DOM_KEY_LOCATION_STANDARD: UInt32 = 0x00
+
+    public static let DOM_KEY_LOCATION_LEFT: UInt32 = 0x01
+
+    public static let DOM_KEY_LOCATION_RIGHT: UInt32 = 0x02
+
+    public static let DOM_KEY_LOCATION_NUMPAD: UInt32 = 0x03
+
     @ReadonlyAttribute
-    public var key: String?
+    public var key: String
 
     @ReadonlyAttribute
-    public var oldValue: String?
+    public var code: String
 
     @ReadonlyAttribute
-    public var newValue: String?
+    public var location: UInt32
 
     @ReadonlyAttribute
-    public var url: String
+    public var ctrlKey: Bool
 
     @ReadonlyAttribute
-    public var storageArea: Storage?
+    public var shiftKey: Bool
 
-    @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) {
-        let _arg0 = type.jsValue
-        let _arg1 = bubbles?.jsValue ?? .undefined
-        let _arg2 = cancelable?.jsValue ?? .undefined
-        let _arg3 = key?.jsValue ?? .undefined
-        let _arg4 = oldValue?.jsValue ?? .undefined
-        let _arg5 = newValue?.jsValue ?? .undefined
-        let _arg6 = url?.jsValue ?? .undefined
-        let _arg7 = storageArea?.jsValue ?? .undefined
+    @ReadonlyAttribute
+    public var altKey: Bool
+
+    @ReadonlyAttribute
+    public var metaKey: Bool
+
+    @ReadonlyAttribute
+    public var `repeat`: Bool
+
+    @ReadonlyAttribute
+    public var isComposing: Bool
+
+    @inlinable public func getModifierState(keyArg: String) -> Bool {
         let this = jsObject
-        _ = this[Strings.initStorageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+        return this[Strings.getModifierState].function!(this: this, arguments: [keyArg.jsValue]).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 _arg0 = typeArg.jsValue
+        let _arg1 = bubblesArg?.jsValue ?? .undefined
+        let _arg2 = cancelableArg?.jsValue ?? .undefined
+        let _arg3 = viewArg?.jsValue ?? .undefined
+        let _arg4 = keyArg?.jsValue ?? .undefined
+        let _arg5 = locationArg?.jsValue ?? .undefined
+        let _arg6 = ctrlKey?.jsValue ?? .undefined
+        let _arg7 = altKey?.jsValue ?? .undefined
+        let _arg8 = shiftKey?.jsValue ?? .undefined
+        let _arg9 = metaKey?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.initKeyboardEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
     }
+
+    @ReadonlyAttribute
+    public var charCode: UInt32
+
+    @ReadonlyAttribute
+    public var keyCode: UInt32
 }
 
-public class StorageEventInit: BridgedDictionary {
-    public convenience init(key: String?, oldValue: String?, newValue: String?, url: String, storageArea: Storage?) {
+public class KeyboardEventInit: BridgedDictionary {
+    public convenience init(key: String, code: String, location: UInt32, repeat: Bool, isComposing: Bool, charCode: UInt32, keyCode: UInt32) {
         let object = JSObject.global[Strings.Object].function!.new()
         object[Strings.key] = key.jsValue
-        object[Strings.oldValue] = oldValue.jsValue
-        object[Strings.newValue] = newValue.jsValue
-        object[Strings.url] = url.jsValue
-        object[Strings.storageArea] = storageArea.jsValue
+        object[Strings.code] = code.jsValue
+        object[Strings.location] = location.jsValue
+        object[Strings.repeat] = `repeat`.jsValue
+        object[Strings.isComposing] = isComposing.jsValue
+        object[Strings.charCode] = charCode.jsValue
+        object[Strings.keyCode] = keyCode.jsValue
         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)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var key: String?
+    public var key: String
 
     @ReadWriteAttribute
-    public var oldValue: String?
+    public var code: String
 
     @ReadWriteAttribute
-    public var newValue: String?
+    public var location: UInt32
 
     @ReadWriteAttribute
-    public var url: String
+    public var `repeat`: Bool
 
     @ReadWriteAttribute
-    public var storageArea: Storage?
+    public var isComposing: Bool
+
+    @ReadWriteAttribute
+    public var charCode: UInt32
+
+    @ReadWriteAttribute
+    public var keyCode: UInt32
 }
 
-public class StreamPipeOptions: BridgedDictionary {
-    public convenience init(preventClose: Bool, preventAbort: Bool, preventCancel: Bool, signal: AbortSignal) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.preventClose] = preventClose.jsValue
-        object[Strings.preventAbort] = preventAbort.jsValue
-        object[Strings.preventCancel] = preventCancel.jsValue
-        object[Strings.signal] = signal.jsValue
-        self.init(unsafelyWrapping: object)
+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)
+        }
+        return nil
     }
 
-    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)
+    @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
     }
 
     @ReadWriteAttribute
-    public var preventClose: Bool
+    public var href: String
+
+    @ReadonlyAttribute
+    public var origin: String
 
     @ReadWriteAttribute
-    public var preventAbort: Bool
+    public var `protocol`: String
 
     @ReadWriteAttribute
-    public var preventCancel: Bool
+    public var host: String
 
     @ReadWriteAttribute
-    public var signal: AbortSignal
-}
+    public var hostname: String
+
+    @ReadWriteAttribute
+    public var port: String
+
+    @ReadWriteAttribute
+    public var pathname: String
+
+    @ReadWriteAttribute
+    public var search: String
+
+    @ReadWriteAttribute
+    public var hash: String
+
+    @inlinable public func assign(url: String) {
+        let this = jsObject
+        _ = this[Strings.assign].function!(this: this, arguments: [url.jsValue])
+    }
 
-public class StructuredSerializeOptions: BridgedDictionary {
-    public convenience init(transfer: [JSObject]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.transfer] = transfer.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func replace(url: String) {
+        let this = jsObject
+        _ = this[Strings.replace].function!(this: this, arguments: [url.jsValue])
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func reload() {
+        let this = jsObject
+        _ = this[Strings.reload].function!(this: this, arguments: [])
     }
 
-    @ReadWriteAttribute
-    public var transfer: [JSObject]
+    @ReadonlyAttribute
+    public var ancestorOrigins: DOMStringList
 }
 
-public class SubmitEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SubmitEvent].function }
+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) {
-        _submitter = ReadonlyAttribute(jsObject: jsObject, name: Strings.submitter)
-        super.init(unsafelyWrapping: 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
     }
 
-    @inlinable public convenience init(type: String, eventInitDict: SubmitEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
+    @ReadonlyAttribute
+    public var deviceId: String
 
     @ReadonlyAttribute
-    public var submitter: HTMLElement?
-}
+    public var kind: MediaDeviceKind
 
-public class SubmitEventInit: BridgedDictionary {
-    public convenience init(submitter: HTMLElement?) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.submitter] = submitter.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var label: String
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _submitter = ReadWriteAttribute(jsObject: object, name: Strings.submitter)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var groupId: String
 
-    @ReadWriteAttribute
-    public var submitter: HTMLElement?
+    @inlinable public func toJSON() -> JSObject {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class SvcOutputMetadata: BridgedDictionary {
-    public convenience init(temporalLayerId: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.temporalLayerId] = temporalLayerId.jsValue
-        self.init(unsafelyWrapping: object)
+public enum MediaDeviceKind: JSString, JSValueCompatible {
+    case audioinput = "audioinput"
+    case audiooutput = "audiooutput"
+    case videoinput = "videoinput"
+
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _temporalLayerId = ReadWriteAttribute(jsObject: object, name: Strings.temporalLayerId)
-        super.init(unsafelyWrapping: object)
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @ReadWriteAttribute
-    public var temporalLayerId: UInt32
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class Text: CharacterData, Slottable, GeometryUtils {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Text].function }
+public class MediaDevices: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaDevices].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _wholeText = ReadonlyAttribute(jsObject: jsObject, name: Strings.wholeText)
+        _ondevicechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.ondevicechange)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(data: String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data?.jsValue ?? .undefined]))
+    @ClosureAttribute1Optional
+    public var ondevicechange: EventHandler
+
+    @inlinable public func enumerateDevices() -> JSPromise {
+        let this = jsObject
+        return this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func splitText(offset: UInt32) -> Self {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func enumerateDevices() async throws -> [MediaDeviceInfo] {
         let this = jsObject
-        return this[Strings.splitText].function!(this: this, arguments: [offset.jsValue]).fromJSValue()!
+        let _promise: JSPromise = this[Strings.enumerateDevices].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @ReadonlyAttribute
-    public var wholeText: String
+    @inlinable public func getSupportedConstraints() -> MediaTrackSupportedConstraints {
+        let this = jsObject
+        return this[Strings.getSupportedConstraints].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func getUserMedia(constraints: MediaStreamConstraints? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.getUserMedia].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).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: [constraints?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 }
 
-public class TextMetrics: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TextMetrics].function }
+public class MediaError: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MediaError].function }
 
     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)
+        _code = ReadonlyAttribute(jsObject: jsObject, name: Strings.code)
+        _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message)
         self.jsObject = jsObject
     }
 
-    @ReadonlyAttribute
-    public var width: Double
+    public static let MEDIA_ERR_ABORTED: UInt16 = 1
 
-    @ReadonlyAttribute
-    public var actualBoundingBoxLeft: Double
+    public static let MEDIA_ERR_NETWORK: UInt16 = 2
 
-    @ReadonlyAttribute
-    public var actualBoundingBoxRight: Double
+    public static let MEDIA_ERR_DECODE: UInt16 = 3
 
-    @ReadonlyAttribute
-    public var fontBoundingBoxAscent: Double
+    public static let MEDIA_ERR_SRC_NOT_SUPPORTED: UInt16 = 4
 
     @ReadonlyAttribute
-    public var fontBoundingBoxDescent: Double
+    public var code: UInt16
 
     @ReadonlyAttribute
-    public var actualBoundingBoxAscent: Double
+    public var message: String
+}
 
-    @ReadonlyAttribute
-    public var actualBoundingBoxDescent: Double
+public class MediaQueryList: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaQueryList].function }
 
-    @ReadonlyAttribute
-    public var emHeightAscent: Double
+    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)
+    }
 
     @ReadonlyAttribute
-    public var emHeightDescent: Double
+    public var media: String
 
     @ReadonlyAttribute
-    public var hangingBaseline: Double
+    public var matches: Bool
+
+    // XXX: member 'addListener' is ignored
+
+    // XXX: member 'removeListener' is ignored
+
+    @ClosureAttribute1Optional
+    public var onchange: EventHandler
+}
+
+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 convenience init(type: String, eventInitDict: MediaQueryListEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var alphabeticBaseline: Double
+    public var media: String
 
     @ReadonlyAttribute
-    public var ideographicBaseline: Double
+    public var matches: Bool
 }
 
-public class TextTrack: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrack].function }
+public class MediaQueryListEventInit: BridgedDictionary {
+    public convenience init(media: String, matches: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.media] = media.jsValue
+        object[Strings.matches] = matches.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var media: String
+
+    @ReadWriteAttribute
+    public var matches: Bool
+}
+
+public class MediaRecorder: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaRecorder].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)
+        _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)
     }
 
-    @ReadonlyAttribute
-    public var kind: TextTrackKind
+    @inlinable public convenience init(stream: MediaStream, options: MediaRecorderOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var stream: MediaStream
+
+    @ReadonlyAttribute
+    public var mimeType: String
+
+    @ReadonlyAttribute
+    public var state: RecordingState
+
+    @ClosureAttribute1Optional
+    public var onstart: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onstop: EventHandler
 
-    @ReadonlyAttribute
-    public var label: String
+    @ClosureAttribute1Optional
+    public var ondataavailable: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onpause: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onresume: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onerror: EventHandler
 
     @ReadonlyAttribute
-    public var language: String
+    public var videoBitsPerSecond: UInt32
 
     @ReadonlyAttribute
-    public var id: String
+    public var audioBitsPerSecond: UInt32
 
     @ReadonlyAttribute
-    public var inBandMetadataTrackDispatchType: String
+    public var audioBitrateMode: BitrateMode
 
-    @ReadWriteAttribute
-    public var mode: TextTrackMode
+    @inlinable public func start(timeslice: UInt32? = nil) {
+        let this = jsObject
+        _ = this[Strings.start].function!(this: this, arguments: [timeslice?.jsValue ?? .undefined])
+    }
 
-    @ReadonlyAttribute
-    public var cues: TextTrackCueList?
+    @inlinable public func stop() {
+        let this = jsObject
+        _ = this[Strings.stop].function!(this: this, arguments: [])
+    }
 
-    @ReadonlyAttribute
-    public var activeCues: TextTrackCueList?
+    @inlinable public func pause() {
+        let this = jsObject
+        _ = this[Strings.pause].function!(this: this, arguments: [])
+    }
 
-    @inlinable public func addCue(cue: TextTrackCue) {
+    @inlinable public func resume() {
         let this = jsObject
-        _ = this[Strings.addCue].function!(this: this, arguments: [cue.jsValue])
+        _ = this[Strings.resume].function!(this: this, arguments: [])
     }
 
-    @inlinable public func removeCue(cue: TextTrackCue) {
+    @inlinable public func requestData() {
         let this = jsObject
-        _ = this[Strings.removeCue].function!(this: this, arguments: [cue.jsValue])
+        _ = this[Strings.requestData].function!(this: this, arguments: [])
     }
 
-    @ClosureAttribute1Optional
-    public var oncuechange: EventHandler
+    @inlinable public static func isTypeSupported(type: String) -> Bool {
+        let this = constructor!
+        return this[Strings.isTypeSupported].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
+    }
 }
 
-public class TextTrackCue: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCue].function }
+public class MediaRecorderErrorEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaRecorderErrorEvent].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)
+        _error = ReadonlyAttribute(jsObject: jsObject, name: Strings.error)
         super.init(unsafelyWrapping: jsObject)
     }
 
+    @inlinable public convenience init(type: String, eventInitDict: MediaRecorderErrorEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    }
+
     @ReadonlyAttribute
-    public var track: TextTrack?
+    public var error: DOMException
+}
+
+public class MediaRecorderErrorEventInit: BridgedDictionary {
+    public convenience init(error: DOMException) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.error] = error.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _error = ReadWriteAttribute(jsObject: object, name: Strings.error)
+        super.init(unsafelyWrapping: object)
+    }
 
     @ReadWriteAttribute
-    public var id: String
+    public var error: DOMException
+}
+
+public class MediaRecorderOptions: BridgedDictionary {
+    public convenience init(mimeType: String, audioBitsPerSecond: UInt32, videoBitsPerSecond: UInt32, bitsPerSecond: UInt32, audioBitrateMode: BitrateMode) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.mimeType] = mimeType.jsValue
+        object[Strings.audioBitsPerSecond] = audioBitsPerSecond.jsValue
+        object[Strings.videoBitsPerSecond] = videoBitsPerSecond.jsValue
+        object[Strings.bitsPerSecond] = bitsPerSecond.jsValue
+        object[Strings.audioBitrateMode] = audioBitrateMode.jsValue
+        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)
+        super.init(unsafelyWrapping: object)
+    }
 
     @ReadWriteAttribute
-    public var startTime: Double
+    public var mimeType: String
 
     @ReadWriteAttribute
-    public var endTime: Double
+    public var audioBitsPerSecond: UInt32
 
     @ReadWriteAttribute
-    public var pauseOnExit: Bool
+    public var videoBitsPerSecond: UInt32
 
-    @ClosureAttribute1Optional
-    public var onenter: EventHandler
+    @ReadWriteAttribute
+    public var bitsPerSecond: UInt32
 
-    @ClosureAttribute1Optional
-    public var onexit: EventHandler
+    @ReadWriteAttribute
+    public var audioBitrateMode: BitrateMode
 }
 
-public class TextTrackCueList: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCueList].function }
-
-    public let jsObject: JSObject
+public class MediaStream: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStream].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.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)
+    }
+
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
+
+    @inlinable public convenience init(stream: MediaStream) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
+    }
+
+    @inlinable public convenience init(tracks: [MediaStreamTrack]) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [tracks.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var id: String
 
-    @inlinable public subscript(key: Int) -> TextTrackCue {
-        jsObject[key].fromJSValue()!
+    @inlinable public func getAudioTracks() -> [MediaStreamTrack] {
+        let this = jsObject
+        return this[Strings.getAudioTracks].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func getCueById(id: String) -> TextTrackCue? {
+    @inlinable public func getVideoTracks() -> [MediaStreamTrack] {
         let this = jsObject
-        return this[Strings.getCueById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+        return this[Strings.getVideoTracks].function!(this: this, arguments: []).fromJSValue()!
     }
-}
 
-public enum TextTrackKind: JSString, JSValueCompatible {
-    case subtitles = "subtitles"
-    case captions = "captions"
-    case descriptions = "descriptions"
-    case chapters = "chapters"
-    case metadata = "metadata"
+    @inlinable public func getTracks() -> [MediaStreamTrack] {
+        let this = jsObject
+        return this[Strings.getTracks].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func getTrackById(trackId: String) -> MediaStreamTrack? {
+        let this = jsObject
+        return this[Strings.getTrackById].function!(this: this, arguments: [trackId.jsValue]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func addTrack(track: MediaStreamTrack) {
+        let this = jsObject
+        _ = this[Strings.addTrack].function!(this: this, arguments: [track.jsValue])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @inlinable public func removeTrack(track: MediaStreamTrack) {
+        let this = jsObject
+        _ = this[Strings.removeTrack].function!(this: this, arguments: [track.jsValue])
+    }
+
+    @inlinable public func clone() -> Self {
+        let this = jsObject
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @ReadonlyAttribute
+    public var active: Bool
+
+    @ClosureAttribute1Optional
+    public var onaddtrack: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onremovetrack: EventHandler
 }
 
-public class TextTrackList: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackList].function }
+public class MediaStreamConstraints: BridgedDictionary {
+    public convenience init(video: Bool_or_MediaTrackConstraints, audio: Bool_or_MediaTrackConstraints) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.video] = video.jsValue
+        object[Strings.audio] = audio.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var video: Bool_or_MediaTrackConstraints
+
+    @ReadWriteAttribute
+    public var audio: Bool_or_MediaTrackConstraints
+}
+
+public class MediaStreamTrack: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrack].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)
+        _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)
     }
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var kind: String
+
+    @ReadonlyAttribute
+    public var id: String
+
+    @ReadonlyAttribute
+    public var label: String
+
+    @ReadWriteAttribute
+    public var enabled: Bool
+
+    @ReadonlyAttribute
+    public var muted: Bool
+
+    @ClosureAttribute1Optional
+    public var onmute: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onunmute: EventHandler
+
+    @ReadonlyAttribute
+    public var readyState: MediaStreamTrackState
 
-    @inlinable public subscript(key: Int) -> TextTrack {
-        jsObject[key].fromJSValue()!
-    }
+    @ClosureAttribute1Optional
+    public var onended: EventHandler
 
-    @inlinable public func getTrackById(id: String) -> TextTrack? {
+    @inlinable public func clone() -> Self {
         let this = jsObject
-        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ClosureAttribute1Optional
-    public var onchange: EventHandler
-
-    @ClosureAttribute1Optional
-    public var onaddtrack: EventHandler
+    @inlinable public func stop() {
+        let this = jsObject
+        _ = this[Strings.stop].function!(this: this, arguments: [])
+    }
 
-    @ClosureAttribute1Optional
-    public var onremovetrack: EventHandler
-}
+    @inlinable public func getCapabilities() -> MediaTrackCapabilities {
+        let this = jsObject
+        return this[Strings.getCapabilities].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-public enum TextTrackMode: JSString, JSValueCompatible {
-    case disabled = "disabled"
-    case hidden = "hidden"
-    case showing = "showing"
+    @inlinable public func getConstraints() -> MediaTrackConstraints {
+        let this = jsObject
+        return this[Strings.getConstraints].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func getSettings() -> MediaTrackSettings {
+        let this = jsObject
+        return this[Strings.getSettings].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func applyConstraints(constraints: MediaTrackConstraints? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.applyConstraints].function!(this: this, arguments: [constraints?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @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: [constraints?.jsValue ?? .undefined]).fromJSValue()!
+        _ = try await _promise.value
+    }
 }
 
-public class TimeRanges: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TimeRanges].function }
-
-    public let jsObject: JSObject
+public class MediaStreamTrackEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MediaStreamTrackEvent].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        self.jsObject = jsObject
+        _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(type: String, eventInitDict: MediaStreamTrackEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
     }
 
     @ReadonlyAttribute
-    public var length: UInt32
+    public var track: MediaStreamTrack
+}
 
-    @inlinable public func start(index: UInt32) -> Double {
-        let this = jsObject
-        return this[Strings.start].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+public class MediaStreamTrackEventInit: BridgedDictionary {
+    public convenience init(track: MediaStreamTrack) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.track] = track.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func end(index: UInt32) -> Double {
-        let this = jsObject
-        return this[Strings.end].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _track = ReadWriteAttribute(jsObject: object, name: Strings.track)
+        super.init(unsafelyWrapping: object)
     }
+
+    @ReadWriteAttribute
+    public var track: MediaStreamTrack
 }
 
-public enum TimelinePhase: JSString, JSValueCompatible {
-    case inactive = "inactive"
-    case before = "before"
-    case active = "active"
-    case after = "after"
+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 {
@@ -21016,3143 +11013,3245 @@ public enum TimelinePhase: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class TrackEvent: Event {
-    @inlinable override public 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)
-    }
-
-    @inlinable public convenience init(type: String, eventInitDict: TrackEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
-
-    @ReadonlyAttribute
-    public var track: AudioTrack_or_TextTrack_or_VideoTrack?
-}
-
-public class TrackEventInit: BridgedDictionary {
-    public convenience init(track: AudioTrack_or_TextTrack_or_VideoTrack?) {
+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) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.track] = track.jsValue
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.aspectRatio] = aspectRatio.jsValue
+        object[Strings.frameRate] = frameRate.jsValue
+        object[Strings.facingMode] = facingMode.jsValue
+        object[Strings.resizeMode] = resizeMode.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.sampleSize] = sampleSize.jsValue
+        object[Strings.echoCancellation] = echoCancellation.jsValue
+        object[Strings.autoGainControl] = autoGainControl.jsValue
+        object[Strings.noiseSuppression] = noiseSuppression.jsValue
+        object[Strings.latency] = latency.jsValue
+        object[Strings.channelCount] = channelCount.jsValue
+        object[Strings.deviceId] = deviceId.jsValue
+        object[Strings.groupId] = groupId.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _track = ReadWriteAttribute(jsObject: object, name: Strings.track)
+        _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 track: AudioTrack_or_TextTrack_or_VideoTrack?
-}
+    public var width: ULongRange
 
-public class TransformStream: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStream].function }
+    @ReadWriteAttribute
+    public var height: ULongRange
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var aspectRatio: DoubleRange
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _readable = ReadonlyAttribute(jsObject: jsObject, name: Strings.readable)
-        _writable = ReadonlyAttribute(jsObject: jsObject, name: Strings.writable)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var frameRate: DoubleRange
 
-    @inlinable public convenience init(transformer: JSObject? = nil, writableStrategy: QueuingStrategy? = nil, readableStrategy: QueuingStrategy? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [transformer?.jsValue ?? .undefined, writableStrategy?.jsValue ?? .undefined, readableStrategy?.jsValue ?? .undefined]))
-    }
+    @ReadWriteAttribute
+    public var facingMode: [String]
 
-    @ReadonlyAttribute
-    public var readable: ReadableStream
+    @ReadWriteAttribute
+    public var resizeMode: [String]
 
-    @ReadonlyAttribute
-    public var writable: WritableStream
-}
+    @ReadWriteAttribute
+    public var sampleRate: ULongRange
 
-public class TransformStreamDefaultController: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStreamDefaultController].function }
+    @ReadWriteAttribute
+    public var sampleSize: ULongRange
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var echoCancellation: [Bool]
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var autoGainControl: [Bool]
 
-    @ReadonlyAttribute
-    public var desiredSize: Double?
+    @ReadWriteAttribute
+    public var noiseSuppression: [Bool]
 
-    @inlinable public func enqueue(chunk: JSValue? = nil) {
-        let this = jsObject
-        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var latency: DoubleRange
 
-    @inlinable public func error(reason: JSValue? = nil) {
-        let this = jsObject
-        _ = this[Strings.error].function!(this: this, arguments: [reason?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var channelCount: ULongRange
 
-    @inlinable public func terminate() {
-        let this = jsObject
-        _ = this[Strings.terminate].function!(this: this, arguments: [])
-    }
+    @ReadWriteAttribute
+    public var deviceId: String
+
+    @ReadWriteAttribute
+    public var groupId: String
 }
 
-public class Transformer: BridgedDictionary {
-    public convenience init(start: @escaping TransformerStartCallback, transform: @escaping TransformerTransformCallback, flush: @escaping TransformerFlushCallback, readableType: JSValue, writableType: JSValue) {
+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) {
         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.readableType] = readableType.jsValue
-        object[Strings.writableType] = writableType.jsValue
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.aspectRatio] = aspectRatio.jsValue
+        object[Strings.frameRate] = frameRate.jsValue
+        object[Strings.facingMode] = facingMode.jsValue
+        object[Strings.resizeMode] = resizeMode.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.sampleSize] = sampleSize.jsValue
+        object[Strings.echoCancellation] = echoCancellation.jsValue
+        object[Strings.autoGainControl] = autoGainControl.jsValue
+        object[Strings.noiseSuppression] = noiseSuppression.jsValue
+        object[Strings.latency] = latency.jsValue
+        object[Strings.channelCount] = channelCount.jsValue
+        object[Strings.deviceId] = deviceId.jsValue
+        object[Strings.groupId] = groupId.jsValue
         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)
+        _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)
     }
 
-    @ClosureAttribute1
-    public var start: TransformerStartCallback
+    @ReadWriteAttribute
+    public var width: ConstrainULong
 
-    @ClosureAttribute2
-    public var transform: TransformerTransformCallback
+    @ReadWriteAttribute
+    public var height: ConstrainULong
 
-    @ClosureAttribute1
-    public var flush: TransformerFlushCallback
+    @ReadWriteAttribute
+    public var aspectRatio: ConstrainDouble
 
     @ReadWriteAttribute
-    public var readableType: JSValue
+    public var frameRate: ConstrainDouble
 
     @ReadWriteAttribute
-    public var writableType: JSValue
-}
+    public var facingMode: ConstrainDOMString
 
-public class TreeWalker: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TreeWalker].function }
+    @ReadWriteAttribute
+    public var resizeMode: ConstrainDOMString
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var sampleRate: ConstrainULong
 
-    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
-    }
+    @ReadWriteAttribute
+    public var sampleSize: ConstrainULong
 
-    @ReadonlyAttribute
-    public var root: Node
+    @ReadWriteAttribute
+    public var echoCancellation: ConstrainBoolean
 
-    @ReadonlyAttribute
-    public var whatToShow: UInt32
+    @ReadWriteAttribute
+    public var autoGainControl: ConstrainBoolean
 
-    // XXX: member 'filter' is ignored
+    @ReadWriteAttribute
+    public var noiseSuppression: ConstrainBoolean
 
     @ReadWriteAttribute
-    public var currentNode: Node
+    public var latency: ConstrainDouble
 
-    @inlinable public func parentNode() -> Node? {
-        let this = jsObject
-        return this[Strings.parentNode].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var channelCount: ConstrainULong
 
-    @inlinable public func firstChild() -> Node? {
-        let this = jsObject
-        return this[Strings.firstChild].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var deviceId: ConstrainDOMString
 
-    @inlinable public func lastChild() -> Node? {
-        let this = jsObject
-        return this[Strings.lastChild].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var groupId: ConstrainDOMString
+}
 
-    @inlinable public func previousSibling() -> Node? {
-        let this = jsObject
-        return this[Strings.previousSibling].function!(this: this, arguments: []).fromJSValue()!
+public class MediaTrackConstraints: BridgedDictionary {
+    public convenience init(advanced: [MediaTrackConstraintSet]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.advanced] = advanced.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func nextSibling() -> Node? {
-        let this = jsObject
-        return this[Strings.nextSibling].function!(this: this, arguments: []).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _advanced = ReadWriteAttribute(jsObject: object, name: Strings.advanced)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable public func previousNode() -> Node? {
-        let this = jsObject
-        return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var advanced: [MediaTrackConstraintSet]
+}
 
-    @inlinable public func nextNode() -> Node? {
-        let this = jsObject
-        return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()!
+public class MediaTrackSettings: BridgedDictionary {
+    public convenience init(width: Int32, height: Int32, aspectRatio: Double, frameRate: Double, facingMode: String, resizeMode: String, sampleRate: Int32, sampleSize: Int32, echoCancellation: Bool, autoGainControl: Bool, noiseSuppression: Bool, latency: Double, channelCount: Int32, deviceId: String, groupId: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.aspectRatio] = aspectRatio.jsValue
+        object[Strings.frameRate] = frameRate.jsValue
+        object[Strings.facingMode] = facingMode.jsValue
+        object[Strings.resizeMode] = resizeMode.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.sampleSize] = sampleSize.jsValue
+        object[Strings.echoCancellation] = echoCancellation.jsValue
+        object[Strings.autoGainControl] = autoGainControl.jsValue
+        object[Strings.noiseSuppression] = noiseSuppression.jsValue
+        object[Strings.latency] = latency.jsValue
+        object[Strings.channelCount] = channelCount.jsValue
+        object[Strings.deviceId] = deviceId.jsValue
+        object[Strings.groupId] = groupId.jsValue
+        self.init(unsafelyWrapping: object)
     }
-}
 
-public typealias CanvasFilterInput = [String: JSValue]
+    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)
+    }
 
-public typealias EventHandler = EventHandlerNonNull?
-public typealias OnErrorEventHandler = OnErrorEventHandlerNonNull?
-public typealias OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull?
+    @ReadWriteAttribute
+    public var width: Int32
 
-public typealias DOMHighResTimeStamp = Double
-public typealias EpochTimeStamp = UInt64
+    @ReadWriteAttribute
+    public var height: Int32
 
-public typealias DOMTimeStamp = UInt64
-
-public typealias GLenum = UInt32
-public typealias GLboolean = Bool
-public typealias GLbitfield = UInt32
-public typealias GLbyte = Int8
-public typealias GLshort = Int16
-public typealias GLint = Int32
-public typealias GLsizei = Int32
-public typealias GLsizeiptr = Int64
-public typealias GLubyte = UInt8
-public typealias GLushort = UInt16
-public typealias GLuint = UInt32
-public typealias GLfloat = Float
-public typealias GLclampf = Float
-
-public typealias GLint64 = Int64
-public typealias GLuint64 = UInt64
-
-public typealias GPUBufferUsageFlags = UInt32
-public typealias GPUMapModeFlags = UInt32
-public typealias GPUTextureUsageFlags = UInt32
-public typealias GPUShaderStageFlags = UInt32
-
-public typealias GPUPipelineConstantValue = Double
-public typealias GPUColorWriteFlags = UInt32
-public typealias GPUComputePassTimestampWrites = [GPUComputePassTimestampWrite]
-public typealias GPURenderPassTimestampWrites = [GPURenderPassTimestampWrite]
-
-public typealias GPUBufferDynamicOffset = UInt32
-public typealias GPUStencilValue = UInt32
-public typealias GPUSampleMask = UInt32
-public typealias GPUDepthBias = Int32
-public typealias GPUSize64 = UInt64
-public typealias GPUIntegerCoordinate = UInt32
-public typealias GPUIndex32 = UInt32
-public typealias GPUSize32 = UInt32
-public typealias GPUSignedOffset32 = Int32
-public typealias GPUFlagsConstant = UInt32
+    @ReadWriteAttribute
+    public var aspectRatio: Double
 
-public typealias MutationCallback = ([MutationRecord], MutationObserver) -> Void
-public typealias BlobCallback = (Blob?) -> Void
-public typealias FunctionStringCallback = (String) -> Void
-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 VoidFunction = () -> Void
-public typealias UnderlyingSourceStartCallback = (ReadableStreamController) -> JSValue
-public typealias UnderlyingSourcePullCallback = (ReadableStreamController) -> JSPromise
-public typealias UnderlyingSourceCancelCallback = (JSValue) -> JSPromise
-public typealias UnderlyingSinkStartCallback = (WritableStreamDefaultController) -> JSValue
-public typealias UnderlyingSinkWriteCallback = (JSValue, WritableStreamDefaultController) -> JSPromise
-public typealias UnderlyingSinkCloseCallback = () -> JSPromise
-public typealias UnderlyingSinkAbortCallback = (JSValue) -> JSPromise
-public typealias TransformerStartCallback = (TransformStreamDefaultController) -> JSValue
-public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise
-public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> JSPromise
-public typealias QueuingStrategySize = (JSValue) -> Double
-public typealias DecodeErrorCallback = (DOMException) -> Void
-public typealias DecodeSuccessCallback = (AudioBuffer) -> Void
-public typealias AudioWorkletProcessCallback = ([[Float32Array]], [[Float32Array]], JSObject) -> Bool
-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 class UIEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.UIEvent].function }
+    @ReadWriteAttribute
+    public var frameRate: Double
 
-    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)
-    }
+    @ReadWriteAttribute
+    public var facingMode: String
 
-    @inlinable public convenience init(type: String, eventInitDict: UIEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
-    }
+    @ReadWriteAttribute
+    public var resizeMode: String
 
-    @ReadonlyAttribute
-    public var view: Window?
+    @ReadWriteAttribute
+    public var sampleRate: Int32
 
-    @ReadonlyAttribute
-    public var detail: Int32
+    @ReadWriteAttribute
+    public var sampleSize: Int32
 
-    @inlinable 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: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, detailArg?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var echoCancellation: Bool
 
-    @ReadonlyAttribute
-    public var which: UInt32
-}
+    @ReadWriteAttribute
+    public var autoGainControl: Bool
 
-public class UIEventInit: BridgedDictionary {
-    public convenience init(view: Window?, detail: Int32, which: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.view] = view.jsValue
-        object[Strings.detail] = detail.jsValue
-        object[Strings.which] = which.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadWriteAttribute
+    public var noiseSuppression: Bool
 
-    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)
-    }
+    @ReadWriteAttribute
+    public var latency: Double
 
     @ReadWriteAttribute
-    public var view: Window?
+    public var channelCount: Int32
 
     @ReadWriteAttribute
-    public var detail: Int32
+    public var deviceId: String
 
     @ReadWriteAttribute
-    public var which: UInt32
+    public var groupId: String
 }
 
-public class ULongRange: BridgedDictionary {
-    public convenience init(max: UInt32, min: UInt32) {
+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) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.max] = max.jsValue
-        object[Strings.min] = min.jsValue
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.aspectRatio] = aspectRatio.jsValue
+        object[Strings.frameRate] = frameRate.jsValue
+        object[Strings.facingMode] = facingMode.jsValue
+        object[Strings.resizeMode] = resizeMode.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        object[Strings.sampleSize] = sampleSize.jsValue
+        object[Strings.echoCancellation] = echoCancellation.jsValue
+        object[Strings.autoGainControl] = autoGainControl.jsValue
+        object[Strings.noiseSuppression] = noiseSuppression.jsValue
+        object[Strings.latency] = latency.jsValue
+        object[Strings.channelCount] = channelCount.jsValue
+        object[Strings.deviceId] = deviceId.jsValue
+        object[Strings.groupId] = groupId.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _max = ReadWriteAttribute(jsObject: object, name: Strings.max)
-        _min = ReadWriteAttribute(jsObject: object, name: Strings.min)
+        _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 max: UInt32
+    public var width: Bool
 
     @ReadWriteAttribute
-    public var min: UInt32
-}
-
-public class URL: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URL].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)
-        _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
-    }
-
-    @inlinable public static func createObjectURL(obj: Blob_or_MediaSource) -> String {
-        let this = constructor!
-        return this[Strings.createObjectURL].function!(this: this, arguments: [obj.jsValue]).fromJSValue()!
-    }
-
-    @inlinable public static func revokeObjectURL(url: String) {
-        let this = constructor!
-        _ = this[Strings.revokeObjectURL].function!(this: this, arguments: [url.jsValue])
-    }
-
-    @inlinable public convenience init(url: String, base: String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, base?.jsValue ?? .undefined]))
-    }
+    public var height: Bool
 
     @ReadWriteAttribute
-    public var href: String
+    public var aspectRatio: Bool
 
-    @ReadonlyAttribute
-    public var origin: String
+    @ReadWriteAttribute
+    public var frameRate: Bool
 
     @ReadWriteAttribute
-    public var `protocol`: String
+    public var facingMode: Bool
 
     @ReadWriteAttribute
-    public var username: String
+    public var resizeMode: Bool
 
     @ReadWriteAttribute
-    public var password: String
+    public var sampleRate: Bool
 
     @ReadWriteAttribute
-    public var host: String
+    public var sampleSize: Bool
 
     @ReadWriteAttribute
-    public var hostname: String
+    public var echoCancellation: Bool
 
     @ReadWriteAttribute
-    public var port: String
+    public var autoGainControl: Bool
 
     @ReadWriteAttribute
-    public var pathname: String
+    public var noiseSuppression: Bool
 
     @ReadWriteAttribute
-    public var search: String
+    public var latency: Bool
 
-    @ReadonlyAttribute
-    public var searchParams: URLSearchParams
+    @ReadWriteAttribute
+    public var channelCount: Bool
 
     @ReadWriteAttribute
-    public var hash: String
+    public var deviceId: Bool
 
-    @inlinable public func toJSON() -> String {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var groupId: Bool
 }
 
-public class URLSearchParams: JSBridgedClass, Sequence {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URLSearchParams].function }
+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 convenience init(init: String_or_record_String_to_String_or_seq_of_seq_of_String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
     }
 
-    @inlinable public func append(name: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
-    }
+    @ReadonlyAttribute
+    public var port1: MessagePort
 
-    @inlinable public func delete(name: String) {
-        let this = jsObject
-        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
-    }
+    @ReadonlyAttribute
+    public var port2: MessagePort
+}
 
-    @inlinable public func get(name: String) -> String? {
-        let this = jsObject
-        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
-    }
+public class MessageEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MessageEvent].function }
 
-    @inlinable public func getAll(name: String) -> [String] {
-        let this = jsObject
-        return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    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)
     }
 
-    @inlinable public func has(name: String) -> Bool {
-        let this = jsObject
-        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    @inlinable public convenience init(type: String, eventInitDict: MessageEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
     }
 
-    @inlinable public func set(name: String, value: String) {
-        let this = jsObject
-        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
-    }
+    @ReadonlyAttribute
+    public var data: JSValue
 
-    @inlinable public func sort() {
-        let this = jsObject
-        _ = this[Strings.sort].function!(this: this, arguments: [])
-    }
+    @ReadonlyAttribute
+    public var origin: String
 
-    public typealias Element = String
-    public func makeIterator() -> ValueIterableIterator<URLSearchParams> {
-        ValueIterableIterator(sequence: self)
-    }
+    @ReadonlyAttribute
+    public var lastEventId: String
 
-    @inlinable public var description: String {
-        jsObject[Strings.toString]!().fromJSValue()!
+    @ReadonlyAttribute
+    public var source: MessageEventSource?
+
+    @ReadonlyAttribute
+    public var ports: [MessagePort]
+
+    @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) {
+        let _arg0 = type.jsValue
+        let _arg1 = bubbles?.jsValue ?? .undefined
+        let _arg2 = cancelable?.jsValue ?? .undefined
+        let _arg3 = data?.jsValue ?? .undefined
+        let _arg4 = origin?.jsValue ?? .undefined
+        let _arg5 = lastEventId?.jsValue ?? .undefined
+        let _arg6 = source?.jsValue ?? .undefined
+        let _arg7 = ports?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.initMessageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
     }
 }
 
-public class UnderlyingSink: BridgedDictionary {
-    public convenience init(start: @escaping UnderlyingSinkStartCallback, write: @escaping UnderlyingSinkWriteCallback, close: @escaping UnderlyingSinkCloseCallback, abort: @escaping UnderlyingSinkAbortCallback, type: JSValue) {
+public class MessageEventInit: BridgedDictionary {
+    public convenience init(data: JSValue, origin: String, lastEventId: String, source: MessageEventSource?, ports: [MessagePort]) {
         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] = type.jsValue
+        object[Strings.data] = data.jsValue
+        object[Strings.origin] = origin.jsValue
+        object[Strings.lastEventId] = lastEventId.jsValue
+        object[Strings.source] = source.jsValue
+        object[Strings.ports] = ports.jsValue
         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)
+        _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)
     }
 
-    @ClosureAttribute1
-    public var start: UnderlyingSinkStartCallback
+    @ReadWriteAttribute
+    public var data: JSValue
 
-    @ClosureAttribute2
-    public var write: UnderlyingSinkWriteCallback
+    @ReadWriteAttribute
+    public var origin: String
 
-    @ClosureAttribute0
-    public var close: UnderlyingSinkCloseCallback
+    @ReadWriteAttribute
+    public var lastEventId: String
 
-    @ClosureAttribute1
-    public var abort: UnderlyingSinkAbortCallback
+    @ReadWriteAttribute
+    public var source: MessageEventSource?
 
     @ReadWriteAttribute
-    public var type: JSValue
+    public var ports: [MessagePort]
 }
 
-public class UnderlyingSource: BridgedDictionary {
-    public convenience init(start: @escaping UnderlyingSourceStartCallback, pull: @escaping UnderlyingSourcePullCallback, cancel: @escaping UnderlyingSourceCancelCallback, type: ReadableStreamType, autoAllocateChunkSize: UInt64) {
-        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.type] = type.jsValue
-        object[Strings.autoAllocateChunkSize] = autoAllocateChunkSize.jsValue
-        self.init(unsafelyWrapping: object)
+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)
     }
 
-    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)
+    @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) {
+        let this = jsObject
+        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, transfer.jsValue])
+    }
+
+    @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) {
+        let this = jsObject
+        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, options?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func start() {
+        let this = jsObject
+        _ = this[Strings.start].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
+    }
+
+    @ClosureAttribute1Optional
+    public var onmessage: EventHandler
+
+    @ClosureAttribute1Optional
+    public var onmessageerror: EventHandler
+}
+
+public class MimeType: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MimeType].function }
+
+    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
     }
 
-    @ClosureAttribute1
-    public var start: UnderlyingSourceStartCallback
-
-    @ClosureAttribute1
-    public var pull: UnderlyingSourcePullCallback
+    @ReadonlyAttribute
+    public var type: String
 
-    @ClosureAttribute1
-    public var cancel: UnderlyingSourceCancelCallback
+    @ReadonlyAttribute
+    public var description: String
 
-    @ReadWriteAttribute
-    public var type: ReadableStreamType
+    @ReadonlyAttribute
+    public var suffixes: String
 
-    @ReadWriteAttribute
-    public var autoAllocateChunkSize: UInt64
+    @ReadonlyAttribute
+    public var enabledPlugin: Plugin
 }
 
-public class ValidityState: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ValidityState].function }
+public class MimeTypeArray: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MimeTypeArray].function }
 
     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)
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
         self.jsObject = jsObject
     }
 
     @ReadonlyAttribute
-    public var valueMissing: Bool
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> MimeType? {
+        jsObject[key].fromJSValue()
+    }
+
+    @inlinable public subscript(key: String) -> MimeType? {
+        jsObject[key].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 convenience init(type: String, eventInitDict: MouseEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var typeMismatch: Bool
+    public var screenX: Int32
 
     @ReadonlyAttribute
-    public var patternMismatch: Bool
+    public var screenY: Int32
 
     @ReadonlyAttribute
-    public var tooLong: Bool
+    public var clientX: Int32
 
     @ReadonlyAttribute
-    public var tooShort: Bool
+    public var clientY: Int32
 
     @ReadonlyAttribute
-    public var rangeUnderflow: Bool
+    public var ctrlKey: Bool
 
     @ReadonlyAttribute
-    public var rangeOverflow: Bool
+    public var shiftKey: Bool
 
     @ReadonlyAttribute
-    public var stepMismatch: Bool
+    public var altKey: Bool
 
     @ReadonlyAttribute
-    public var badInput: Bool
+    public var metaKey: Bool
 
     @ReadonlyAttribute
-    public var customError: Bool
+    public var button: Int16
 
     @ReadonlyAttribute
-    public var valid: Bool
-}
+    public var buttons: UInt16
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.valueMissing] = valueMissing.jsValue
-        object[Strings.typeMismatch] = typeMismatch.jsValue
-        object[Strings.patternMismatch] = patternMismatch.jsValue
-        object[Strings.tooLong] = tooLong.jsValue
-        object[Strings.tooShort] = tooShort.jsValue
-        object[Strings.rangeUnderflow] = rangeUnderflow.jsValue
-        object[Strings.rangeOverflow] = rangeOverflow.jsValue
-        object[Strings.stepMismatch] = stepMismatch.jsValue
-        object[Strings.badInput] = badInput.jsValue
-        object[Strings.customError] = customError.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var relatedTarget: EventTarget?
 
-    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)
+    @inlinable public func getModifierState(keyArg: String) -> Bool {
+        let this = jsObject
+        return this[Strings.getModifierState].function!(this: this, arguments: [keyArg.jsValue]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var valueMissing: Bool
-
-    @ReadWriteAttribute
-    public var typeMismatch: Bool
-
-    @ReadWriteAttribute
-    public var patternMismatch: Bool
-
-    @ReadWriteAttribute
-    public var tooLong: Bool
+    @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) {
+        let _arg0 = typeArg.jsValue
+        let _arg1 = bubblesArg?.jsValue ?? .undefined
+        let _arg2 = cancelableArg?.jsValue ?? .undefined
+        let _arg3 = viewArg?.jsValue ?? .undefined
+        let _arg4 = detailArg?.jsValue ?? .undefined
+        let _arg5 = screenXArg?.jsValue ?? .undefined
+        let _arg6 = screenYArg?.jsValue ?? .undefined
+        let _arg7 = clientXArg?.jsValue ?? .undefined
+        let _arg8 = clientYArg?.jsValue ?? .undefined
+        let _arg9 = ctrlKeyArg?.jsValue ?? .undefined
+        let _arg10 = altKeyArg?.jsValue ?? .undefined
+        let _arg11 = shiftKeyArg?.jsValue ?? .undefined
+        let _arg12 = metaKeyArg?.jsValue ?? .undefined
+        let _arg13 = buttonArg?.jsValue ?? .undefined
+        let _arg14 = relatedTargetArg?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.initMouseEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11, _arg12, _arg13, _arg14])
+    }
 
-    @ReadWriteAttribute
-    public var tooShort: Bool
+    @ReadonlyAttribute
+    public var pageX: Double
 
-    @ReadWriteAttribute
-    public var rangeUnderflow: Bool
+    @ReadonlyAttribute
+    public var pageY: Double
 
-    @ReadWriteAttribute
-    public var rangeOverflow: Bool
+    @ReadonlyAttribute
+    public var x: Double
 
-    @ReadWriteAttribute
-    public var stepMismatch: Bool
+    @ReadonlyAttribute
+    public var y: Double
 
-    @ReadWriteAttribute
-    public var badInput: Bool
+    @ReadonlyAttribute
+    public var offsetX: Double
 
-    @ReadWriteAttribute
-    public var customError: Bool
+    @ReadonlyAttribute
+    public var offsetY: Double
 }
 
-public enum VideoColorPrimaries: JSString, JSValueCompatible {
-    case bt709 = "bt709"
-    case bt470bg = "bt470bg"
-    case smpte170m = "smpte170m"
-
-    @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))
+public class MouseEventInit: BridgedDictionary {
+    public convenience init(screenX: Int32, screenY: Int32, clientX: Int32, clientY: Int32, button: Int16, buttons: UInt16, relatedTarget: EventTarget?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.screenX] = screenX.jsValue
+        object[Strings.screenY] = screenY.jsValue
+        object[Strings.clientX] = clientX.jsValue
+        object[Strings.clientY] = clientY.jsValue
+        object[Strings.button] = button.jsValue
+        object[Strings.buttons] = buttons.jsValue
+        object[Strings.relatedTarget] = relatedTarget.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @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 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)
     }
 
-    @inlinable public convenience init(init: VideoColorSpaceInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
-    }
+    @ReadWriteAttribute
+    public var screenX: Int32
 
-    @ReadonlyAttribute
-    public var primaries: VideoColorPrimaries?
+    @ReadWriteAttribute
+    public var screenY: Int32
 
-    @ReadonlyAttribute
-    public var transfer: VideoTransferCharacteristics?
+    @ReadWriteAttribute
+    public var clientX: Int32
 
-    @ReadonlyAttribute
-    public var matrix: VideoMatrixCoefficients?
+    @ReadWriteAttribute
+    public var clientY: Int32
 
-    @ReadonlyAttribute
-    public var fullRange: Bool?
+    @ReadWriteAttribute
+    public var button: Int16
 
-    @inlinable public func toJSON() -> VideoColorSpaceInit {
-        let this = jsObject
-        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var buttons: UInt16
+
+    @ReadWriteAttribute
+    public var relatedTarget: EventTarget?
 }
 
-public class VideoColorSpaceInit: BridgedDictionary {
-    public convenience init(primaries: VideoColorPrimaries, transfer: VideoTransferCharacteristics, matrix: VideoMatrixCoefficients, fullRange: Bool) {
+public class MultiCacheQueryOptions: BridgedDictionary {
+    public convenience init(cacheName: String) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.primaries] = primaries.jsValue
-        object[Strings.transfer] = transfer.jsValue
-        object[Strings.matrix] = matrix.jsValue
-        object[Strings.fullRange] = fullRange.jsValue
+        object[Strings.cacheName] = cacheName.jsValue
         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)
+        _cacheName = ReadWriteAttribute(jsObject: object, name: Strings.cacheName)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var primaries: VideoColorPrimaries
+    public var cacheName: String
+}
 
-    @ReadWriteAttribute
-    public var transfer: VideoTransferCharacteristics
+public class MutationEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.MutationEvent].function }
 
-    @ReadWriteAttribute
-    public var matrix: VideoMatrixCoefficients
+    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)
+    }
 
-    @ReadWriteAttribute
-    public var fullRange: Bool
-}
+    public static let MODIFICATION: UInt16 = 1
 
-public class VideoDecoder: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoDecoder].function }
+    public static let ADDITION: UInt16 = 2
 
-    public let jsObject: JSObject
+    public static let REMOVAL: UInt16 = 3
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
-        _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize)
-        self.jsObject = jsObject
-    }
+    @ReadonlyAttribute
+    public var relatedNode: Node?
 
-    @inlinable public convenience init(init: VideoDecoderInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
-    }
+    @ReadonlyAttribute
+    public var prevValue: String
 
     @ReadonlyAttribute
-    public var state: CodecState
+    public var newValue: String
 
     @ReadonlyAttribute
-    public var decodeQueueSize: UInt32
+    public var attrName: String
 
-    @inlinable public func configure(config: VideoDecoderConfig) {
-        let this = jsObject
-        _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue])
-    }
+    @ReadonlyAttribute
+    public var attrChange: UInt16
 
-    @inlinable public func decode(chunk: EncodedVideoChunk) {
+    @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 _arg0 = typeArg.jsValue
+        let _arg1 = bubblesArg?.jsValue ?? .undefined
+        let _arg2 = cancelableArg?.jsValue ?? .undefined
+        let _arg3 = relatedNodeArg?.jsValue ?? .undefined
+        let _arg4 = prevValueArg?.jsValue ?? .undefined
+        let _arg5 = newValueArg?.jsValue ?? .undefined
+        let _arg6 = attrNameArg?.jsValue ?? .undefined
+        let _arg7 = attrChangeArg?.jsValue ?? .undefined
         let this = jsObject
-        _ = this[Strings.decode].function!(this: this, arguments: [chunk.jsValue])
+        _ = this[Strings.initMutationEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
     }
+}
 
-    @inlinable public func flush() -> JSPromise {
-        let this = jsObject
-        return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
-    }
+public class MutationObserver: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationObserver].function }
 
-    @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
-    }
+    public let jsObject: JSObject
 
-    @inlinable public func reset() {
-        let this = jsObject
-        _ = this[Strings.reset].function!(this: this, arguments: [])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
     }
 
-    @inlinable public func close() {
+    // XXX: constructor is ignored
+
+    @inlinable public func observe(target: Node, options: MutationObserverInit? = nil) {
         let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+        _ = this[Strings.observe].function!(this: this, arguments: [target.jsValue, options?.jsValue ?? .undefined])
     }
 
-    @inlinable public static func isConfigSupported(config: VideoDecoderConfig) -> JSPromise {
-        let this = constructor!
-        return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
+    @inlinable public func disconnect() {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [])
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public static func isConfigSupported(config: VideoDecoderConfig) async throws -> VideoDecoderSupport {
-        let this = constructor!
-        let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+    @inlinable public func takeRecords() -> [MutationRecord] {
+        let this = jsObject
+        return this[Strings.takeRecords].function!(this: this, arguments: []).fromJSValue()!
     }
 }
 
-public class VideoDecoderConfig: BridgedDictionary {
-    public convenience init(codec: String, description: BufferSource, codedWidth: UInt32, codedHeight: UInt32, displayAspectWidth: UInt32, displayAspectHeight: UInt32, colorSpace: VideoColorSpaceInit, hardwareAcceleration: HardwareAcceleration, optimizeForLatency: Bool) {
+public class MutationObserverInit: BridgedDictionary {
+    public convenience init(childList: Bool, attributes: Bool, characterData: Bool, subtree: Bool, attributeOldValue: Bool, characterDataOldValue: Bool, attributeFilter: [String]) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.codec] = codec.jsValue
-        object[Strings.description] = description.jsValue
-        object[Strings.codedWidth] = codedWidth.jsValue
-        object[Strings.codedHeight] = codedHeight.jsValue
-        object[Strings.displayAspectWidth] = displayAspectWidth.jsValue
-        object[Strings.displayAspectHeight] = displayAspectHeight.jsValue
-        object[Strings.colorSpace] = colorSpace.jsValue
-        object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue
-        object[Strings.optimizeForLatency] = optimizeForLatency.jsValue
+        object[Strings.childList] = childList.jsValue
+        object[Strings.attributes] = attributes.jsValue
+        object[Strings.characterData] = characterData.jsValue
+        object[Strings.subtree] = subtree.jsValue
+        object[Strings.attributeOldValue] = attributeOldValue.jsValue
+        object[Strings.characterDataOldValue] = characterDataOldValue.jsValue
+        object[Strings.attributeFilter] = attributeFilter.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     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)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var codec: String
+    public var childList: Bool
 
     @ReadWriteAttribute
-    public var description: BufferSource
+    public var attributes: Bool
 
     @ReadWriteAttribute
-    public var codedWidth: UInt32
+    public var characterData: Bool
 
     @ReadWriteAttribute
-    public var codedHeight: UInt32
+    public var subtree: Bool
 
     @ReadWriteAttribute
-    public var displayAspectWidth: UInt32
+    public var attributeOldValue: Bool
 
     @ReadWriteAttribute
-    public var displayAspectHeight: UInt32
+    public var characterDataOldValue: Bool
 
     @ReadWriteAttribute
-    public var colorSpace: VideoColorSpaceInit
+    public var attributeFilter: [String]
+}
 
-    @ReadWriteAttribute
-    public var hardwareAcceleration: HardwareAcceleration
+public class MutationRecord: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.MutationRecord].function }
 
-    @ReadWriteAttribute
-    public var optimizeForLatency: Bool
-}
+    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)
+    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 object: JSObject) {
-        _output = ClosureAttribute1Void(jsObject: object, name: Strings.output)
-        _error = ClosureAttribute1Void(jsObject: object, name: Strings.error)
-        super.init(unsafelyWrapping: object)
-    }
+    @ReadonlyAttribute
+    public var type: String
 
-    @ClosureAttribute1Void
-    public var output: VideoFrameOutputCallback
+    @ReadonlyAttribute
+    public var target: Node
 
-    @ClosureAttribute1Void
-    public var error: WebCodecsErrorCallback
+    @ReadonlyAttribute
+    public var addedNodes: NodeList
+
+    @ReadonlyAttribute
+    public var removedNodes: NodeList
+
+    @ReadonlyAttribute
+    public var previousSibling: Node?
+
+    @ReadonlyAttribute
+    public var nextSibling: Node?
+
+    @ReadonlyAttribute
+    public var attributeName: String?
+
+    @ReadonlyAttribute
+    public var attributeNamespace: String?
+
+    @ReadonlyAttribute
+    public var oldValue: String?
 }
 
-public class VideoDecoderSupport: BridgedDictionary {
-    public convenience init(supported: Bool, config: VideoDecoderConfig) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.supported] = supported.jsValue
-        object[Strings.config] = config.jsValue
-        self.init(unsafelyWrapping: object)
+public class NamedNodeMap: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NamedNodeMap].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
+
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @inlinable public subscript(key: Int) -> Attr? {
+        jsObject[key].fromJSValue()
+    }
+
+    @inlinable public subscript(key: String) -> Attr? {
+        jsObject[key].fromJSValue()
+    }
+
+    @inlinable public func getNamedItemNS(namespace: String?, localName: String) -> Attr? {
+        let this = jsObject
+        return this[Strings.getNamedItemNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func setNamedItem(attr: Attr) -> Attr? {
+        let this = jsObject
+        return this[Strings.setNamedItem].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported)
-        _config = ReadWriteAttribute(jsObject: object, name: Strings.config)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func setNamedItemNS(attr: Attr) -> Attr? {
+        let this = jsObject
+        return this[Strings.setNamedItemNS].function!(this: this, arguments: [attr.jsValue]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var supported: Bool
+    @inlinable public func removeNamedItem(qualifiedName: String) -> Attr {
+        let this = jsObject
+        return this[Strings.removeNamedItem].function!(this: this, arguments: [qualifiedName.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var config: VideoDecoderConfig
+    @inlinable public func removeNamedItemNS(namespace: String?, localName: String) -> Attr {
+        let this = jsObject
+        return this[Strings.removeNamedItemNS].function!(this: this, arguments: [namespace.jsValue, localName.jsValue]).fromJSValue()!
+    }
 }
 
-public class VideoEncoder: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoEncoder].function }
+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) {
-        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
-        _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize)
         self.jsObject = jsObject
     }
 
-    @inlinable public convenience init(init: VideoEncoderInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
-    }
-
-    @ReadonlyAttribute
-    public var state: CodecState
-
-    @ReadonlyAttribute
-    public var encodeQueueSize: UInt32
-
-    @inlinable public func configure(config: VideoEncoderConfig) {
+    @inlinable public func enable() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue])
+        return this[Strings.enable].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable public func encode(frame: VideoFrame, options: VideoEncoderEncodeOptions? = nil) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func enable() async throws {
         let this = jsObject
-        _ = this[Strings.encode].function!(this: this, arguments: [frame.jsValue, options?.jsValue ?? .undefined])
+        let _promise: JSPromise = this[Strings.enable].function!(this: this, arguments: []).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    @inlinable public func flush() -> JSPromise {
+    @inlinable public func disable() -> JSPromise {
         let this = jsObject
-        return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
+        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 flush() async throws {
+    @inlinable public func disable() async throws {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
+        let _promise: JSPromise = this[Strings.disable].function!(this: this, arguments: []).fromJSValue()!
         _ = try await _promise.value
     }
 
-    @inlinable public func reset() {
+    @inlinable public func setHeaderValue(value: String) -> JSPromise {
         let this = jsObject
-        _ = this[Strings.reset].function!(this: this, arguments: [])
+        return this[Strings.setHeaderValue].function!(this: this, arguments: [value.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func close() {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func setHeaderValue(value: String) async throws {
         let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+        let _promise: JSPromise = this[Strings.setHeaderValue].function!(this: this, arguments: [value.jsValue]).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    @inlinable public static func isConfigSupported(config: VideoEncoderConfig) -> JSPromise {
-        let this = constructor!
-        return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
+    @inlinable 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 static func isConfigSupported(config: VideoEncoderConfig) async throws -> VideoEncoderSupport {
-        let this = constructor!
-        let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
+    @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()!
     }
 }
 
-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: BitrateMode, latencyMode: LatencyMode) {
+public class NavigationPreloadState: BridgedDictionary {
+    public convenience init(enabled: Bool, headerValue: String) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.codec] = codec.jsValue
-        object[Strings.width] = width.jsValue
-        object[Strings.height] = height.jsValue
-        object[Strings.displayWidth] = displayWidth.jsValue
-        object[Strings.displayHeight] = displayHeight.jsValue
-        object[Strings.bitrate] = bitrate.jsValue
-        object[Strings.framerate] = framerate.jsValue
-        object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue
-        object[Strings.alpha] = alpha.jsValue
-        object[Strings.scalabilityMode] = scalabilityMode.jsValue
-        object[Strings.bitrateMode] = bitrateMode.jsValue
-        object[Strings.latencyMode] = latencyMode.jsValue
+        object[Strings.enabled] = enabled.jsValue
+        object[Strings.headerValue] = headerValue.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     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)
+        _enabled = ReadWriteAttribute(jsObject: object, name: Strings.enabled)
+        _headerValue = ReadWriteAttribute(jsObject: object, name: Strings.headerValue)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var codec: String
+    public var enabled: Bool
 
     @ReadWriteAttribute
-    public var width: UInt32
+    public var headerValue: String
+}
 
-    @ReadWriteAttribute
-    public var height: UInt32
+public class Navigator: JSBridgedClass, NavigatorID, NavigatorLanguage, NavigatorOnLine, NavigatorContentUtils, NavigatorCookies, NavigatorPlugins, NavigatorConcurrentHardware {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Navigator].function }
 
-    @ReadWriteAttribute
-    public var displayWidth: UInt32
+    public let jsObject: JSObject
 
-    @ReadWriteAttribute
-    public var displayHeight: UInt32
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _mediaDevices = ReadonlyAttribute(jsObject: jsObject, name: Strings.mediaDevices)
+        _serviceWorker = ReadonlyAttribute(jsObject: jsObject, name: Strings.serviceWorker)
+        self.jsObject = jsObject
+    }
 
-    @ReadWriteAttribute
-    public var bitrate: UInt64
+    @ReadonlyAttribute
+    public var mediaDevices: MediaDevices
 
-    @ReadWriteAttribute
-    public var framerate: Double
+    // XXX: member 'getUserMedia' is ignored
 
-    @ReadWriteAttribute
-    public var hardwareAcceleration: HardwareAcceleration
+    @ReadonlyAttribute
+    public var serviceWorker: ServiceWorkerContainer
+}
 
-    @ReadWriteAttribute
-    public var alpha: AlphaOption
+public protocol NavigatorConcurrentHardware: JSBridgedClass {}
+public extension NavigatorConcurrentHardware {
+    @inlinable var hardwareConcurrency: UInt64 { jsObject[Strings.hardwareConcurrency].fromJSValue()! }
+}
 
-    @ReadWriteAttribute
-    public var scalabilityMode: String
+public protocol NavigatorContentUtils: JSBridgedClass {}
+public extension NavigatorContentUtils {
+    @inlinable func registerProtocolHandler(scheme: String, url: String) {
+        let this = jsObject
+        _ = this[Strings.registerProtocolHandler].function!(this: this, arguments: [scheme.jsValue, url.jsValue])
+    }
 
-    @ReadWriteAttribute
-    public var bitrateMode: BitrateMode
+    @inlinable func unregisterProtocolHandler(scheme: String, url: String) {
+        let this = jsObject
+        _ = this[Strings.unregisterProtocolHandler].function!(this: this, arguments: [scheme.jsValue, url.jsValue])
+    }
+}
 
-    @ReadWriteAttribute
-    public var latencyMode: LatencyMode
+public protocol NavigatorCookies: JSBridgedClass {}
+public extension NavigatorCookies {
+    @inlinable var cookieEnabled: Bool { jsObject[Strings.cookieEnabled].fromJSValue()! }
 }
 
-public class VideoEncoderEncodeOptions: BridgedDictionary {
-    public convenience init(keyFrame: Bool) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.keyFrame] = keyFrame.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public protocol NavigatorID: JSBridgedClass {}
+public extension NavigatorID {
+    @inlinable var appCodeName: String { jsObject[Strings.appCodeName].fromJSValue()! }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _keyFrame = ReadWriteAttribute(jsObject: object, name: Strings.keyFrame)
-        super.init(unsafelyWrapping: object)
+    @inlinable var appName: String { jsObject[Strings.appName].fromJSValue()! }
+
+    @inlinable var appVersion: String { jsObject[Strings.appVersion].fromJSValue()! }
+
+    @inlinable var platform: String { jsObject[Strings.platform].fromJSValue()! }
+
+    @inlinable var product: String { jsObject[Strings.product].fromJSValue()! }
+
+    @inlinable var productSub: String { jsObject[Strings.productSub].fromJSValue()! }
+
+    @inlinable var userAgent: String { jsObject[Strings.userAgent].fromJSValue()! }
+
+    @inlinable var vendor: String { jsObject[Strings.vendor].fromJSValue()! }
+
+    @inlinable var vendorSub: String { jsObject[Strings.vendorSub].fromJSValue()! }
+
+    @inlinable func taintEnabled() -> Bool {
+        let this = jsObject
+        return this[Strings.taintEnabled].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var keyFrame: Bool
+    @inlinable var oscpu: String { jsObject[Strings.oscpu].fromJSValue()! }
 }
 
-public class VideoEncoderInit: BridgedDictionary {
-    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)
-    }
+public protocol NavigatorLanguage: JSBridgedClass {}
+public extension NavigatorLanguage {
+    @inlinable var language: String { jsObject[Strings.language].fromJSValue()! }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _output = ClosureAttribute2Void(jsObject: object, name: Strings.output)
-        _error = ClosureAttribute1Void(jsObject: object, name: Strings.error)
-        super.init(unsafelyWrapping: object)
-    }
+    @inlinable var languages: [String] { jsObject[Strings.languages].fromJSValue()! }
+}
 
-    @ClosureAttribute2Void
-    public var output: EncodedVideoChunkOutputCallback
+public protocol NavigatorOnLine: JSBridgedClass {}
+public extension NavigatorOnLine {
+    @inlinable var onLine: Bool { jsObject[Strings.onLine].fromJSValue()! }
+}
 
-    @ClosureAttribute1Void
-    public var error: WebCodecsErrorCallback
+public protocol NavigatorPlugins: JSBridgedClass {}
+public extension NavigatorPlugins {
+    @inlinable var plugins: PluginArray { jsObject[Strings.plugins].fromJSValue()! }
+
+    @inlinable var mimeTypes: MimeTypeArray { jsObject[Strings.mimeTypes].fromJSValue()! }
+
+    @inlinable func javaEnabled() -> Bool {
+        let this = jsObject
+        return this[Strings.javaEnabled].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable var pdfViewerEnabled: Bool { jsObject[Strings.pdfViewerEnabled].fromJSValue()! }
 }
 
-public class VideoEncoderSupport: BridgedDictionary {
-    public convenience init(supported: Bool, config: VideoEncoderConfig) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.supported] = supported.jsValue
-        object[Strings.config] = config.jsValue
-        self.init(unsafelyWrapping: object)
+public class Node: EventTarget {
+    @inlinable override public 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)
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported)
-        _config = ReadWriteAttribute(jsObject: object, name: Strings.config)
-        super.init(unsafelyWrapping: object)
-    }
+    public static let ELEMENT_NODE: UInt16 = 1
 
-    @ReadWriteAttribute
-    public var supported: Bool
+    public static let ATTRIBUTE_NODE: UInt16 = 2
 
-    @ReadWriteAttribute
-    public var config: VideoEncoderConfig
-}
+    public static let TEXT_NODE: UInt16 = 3
 
-public enum VideoFacingModeEnum: JSString, JSValueCompatible {
-    case user = "user"
-    case environment = "environment"
-    case left = "left"
-    case right = "right"
+    public static let CDATA_SECTION_NODE: UInt16 = 4
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
-    }
+    public static let ENTITY_REFERENCE_NODE: UInt16 = 5
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
-    }
+    public static let ENTITY_NODE: UInt16 = 6
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
-}
+    public static let PROCESSING_INSTRUCTION_NODE: UInt16 = 7
 
-public class VideoFrame: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoFrame].function }
+    public static let COMMENT_NODE: UInt16 = 8
 
-    public let jsObject: JSObject
+    public static let DOCUMENT_NODE: UInt16 = 9
 
-    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
-    }
+    public static let DOCUMENT_TYPE_NODE: UInt16 = 10
 
-    @inlinable public convenience init(image: CanvasImageSource, init: VideoFrameInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [image.jsValue, `init`?.jsValue ?? .undefined]))
-    }
+    public static let DOCUMENT_FRAGMENT_NODE: UInt16 = 11
 
-    @inlinable public convenience init(data: BufferSource, init: VideoFrameBufferInit) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data.jsValue, `init`.jsValue]))
-    }
+    public static let NOTATION_NODE: UInt16 = 12
 
     @ReadonlyAttribute
-    public var format: VideoPixelFormat?
+    public var nodeType: UInt16
 
     @ReadonlyAttribute
-    public var codedWidth: UInt32
+    public var nodeName: String
 
     @ReadonlyAttribute
-    public var codedHeight: UInt32
+    public var baseURI: String
 
     @ReadonlyAttribute
-    public var codedRect: DOMRectReadOnly?
+    public var isConnected: Bool
 
     @ReadonlyAttribute
-    public var visibleRect: DOMRectReadOnly?
+    public var ownerDocument: Document?
+
+    @inlinable public func getRootNode(options: GetRootNodeOptions? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.getRootNode].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
     @ReadonlyAttribute
-    public var displayWidth: UInt32
+    public var parentNode: Node?
 
     @ReadonlyAttribute
-    public var displayHeight: UInt32
+    public var parentElement: Element?
+
+    @inlinable public func hasChildNodes() -> Bool {
+        let this = jsObject
+        return this[Strings.hasChildNodes].function!(this: this, arguments: []).fromJSValue()!
+    }
 
     @ReadonlyAttribute
-    public var duration: UInt64?
+    public var childNodes: NodeList
 
     @ReadonlyAttribute
-    public var timestamp: Int64?
+    public var firstChild: Node?
 
     @ReadonlyAttribute
-    public var colorSpace: VideoColorSpace
+    public var lastChild: Node?
 
-    @inlinable public func allocationSize(options: VideoFrameCopyToOptions? = nil) -> UInt32 {
+    @ReadonlyAttribute
+    public var previousSibling: Node?
+
+    @ReadonlyAttribute
+    public var nextSibling: Node?
+
+    @ReadWriteAttribute
+    public var nodeValue: String?
+
+    @ReadWriteAttribute
+    public var textContent: String?
+
+    @inlinable public func normalize() {
         let this = jsObject
-        return this[Strings.allocationSize].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+        _ = this[Strings.normalize].function!(this: this, arguments: [])
     }
 
-    @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) -> JSPromise {
+    @inlinable public func cloneNode(deep: Bool? = nil) -> Self {
         let this = jsObject
-        return this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return this[Strings.cloneNode].function!(this: this, arguments: [deep?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-    @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) async throws -> [PlaneLayout] {
+    @inlinable public func isEqualNode(otherNode: Node?) -> Bool {
         let this = jsObject
-        let _promise: JSPromise = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
+        return this[Strings.isEqualNode].function!(this: this, arguments: [otherNode.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func clone() -> Self {
+    @inlinable public func isSameNode(otherNode: Node?) -> Bool {
         let this = jsObject
-        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
+        return this[Strings.isSameNode].function!(this: this, arguments: [otherNode.jsValue]).fromJSValue()!
     }
 
-    @inlinable public func close() {
+    public static let DOCUMENT_POSITION_DISCONNECTED: UInt16 = 0x01
+
+    public static let DOCUMENT_POSITION_PRECEDING: UInt16 = 0x02
+
+    public static let DOCUMENT_POSITION_FOLLOWING: UInt16 = 0x04
+
+    public static let DOCUMENT_POSITION_CONTAINS: UInt16 = 0x08
+
+    public static let DOCUMENT_POSITION_CONTAINED_BY: UInt16 = 0x10
+
+    public static let DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: UInt16 = 0x20
+
+    @inlinable public func compareDocumentPosition(other: Node) -> UInt16 {
         let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [])
+        return this[Strings.compareDocumentPosition].function!(this: this, arguments: [other.jsValue]).fromJSValue()!
     }
-}
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.format] = format.jsValue
-        object[Strings.codedWidth] = codedWidth.jsValue
-        object[Strings.codedHeight] = codedHeight.jsValue
-        object[Strings.timestamp] = timestamp.jsValue
-        object[Strings.duration] = duration.jsValue
-        object[Strings.layout] = layout.jsValue
-        object[Strings.visibleRect] = visibleRect.jsValue
-        object[Strings.displayWidth] = displayWidth.jsValue
-        object[Strings.displayHeight] = displayHeight.jsValue
-        object[Strings.colorSpace] = colorSpace.jsValue
-        self.init(unsafelyWrapping: object)
+    @inlinable public func contains(other: Node?) -> Bool {
+        let this = jsObject
+        return this[Strings.contains].function!(this: this, arguments: [other.jsValue]).fromJSValue()!
     }
 
-    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)
-        super.init(unsafelyWrapping: object)
+    @inlinable public func lookupPrefix(namespace: String?) -> String? {
+        let this = jsObject
+        return this[Strings.lookupPrefix].function!(this: this, arguments: [namespace.jsValue]).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var format: VideoPixelFormat
+    @inlinable public func lookupNamespaceURI(prefix: String?) -> String? {
+        let this = jsObject
+        return this[Strings.lookupNamespaceURI].function!(this: this, arguments: [prefix.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var codedWidth: UInt32
+    @inlinable public func isDefaultNamespace(namespace: String?) -> Bool {
+        let this = jsObject
+        return this[Strings.isDefaultNamespace].function!(this: this, arguments: [namespace.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var codedHeight: UInt32
+    @inlinable public func insertBefore(node: Node, child: Node?) -> Self {
+        let this = jsObject
+        return this[Strings.insertBefore].function!(this: this, arguments: [node.jsValue, child.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var timestamp: Int64
+    @inlinable public func appendChild(node: Node) -> Self {
+        let this = jsObject
+        return this[Strings.appendChild].function!(this: this, arguments: [node.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var duration: UInt64
+    @inlinable public func replaceChild(node: Node, child: Node) -> Self {
+        let this = jsObject
+        return this[Strings.replaceChild].function!(this: this, arguments: [node.jsValue, child.jsValue]).fromJSValue()!
+    }
 
-    @ReadWriteAttribute
-    public var layout: [PlaneLayout]
+    @inlinable public func removeChild(child: Node) -> Self {
+        let this = jsObject
+        return this[Strings.removeChild].function!(this: this, arguments: [child.jsValue]).fromJSValue()!
+    }
+}
 
-    @ReadWriteAttribute
-    public var visibleRect: DOMRectInit
+public class NodeIterator: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NodeIterator].function }
 
-    @ReadWriteAttribute
-    public var displayWidth: UInt32
+    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
+    }
+
+    @ReadonlyAttribute
+    public var root: Node
+
+    @ReadonlyAttribute
+    public var referenceNode: Node
+
+    @ReadonlyAttribute
+    public var pointerBeforeReferenceNode: Bool
+
+    @ReadonlyAttribute
+    public var whatToShow: UInt32
+
+    // XXX: member 'filter' is ignored
+
+    @inlinable public func nextNode() -> Node? {
+        let this = jsObject
+        return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func previousNode() -> Node? {
+        let this = jsObject
+        return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func detach() {
+        let this = jsObject
+        _ = this[Strings.detach].function!(this: this, arguments: [])
+    }
+}
 
-    @ReadWriteAttribute
-    public var displayHeight: UInt32
+public class NodeList: JSBridgedClass, Sequence {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.NodeList].function }
 
-    @ReadWriteAttribute
-    public var colorSpace: VideoColorSpaceInit
-}
+    public let jsObject: JSObject
 
-public class VideoFrameCopyToOptions: BridgedDictionary {
-    public convenience init(rect: DOMRectInit, layout: [PlaneLayout]) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.rect] = rect.jsValue
-        object[Strings.layout] = layout.jsValue
-        self.init(unsafelyWrapping: object)
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
     }
 
-    public required init(unsafelyWrapping object: JSObject) {
-        _rect = ReadWriteAttribute(jsObject: object, name: Strings.rect)
-        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
-        super.init(unsafelyWrapping: object)
+    @inlinable public subscript(key: Int) -> Node? {
+        jsObject[key].fromJSValue()
     }
 
-    @ReadWriteAttribute
-    public var rect: DOMRectInit
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @ReadWriteAttribute
-    public var layout: [PlaneLayout]
+    public typealias Element = Node
+    public func makeIterator() -> ValueIterableIterator<NodeList> {
+        ValueIterableIterator(sequence: self)
+    }
 }
 
-public class VideoFrameInit: BridgedDictionary {
-    public convenience init(duration: UInt64, timestamp: Int64, alpha: AlphaOption, visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.duration] = duration.jsValue
-        object[Strings.timestamp] = timestamp.jsValue
-        object[Strings.alpha] = alpha.jsValue
-        object[Strings.visibleRect] = visibleRect.jsValue
-        object[Strings.displayWidth] = displayWidth.jsValue
-        object[Strings.displayHeight] = displayHeight.jsValue
-        self.init(unsafelyWrapping: object)
-    }
+public protocol NonDocumentTypeChildNode: JSBridgedClass {}
+public extension NonDocumentTypeChildNode {
+    @inlinable var previousElementSibling: Element? { jsObject[Strings.previousElementSibling].fromJSValue()! }
 
-    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)
-        super.init(unsafelyWrapping: object)
+    @inlinable var nextElementSibling: Element? { jsObject[Strings.nextElementSibling].fromJSValue()! }
+}
+
+public protocol NonElementParentNode: JSBridgedClass {}
+public extension NonElementParentNode {
+    @inlinable func getElementById(elementId: String) -> Element? {
+        let this = jsObject
+        return this[Strings.getElementById].function!(this: this, arguments: [elementId.jsValue]).fromJSValue()!
     }
+}
 
-    @ReadWriteAttribute
-    public var duration: UInt64
+public class OffscreenCanvas: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OffscreenCanvas].function }
 
-    @ReadWriteAttribute
-    public var timestamp: Int64
+    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)
+    }
 
-    @ReadWriteAttribute
-    public var alpha: AlphaOption
+    @inlinable public convenience init(width: UInt64, height: UInt64) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [width.jsValue, height.jsValue]))
+    }
 
     @ReadWriteAttribute
-    public var visibleRect: DOMRectInit
+    public var width: UInt64
 
     @ReadWriteAttribute
-    public var displayWidth: UInt32
+    public var height: UInt64
 
-    @ReadWriteAttribute
-    public var displayHeight: UInt32
-}
+    // XXX: member 'getContext' is ignored
 
-public enum VideoMatrixCoefficients: JSString, JSValueCompatible {
-    case rgb = "rgb"
-    case bt709 = "bt709"
-    case bt470bg = "bt470bg"
-    case smpte170m = "smpte170m"
+    @inlinable public func transferToImageBitmap() -> ImageBitmap {
+        let this = jsObject
+        return this[Strings.transferToImageBitmap].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    @inlinable public func convertToBlob(options: ImageEncodeOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.convertToBlob].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @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: [options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ClosureAttribute1Optional
+    public var oncontextlost: EventHandler
+
+    @ClosureAttribute1Optional
+    public var oncontextrestored: EventHandler
 }
 
-public enum VideoPixelFormat: JSString, JSValueCompatible {
-    case i420 = "I420"
-    case i420A = "I420A"
-    case i422 = "I422"
-    case i444 = "I444"
-    case nV12 = "NV12"
-    case rGBA = "RGBA"
-    case rGBX = "RGBX"
-    case bGRA = "BGRA"
-    case bGRX = "BGRX"
+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 }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _canvas = ReadonlyAttribute(jsObject: jsObject, name: Strings.canvas)
+        self.jsObject = jsObject
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public func commit() {
+        let this = jsObject
+        _ = this[Strings.commit].function!(this: this, arguments: [])
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadonlyAttribute
+    public var canvas: OffscreenCanvas
 }
 
-public enum VideoResizeModeEnum: JSString, JSValueCompatible {
-    case none = "none"
-    case cropAndScale = "crop-and-scale"
+public class OverconstrainedError: DOMException {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.OverconstrainedError].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _constraint = ReadonlyAttribute(jsObject: jsObject, name: Strings.constraint)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init(constraint: String, message: String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [constraint.jsValue, message?.jsValue ?? .undefined]))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @ReadonlyAttribute
+    public var constraint: String
 }
 
-public class VideoTrack: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoTrack].function }
-
-    public let jsObject: JSObject
+public class PageTransitionEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PageTransitionEvent].function }
 
     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)
-        self.jsObject = jsObject
+        _persisted = ReadonlyAttribute(jsObject: jsObject, name: Strings.persisted)
+        super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadonlyAttribute
-    public var id: String
+    @inlinable public convenience init(type: String, eventInitDict: PageTransitionEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
     @ReadonlyAttribute
-    public var kind: String
+    public var persisted: Bool
+}
 
-    @ReadonlyAttribute
-    public var label: String
+public class PageTransitionEventInit: BridgedDictionary {
+    public convenience init(persisted: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.persisted] = persisted.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @ReadonlyAttribute
-    public var language: String
+    public required init(unsafelyWrapping object: JSObject) {
+        _persisted = ReadWriteAttribute(jsObject: object, name: Strings.persisted)
+        super.init(unsafelyWrapping: object)
+    }
 
     @ReadWriteAttribute
-    public var selected: Bool
+    public var persisted: Bool
 }
 
-public class VideoTrackList: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.VideoTrackList].function }
+public protocol ParentNode: JSBridgedClass {}
+public extension ParentNode {
+    @inlinable var children: HTMLCollection { jsObject[Strings.children].fromJSValue()! }
 
-    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)
-    }
+    @inlinable var firstElementChild: Element? { jsObject[Strings.firstElementChild].fromJSValue()! }
 
-    @ReadonlyAttribute
-    public var length: UInt32
+    @inlinable var lastElementChild: Element? { jsObject[Strings.lastElementChild].fromJSValue()! }
 
-    @inlinable public subscript(key: Int) -> VideoTrack {
-        jsObject[key].fromJSValue()!
-    }
+    @inlinable var childElementCount: UInt32 { jsObject[Strings.childElementCount].fromJSValue()! }
 
-    @inlinable public func getTrackById(id: String) -> VideoTrack? {
+    @inlinable func prepend(nodes: Node_or_String...) {
         let this = jsObject
-        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+        _ = this[Strings.prepend].function!(this: this, arguments: nodes.map(\.jsValue))
     }
 
-    @ReadonlyAttribute
-    public var selectedIndex: Int32
+    @inlinable func append(nodes: Node_or_String...) {
+        let this = jsObject
+        _ = this[Strings.append].function!(this: this, arguments: nodes.map(\.jsValue))
+    }
 
-    @ClosureAttribute1Optional
-    public var onchange: EventHandler
+    @inlinable func replaceChildren(nodes: Node_or_String...) {
+        let this = jsObject
+        _ = this[Strings.replaceChildren].function!(this: this, arguments: nodes.map(\.jsValue))
+    }
 
-    @ClosureAttribute1Optional
-    public var onaddtrack: EventHandler
+    @inlinable func querySelector(selectors: String) -> Element? {
+        let this = jsObject
+        return this[Strings.querySelector].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
+    }
 
-    @ClosureAttribute1Optional
-    public var onremovetrack: EventHandler
+    @inlinable func querySelectorAll(selectors: String) -> NodeList {
+        let this = jsObject
+        return this[Strings.querySelectorAll].function!(this: this, arguments: [selectors.jsValue]).fromJSValue()!
+    }
 }
 
-public enum VideoTransferCharacteristics: JSString, JSValueCompatible {
-    case bt709 = "bt709"
-    case smpte170m = "smpte170m"
-    case iec6196621 = "iec61966-2-1"
+public class Path2D: JSBridgedClass, CanvasPath {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Path2D].function }
 
-    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
-        if let string = jsValue.jsString {
-            return Self(rawValue: string)
-        }
-        return nil
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
     }
 
-    @inlinable public init?(string: String) {
-        self.init(rawValue: JSString(string))
+    @inlinable public convenience init(path: Path2D_or_String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [path?.jsValue ?? .undefined]))
     }
 
-    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+    @inlinable public func addPath(path: Path2D, transform: DOMMatrix2DInit? = nil) {
+        let this = jsObject
+        _ = this[Strings.addPath].function!(this: this, arguments: [path.jsValue, transform?.jsValue ?? .undefined])
+    }
 }
 
-public class WaveShaperNode: AudioNode {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WaveShaperNode].function }
+public class Performance: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Performance].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _curve = ReadWriteAttribute(jsObject: jsObject, name: Strings.curve)
-        _oversample = ReadWriteAttribute(jsObject: jsObject, name: Strings.oversample)
+        _timeOrigin = ReadonlyAttribute(jsObject: jsObject, name: Strings.timeOrigin)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @inlinable public convenience init(context: BaseAudioContext, options: WaveShaperOptions? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    @inlinable public func now() -> DOMHighResTimeStamp {
+        let this = jsObject
+        return this[Strings.now].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var curve: Float32Array?
+    @ReadonlyAttribute
+    public var timeOrigin: DOMHighResTimeStamp
 
-    @ReadWriteAttribute
-    public var oversample: OverSampleType
+    @inlinable public func toJSON() -> JSObject {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
 }
 
-public class WaveShaperOptions: BridgedDictionary {
-    public convenience init(curve: [Float], oversample: OverSampleType) {
+public class PlaneLayout: BridgedDictionary {
+    public convenience init(offset: UInt32, stride: UInt32) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.curve] = curve.jsValue
-        object[Strings.oversample] = oversample.jsValue
+        object[Strings.offset] = offset.jsValue
+        object[Strings.stride] = stride.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _curve = ReadWriteAttribute(jsObject: object, name: Strings.curve)
-        _oversample = ReadWriteAttribute(jsObject: object, name: Strings.oversample)
+        _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset)
+        _stride = ReadWriteAttribute(jsObject: object, name: Strings.stride)
         super.init(unsafelyWrapping: object)
     }
 
     @ReadWriteAttribute
-    public var curve: [Float]
+    public var offset: UInt32
 
     @ReadWriteAttribute
-    public var oversample: OverSampleType
+    public var stride: UInt32
 }
 
-public class WebGL2RenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGL2RenderingContextBase, WebGL2RenderingContextOverloads {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGL2RenderingContext].function }
+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 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 }
-
-    @inlinable static var UNPACK_SKIP_PIXELS: GLenum { 0x0CF4 }
-
-    @inlinable static var PACK_ROW_LENGTH: GLenum { 0x0D02 }
-
-    @inlinable static var PACK_SKIP_ROWS: GLenum { 0x0D03 }
-
-    @inlinable static var PACK_SKIP_PIXELS: GLenum { 0x0D04 }
-
-    @inlinable static var COLOR: GLenum { 0x1800 }
 
-    @inlinable static var DEPTH: GLenum { 0x1801 }
-
-    @inlinable static var STENCIL: GLenum { 0x1802 }
-
-    @inlinable static var RED: GLenum { 0x1903 }
-
-    @inlinable static var RGB8: GLenum { 0x8051 }
-
-    @inlinable static var RGBA8: GLenum { 0x8058 }
-
-    @inlinable static var RGB10_A2: GLenum { 0x8059 }
-
-    @inlinable static var TEXTURE_BINDING_3D: GLenum { 0x806A }
-
-    @inlinable static var UNPACK_SKIP_IMAGES: GLenum { 0x806D }
-
-    @inlinable static var UNPACK_IMAGE_HEIGHT: GLenum { 0x806E }
-
-    @inlinable static var TEXTURE_3D: GLenum { 0x806F }
-
-    @inlinable static var TEXTURE_WRAP_R: GLenum { 0x8072 }
-
-    @inlinable static var MAX_3D_TEXTURE_SIZE: GLenum { 0x8073 }
-
-    @inlinable static var UNSIGNED_INT_2_10_10_10_REV: GLenum { 0x8368 }
-
-    @inlinable static var MAX_ELEMENTS_VERTICES: GLenum { 0x80E8 }
-
-    @inlinable static var MAX_ELEMENTS_INDICES: GLenum { 0x80E9 }
-
-    @inlinable static var TEXTURE_MIN_LOD: GLenum { 0x813A }
-
-    @inlinable static var TEXTURE_MAX_LOD: GLenum { 0x813B }
-
-    @inlinable static var TEXTURE_BASE_LEVEL: GLenum { 0x813C }
-
-    @inlinable static var TEXTURE_MAX_LEVEL: GLenum { 0x813D }
-
-    @inlinable static var MIN: GLenum { 0x8007 }
-
-    @inlinable static var MAX: GLenum { 0x8008 }
-
-    @inlinable static var DEPTH_COMPONENT24: GLenum { 0x81A6 }
-
-    @inlinable static var MAX_TEXTURE_LOD_BIAS: GLenum { 0x84FD }
-
-    @inlinable static var TEXTURE_COMPARE_MODE: GLenum { 0x884C }
-
-    @inlinable static var TEXTURE_COMPARE_FUNC: GLenum { 0x884D }
-
-    @inlinable static var CURRENT_QUERY: GLenum { 0x8865 }
-
-    @inlinable static var QUERY_RESULT: GLenum { 0x8866 }
-
-    @inlinable static var QUERY_RESULT_AVAILABLE: GLenum { 0x8867 }
-
-    @inlinable static var STREAM_READ: GLenum { 0x88E1 }
-
-    @inlinable static var STREAM_COPY: GLenum { 0x88E2 }
-
-    @inlinable static var STATIC_READ: GLenum { 0x88E5 }
-
-    @inlinable static var STATIC_COPY: GLenum { 0x88E6 }
-
-    @inlinable static var DYNAMIC_READ: GLenum { 0x88E9 }
-
-    @inlinable static var DYNAMIC_COPY: GLenum { 0x88EA }
-
-    @inlinable static var MAX_DRAW_BUFFERS: GLenum { 0x8824 }
-
-    @inlinable static var DRAW_BUFFER0: GLenum { 0x8825 }
-
-    @inlinable static var DRAW_BUFFER1: GLenum { 0x8826 }
-
-    @inlinable static var DRAW_BUFFER2: GLenum { 0x8827 }
-
-    @inlinable static var DRAW_BUFFER3: GLenum { 0x8828 }
-
-    @inlinable static var DRAW_BUFFER4: GLenum { 0x8829 }
-
-    @inlinable static var DRAW_BUFFER5: GLenum { 0x882A }
-
-    @inlinable static var DRAW_BUFFER6: GLenum { 0x882B }
-
-    @inlinable static var DRAW_BUFFER7: GLenum { 0x882C }
-
-    @inlinable static var DRAW_BUFFER8: GLenum { 0x882D }
-
-    @inlinable static var DRAW_BUFFER9: GLenum { 0x882E }
-
-    @inlinable static var DRAW_BUFFER10: GLenum { 0x882F }
-
-    @inlinable static var DRAW_BUFFER11: GLenum { 0x8830 }
-
-    @inlinable static var DRAW_BUFFER12: GLenum { 0x8831 }
-
-    @inlinable static var DRAW_BUFFER13: GLenum { 0x8832 }
-
-    @inlinable static var DRAW_BUFFER14: GLenum { 0x8833 }
-
-    @inlinable static var DRAW_BUFFER15: GLenum { 0x8834 }
-
-    @inlinable static var MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8B49 }
-
-    @inlinable static var MAX_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8B4A }
-
-    @inlinable static var SAMPLER_3D: GLenum { 0x8B5F }
-
-    @inlinable static var SAMPLER_2D_SHADOW: GLenum { 0x8B62 }
-
-    @inlinable static var FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum { 0x8B8B }
-
-    @inlinable static var PIXEL_PACK_BUFFER: GLenum { 0x88EB }
-
-    @inlinable static var PIXEL_UNPACK_BUFFER: GLenum { 0x88EC }
-
-    @inlinable static var PIXEL_PACK_BUFFER_BINDING: GLenum { 0x88ED }
-
-    @inlinable static var PIXEL_UNPACK_BUFFER_BINDING: GLenum { 0x88EF }
+    @ReadonlyAttribute
+    public var name: String
 
-    @inlinable static var FLOAT_MAT2x3: GLenum { 0x8B65 }
+    @ReadonlyAttribute
+    public var description: String
 
-    @inlinable static var FLOAT_MAT2x4: GLenum { 0x8B66 }
+    @ReadonlyAttribute
+    public var filename: String
 
-    @inlinable static var FLOAT_MAT3x2: GLenum { 0x8B67 }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var FLOAT_MAT3x4: GLenum { 0x8B68 }
+    @inlinable public subscript(key: Int) -> MimeType? {
+        jsObject[key].fromJSValue()
+    }
 
-    @inlinable static var FLOAT_MAT4x2: GLenum { 0x8B69 }
+    @inlinable public subscript(key: String) -> MimeType? {
+        jsObject[key].fromJSValue()
+    }
+}
 
-    @inlinable static var FLOAT_MAT4x3: GLenum { 0x8B6A }
+public class PluginArray: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.PluginArray].function }
 
-    @inlinable static var SRGB: GLenum { 0x8C40 }
+    public let jsObject: JSObject
 
-    @inlinable static var SRGB8: GLenum { 0x8C41 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var SRGB8_ALPHA8: GLenum { 0x8C43 }
+    @inlinable public func refresh() {
+        let this = jsObject
+        _ = this[Strings.refresh].function!(this: this, arguments: [])
+    }
 
-    @inlinable static var COMPARE_REF_TO_TEXTURE: GLenum { 0x884E }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var RGBA32F: GLenum { 0x8814 }
+    @inlinable public subscript(key: Int) -> Plugin? {
+        jsObject[key].fromJSValue()
+    }
 
-    @inlinable static var RGB32F: GLenum { 0x8815 }
+    @inlinable public subscript(key: String) -> Plugin? {
+        jsObject[key].fromJSValue()
+    }
+}
 
-    @inlinable static var RGBA16F: GLenum { 0x881A }
+public class PopStateEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PopStateEvent].function }
 
-    @inlinable static var RGB16F: GLenum { 0x881B }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_INTEGER: GLenum { 0x88FD }
+    @inlinable public convenience init(type: String, eventInitDict: PopStateEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var MAX_ARRAY_TEXTURE_LAYERS: GLenum { 0x88FF }
+    @ReadonlyAttribute
+    public var state: JSValue
+}
 
-    @inlinable static var MIN_PROGRAM_TEXEL_OFFSET: GLenum { 0x8904 }
+public class PopStateEventInit: BridgedDictionary {
+    public convenience init(state: JSValue) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.state] = state.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var MAX_PROGRAM_TEXEL_OFFSET: GLenum { 0x8905 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _state = ReadWriteAttribute(jsObject: object, name: Strings.state)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var MAX_VARYING_COMPONENTS: GLenum { 0x8B4B }
+    @ReadWriteAttribute
+    public var state: JSValue
+}
 
-    @inlinable static var TEXTURE_2D_ARRAY: GLenum { 0x8C1A }
+public enum PredefinedColorSpace: JSString, JSValueCompatible {
+    case srgb = "srgb"
+    case displayP3 = "display-p3"
 
-    @inlinable static var TEXTURE_BINDING_2D_ARRAY: GLenum { 0x8C1D }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var R11F_G11F_B10F: GLenum { 0x8C3A }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var UNSIGNED_INT_10F_11F_11F_REV: GLenum { 0x8C3B }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var RGB9_E5: GLenum { 0x8C3D }
+public enum PremultiplyAlpha: JSString, JSValueCompatible {
+    case none = "none"
+    case premultiply = "premultiply"
+    case `default` = "default"
 
-    @inlinable static var UNSIGNED_INT_5_9_9_9_REV: GLenum { 0x8C3E }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum { 0x8C7F }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum { 0x8C80 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var TRANSFORM_FEEDBACK_VARYINGS: GLenum { 0x8C83 }
+public class ProcessingInstruction: CharacterData {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProcessingInstruction].function }
 
-    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_START: GLenum { 0x8C84 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _target = ReadonlyAttribute(jsObject: jsObject, name: Strings.target)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum { 0x8C85 }
+    @ReadonlyAttribute
+    public var target: String
+}
 
-    @inlinable static var TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum { 0x8C88 }
+public class ProgressEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ProgressEvent].function }
 
-    @inlinable static var RASTERIZER_DISCARD: GLenum { 0x8C89 }
+    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)
+    }
 
-    @inlinable static var MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum { 0x8C8A }
+    @inlinable public convenience init(type: String, eventInitDict: ProgressEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum { 0x8C8B }
+    @ReadonlyAttribute
+    public var lengthComputable: Bool
 
-    @inlinable static var INTERLEAVED_ATTRIBS: GLenum { 0x8C8C }
+    @ReadonlyAttribute
+    public var loaded: UInt64
 
-    @inlinable static var SEPARATE_ATTRIBS: GLenum { 0x8C8D }
+    @ReadonlyAttribute
+    public var total: UInt64
+}
 
-    @inlinable static var TRANSFORM_FEEDBACK_BUFFER: GLenum { 0x8C8E }
+public class ProgressEventInit: BridgedDictionary {
+    public convenience init(lengthComputable: Bool, loaded: UInt64, total: UInt64) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.lengthComputable] = lengthComputable.jsValue
+        object[Strings.loaded] = loaded.jsValue
+        object[Strings.total] = total.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum { 0x8C8F }
+    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)
+    }
 
-    @inlinable static var RGBA32UI: GLenum { 0x8D70 }
+    @ReadWriteAttribute
+    public var lengthComputable: Bool
 
-    @inlinable static var RGB32UI: GLenum { 0x8D71 }
+    @ReadWriteAttribute
+    public var loaded: UInt64
 
-    @inlinable static var RGBA16UI: GLenum { 0x8D76 }
+    @ReadWriteAttribute
+    public var total: UInt64
+}
 
-    @inlinable static var RGB16UI: GLenum { 0x8D77 }
+public class PromiseRejectionEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.PromiseRejectionEvent].function }
 
-    @inlinable static var RGBA8UI: GLenum { 0x8D7C }
+    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 static var RGB8UI: GLenum { 0x8D7D }
+    @inlinable public convenience init(type: String, eventInitDict: PromiseRejectionEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    }
 
-    @inlinable static var RGBA32I: GLenum { 0x8D82 }
+    @ReadonlyAttribute
+    public var promise: JSPromise
 
-    @inlinable static var RGB32I: GLenum { 0x8D83 }
+    @ReadonlyAttribute
+    public var reason: JSValue
+}
 
-    @inlinable static var RGBA16I: GLenum { 0x8D88 }
+public class PromiseRejectionEventInit: BridgedDictionary {
+    public convenience init(promise: JSPromise, reason: JSValue) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.promise] = promise.jsValue
+        object[Strings.reason] = reason.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RGB16I: GLenum { 0x8D89 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _promise = ReadWriteAttribute(jsObject: object, name: Strings.promise)
+        _reason = ReadWriteAttribute(jsObject: object, name: Strings.reason)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RGBA8I: GLenum { 0x8D8E }
+    @ReadWriteAttribute
+    public var promise: JSPromise
 
-    @inlinable static var RGB8I: GLenum { 0x8D8F }
+    @ReadWriteAttribute
+    public var reason: JSValue
+}
 
-    @inlinable static var RED_INTEGER: GLenum { 0x8D94 }
+public class QueuingStrategy: BridgedDictionary {
+    public convenience init(highWaterMark: Double, size: @escaping QueuingStrategySize) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.highWaterMark] = highWaterMark.jsValue
+        ClosureAttribute1[Strings.size, in: object] = size
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RGB_INTEGER: GLenum { 0x8D98 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark)
+        _size = ClosureAttribute1(jsObject: object, name: Strings.size)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RGBA_INTEGER: GLenum { 0x8D99 }
+    @ReadWriteAttribute
+    public var highWaterMark: Double
 
-    @inlinable static var SAMPLER_2D_ARRAY: GLenum { 0x8DC1 }
+    @ClosureAttribute1
+    public var size: QueuingStrategySize
+}
 
-    @inlinable static var SAMPLER_2D_ARRAY_SHADOW: GLenum { 0x8DC4 }
+public class QueuingStrategyInit: BridgedDictionary {
+    public convenience init(highWaterMark: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.highWaterMark] = highWaterMark.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var SAMPLER_CUBE_SHADOW: GLenum { 0x8DC5 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _highWaterMark = ReadWriteAttribute(jsObject: object, name: Strings.highWaterMark)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNSIGNED_INT_VEC2: GLenum { 0x8DC6 }
+    @ReadWriteAttribute
+    public var highWaterMark: Double
+}
 
-    @inlinable static var UNSIGNED_INT_VEC3: GLenum { 0x8DC7 }
+public class RadioNodeList: NodeList {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.RadioNodeList].function }
 
-    @inlinable static var UNSIGNED_INT_VEC4: GLenum { 0x8DC8 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _value = ReadWriteAttribute(jsObject: jsObject, name: Strings.value)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var INT_SAMPLER_2D: GLenum { 0x8DCA }
+    @ReadWriteAttribute
+    public var value: String
+}
 
-    @inlinable static var INT_SAMPLER_3D: GLenum { 0x8DCB }
+public class Range: AbstractRange {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Range].function }
 
-    @inlinable static var INT_SAMPLER_CUBE: GLenum { 0x8DCC }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _commonAncestorContainer = ReadonlyAttribute(jsObject: jsObject, name: Strings.commonAncestorContainer)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var INT_SAMPLER_2D_ARRAY: GLenum { 0x8DCF }
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
 
-    @inlinable static var UNSIGNED_INT_SAMPLER_2D: GLenum { 0x8DD2 }
+    @ReadonlyAttribute
+    public var commonAncestorContainer: Node
 
-    @inlinable static var UNSIGNED_INT_SAMPLER_3D: GLenum { 0x8DD3 }
+    @inlinable public func setStart(node: Node, offset: UInt32) {
+        let this = jsObject
+        _ = this[Strings.setStart].function!(this: this, arguments: [node.jsValue, offset.jsValue])
+    }
 
-    @inlinable static var UNSIGNED_INT_SAMPLER_CUBE: GLenum { 0x8DD4 }
+    @inlinable public func setEnd(node: Node, offset: UInt32) {
+        let this = jsObject
+        _ = this[Strings.setEnd].function!(this: this, arguments: [node.jsValue, offset.jsValue])
+    }
 
-    @inlinable static var UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum { 0x8DD7 }
+    @inlinable public func setStartBefore(node: Node) {
+        let this = jsObject
+        _ = this[Strings.setStartBefore].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var DEPTH_COMPONENT32F: GLenum { 0x8CAC }
+    @inlinable public func setStartAfter(node: Node) {
+        let this = jsObject
+        _ = this[Strings.setStartAfter].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var DEPTH32F_STENCIL8: GLenum { 0x8CAD }
+    @inlinable public func setEndBefore(node: Node) {
+        let this = jsObject
+        _ = this[Strings.setEndBefore].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum { 0x8DAD }
+    @inlinable public func setEndAfter(node: Node) {
+        let this = jsObject
+        _ = this[Strings.setEndAfter].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum { 0x8210 }
+    @inlinable public func collapse(toStart: Bool? = nil) {
+        let this = jsObject
+        _ = this[Strings.collapse].function!(this: this, arguments: [toStart?.jsValue ?? .undefined])
+    }
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum { 0x8211 }
+    @inlinable public func selectNode(node: Node) {
+        let this = jsObject
+        _ = this[Strings.selectNode].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum { 0x8212 }
+    @inlinable public func selectNodeContents(node: Node) {
+        let this = jsObject
+        _ = this[Strings.selectNodeContents].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum { 0x8213 }
+    public static let START_TO_START: UInt16 = 0
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum { 0x8214 }
+    public static let START_TO_END: UInt16 = 1
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum { 0x8215 }
+    public static let END_TO_END: UInt16 = 2
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum { 0x8216 }
+    public static let END_TO_START: UInt16 = 3
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum { 0x8217 }
+    @inlinable public func compareBoundaryPoints(how: UInt16, sourceRange: Range) -> Int16 {
+        let this = jsObject
+        return this[Strings.compareBoundaryPoints].function!(this: this, arguments: [how.jsValue, sourceRange.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var FRAMEBUFFER_DEFAULT: GLenum { 0x8218 }
+    @inlinable public func deleteContents() {
+        let this = jsObject
+        _ = this[Strings.deleteContents].function!(this: this, arguments: [])
+    }
 
-    @inlinable static var UNSIGNED_INT_24_8: GLenum { 0x84FA }
+    @inlinable public func extractContents() -> DocumentFragment {
+        let this = jsObject
+        return this[Strings.extractContents].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var DEPTH24_STENCIL8: GLenum { 0x88F0 }
+    @inlinable public func cloneContents() -> DocumentFragment {
+        let this = jsObject
+        return this[Strings.cloneContents].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var UNSIGNED_NORMALIZED: GLenum { 0x8C17 }
+    @inlinable public func insertNode(node: Node) {
+        let this = jsObject
+        _ = this[Strings.insertNode].function!(this: this, arguments: [node.jsValue])
+    }
 
-    @inlinable static var DRAW_FRAMEBUFFER_BINDING: GLenum { 0x8CA6 }
+    @inlinable public func surroundContents(newParent: Node) {
+        let this = jsObject
+        _ = this[Strings.surroundContents].function!(this: this, arguments: [newParent.jsValue])
+    }
 
-    @inlinable static var READ_FRAMEBUFFER: GLenum { 0x8CA8 }
+    @inlinable public func cloneRange() -> Self {
+        let this = jsObject
+        return this[Strings.cloneRange].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var DRAW_FRAMEBUFFER: GLenum { 0x8CA9 }
+    @inlinable public func detach() {
+        let this = jsObject
+        _ = this[Strings.detach].function!(this: this, arguments: [])
+    }
 
-    @inlinable static var READ_FRAMEBUFFER_BINDING: GLenum { 0x8CAA }
+    @inlinable public func isPointInRange(node: Node, offset: UInt32) -> Bool {
+        let this = jsObject
+        return this[Strings.isPointInRange].function!(this: this, arguments: [node.jsValue, offset.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var RENDERBUFFER_SAMPLES: GLenum { 0x8CAB }
+    @inlinable public func comparePoint(node: Node, offset: UInt32) -> Int16 {
+        let this = jsObject
+        return this[Strings.comparePoint].function!(this: this, arguments: [node.jsValue, offset.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum { 0x8CD4 }
+    @inlinable public func intersectsNode(node: Node) -> Bool {
+        let this = jsObject
+        return this[Strings.intersectsNode].function!(this: this, arguments: [node.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var MAX_COLOR_ATTACHMENTS: GLenum { 0x8CDF }
+    @inlinable public var description: String {
+        jsObject[Strings.toString]!().fromJSValue()!
+    }
 
-    @inlinable static var COLOR_ATTACHMENT1: GLenum { 0x8CE1 }
+    @inlinable public func getClientRects() -> DOMRectList {
+        let this = jsObject
+        return this[Strings.getClientRects].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var COLOR_ATTACHMENT2: GLenum { 0x8CE2 }
+    @inlinable public func getBoundingClientRect() -> DOMRect {
+        let this = jsObject
+        return this[Strings.getBoundingClientRect].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
 
-    @inlinable static var COLOR_ATTACHMENT3: GLenum { 0x8CE3 }
+public class ReadableByteStreamController: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableByteStreamController].function }
 
-    @inlinable static var COLOR_ATTACHMENT4: GLenum { 0x8CE4 }
+    public let jsObject: JSObject
 
-    @inlinable static var COLOR_ATTACHMENT5: GLenum { 0x8CE5 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _byobRequest = ReadonlyAttribute(jsObject: jsObject, name: Strings.byobRequest)
+        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var COLOR_ATTACHMENT6: GLenum { 0x8CE6 }
+    @ReadonlyAttribute
+    public var byobRequest: ReadableStreamBYOBRequest?
 
-    @inlinable static var COLOR_ATTACHMENT7: GLenum { 0x8CE7 }
+    @ReadonlyAttribute
+    public var desiredSize: Double?
 
-    @inlinable static var COLOR_ATTACHMENT8: GLenum { 0x8CE8 }
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
+    }
 
-    @inlinable static var COLOR_ATTACHMENT9: GLenum { 0x8CE9 }
+    @inlinable public func enqueue(chunk: ArrayBufferView) {
+        let this = jsObject
+        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk.jsValue])
+    }
 
-    @inlinable static var COLOR_ATTACHMENT10: GLenum { 0x8CEA }
+    @inlinable public func error(e: JSValue? = nil) {
+        let this = jsObject
+        _ = this[Strings.error].function!(this: this, arguments: [e?.jsValue ?? .undefined])
+    }
+}
 
-    @inlinable static var COLOR_ATTACHMENT11: GLenum { 0x8CEB }
+public class ReadableStream: JSBridgedClass, AsyncSequence {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStream].function }
 
-    @inlinable static var COLOR_ATTACHMENT12: GLenum { 0x8CEC }
+    public let jsObject: JSObject
 
-    @inlinable static var COLOR_ATTACHMENT13: GLenum { 0x8CED }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _locked = ReadonlyAttribute(jsObject: jsObject, name: Strings.locked)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var COLOR_ATTACHMENT14: GLenum { 0x8CEE }
+    @inlinable public convenience init(underlyingSource: JSObject? = nil, strategy: QueuingStrategy? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [underlyingSource?.jsValue ?? .undefined, strategy?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var COLOR_ATTACHMENT15: GLenum { 0x8CEF }
+    @ReadonlyAttribute
+    public var locked: Bool
 
-    @inlinable static var FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum { 0x8D56 }
+    @inlinable public func cancel(reason: JSValue? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.cancel].function!(this: this, arguments: [reason?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable static var MAX_SAMPLES: GLenum { 0x8D57 }
+    @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: [reason?.jsValue ?? .undefined]).fromJSValue()!
+        _ = try await _promise.value
+    }
 
-    @inlinable static var HALF_FLOAT: GLenum { 0x140B }
+    @inlinable public func getReader(options: ReadableStreamGetReaderOptions? = nil) -> ReadableStreamReader {
+        let this = jsObject
+        return this[Strings.getReader].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable static var RG: GLenum { 0x8227 }
+    @inlinable public func pipeThrough(transform: ReadableWritablePair, options: StreamPipeOptions? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.pipeThrough].function!(this: this, arguments: [transform.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable static var RG_INTEGER: GLenum { 0x8228 }
+    @inlinable public func pipeTo(destination: WritableStream, options: StreamPipeOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.pipeTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable static var R8: GLenum { 0x8229 }
+    @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: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        _ = try await _promise.value
+    }
 
-    @inlinable static var RG8: GLenum { 0x822B }
+    @inlinable public func tee() -> [ReadableStream] {
+        let this = jsObject
+        return this[Strings.tee].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var R16F: GLenum { 0x822D }
+    public typealias Element = JSValue
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    public func makeAsyncIterator() -> ValueIterableAsyncIterator<ReadableStream> {
+        ValueIterableAsyncIterator(sequence: self)
+    }
+}
 
-    @inlinable static var R32F: GLenum { 0x822E }
+public class ReadableStreamBYOBReadResult: BridgedDictionary {
+    public convenience init(value: ArrayBufferView?, done: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.value] = value.jsValue
+        object[Strings.done] = done.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RG16F: GLenum { 0x822F }
+    public required init(unsafelyWrapping object: JSObject) {
+        _value = ReadWriteAttribute(jsObject: object, name: Strings.value)
+        _done = ReadWriteAttribute(jsObject: object, name: Strings.done)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RG32F: GLenum { 0x8230 }
+    @ReadWriteAttribute
+    public var value: ArrayBufferView?
 
-    @inlinable static var R8I: GLenum { 0x8231 }
+    @ReadWriteAttribute
+    public var done: Bool
+}
 
-    @inlinable static var R8UI: GLenum { 0x8232 }
+public class ReadableStreamBYOBReader: JSBridgedClass, ReadableStreamGenericReader {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamBYOBReader].function }
 
-    @inlinable static var R16I: GLenum { 0x8233 }
+    public let jsObject: JSObject
 
-    @inlinable static var R16UI: GLenum { 0x8234 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var R32I: GLenum { 0x8235 }
+    @inlinable public convenience init(stream: ReadableStream) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
+    }
 
-    @inlinable static var R32UI: GLenum { 0x8236 }
+    @inlinable public func read(view: ArrayBufferView) -> JSPromise {
+        let this = jsObject
+        return this[Strings.read].function!(this: this, arguments: [view.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var RG8I: GLenum { 0x8237 }
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func read(view: ArrayBufferView) async throws -> ReadableStreamBYOBReadResult {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: [view.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 
-    @inlinable static var RG8UI: GLenum { 0x8238 }
+    @inlinable public func releaseLock() {
+        let this = jsObject
+        _ = this[Strings.releaseLock].function!(this: this, arguments: [])
+    }
+}
 
-    @inlinable static var RG16I: GLenum { 0x8239 }
+public class ReadableStreamBYOBRequest: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamBYOBRequest].function }
 
-    @inlinable static var RG16UI: GLenum { 0x823A }
+    public let jsObject: JSObject
 
-    @inlinable static var RG32I: GLenum { 0x823B }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _view = ReadonlyAttribute(jsObject: jsObject, name: Strings.view)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var RG32UI: GLenum { 0x823C }
+    @ReadonlyAttribute
+    public var view: ArrayBufferView?
 
-    @inlinable static var VERTEX_ARRAY_BINDING: GLenum { 0x85B5 }
+    @inlinable public func respond(bytesWritten: UInt64) {
+        let this = jsObject
+        _ = this[Strings.respond].function!(this: this, arguments: [bytesWritten.jsValue])
+    }
 
-    @inlinable static var R8_SNORM: GLenum { 0x8F94 }
+    @inlinable public func respondWithNewView(view: ArrayBufferView) {
+        let this = jsObject
+        _ = this[Strings.respondWithNewView].function!(this: this, arguments: [view.jsValue])
+    }
+}
 
-    @inlinable static var RG8_SNORM: GLenum { 0x8F95 }
+public class ReadableStreamDefaultController: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultController].function }
 
-    @inlinable static var RGB8_SNORM: GLenum { 0x8F96 }
+    public let jsObject: JSObject
 
-    @inlinable static var RGBA8_SNORM: GLenum { 0x8F97 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var SIGNED_NORMALIZED: GLenum { 0x8F9C }
+    @ReadonlyAttribute
+    public var desiredSize: Double?
 
-    @inlinable static var COPY_READ_BUFFER: GLenum { 0x8F36 }
+    @inlinable public func close() {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [])
+    }
 
-    @inlinable static var COPY_WRITE_BUFFER: GLenum { 0x8F37 }
+    @inlinable public func enqueue(chunk: JSValue? = nil) {
+        let this = jsObject
+        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk?.jsValue ?? .undefined])
+    }
 
-    @inlinable static var COPY_READ_BUFFER_BINDING: GLenum { 0x8F36 }
+    @inlinable public func error(e: JSValue? = nil) {
+        let this = jsObject
+        _ = this[Strings.error].function!(this: this, arguments: [e?.jsValue ?? .undefined])
+    }
+}
 
-    @inlinable static var COPY_WRITE_BUFFER_BINDING: GLenum { 0x8F37 }
+public class ReadableStreamDefaultReadResult: BridgedDictionary {
+    public convenience init(value: JSValue, done: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.value] = value.jsValue
+        object[Strings.done] = done.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_BUFFER: GLenum { 0x8A11 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _value = ReadWriteAttribute(jsObject: object, name: Strings.value)
+        _done = ReadWriteAttribute(jsObject: object, name: Strings.done)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_BUFFER_BINDING: GLenum { 0x8A28 }
+    @ReadWriteAttribute
+    public var value: JSValue
 
-    @inlinable static var UNIFORM_BUFFER_START: GLenum { 0x8A29 }
+    @ReadWriteAttribute
+    public var done: Bool
+}
 
-    @inlinable static var UNIFORM_BUFFER_SIZE: GLenum { 0x8A2A }
+public class ReadableStreamDefaultReader: JSBridgedClass, ReadableStreamGenericReader {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ReadableStreamDefaultReader].function }
 
-    @inlinable static var MAX_VERTEX_UNIFORM_BLOCKS: GLenum { 0x8A2B }
+    public let jsObject: JSObject
 
-    @inlinable static var MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum { 0x8A2D }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var MAX_COMBINED_UNIFORM_BLOCKS: GLenum { 0x8A2E }
+    @inlinable public convenience init(stream: ReadableStream) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [stream.jsValue]))
+    }
 
-    @inlinable static var MAX_UNIFORM_BUFFER_BINDINGS: GLenum { 0x8A2F }
+    @inlinable public func read() -> JSPromise {
+        let this = jsObject
+        return this[Strings.read].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var MAX_UNIFORM_BLOCK_SIZE: GLenum { 0x8A30 }
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func read() async throws -> ReadableStreamDefaultReadResult {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.read].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 
-    @inlinable static var MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8A31 }
+    @inlinable public func releaseLock() {
+        let this = jsObject
+        _ = this[Strings.releaseLock].function!(this: this, arguments: [])
+    }
+}
 
-    @inlinable static var MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8A33 }
+public protocol ReadableStreamGenericReader: JSBridgedClass {}
+public extension ReadableStreamGenericReader {
+    @inlinable var closed: JSPromise { jsObject[Strings.closed].fromJSValue()! }
 
-    @inlinable static var UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum { 0x8A34 }
+    @inlinable func cancel(reason: JSValue? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.cancel].function!(this: this, arguments: [reason?.jsValue ?? .undefined]).fromJSValue()!
+    }
 
-    @inlinable static var ACTIVE_UNIFORM_BLOCKS: GLenum { 0x8A36 }
+    @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: [reason?.jsValue ?? .undefined]).fromJSValue()!
+        _ = try await _promise.value
+    }
+}
 
-    @inlinable static var UNIFORM_TYPE: GLenum { 0x8A37 }
+public class ReadableStreamGetReaderOptions: BridgedDictionary {
+    public convenience init(mode: ReadableStreamReaderMode) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.mode] = mode.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_SIZE: GLenum { 0x8A38 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _mode = ReadWriteAttribute(jsObject: object, name: Strings.mode)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_BLOCK_INDEX: GLenum { 0x8A3A }
+    @ReadWriteAttribute
+    public var mode: ReadableStreamReaderMode
+}
 
-    @inlinable static var UNIFORM_OFFSET: GLenum { 0x8A3B }
+public class ReadableStreamIteratorOptions: BridgedDictionary {
+    public convenience init(preventCancel: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.preventCancel] = preventCancel.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_ARRAY_STRIDE: GLenum { 0x8A3C }
+    public required init(unsafelyWrapping object: JSObject) {
+        _preventCancel = ReadWriteAttribute(jsObject: object, name: Strings.preventCancel)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var UNIFORM_MATRIX_STRIDE: GLenum { 0x8A3D }
+    @ReadWriteAttribute
+    public var preventCancel: Bool
+}
 
-    @inlinable static var UNIFORM_IS_ROW_MAJOR: GLenum { 0x8A3E }
+public enum ReadableStreamReaderMode: JSString, JSValueCompatible {
+    case byob = "byob"
 
-    @inlinable static var UNIFORM_BLOCK_BINDING: GLenum { 0x8A3F }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var UNIFORM_BLOCK_DATA_SIZE: GLenum { 0x8A40 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum { 0x8A42 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum { 0x8A43 }
+public enum ReadableStreamType: JSString, JSValueCompatible {
+    case bytes = "bytes"
 
-    @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum { 0x8A44 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum { 0x8A46 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var INVALID_INDEX: GLenum { 0xFFFF_FFFF }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var MAX_VERTEX_OUTPUT_COMPONENTS: GLenum { 0x9122 }
+public class ReadableWritablePair: BridgedDictionary {
+    public convenience init(readable: ReadableStream, writable: WritableStream) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.readable] = readable.jsValue
+        object[Strings.writable] = writable.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var MAX_FRAGMENT_INPUT_COMPONENTS: GLenum { 0x9125 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _readable = ReadWriteAttribute(jsObject: object, name: Strings.readable)
+        _writable = ReadWriteAttribute(jsObject: object, name: Strings.writable)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var MAX_SERVER_WAIT_TIMEOUT: GLenum { 0x9111 }
+    @ReadWriteAttribute
+    public var readable: ReadableStream
 
-    @inlinable static var OBJECT_TYPE: GLenum { 0x9112 }
+    @ReadWriteAttribute
+    public var writable: WritableStream
+}
 
-    @inlinable static var SYNC_CONDITION: GLenum { 0x9113 }
+public enum RecordingState: JSString, JSValueCompatible {
+    case inactive = "inactive"
+    case recording = "recording"
+    case paused = "paused"
 
-    @inlinable static var SYNC_STATUS: GLenum { 0x9114 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var SYNC_FLAGS: GLenum { 0x9115 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var SYNC_FENCE: GLenum { 0x9116 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var SYNC_GPU_COMMANDS_COMPLETE: GLenum { 0x9117 }
+public enum ReferrerPolicy: JSString, JSValueCompatible {
+    case _empty = ""
+    case noReferrer = "no-referrer"
+    case noReferrerWhenDowngrade = "no-referrer-when-downgrade"
+    case sameOrigin = "same-origin"
+    case origin = "origin"
+    case strictOrigin = "strict-origin"
+    case originWhenCrossOrigin = "origin-when-cross-origin"
+    case strictOriginWhenCrossOrigin = "strict-origin-when-cross-origin"
+    case unsafeUrl = "unsafe-url"
 
-    @inlinable static var UNSIGNALED: GLenum { 0x9118 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var SIGNALED: GLenum { 0x9119 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var ALREADY_SIGNALED: GLenum { 0x911A }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var TIMEOUT_EXPIRED: GLenum { 0x911B }
+public class RegistrationOptions: BridgedDictionary {
+    public convenience init(scope: String, type: WorkerType, updateViaCache: ServiceWorkerUpdateViaCache) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.scope] = scope.jsValue
+        object[Strings.type] = type.jsValue
+        object[Strings.updateViaCache] = updateViaCache.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var CONDITION_SATISFIED: GLenum { 0x911C }
+    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)
+    }
 
-    @inlinable static var WAIT_FAILED: GLenum { 0x911D }
+    @ReadWriteAttribute
+    public var scope: String
 
-    @inlinable static var SYNC_FLUSH_COMMANDS_BIT: GLenum { 0x0000_0001 }
+    @ReadWriteAttribute
+    public var type: WorkerType
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum { 0x88FE }
+    @ReadWriteAttribute
+    public var updateViaCache: ServiceWorkerUpdateViaCache
+}
 
-    @inlinable static var ANY_SAMPLES_PASSED: GLenum { 0x8C2F }
+public class Request: JSBridgedClass, Body {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Request].function }
 
-    @inlinable static var ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum { 0x8D6A }
+    public let jsObject: JSObject
 
-    @inlinable static var SAMPLER_BINDING: GLenum { 0x8919 }
+    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)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var RGB10_A2UI: GLenum { 0x906F }
+    @inlinable public convenience init(input: RequestInfo, init: RequestInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [input.jsValue, `init`?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var INT_2_10_10_10_REV: GLenum { 0x8D9F }
+    @ReadonlyAttribute
+    public var method: String
 
-    @inlinable static var TRANSFORM_FEEDBACK: GLenum { 0x8E22 }
+    @ReadonlyAttribute
+    public var url: String
 
-    @inlinable static var TRANSFORM_FEEDBACK_PAUSED: GLenum { 0x8E23 }
+    @ReadonlyAttribute
+    public var headers: Headers
 
-    @inlinable static var TRANSFORM_FEEDBACK_ACTIVE: GLenum { 0x8E24 }
+    @ReadonlyAttribute
+    public var destination: RequestDestination
 
-    @inlinable static var TRANSFORM_FEEDBACK_BINDING: GLenum { 0x8E25 }
+    @ReadonlyAttribute
+    public var referrer: String
 
-    @inlinable static var TEXTURE_IMMUTABLE_FORMAT: GLenum { 0x912F }
+    @ReadonlyAttribute
+    public var referrerPolicy: ReferrerPolicy
 
-    @inlinable static var MAX_ELEMENT_INDEX: GLenum { 0x8D6B }
+    @ReadonlyAttribute
+    public var mode: RequestMode
 
-    @inlinable static var TEXTURE_IMMUTABLE_LEVELS: GLenum { 0x82DF }
+    @ReadonlyAttribute
+    public var credentials: RequestCredentials
 
-    @inlinable static var TIMEOUT_IGNORED: GLint64 { -1 }
+    @ReadonlyAttribute
+    public var cache: RequestCache
 
-    @inlinable static var MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum { 0x9247 }
+    @ReadonlyAttribute
+    public var redirect: RequestRedirect
 
-    @inlinable func copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) {
-        let this = jsObject
-        _ = this[Strings.copyBufferSubData].function!(this: this, arguments: [readTarget.jsValue, writeTarget.jsValue, readOffset.jsValue, writeOffset.jsValue, size.jsValue])
-    }
+    @ReadonlyAttribute
+    public var integrity: String
 
-    @inlinable func getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset: GLuint? = nil, length: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.getBufferSubData].function!(this: this, arguments: [target.jsValue, srcByteOffset.jsValue, dstBuffer.jsValue, dstOffset?.jsValue ?? .undefined, length?.jsValue ?? .undefined])
-    }
+    @ReadonlyAttribute
+    public var keepalive: Bool
 
-    @inlinable func blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {
-        let _arg0 = srcX0.jsValue
-        let _arg1 = srcY0.jsValue
-        let _arg2 = srcX1.jsValue
-        let _arg3 = srcY1.jsValue
-        let _arg4 = dstX0.jsValue
-        let _arg5 = dstY0.jsValue
-        let _arg6 = dstX1.jsValue
-        let _arg7 = dstY1.jsValue
-        let _arg8 = mask.jsValue
-        let _arg9 = filter.jsValue
-        let this = jsObject
-        _ = this[Strings.blitFramebuffer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
-    }
+    @ReadonlyAttribute
+    public var isReloadNavigation: Bool
 
-    @inlinable func framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture?, level: GLint, layer: GLint) {
-        let this = jsObject
-        _ = this[Strings.framebufferTextureLayer].function!(this: this, arguments: [target.jsValue, attachment.jsValue, texture.jsValue, level.jsValue, layer.jsValue])
-    }
+    @ReadonlyAttribute
+    public var isHistoryNavigation: Bool
 
-    @inlinable func invalidateFramebuffer(target: GLenum, attachments: [GLenum]) {
-        let this = jsObject
-        _ = this[Strings.invalidateFramebuffer].function!(this: this, arguments: [target.jsValue, attachments.jsValue])
-    }
+    @ReadonlyAttribute
+    public var signal: AbortSignal
 
-    @inlinable func invalidateSubFramebuffer(target: GLenum, attachments: [GLenum], x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
-        let _arg0 = target.jsValue
-        let _arg1 = attachments.jsValue
-        let _arg2 = x.jsValue
-        let _arg3 = y.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
+    @inlinable public func clone() -> Self {
         let this = jsObject
-        _ = this[Strings.invalidateSubFramebuffer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @inlinable func readBuffer(src: GLenum) {
-        let this = jsObject
-        _ = this[Strings.readBuffer].function!(this: this, arguments: [src.jsValue])
-    }
+public enum RequestCache: JSString, JSValueCompatible {
+    case `default` = "default"
+    case noStore = "no-store"
+    case reload = "reload"
+    case noCache = "no-cache"
+    case forceCache = "force-cache"
+    case onlyIfCached = "only-if-cached"
 
-    @inlinable func getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getInternalformatParameter].function!(this: this, arguments: [target.jsValue, internalformat.jsValue, pname.jsValue]).fromJSValue()!
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.renderbufferStorageMultisample].function!(this: this, arguments: [target.jsValue, samples.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.texStorage2D].function!(this: this, arguments: [target.jsValue, levels.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {
-        let _arg0 = target.jsValue
-        let _arg1 = levels.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let this = jsObject
-        _ = this[Strings.texStorage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
-    }
+public enum RequestCredentials: JSString, JSValueCompatible {
+    case omit = "omit"
+    case sameOrigin = "same-origin"
+    case include = "include"
 
-    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = format.jsValue
-        let _arg8 = type.jsValue
-        let _arg9 = pboOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = format.jsValue
-        let _arg8 = type.jsValue
-        let _arg9 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView?) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = format.jsValue
-        let _arg8 = type.jsValue
-        let _arg9 = srcData.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = format.jsValue
-        let _arg8 = type.jsValue
-        let _arg9 = srcData.jsValue
-        let _arg10 = srcOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
-    }
-
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = depth.jsValue
-        let _arg8 = format.jsValue
-        let _arg9 = type.jsValue
-        let _arg10 = pboOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
-    }
-
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = depth.jsValue
-        let _arg8 = format.jsValue
-        let _arg9 = type.jsValue
-        let _arg10 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
-    }
-
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = depth.jsValue
-        let _arg8 = format.jsValue
-        let _arg9 = type.jsValue
-        let _arg10 = srcData.jsValue
-        let _arg11 = srcOffset?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11])
-    }
+public enum RequestDestination: JSString, JSValueCompatible {
+    case _empty = ""
+    case audio = "audio"
+    case audioworklet = "audioworklet"
+    case document = "document"
+    case embed = "embed"
+    case font = "font"
+    case frame = "frame"
+    case iframe = "iframe"
+    case image = "image"
+    case manifest = "manifest"
+    case object = "object"
+    case paintworklet = "paintworklet"
+    case report = "report"
+    case script = "script"
+    case sharedworker = "sharedworker"
+    case style = "style"
+    case track = "track"
+    case video = "video"
+    case worker = "worker"
+    case xslt = "xslt"
 
-    @inlinable func copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = x.jsValue
-        let _arg6 = y.jsValue
-        let _arg7 = width.jsValue
-        let _arg8 = height.jsValue
-        let this = jsObject
-        _ = this[Strings.copyTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = imageSize.jsValue
-        let _arg8 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = depth.jsValue
-        let _arg6 = border.jsValue
-        let _arg7 = srcData.jsValue
-        let _arg8 = srcOffset?.jsValue ?? .undefined
-        let _arg9 = srcLengthOverride?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = depth.jsValue
-        let _arg8 = format.jsValue
-        let _arg9 = imageSize.jsValue
-        let _arg10 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
+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?, window: JSValue) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.method] = method.jsValue
+        object[Strings.headers] = headers.jsValue
+        object[Strings.body] = body.jsValue
+        object[Strings.referrer] = referrer.jsValue
+        object[Strings.referrerPolicy] = referrerPolicy.jsValue
+        object[Strings.mode] = mode.jsValue
+        object[Strings.credentials] = credentials.jsValue
+        object[Strings.cache] = cache.jsValue
+        object[Strings.redirect] = redirect.jsValue
+        object[Strings.integrity] = integrity.jsValue
+        object[Strings.keepalive] = keepalive.jsValue
+        object[Strings.signal] = signal.jsValue
+        object[Strings.window] = window.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = zoffset.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = depth.jsValue
-        let _arg8 = format.jsValue
-        let _arg9 = srcData.jsValue
-        let _arg10 = srcOffset?.jsValue ?? .undefined
-        let _arg11 = srcLengthOverride?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11])
+    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)
+        _window = ReadWriteAttribute(jsObject: object, name: Strings.window)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getFragDataLocation(program: WebGLProgram, name: String) -> GLint {
-        let this = jsObject
-        return this[Strings.getFragDataLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var method: String
 
-    @inlinable func uniform1ui(location: WebGLUniformLocation?, v0: GLuint) {
-        let this = jsObject
-        _ = this[Strings.uniform1ui].function!(this: this, arguments: [location.jsValue, v0.jsValue])
-    }
+    @ReadWriteAttribute
+    public var headers: HeadersInit
 
-    @inlinable func uniform2ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint) {
-        let this = jsObject
-        _ = this[Strings.uniform2ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue])
-    }
+    @ReadWriteAttribute
+    public var body: BodyInit?
 
-    @inlinable func uniform3ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint) {
-        let this = jsObject
-        _ = this[Strings.uniform3ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue, v2.jsValue])
-    }
+    @ReadWriteAttribute
+    public var referrer: String
 
-    @inlinable func uniform4ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) {
-        let this = jsObject
-        _ = this[Strings.uniform4ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue, v2.jsValue, v3.jsValue])
-    }
+    @ReadWriteAttribute
+    public var referrerPolicy: ReferrerPolicy
 
-    @inlinable func uniform1uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform1uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var mode: RequestMode
 
-    @inlinable func uniform2uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform2uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var credentials: RequestCredentials
 
-    @inlinable func uniform3uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform3uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var cache: RequestCache
 
-    @inlinable func uniform4uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform4uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var redirect: RequestRedirect
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var integrity: String
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var keepalive: Bool
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var signal: AbortSignal?
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadWriteAttribute
+    public var window: JSValue
+}
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+public enum RequestMode: JSString, JSValueCompatible {
+    case navigate = "navigate"
+    case sameOrigin = "same-origin"
+    case noCors = "no-cors"
+    case cors = "cors"
 
-    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribI4i].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func vertexAttribI4iv(index: GLuint, values: Int32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribI4iv].function!(this: this, arguments: [index.jsValue, values.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribI4ui].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
-    }
+public enum RequestRedirect: JSString, JSValueCompatible {
+    case follow = "follow"
+    case error = "error"
+    case manual = "manual"
 
-    @inlinable func vertexAttribI4uiv(index: GLuint, values: Uint32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribI4uiv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribIPointer].function!(this: this, arguments: [index.jsValue, size.jsValue, type.jsValue, stride.jsValue, offset.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func vertexAttribDivisor(index: GLuint, divisor: GLuint) {
-        let this = jsObject
-        _ = this[Strings.vertexAttribDivisor].function!(this: this, arguments: [index.jsValue, divisor.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.drawArraysInstanced].function!(this: this, arguments: [mode.jsValue, first.jsValue, count.jsValue, instanceCount.jsValue])
-    }
+public enum ResizeQuality: JSString, JSValueCompatible {
+    case pixelated = "pixelated"
+    case low = "low"
+    case medium = "medium"
+    case high = "high"
 
-    @inlinable func drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.drawElementsInstanced].function!(this: this, arguments: [mode.jsValue, count.jsValue, type.jsValue, offset.jsValue, instanceCount.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) {
-        let _arg0 = mode.jsValue
-        let _arg1 = start.jsValue
-        let _arg2 = end.jsValue
-        let _arg3 = count.jsValue
-        let _arg4 = type.jsValue
-        let _arg5 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.drawRangeElements].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func drawBuffers(buffers: [GLenum]) {
-        let this = jsObject
-        _ = this[Strings.drawBuffers].function!(this: this, arguments: [buffers.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.clearBufferfv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
-    }
+public class Response: JSBridgedClass, Body {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Response].function }
 
-    @inlinable func clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.clearBufferiv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
-    }
+    public let jsObject: JSObject
 
-    @inlinable func clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.clearBufferuiv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
+    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
     }
 
-    @inlinable func clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) {
-        let this = jsObject
-        _ = this[Strings.clearBufferfi].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, depth.jsValue, stencil.jsValue])
+    @inlinable public convenience init(body: BodyInit? = nil, init: ResponseInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [body?.jsValue ?? .undefined, `init`?.jsValue ?? .undefined]))
     }
 
-    @inlinable func createQuery() -> WebGLQuery? {
-        let this = jsObject
-        return this[Strings.createQuery].function!(this: this, arguments: []).fromJSValue()!
+    @inlinable public static func error() -> Self {
+        let this = constructor!
+        return this[Strings.error].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func deleteQuery(query: WebGLQuery?) {
-        let this = jsObject
-        _ = this[Strings.deleteQuery].function!(this: this, arguments: [query.jsValue])
+    @inlinable public static func redirect(url: String, status: UInt16? = nil) -> Self {
+        let this = constructor!
+        return this[Strings.redirect].function!(this: this, arguments: [url.jsValue, status?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func isQuery(query: WebGLQuery?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isQuery].function!(this: this, arguments: [query.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var type: ResponseType
 
-    @inlinable func beginQuery(target: GLenum, query: WebGLQuery) {
-        let this = jsObject
-        _ = this[Strings.beginQuery].function!(this: this, arguments: [target.jsValue, query.jsValue])
-    }
+    @ReadonlyAttribute
+    public var url: String
 
-    @inlinable func endQuery(target: GLenum) {
-        let this = jsObject
-        _ = this[Strings.endQuery].function!(this: this, arguments: [target.jsValue])
-    }
+    @ReadonlyAttribute
+    public var redirected: Bool
 
-    @inlinable func getQuery(target: GLenum, pname: GLenum) -> WebGLQuery? {
-        let this = jsObject
-        return this[Strings.getQuery].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var status: UInt16
 
-    @inlinable func getQueryParameter(query: WebGLQuery, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getQueryParameter].function!(this: this, arguments: [query.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var ok: Bool
 
-    @inlinable func createSampler() -> WebGLSampler? {
-        let this = jsObject
-        return this[Strings.createSampler].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var statusText: String
 
-    @inlinable func deleteSampler(sampler: WebGLSampler?) {
-        let this = jsObject
-        _ = this[Strings.deleteSampler].function!(this: this, arguments: [sampler.jsValue])
-    }
+    @ReadonlyAttribute
+    public var headers: Headers
 
-    @inlinable func isSampler(sampler: WebGLSampler?) -> GLboolean {
+    @inlinable public func clone() -> Self {
         let this = jsObject
-        return this[Strings.isSampler].function!(this: this, arguments: [sampler.jsValue]).fromJSValue()!
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @inlinable func bindSampler(unit: GLuint, sampler: WebGLSampler?) {
-        let this = jsObject
-        _ = this[Strings.bindSampler].function!(this: this, arguments: [unit.jsValue, sampler.jsValue])
+public class ResponseInit: BridgedDictionary {
+    public convenience init(status: UInt16, statusText: String, headers: HeadersInit) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.status] = status.jsValue
+        object[Strings.statusText] = statusText.jsValue
+        object[Strings.headers] = headers.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) {
-        let this = jsObject
-        _ = this[Strings.samplerParameteri].function!(this: this, arguments: [sampler.jsValue, pname.jsValue, param.jsValue])
+    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)
     }
 
-    @inlinable func samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.samplerParameterf].function!(this: this, arguments: [sampler.jsValue, pname.jsValue, param.jsValue])
-    }
+    @ReadWriteAttribute
+    public var status: UInt16
 
-    @inlinable func getSamplerParameter(sampler: WebGLSampler, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getSamplerParameter].function!(this: this, arguments: [sampler.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var statusText: String
 
-    @inlinable func fenceSync(condition: GLenum, flags: GLbitfield) -> WebGLSync? {
-        let this = jsObject
-        return this[Strings.fenceSync].function!(this: this, arguments: [condition.jsValue, flags.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var headers: HeadersInit
+}
 
-    @inlinable func isSync(sync: WebGLSync?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isSync].function!(this: this, arguments: [sync.jsValue]).fromJSValue()!
-    }
+public enum ResponseType: JSString, JSValueCompatible {
+    case basic = "basic"
+    case cors = "cors"
+    case `default` = "default"
+    case error = "error"
+    case opaque = "opaque"
+    case opaqueredirect = "opaqueredirect"
 
-    @inlinable func deleteSync(sync: WebGLSync?) {
-        let this = jsObject
-        _ = this[Strings.deleteSync].function!(this: this, arguments: [sync.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) -> GLenum {
-        let this = jsObject
-        return this[Strings.clientWaitSync].function!(this: this, arguments: [sync.jsValue, flags.jsValue, timeout.jsValue]).fromJSValue()!
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) {
-        let this = jsObject
-        _ = this[Strings.waitSync].function!(this: this, arguments: [sync.jsValue, flags.jsValue, timeout.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func getSyncParameter(sync: WebGLSync, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getSyncParameter].function!(this: this, arguments: [sync.jsValue, pname.jsValue]).fromJSValue()!
-    }
+public class Screen: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Screen].function }
 
-    @inlinable func createTransformFeedback() -> WebGLTransformFeedback? {
-        let this = jsObject
-        return this[Strings.createTransformFeedback].function!(this: this, arguments: []).fromJSValue()!
-    }
+    public let jsObject: JSObject
 
-    @inlinable func deleteTransformFeedback(tf: WebGLTransformFeedback?) {
-        let this = jsObject
-        _ = this[Strings.deleteTransformFeedback].function!(this: this, arguments: [tf.jsValue])
+    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
     }
 
-    @inlinable func isTransformFeedback(tf: WebGLTransformFeedback?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isTransformFeedback].function!(this: this, arguments: [tf.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var availWidth: Int32
 
-    @inlinable func bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback?) {
-        let this = jsObject
-        _ = this[Strings.bindTransformFeedback].function!(this: this, arguments: [target.jsValue, tf.jsValue])
-    }
+    @ReadonlyAttribute
+    public var availHeight: Int32
 
-    @inlinable func beginTransformFeedback(primitiveMode: GLenum) {
-        let this = jsObject
-        _ = this[Strings.beginTransformFeedback].function!(this: this, arguments: [primitiveMode.jsValue])
-    }
+    @ReadonlyAttribute
+    public var width: Int32
 
-    @inlinable func endTransformFeedback() {
-        let this = jsObject
-        _ = this[Strings.endTransformFeedback].function!(this: this, arguments: [])
-    }
+    @ReadonlyAttribute
+    public var height: Int32
 
-    @inlinable func transformFeedbackVaryings(program: WebGLProgram, varyings: [String], bufferMode: GLenum) {
-        let this = jsObject
-        _ = this[Strings.transformFeedbackVaryings].function!(this: this, arguments: [program.jsValue, varyings.jsValue, bufferMode.jsValue])
-    }
+    @ReadonlyAttribute
+    public var colorDepth: UInt32
 
-    @inlinable func getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
-        let this = jsObject
-        return this[Strings.getTransformFeedbackVarying].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var pixelDepth: UInt32
+}
 
-    @inlinable func pauseTransformFeedback() {
-        let this = jsObject
-        _ = this[Strings.pauseTransformFeedback].function!(this: this, arguments: [])
-    }
+public enum ScrollBehavior: JSString, JSValueCompatible {
+    case auto = "auto"
+    case smooth = "smooth"
 
-    @inlinable func resumeTransformFeedback() {
-        let this = jsObject
-        _ = this[Strings.resumeTransformFeedback].function!(this: this, arguments: [])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer?) {
-        let this = jsObject
-        _ = this[Strings.bindBufferBase].function!(this: this, arguments: [target.jsValue, index.jsValue, buffer.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer?, offset: GLintptr, size: GLsizeiptr) {
-        let this = jsObject
-        _ = this[Strings.bindBufferRange].function!(this: this, arguments: [target.jsValue, index.jsValue, buffer.jsValue, offset.jsValue, size.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func getIndexedParameter(target: GLenum, index: GLuint) -> JSValue {
-        let this = jsObject
-        return this[Strings.getIndexedParameter].function!(this: this, arguments: [target.jsValue, index.jsValue]).fromJSValue()!
+public class ScrollIntoViewOptions: BridgedDictionary {
+    public convenience init(block: ScrollLogicalPosition, inline: ScrollLogicalPosition) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.block] = block.jsValue
+        object[Strings.inline] = inline.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getUniformIndices(program: WebGLProgram, uniformNames: [String]) -> [GLuint]? {
-        let this = jsObject
-        return this[Strings.getUniformIndices].function!(this: this, arguments: [program.jsValue, uniformNames.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _block = ReadWriteAttribute(jsObject: object, name: Strings.block)
+        _inline = ReadWriteAttribute(jsObject: object, name: Strings.inline)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getActiveUniforms(program: WebGLProgram, uniformIndices: [GLuint], pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getActiveUniforms].function!(this: this, arguments: [program.jsValue, uniformIndices.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var block: ScrollLogicalPosition
 
-    @inlinable func getUniformBlockIndex(program: WebGLProgram, uniformBlockName: String) -> GLuint {
-        let this = jsObject
-        return this[Strings.getUniformBlockIndex].function!(this: this, arguments: [program.jsValue, uniformBlockName.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var inline: ScrollLogicalPosition
+}
 
-    @inlinable func getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getActiveUniformBlockParameter].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue, pname.jsValue]).fromJSValue()!
-    }
+public enum ScrollLogicalPosition: JSString, JSValueCompatible {
+    case start = "start"
+    case center = "center"
+    case end = "end"
+    case nearest = "nearest"
 
-    @inlinable func getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) -> String? {
-        let this = jsObject
-        return this[Strings.getActiveUniformBlockName].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue]).fromJSValue()!
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) {
-        let this = jsObject
-        _ = this[Strings.uniformBlockBinding].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue, uniformBlockBinding.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func createVertexArray() -> WebGLVertexArrayObject? {
-        let this = jsObject
-        return this[Strings.createVertexArray].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func deleteVertexArray(vertexArray: WebGLVertexArrayObject?) {
-        let this = jsObject
-        _ = this[Strings.deleteVertexArray].function!(this: this, arguments: [vertexArray.jsValue])
+public class ScrollOptions: BridgedDictionary {
+    public convenience init(behavior: ScrollBehavior) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.behavior] = behavior.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func isVertexArray(vertexArray: WebGLVertexArrayObject?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isVertexArray].function!(this: this, arguments: [vertexArray.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _behavior = ReadWriteAttribute(jsObject: object, name: Strings.behavior)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func bindVertexArray(array: WebGLVertexArrayObject?) {
-        let this = jsObject
-        _ = this[Strings.bindVertexArray].function!(this: this, arguments: [array.jsValue])
-    }
+    @ReadWriteAttribute
+    public var behavior: ScrollBehavior
 }
 
-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: [target.jsValue, size.jsValue, usage.jsValue])
-    }
+public enum ScrollRestoration: JSString, JSValueCompatible {
+    case auto = "auto"
+    case manual = "manual"
 
-    @inlinable func bufferData(target: GLenum, srcData: BufferSource?, usage: GLenum) {
-        let this = jsObject
-        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, srcData.jsValue, usage.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource) {
-        let this = jsObject
-        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, dstByteOffset.jsValue, srcData.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, srcData.jsValue, usage.jsValue, srcOffset.jsValue, length?.jsValue ?? .undefined])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, dstByteOffset.jsValue, srcData.jsValue, srcOffset.jsValue, length?.jsValue ?? .undefined])
+public class ScrollToOptions: BridgedDictionary {
+    public convenience init(left: Double, top: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.left] = left.jsValue
+        object[Strings.top] = top.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pixels.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    public required init(unsafelyWrapping object: JSObject) {
+        _left = ReadWriteAttribute(jsObject: object, name: Strings.left)
+        _top = ReadWriteAttribute(jsObject: object, name: Strings.top)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = format.jsValue
-        let _arg4 = type.jsValue
-        let _arg5 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
-    }
+    @ReadWriteAttribute
+    public var left: Double
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pixels.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
-    }
+    @ReadWriteAttribute
+    public var top: Double
+}
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
-    }
+public enum SelectionMode: JSString, JSValueCompatible {
+    case select = "select"
+    case start = "start"
+    case end = "end"
+    case preserve = "preserve"
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pboOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = srcData.jsValue
-        let _arg9 = srcOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
-    }
-
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pboOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
-    }
+public class ServiceWorker: EventTarget, AbstractWorker {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorker].function }
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = srcData.jsValue
-        let _arg9 = srcOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    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)
     }
 
-    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = imageSize.jsValue
-        let _arg7 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
-    }
+    @ReadonlyAttribute
+    public var scriptURL: String
 
-    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = srcData.jsValue
-        let _arg7 = srcOffset?.jsValue ?? .undefined
-        let _arg8 = srcLengthOverride?.jsValue ?? .undefined
-        let this = jsObject
-        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
-    }
+    @ReadonlyAttribute
+    public var state: ServiceWorkerState
 
-    @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = imageSize.jsValue
-        let _arg8 = offset.jsValue
+    @inlinable public func postMessage(message: JSValue, transfer: [JSObject]) {
         let this = jsObject
-        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, transfer.jsValue])
     }
 
-    @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 _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = srcData.jsValue
-        let _arg8 = srcOffset?.jsValue ?? .undefined
-        let _arg9 = srcLengthOverride?.jsValue ?? .undefined
+    @inlinable public func postMessage(message: JSValue, options: StructuredSerializeOptions? = nil) {
         let this = jsObject
-        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+        _ = this[Strings.postMessage].function!(this: this, arguments: [message.jsValue, options?.jsValue ?? .undefined])
     }
 
-    @inlinable func uniform1fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform1fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ClosureAttribute1Optional
+    public var onstatechange: EventHandler
+}
 
-    @inlinable func uniform2fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform2fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+public class ServiceWorkerContainer: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerContainer].function }
 
-    @inlinable func uniform3fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform3fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    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 func uniform4fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform4fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadonlyAttribute
+    public var controller: ServiceWorker?
 
-    @inlinable func uniform1iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
-        let this = jsObject
-        _ = this[Strings.uniform1iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
-    }
+    @ReadonlyAttribute
+    public var ready: JSPromise
 
-    @inlinable func uniform2iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @inlinable public func register(scriptURL: String, options: RegistrationOptions? = nil) -> JSPromise {
         let this = jsObject
-        _ = this[Strings.uniform2iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        return this[Strings.register].function!(this: this, arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func uniform3iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @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 {
         let this = jsObject
-        _ = this[Strings.uniform3iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        let _promise: JSPromise = this[Strings.register].function!(this: this, arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable func uniform4iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @inlinable public func getRegistration(clientURL: String? = nil) -> JSPromise {
         let this = jsObject
-        _ = this[Strings.uniform4iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        return this[Strings.getRegistration].function!(this: this, arguments: [clientURL?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @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
-        _ = this[Strings.uniformMatrix2fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        let _promise: JSPromise = this[Strings.getRegistration].function!(this: this, arguments: [clientURL?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @inlinable public func getRegistrations() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.uniformMatrix3fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        return this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func getRegistrations() async throws -> [ServiceWorkerRegistration] {
         let this = jsObject
-        _ = this[Strings.uniformMatrix4fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+        let _promise: JSPromise = this[Strings.getRegistrations].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView?) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = width.jsValue
-        let _arg3 = height.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = dstData.jsValue
+    @inlinable public func startMessages() {
         let this = jsObject
-        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+        _ = this[Strings.startMessages].function!(this: this, arguments: [])
     }
 
-    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = width.jsValue
-        let _arg3 = height.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
-    }
+    @ClosureAttribute1Optional
+    public var oncontrollerchange: EventHandler
 
-    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = width.jsValue
-        let _arg3 = height.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = dstData.jsValue
-        let _arg7 = dstOffset.jsValue
-        let this = jsObject
-        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
-    }
-}
+    @ClosureAttribute1Optional
+    public var onmessage: EventHandler
 
-public class WebGLActiveInfo: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLActiveInfo].function }
+    @ClosureAttribute1Optional
+    public var onmessageerror: EventHandler
+}
 
-    public let jsObject: JSObject
+public class ServiceWorkerRegistration: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ServiceWorkerRegistration].function }
 
     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
+        _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)
     }
 
     @ReadonlyAttribute
-    public var size: GLint
+    public var installing: ServiceWorker?
 
     @ReadonlyAttribute
-    public var type: GLenum
+    public var waiting: ServiceWorker?
 
     @ReadonlyAttribute
-    public var name: String
-}
+    public var active: ServiceWorker?
 
-public class WebGLBuffer: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLBuffer].function }
+    @ReadonlyAttribute
+    public var navigationPreload: NavigationPreloadManager
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+    @ReadonlyAttribute
+    public var scope: String
+
+    @ReadonlyAttribute
+    public var updateViaCache: ServiceWorkerUpdateViaCache
+
+    @inlinable public func update() -> JSPromise {
+        let this = jsObject
+        return this[Strings.update].function!(this: this, arguments: []).fromJSValue()!
     }
-}
 
-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) {
-        let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.alpha] = alpha.jsValue
-        object[Strings.depth] = depth.jsValue
-        object[Strings.stencil] = stencil.jsValue
-        object[Strings.antialias] = antialias.jsValue
-        object[Strings.premultipliedAlpha] = premultipliedAlpha.jsValue
-        object[Strings.preserveDrawingBuffer] = preserveDrawingBuffer.jsValue
-        object[Strings.powerPreference] = powerPreference.jsValue
-        object[Strings.failIfMajorPerformanceCaveat] = failIfMajorPerformanceCaveat.jsValue
-        object[Strings.desynchronized] = desynchronized.jsValue
-        self.init(unsafelyWrapping: object)
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func update() async throws {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.update].function!(this: this, arguments: []).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    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)
+    @inlinable public func unregister() -> JSPromise {
+        let this = jsObject
+        return this[Strings.unregister].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @ReadWriteAttribute
-    public var alpha: Bool
+    @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()!
+    }
 
-    @ReadWriteAttribute
-    public var depth: Bool
+    @ClosureAttribute1Optional
+    public var onupdatefound: EventHandler
+}
 
-    @ReadWriteAttribute
-    public var stencil: Bool
+public enum ServiceWorkerState: JSString, JSValueCompatible {
+    case parsed = "parsed"
+    case installing = "installing"
+    case installed = "installed"
+    case activating = "activating"
+    case activated = "activated"
+    case redundant = "redundant"
 
-    @ReadWriteAttribute
-    public var antialias: Bool
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @ReadWriteAttribute
-    public var premultipliedAlpha: Bool
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @ReadWriteAttribute
-    public var preserveDrawingBuffer: Bool
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @ReadWriteAttribute
-    public var powerPreference: WebGLPowerPreference
+public enum ServiceWorkerUpdateViaCache: JSString, JSValueCompatible {
+    case imports = "imports"
+    case all = "all"
+    case none = "none"
 
-    @ReadWriteAttribute
-    public var failIfMajorPerformanceCaveat: Bool
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @ReadWriteAttribute
-    public var desynchronized: Bool
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class WebGLContextEvent: Event {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLContextEvent].function }
+public class ShadowRoot: DocumentFragment, DocumentOrShadowRoot {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ShadowRoot].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _statusMessage = ReadonlyAttribute(jsObject: jsObject, name: Strings.statusMessage)
+        _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)
     }
 
-    @inlinable public convenience init(type: String, eventInit: WebGLContextEventInit? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInit?.jsValue ?? .undefined]))
-    }
+    @ReadonlyAttribute
+    public var mode: ShadowRootMode
+
+    @ReadonlyAttribute
+    public var delegatesFocus: Bool
 
     @ReadonlyAttribute
-    public var statusMessage: String
+    public var slotAssignment: SlotAssignmentMode
+
+    @ReadonlyAttribute
+    public var host: Element
+
+    @ClosureAttribute1Optional
+    public var onslotchange: EventHandler
 }
 
-public class WebGLContextEventInit: BridgedDictionary {
-    public convenience init(statusMessage: String) {
+public class ShadowRootInit: BridgedDictionary {
+    public convenience init(mode: ShadowRootMode, delegatesFocus: Bool, slotAssignment: SlotAssignmentMode) {
         let object = JSObject.global[Strings.Object].function!.new()
-        object[Strings.statusMessage] = statusMessage.jsValue
+        object[Strings.mode] = mode.jsValue
+        object[Strings.delegatesFocus] = delegatesFocus.jsValue
+        object[Strings.slotAssignment] = slotAssignment.jsValue
         self.init(unsafelyWrapping: object)
     }
 
     public required init(unsafelyWrapping object: JSObject) {
-        _statusMessage = ReadWriteAttribute(jsObject: object, name: Strings.statusMessage)
+        _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)
     }
 
     @ReadWriteAttribute
-    public var statusMessage: String
-}
-
-public class WebGLFramebuffer: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLFramebuffer].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-}
-
-public class WebGLObject: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLObject].function }
+    public var mode: ShadowRootMode
 
-    public let jsObject: JSObject
+    @ReadWriteAttribute
+    public var delegatesFocus: Bool
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var slotAssignment: SlotAssignmentMode
 }
 
-public enum WebGLPowerPreference: JSString, JSValueCompatible {
-    case `default` = "default"
-    case lowPower = "low-power"
-    case highPerformance = "high-performance"
+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 {
@@ -24168,1562 +14267,1899 @@ public enum WebGLPowerPreference: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class WebGLProgram: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLProgram].function }
+public class SharedWorker: EventTarget, AbstractWorker {
+    @inlinable override public 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 class WebGLQuery: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLQuery].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public convenience init(scriptURL: String, options: String_or_WorkerOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [scriptURL.jsValue, options?.jsValue ?? .undefined]))
     }
-}
 
-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)
-    }
+    @ReadonlyAttribute
+    public var port: MessagePort
 }
 
-public class WebGLRenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGLRenderingContextOverloads {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLRenderingContext].function }
-
-    public let jsObject: JSObject
+public enum SlotAssignmentMode: JSString, JSValueCompatible {
+    case manual = "manual"
+    case named = "named"
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
-}
-
-public protocol WebGLRenderingContextBase: JSBridgedClass {}
-public extension WebGLRenderingContextBase {
-    @inlinable static var DEPTH_BUFFER_BIT: GLenum { 0x0000_0100 }
-
-    @inlinable static var STENCIL_BUFFER_BIT: GLenum { 0x0000_0400 }
-
-    @inlinable static var COLOR_BUFFER_BIT: GLenum { 0x0000_4000 }
-
-    @inlinable static var POINTS: GLenum { 0x0000 }
-
-    @inlinable static var LINES: GLenum { 0x0001 }
-
-    @inlinable static var LINE_LOOP: GLenum { 0x0002 }
-
-    @inlinable static var LINE_STRIP: GLenum { 0x0003 }
-
-    @inlinable static var TRIANGLES: GLenum { 0x0004 }
-
-    @inlinable static var TRIANGLE_STRIP: GLenum { 0x0005 }
-
-    @inlinable static var TRIANGLE_FAN: GLenum { 0x0006 }
-
-    @inlinable static var ZERO: GLenum { 0 }
-
-    @inlinable static var ONE: GLenum { 1 }
-
-    @inlinable static var SRC_COLOR: GLenum { 0x0300 }
-
-    @inlinable static var ONE_MINUS_SRC_COLOR: GLenum { 0x0301 }
-
-    @inlinable static var SRC_ALPHA: GLenum { 0x0302 }
-
-    @inlinable static var ONE_MINUS_SRC_ALPHA: GLenum { 0x0303 }
-
-    @inlinable static var DST_ALPHA: GLenum { 0x0304 }
-
-    @inlinable static var ONE_MINUS_DST_ALPHA: GLenum { 0x0305 }
-
-    @inlinable static var DST_COLOR: GLenum { 0x0306 }
-
-    @inlinable static var ONE_MINUS_DST_COLOR: GLenum { 0x0307 }
-
-    @inlinable static var SRC_ALPHA_SATURATE: GLenum { 0x0308 }
-
-    @inlinable static var FUNC_ADD: GLenum { 0x8006 }
-
-    @inlinable static var BLEND_EQUATION: GLenum { 0x8009 }
-
-    @inlinable static var BLEND_EQUATION_RGB: GLenum { 0x8009 }
-
-    @inlinable static var BLEND_EQUATION_ALPHA: GLenum { 0x883D }
-
-    @inlinable static var FUNC_SUBTRACT: GLenum { 0x800A }
-
-    @inlinable static var FUNC_REVERSE_SUBTRACT: GLenum { 0x800B }
-
-    @inlinable static var BLEND_DST_RGB: GLenum { 0x80C8 }
-
-    @inlinable static var BLEND_SRC_RGB: GLenum { 0x80C9 }
-
-    @inlinable static var BLEND_DST_ALPHA: GLenum { 0x80CA }
-
-    @inlinable static var BLEND_SRC_ALPHA: GLenum { 0x80CB }
-
-    @inlinable static var CONSTANT_COLOR: GLenum { 0x8001 }
-
-    @inlinable static var ONE_MINUS_CONSTANT_COLOR: GLenum { 0x8002 }
-
-    @inlinable static var CONSTANT_ALPHA: GLenum { 0x8003 }
-
-    @inlinable static var ONE_MINUS_CONSTANT_ALPHA: GLenum { 0x8004 }
-
-    @inlinable static var BLEND_COLOR: GLenum { 0x8005 }
-
-    @inlinable static var ARRAY_BUFFER: GLenum { 0x8892 }
-
-    @inlinable static var ELEMENT_ARRAY_BUFFER: GLenum { 0x8893 }
-
-    @inlinable static var ARRAY_BUFFER_BINDING: GLenum { 0x8894 }
-
-    @inlinable static var ELEMENT_ARRAY_BUFFER_BINDING: GLenum { 0x8895 }
-
-    @inlinable static var STREAM_DRAW: GLenum { 0x88E0 }
-
-    @inlinable static var STATIC_DRAW: GLenum { 0x88E4 }
-
-    @inlinable static var DYNAMIC_DRAW: GLenum { 0x88E8 }
-
-    @inlinable static var BUFFER_SIZE: GLenum { 0x8764 }
-
-    @inlinable static var BUFFER_USAGE: GLenum { 0x8765 }
-
-    @inlinable static var CURRENT_VERTEX_ATTRIB: GLenum { 0x8626 }
-
-    @inlinable static var FRONT: GLenum { 0x0404 }
-
-    @inlinable static var BACK: GLenum { 0x0405 }
-
-    @inlinable static var FRONT_AND_BACK: GLenum { 0x0408 }
-
-    @inlinable static var CULL_FACE: GLenum { 0x0B44 }
-
-    @inlinable static var BLEND: GLenum { 0x0BE2 }
-
-    @inlinable static var DITHER: GLenum { 0x0BD0 }
-
-    @inlinable static var STENCIL_TEST: GLenum { 0x0B90 }
-
-    @inlinable static var DEPTH_TEST: GLenum { 0x0B71 }
-
-    @inlinable static var SCISSOR_TEST: GLenum { 0x0C11 }
 
-    @inlinable static var POLYGON_OFFSET_FILL: GLenum { 0x8037 }
-
-    @inlinable static var SAMPLE_ALPHA_TO_COVERAGE: GLenum { 0x809E }
-
-    @inlinable static var SAMPLE_COVERAGE: GLenum { 0x80A0 }
-
-    @inlinable static var NO_ERROR: GLenum { 0 }
-
-    @inlinable static var INVALID_ENUM: GLenum { 0x0500 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var INVALID_VALUE: GLenum { 0x0501 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var INVALID_OPERATION: GLenum { 0x0502 }
+public protocol Slottable: JSBridgedClass {}
+public extension Slottable {
+    @inlinable var assignedSlot: HTMLSlotElement? { jsObject[Strings.assignedSlot].fromJSValue()! }
+}
 
-    @inlinable static var OUT_OF_MEMORY: GLenum { 0x0505 }
+public class StaticRange: AbstractRange {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StaticRange].function }
 
-    @inlinable static var CW: GLenum { 0x0900 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var CCW: GLenum { 0x0901 }
+    @inlinable public convenience init(init: StaticRangeInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
+    }
+}
 
-    @inlinable static var LINE_WIDTH: GLenum { 0x0B21 }
+public class StaticRangeInit: BridgedDictionary {
+    public convenience init(startContainer: Node, startOffset: UInt32, endContainer: Node, endOffset: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.startContainer] = startContainer.jsValue
+        object[Strings.startOffset] = startOffset.jsValue
+        object[Strings.endContainer] = endContainer.jsValue
+        object[Strings.endOffset] = endOffset.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var ALIASED_POINT_SIZE_RANGE: GLenum { 0x846D }
+    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)
+    }
 
-    @inlinable static var ALIASED_LINE_WIDTH_RANGE: GLenum { 0x846E }
+    @ReadWriteAttribute
+    public var startContainer: Node
 
-    @inlinable static var CULL_FACE_MODE: GLenum { 0x0B45 }
+    @ReadWriteAttribute
+    public var startOffset: UInt32
 
-    @inlinable static var FRONT_FACE: GLenum { 0x0B46 }
+    @ReadWriteAttribute
+    public var endContainer: Node
 
-    @inlinable static var DEPTH_RANGE: GLenum { 0x0B70 }
+    @ReadWriteAttribute
+    public var endOffset: UInt32
+}
 
-    @inlinable static var DEPTH_WRITEMASK: GLenum { 0x0B72 }
+public class Storage: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Storage].function }
 
-    @inlinable static var DEPTH_CLEAR_VALUE: GLenum { 0x0B73 }
+    public let jsObject: JSObject
 
-    @inlinable static var DEPTH_FUNC: GLenum { 0x0B74 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var STENCIL_CLEAR_VALUE: GLenum { 0x0B91 }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var STENCIL_FUNC: GLenum { 0x0B92 }
+    @inlinable public func key(index: UInt32) -> String? {
+        let this = jsObject
+        return this[Strings.key].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var STENCIL_FAIL: GLenum { 0x0B94 }
+    @inlinable public subscript(key: String) -> String? {
+        jsObject[key].fromJSValue()
+    }
 
-    @inlinable static var STENCIL_PASS_DEPTH_FAIL: GLenum { 0x0B95 }
+    // XXX: unsupported setter for keys of type String
 
-    @inlinable static var STENCIL_PASS_DEPTH_PASS: GLenum { 0x0B96 }
+    // XXX: unsupported deleter for keys of type String
 
-    @inlinable static var STENCIL_REF: GLenum { 0x0B97 }
+    @inlinable public func clear() {
+        let this = jsObject
+        _ = this[Strings.clear].function!(this: this, arguments: [])
+    }
+}
 
-    @inlinable static var STENCIL_VALUE_MASK: GLenum { 0x0B93 }
+public class StorageEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.StorageEvent].function }
 
-    @inlinable static var STENCIL_WRITEMASK: GLenum { 0x0B98 }
+    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)
+    }
 
-    @inlinable static var STENCIL_BACK_FUNC: GLenum { 0x8800 }
+    @inlinable public convenience init(type: String, eventInitDict: StorageEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var STENCIL_BACK_FAIL: GLenum { 0x8801 }
+    @ReadonlyAttribute
+    public var key: String?
 
-    @inlinable static var STENCIL_BACK_PASS_DEPTH_FAIL: GLenum { 0x8802 }
+    @ReadonlyAttribute
+    public var oldValue: String?
 
-    @inlinable static var STENCIL_BACK_PASS_DEPTH_PASS: GLenum { 0x8803 }
+    @ReadonlyAttribute
+    public var newValue: String?
 
-    @inlinable static var STENCIL_BACK_REF: GLenum { 0x8CA3 }
+    @ReadonlyAttribute
+    public var url: String
 
-    @inlinable static var STENCIL_BACK_VALUE_MASK: GLenum { 0x8CA4 }
+    @ReadonlyAttribute
+    public var storageArea: Storage?
 
-    @inlinable static var STENCIL_BACK_WRITEMASK: GLenum { 0x8CA5 }
+    @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) {
+        let _arg0 = type.jsValue
+        let _arg1 = bubbles?.jsValue ?? .undefined
+        let _arg2 = cancelable?.jsValue ?? .undefined
+        let _arg3 = key?.jsValue ?? .undefined
+        let _arg4 = oldValue?.jsValue ?? .undefined
+        let _arg5 = newValue?.jsValue ?? .undefined
+        let _arg6 = url?.jsValue ?? .undefined
+        let _arg7 = storageArea?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.initStorageEvent].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+}
 
-    @inlinable static var VIEWPORT: GLenum { 0x0BA2 }
+public class StorageEventInit: BridgedDictionary {
+    public convenience init(key: String?, oldValue: String?, newValue: String?, url: String, storageArea: Storage?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.key] = key.jsValue
+        object[Strings.oldValue] = oldValue.jsValue
+        object[Strings.newValue] = newValue.jsValue
+        object[Strings.url] = url.jsValue
+        object[Strings.storageArea] = storageArea.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var SCISSOR_BOX: GLenum { 0x0C10 }
+    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)
+    }
 
-    @inlinable static var COLOR_CLEAR_VALUE: GLenum { 0x0C22 }
+    @ReadWriteAttribute
+    public var key: String?
 
-    @inlinable static var COLOR_WRITEMASK: GLenum { 0x0C23 }
+    @ReadWriteAttribute
+    public var oldValue: String?
 
-    @inlinable static var UNPACK_ALIGNMENT: GLenum { 0x0CF5 }
+    @ReadWriteAttribute
+    public var newValue: String?
 
-    @inlinable static var PACK_ALIGNMENT: GLenum { 0x0D05 }
+    @ReadWriteAttribute
+    public var url: String
 
-    @inlinable static var MAX_TEXTURE_SIZE: GLenum { 0x0D33 }
+    @ReadWriteAttribute
+    public var storageArea: Storage?
+}
 
-    @inlinable static var MAX_VIEWPORT_DIMS: GLenum { 0x0D3A }
+public class StreamPipeOptions: BridgedDictionary {
+    public convenience init(preventClose: Bool, preventAbort: Bool, preventCancel: Bool, signal: AbortSignal) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.preventClose] = preventClose.jsValue
+        object[Strings.preventAbort] = preventAbort.jsValue
+        object[Strings.preventCancel] = preventCancel.jsValue
+        object[Strings.signal] = signal.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var SUBPIXEL_BITS: GLenum { 0x0D50 }
+    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)
+    }
 
-    @inlinable static var RED_BITS: GLenum { 0x0D52 }
+    @ReadWriteAttribute
+    public var preventClose: Bool
 
-    @inlinable static var GREEN_BITS: GLenum { 0x0D53 }
+    @ReadWriteAttribute
+    public var preventAbort: Bool
 
-    @inlinable static var BLUE_BITS: GLenum { 0x0D54 }
+    @ReadWriteAttribute
+    public var preventCancel: Bool
 
-    @inlinable static var ALPHA_BITS: GLenum { 0x0D55 }
+    @ReadWriteAttribute
+    public var signal: AbortSignal
+}
 
-    @inlinable static var DEPTH_BITS: GLenum { 0x0D56 }
+public class StructuredSerializeOptions: BridgedDictionary {
+    public convenience init(transfer: [JSObject]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.transfer] = transfer.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var STENCIL_BITS: GLenum { 0x0D57 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _transfer = ReadWriteAttribute(jsObject: object, name: Strings.transfer)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var POLYGON_OFFSET_UNITS: GLenum { 0x2A00 }
+    @ReadWriteAttribute
+    public var transfer: [JSObject]
+}
 
-    @inlinable static var POLYGON_OFFSET_FACTOR: GLenum { 0x8038 }
+public class SubmitEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.SubmitEvent].function }
 
-    @inlinable static var TEXTURE_BINDING_2D: GLenum { 0x8069 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _submitter = ReadonlyAttribute(jsObject: jsObject, name: Strings.submitter)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var SAMPLE_BUFFERS: GLenum { 0x80A8 }
+    @inlinable public convenience init(type: String, eventInitDict: SubmitEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var SAMPLES: GLenum { 0x80A9 }
+    @ReadonlyAttribute
+    public var submitter: HTMLElement?
+}
 
-    @inlinable static var SAMPLE_COVERAGE_VALUE: GLenum { 0x80AA }
+public class SubmitEventInit: BridgedDictionary {
+    public convenience init(submitter: HTMLElement?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.submitter] = submitter.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var SAMPLE_COVERAGE_INVERT: GLenum { 0x80AB }
+    public required init(unsafelyWrapping object: JSObject) {
+        _submitter = ReadWriteAttribute(jsObject: object, name: Strings.submitter)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var COMPRESSED_TEXTURE_FORMATS: GLenum { 0x86A3 }
+    @ReadWriteAttribute
+    public var submitter: HTMLElement?
+}
 
-    @inlinable static var DONT_CARE: GLenum { 0x1100 }
+public class SvcOutputMetadata: BridgedDictionary {
+    public convenience init(temporalLayerId: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.temporalLayerId] = temporalLayerId.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var FASTEST: GLenum { 0x1101 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _temporalLayerId = ReadWriteAttribute(jsObject: object, name: Strings.temporalLayerId)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var NICEST: GLenum { 0x1102 }
+    @ReadWriteAttribute
+    public var temporalLayerId: UInt32
+}
 
-    @inlinable static var GENERATE_MIPMAP_HINT: GLenum { 0x8192 }
+public class Text: CharacterData, Slottable, GeometryUtils {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.Text].function }
 
-    @inlinable static var BYTE: GLenum { 0x1400 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _wholeText = ReadonlyAttribute(jsObject: jsObject, name: Strings.wholeText)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var UNSIGNED_BYTE: GLenum { 0x1401 }
+    @inlinable public convenience init(data: String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var SHORT: GLenum { 0x1402 }
+    @inlinable public func splitText(offset: UInt32) -> Self {
+        let this = jsObject
+        return this[Strings.splitText].function!(this: this, arguments: [offset.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var UNSIGNED_SHORT: GLenum { 0x1403 }
+    @ReadonlyAttribute
+    public var wholeText: String
+}
 
-    @inlinable static var INT: GLenum { 0x1404 }
+public class TextMetrics: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TextMetrics].function }
 
-    @inlinable static var UNSIGNED_INT: GLenum { 0x1405 }
+    public let jsObject: JSObject
 
-    @inlinable static var FLOAT: GLenum { 0x1406 }
+    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
+    }
 
-    @inlinable static var DEPTH_COMPONENT: GLenum { 0x1902 }
+    @ReadonlyAttribute
+    public var width: Double
 
-    @inlinable static var ALPHA: GLenum { 0x1906 }
+    @ReadonlyAttribute
+    public var actualBoundingBoxLeft: Double
 
-    @inlinable static var RGB: GLenum { 0x1907 }
+    @ReadonlyAttribute
+    public var actualBoundingBoxRight: Double
 
-    @inlinable static var RGBA: GLenum { 0x1908 }
+    @ReadonlyAttribute
+    public var fontBoundingBoxAscent: Double
 
-    @inlinable static var LUMINANCE: GLenum { 0x1909 }
+    @ReadonlyAttribute
+    public var fontBoundingBoxDescent: Double
 
-    @inlinable static var LUMINANCE_ALPHA: GLenum { 0x190A }
+    @ReadonlyAttribute
+    public var actualBoundingBoxAscent: Double
 
-    @inlinable static var UNSIGNED_SHORT_4_4_4_4: GLenum { 0x8033 }
+    @ReadonlyAttribute
+    public var actualBoundingBoxDescent: Double
 
-    @inlinable static var UNSIGNED_SHORT_5_5_5_1: GLenum { 0x8034 }
+    @ReadonlyAttribute
+    public var emHeightAscent: Double
 
-    @inlinable static var UNSIGNED_SHORT_5_6_5: GLenum { 0x8363 }
+    @ReadonlyAttribute
+    public var emHeightDescent: Double
 
-    @inlinable static var FRAGMENT_SHADER: GLenum { 0x8B30 }
+    @ReadonlyAttribute
+    public var hangingBaseline: Double
 
-    @inlinable static var VERTEX_SHADER: GLenum { 0x8B31 }
+    @ReadonlyAttribute
+    public var alphabeticBaseline: Double
 
-    @inlinable static var MAX_VERTEX_ATTRIBS: GLenum { 0x8869 }
+    @ReadonlyAttribute
+    public var ideographicBaseline: Double
+}
 
-    @inlinable static var MAX_VERTEX_UNIFORM_VECTORS: GLenum { 0x8DFB }
+public class TextTrack: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrack].function }
 
-    @inlinable static var MAX_VARYING_VECTORS: GLenum { 0x8DFC }
+    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)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4D }
+    @ReadonlyAttribute
+    public var kind: TextTrackKind
 
-    @inlinable static var MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4C }
+    @ReadonlyAttribute
+    public var label: String
 
-    @inlinable static var MAX_TEXTURE_IMAGE_UNITS: GLenum { 0x8872 }
+    @ReadonlyAttribute
+    public var language: String
 
-    @inlinable static var MAX_FRAGMENT_UNIFORM_VECTORS: GLenum { 0x8DFD }
+    @ReadonlyAttribute
+    public var id: String
 
-    @inlinable static var SHADER_TYPE: GLenum { 0x8B4F }
+    @ReadonlyAttribute
+    public var inBandMetadataTrackDispatchType: String
 
-    @inlinable static var DELETE_STATUS: GLenum { 0x8B80 }
+    @ReadWriteAttribute
+    public var mode: TextTrackMode
 
-    @inlinable static var LINK_STATUS: GLenum { 0x8B82 }
+    @ReadonlyAttribute
+    public var cues: TextTrackCueList?
 
-    @inlinable static var VALIDATE_STATUS: GLenum { 0x8B83 }
+    @ReadonlyAttribute
+    public var activeCues: TextTrackCueList?
 
-    @inlinable static var ATTACHED_SHADERS: GLenum { 0x8B85 }
+    @inlinable public func addCue(cue: TextTrackCue) {
+        let this = jsObject
+        _ = this[Strings.addCue].function!(this: this, arguments: [cue.jsValue])
+    }
 
-    @inlinable static var ACTIVE_UNIFORMS: GLenum { 0x8B86 }
+    @inlinable public func removeCue(cue: TextTrackCue) {
+        let this = jsObject
+        _ = this[Strings.removeCue].function!(this: this, arguments: [cue.jsValue])
+    }
 
-    @inlinable static var ACTIVE_ATTRIBUTES: GLenum { 0x8B89 }
+    @ClosureAttribute1Optional
+    public var oncuechange: EventHandler
+}
 
-    @inlinable static var SHADING_LANGUAGE_VERSION: GLenum { 0x8B8C }
+public class TextTrackCue: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCue].function }
 
-    @inlinable static var CURRENT_PROGRAM: GLenum { 0x8B8D }
+    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)
+    }
 
-    @inlinable static var NEVER: GLenum { 0x0200 }
+    @ReadonlyAttribute
+    public var track: TextTrack?
 
-    @inlinable static var LESS: GLenum { 0x0201 }
+    @ReadWriteAttribute
+    public var id: String
 
-    @inlinable static var EQUAL: GLenum { 0x0202 }
+    @ReadWriteAttribute
+    public var startTime: Double
 
-    @inlinable static var LEQUAL: GLenum { 0x0203 }
+    @ReadWriteAttribute
+    public var endTime: Double
 
-    @inlinable static var GREATER: GLenum { 0x0204 }
+    @ReadWriteAttribute
+    public var pauseOnExit: Bool
 
-    @inlinable static var NOTEQUAL: GLenum { 0x0205 }
+    @ClosureAttribute1Optional
+    public var onenter: EventHandler
 
-    @inlinable static var GEQUAL: GLenum { 0x0206 }
+    @ClosureAttribute1Optional
+    public var onexit: EventHandler
+}
 
-    @inlinable static var ALWAYS: GLenum { 0x0207 }
+public class TextTrackCueList: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackCueList].function }
 
-    @inlinable static var KEEP: GLenum { 0x1E00 }
+    public let jsObject: JSObject
 
-    @inlinable static var REPLACE: GLenum { 0x1E01 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var INCR: GLenum { 0x1E02 }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var DECR: GLenum { 0x1E03 }
+    @inlinable public subscript(key: Int) -> TextTrackCue {
+        jsObject[key].fromJSValue()!
+    }
 
-    @inlinable static var INVERT: GLenum { 0x150A }
+    @inlinable public func getCueById(id: String) -> TextTrackCue? {
+        let this = jsObject
+        return this[Strings.getCueById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+    }
+}
 
-    @inlinable static var INCR_WRAP: GLenum { 0x8507 }
+public enum TextTrackKind: JSString, JSValueCompatible {
+    case subtitles = "subtitles"
+    case captions = "captions"
+    case descriptions = "descriptions"
+    case chapters = "chapters"
+    case metadata = "metadata"
 
-    @inlinable static var DECR_WRAP: GLenum { 0x8508 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var VENDOR: GLenum { 0x1F00 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var RENDERER: GLenum { 0x1F01 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var VERSION: GLenum { 0x1F02 }
+public class TextTrackList: EventTarget {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TextTrackList].function }
 
-    @inlinable static var NEAREST: GLenum { 0x2600 }
+    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)
+    }
 
-    @inlinable static var LINEAR: GLenum { 0x2601 }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var NEAREST_MIPMAP_NEAREST: GLenum { 0x2700 }
+    @inlinable public subscript(key: Int) -> TextTrack {
+        jsObject[key].fromJSValue()!
+    }
 
-    @inlinable static var LINEAR_MIPMAP_NEAREST: GLenum { 0x2701 }
+    @inlinable public func getTrackById(id: String) -> TextTrack? {
+        let this = jsObject
+        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var NEAREST_MIPMAP_LINEAR: GLenum { 0x2702 }
+    @ClosureAttribute1Optional
+    public var onchange: EventHandler
 
-    @inlinable static var LINEAR_MIPMAP_LINEAR: GLenum { 0x2703 }
+    @ClosureAttribute1Optional
+    public var onaddtrack: EventHandler
 
-    @inlinable static var TEXTURE_MAG_FILTER: GLenum { 0x2800 }
+    @ClosureAttribute1Optional
+    public var onremovetrack: EventHandler
+}
 
-    @inlinable static var TEXTURE_MIN_FILTER: GLenum { 0x2801 }
+public enum TextTrackMode: JSString, JSValueCompatible {
+    case disabled = "disabled"
+    case hidden = "hidden"
+    case showing = "showing"
 
-    @inlinable static var TEXTURE_WRAP_S: GLenum { 0x2802 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var TEXTURE_WRAP_T: GLenum { 0x2803 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var TEXTURE_2D: GLenum { 0x0DE1 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var TEXTURE: GLenum { 0x1702 }
+public class TimeRanges: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TimeRanges].function }
 
-    @inlinable static var TEXTURE_CUBE_MAP: GLenum { 0x8513 }
+    public let jsObject: JSObject
 
-    @inlinable static var TEXTURE_BINDING_CUBE_MAP: GLenum { 0x8514 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_X: GLenum { 0x8515 }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum { 0x8516 }
+    @inlinable public func start(index: UInt32) -> Double {
+        let this = jsObject
+        return this[Strings.start].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum { 0x8517 }
+    @inlinable public func end(index: UInt32) -> Double {
+        let this = jsObject
+        return this[Strings.end].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+    }
+}
 
-    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum { 0x8518 }
+public class TrackEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.TrackEvent].function }
 
-    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum { 0x8519 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _track = ReadonlyAttribute(jsObject: jsObject, name: Strings.track)
+        super.init(unsafelyWrapping: jsObject)
+    }
 
-    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum { 0x851A }
+    @inlinable public convenience init(type: String, eventInitDict: TrackEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var MAX_CUBE_MAP_TEXTURE_SIZE: GLenum { 0x851C }
+    @ReadonlyAttribute
+    public var track: AudioTrack_or_TextTrack_or_VideoTrack?
+}
 
-    @inlinable static var TEXTURE0: GLenum { 0x84C0 }
+public class TrackEventInit: BridgedDictionary {
+    public convenience init(track: AudioTrack_or_TextTrack_or_VideoTrack?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.track] = track.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var TEXTURE1: GLenum { 0x84C1 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _track = ReadWriteAttribute(jsObject: object, name: Strings.track)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var TEXTURE2: GLenum { 0x84C2 }
+    @ReadWriteAttribute
+    public var track: AudioTrack_or_TextTrack_or_VideoTrack?
+}
 
-    @inlinable static var TEXTURE3: GLenum { 0x84C3 }
+public class TransformStream: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStream].function }
 
-    @inlinable static var TEXTURE4: GLenum { 0x84C4 }
+    public let jsObject: JSObject
 
-    @inlinable static var TEXTURE5: GLenum { 0x84C5 }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _readable = ReadonlyAttribute(jsObject: jsObject, name: Strings.readable)
+        _writable = ReadonlyAttribute(jsObject: jsObject, name: Strings.writable)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var TEXTURE6: GLenum { 0x84C6 }
+    @inlinable public convenience init(transformer: JSObject? = nil, writableStrategy: QueuingStrategy? = nil, readableStrategy: QueuingStrategy? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [transformer?.jsValue ?? .undefined, writableStrategy?.jsValue ?? .undefined, readableStrategy?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var TEXTURE7: GLenum { 0x84C7 }
+    @ReadonlyAttribute
+    public var readable: ReadableStream
 
-    @inlinable static var TEXTURE8: GLenum { 0x84C8 }
+    @ReadonlyAttribute
+    public var writable: WritableStream
+}
 
-    @inlinable static var TEXTURE9: GLenum { 0x84C9 }
+public class TransformStreamDefaultController: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TransformStreamDefaultController].function }
 
-    @inlinable static var TEXTURE10: GLenum { 0x84CA }
+    public let jsObject: JSObject
 
-    @inlinable static var TEXTURE11: GLenum { 0x84CB }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _desiredSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.desiredSize)
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var TEXTURE12: GLenum { 0x84CC }
+    @ReadonlyAttribute
+    public var desiredSize: Double?
 
-    @inlinable static var TEXTURE13: GLenum { 0x84CD }
+    @inlinable public func enqueue(chunk: JSValue? = nil) {
+        let this = jsObject
+        _ = this[Strings.enqueue].function!(this: this, arguments: [chunk?.jsValue ?? .undefined])
+    }
 
-    @inlinable static var TEXTURE14: GLenum { 0x84CE }
+    @inlinable public func error(reason: JSValue? = nil) {
+        let this = jsObject
+        _ = this[Strings.error].function!(this: this, arguments: [reason?.jsValue ?? .undefined])
+    }
 
-    @inlinable static var TEXTURE15: GLenum { 0x84CF }
+    @inlinable public func terminate() {
+        let this = jsObject
+        _ = this[Strings.terminate].function!(this: this, arguments: [])
+    }
+}
 
-    @inlinable static var TEXTURE16: GLenum { 0x84D0 }
+public class Transformer: BridgedDictionary {
+    public convenience init(start: @escaping TransformerStartCallback, transform: @escaping TransformerTransformCallback, flush: @escaping TransformerFlushCallback, readableType: JSValue, writableType: JSValue) {
+        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.readableType] = readableType.jsValue
+        object[Strings.writableType] = writableType.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var TEXTURE17: GLenum { 0x84D1 }
+    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)
+    }
 
-    @inlinable static var TEXTURE18: GLenum { 0x84D2 }
+    @ClosureAttribute1
+    public var start: TransformerStartCallback
 
-    @inlinable static var TEXTURE19: GLenum { 0x84D3 }
+    @ClosureAttribute2
+    public var transform: TransformerTransformCallback
 
-    @inlinable static var TEXTURE20: GLenum { 0x84D4 }
+    @ClosureAttribute1
+    public var flush: TransformerFlushCallback
 
-    @inlinable static var TEXTURE21: GLenum { 0x84D5 }
+    @ReadWriteAttribute
+    public var readableType: JSValue
 
-    @inlinable static var TEXTURE22: GLenum { 0x84D6 }
+    @ReadWriteAttribute
+    public var writableType: JSValue
+}
 
-    @inlinable static var TEXTURE23: GLenum { 0x84D7 }
+public class TreeWalker: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.TreeWalker].function }
 
-    @inlinable static var TEXTURE24: GLenum { 0x84D8 }
+    public let jsObject: JSObject
 
-    @inlinable static var TEXTURE25: GLenum { 0x84D9 }
+    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
+    }
 
-    @inlinable static var TEXTURE26: GLenum { 0x84DA }
+    @ReadonlyAttribute
+    public var root: Node
 
-    @inlinable static var TEXTURE27: GLenum { 0x84DB }
+    @ReadonlyAttribute
+    public var whatToShow: UInt32
 
-    @inlinable static var TEXTURE28: GLenum { 0x84DC }
+    // XXX: member 'filter' is ignored
 
-    @inlinable static var TEXTURE29: GLenum { 0x84DD }
+    @ReadWriteAttribute
+    public var currentNode: Node
 
-    @inlinable static var TEXTURE30: GLenum { 0x84DE }
+    @inlinable public func parentNode() -> Node? {
+        let this = jsObject
+        return this[Strings.parentNode].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var TEXTURE31: GLenum { 0x84DF }
+    @inlinable public func firstChild() -> Node? {
+        let this = jsObject
+        return this[Strings.firstChild].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var ACTIVE_TEXTURE: GLenum { 0x84E0 }
+    @inlinable public func lastChild() -> Node? {
+        let this = jsObject
+        return this[Strings.lastChild].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var REPEAT: GLenum { 0x2901 }
+    @inlinable public func previousSibling() -> Node? {
+        let this = jsObject
+        return this[Strings.previousSibling].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var CLAMP_TO_EDGE: GLenum { 0x812F }
+    @inlinable public func nextSibling() -> Node? {
+        let this = jsObject
+        return this[Strings.nextSibling].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var MIRRORED_REPEAT: GLenum { 0x8370 }
+    @inlinable public func previousNode() -> Node? {
+        let this = jsObject
+        return this[Strings.previousNode].function!(this: this, arguments: []).fromJSValue()!
+    }
 
-    @inlinable static var FLOAT_VEC2: GLenum { 0x8B50 }
+    @inlinable public func nextNode() -> Node? {
+        let this = jsObject
+        return this[Strings.nextNode].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
 
-    @inlinable static var FLOAT_VEC3: GLenum { 0x8B51 }
+public typealias CanvasFilterInput = [String: JSValue]
 
-    @inlinable static var FLOAT_VEC4: GLenum { 0x8B52 }
+public typealias EventHandler = EventHandlerNonNull?
+public typealias OnErrorEventHandler = OnErrorEventHandlerNonNull?
+public typealias OnBeforeUnloadEventHandler = OnBeforeUnloadEventHandlerNonNull?
 
-    @inlinable static var INT_VEC2: GLenum { 0x8B53 }
+public typealias DOMHighResTimeStamp = Double
+public typealias EpochTimeStamp = UInt64
 
-    @inlinable static var INT_VEC3: GLenum { 0x8B54 }
+public typealias MutationCallback = ([MutationRecord], MutationObserver) -> Void
+public typealias BlobCallback = (Blob?) -> Void
+public typealias FunctionStringCallback = (String) -> Void
+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 UnderlyingSourceStartCallback = (ReadableStreamController) -> JSValue
+public typealias UnderlyingSourcePullCallback = (ReadableStreamController) -> JSPromise
+public typealias UnderlyingSourceCancelCallback = (JSValue) -> JSPromise
+public typealias UnderlyingSinkStartCallback = (WritableStreamDefaultController) -> JSValue
+public typealias UnderlyingSinkWriteCallback = (JSValue, WritableStreamDefaultController) -> JSPromise
+public typealias UnderlyingSinkCloseCallback = () -> JSPromise
+public typealias UnderlyingSinkAbortCallback = (JSValue) -> JSPromise
+public typealias TransformerStartCallback = (TransformStreamDefaultController) -> JSValue
+public typealias TransformerFlushCallback = (TransformStreamDefaultController) -> JSPromise
+public typealias TransformerTransformCallback = (JSValue, TransformStreamDefaultController) -> 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 class UIEvent: Event {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.UIEvent].function }
 
-    @inlinable static var INT_VEC4: GLenum { 0x8B55 }
+    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)
+    }
 
-    @inlinable static var BOOL: GLenum { 0x8B56 }
+    @inlinable public convenience init(type: String, eventInitDict: UIEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
 
-    @inlinable static var BOOL_VEC2: GLenum { 0x8B57 }
+    @ReadonlyAttribute
+    public var view: Window?
 
-    @inlinable static var BOOL_VEC3: GLenum { 0x8B58 }
+    @ReadonlyAttribute
+    public var detail: Int32
 
-    @inlinable static var BOOL_VEC4: GLenum { 0x8B59 }
+    @inlinable 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: [typeArg.jsValue, bubblesArg?.jsValue ?? .undefined, cancelableArg?.jsValue ?? .undefined, viewArg?.jsValue ?? .undefined, detailArg?.jsValue ?? .undefined])
+    }
 
-    @inlinable static var FLOAT_MAT2: GLenum { 0x8B5A }
+    @ReadonlyAttribute
+    public var which: UInt32
+}
 
-    @inlinable static var FLOAT_MAT3: GLenum { 0x8B5B }
+public class UIEventInit: BridgedDictionary {
+    public convenience init(view: Window?, detail: Int32, which: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.view] = view.jsValue
+        object[Strings.detail] = detail.jsValue
+        object[Strings.which] = which.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var FLOAT_MAT4: GLenum { 0x8B5C }
+    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)
+    }
 
-    @inlinable static var SAMPLER_2D: GLenum { 0x8B5E }
+    @ReadWriteAttribute
+    public var view: Window?
 
-    @inlinable static var SAMPLER_CUBE: GLenum { 0x8B60 }
+    @ReadWriteAttribute
+    public var detail: Int32
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_ENABLED: GLenum { 0x8622 }
+    @ReadWriteAttribute
+    public var which: UInt32
+}
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_SIZE: GLenum { 0x8623 }
+public class ULongRange: BridgedDictionary {
+    public convenience init(max: UInt32, min: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.max] = max.jsValue
+        object[Strings.min] = min.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_STRIDE: GLenum { 0x8624 }
+    public required init(unsafelyWrapping object: JSObject) {
+        _max = ReadWriteAttribute(jsObject: object, name: Strings.max)
+        _min = ReadWriteAttribute(jsObject: object, name: Strings.min)
+        super.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_TYPE: GLenum { 0x8625 }
+    @ReadWriteAttribute
+    public var max: UInt32
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum { 0x886A }
+    @ReadWriteAttribute
+    public var min: UInt32
+}
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_POINTER: GLenum { 0x8645 }
+public class URL: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URL].function }
 
-    @inlinable static var VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum { 0x889F }
+    public let jsObject: JSObject
 
-    @inlinable static var IMPLEMENTATION_COLOR_READ_TYPE: GLenum { 0x8B9A }
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
 
-    @inlinable static var IMPLEMENTATION_COLOR_READ_FORMAT: GLenum { 0x8B9B }
+    @inlinable public static func createObjectURL(obj: Blob_or_MediaSource) -> String {
+        let this = constructor!
+        return this[Strings.createObjectURL].function!(this: this, arguments: [obj.jsValue]).fromJSValue()!
+    }
 
-    @inlinable static var COMPILE_STATUS: GLenum { 0x8B81 }
+    @inlinable public static func revokeObjectURL(url: String) {
+        let this = constructor!
+        _ = this[Strings.revokeObjectURL].function!(this: this, arguments: [url.jsValue])
+    }
+}
 
-    @inlinable static var LOW_FLOAT: GLenum { 0x8DF0 }
+public class UnderlyingSink: BridgedDictionary {
+    public convenience init(start: @escaping UnderlyingSinkStartCallback, write: @escaping UnderlyingSinkWriteCallback, close: @escaping UnderlyingSinkCloseCallback, abort: @escaping UnderlyingSinkAbortCallback, type: JSValue) {
+        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] = type.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var MEDIUM_FLOAT: GLenum { 0x8DF1 }
+    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)
+    }
 
-    @inlinable static var HIGH_FLOAT: GLenum { 0x8DF2 }
+    @ClosureAttribute1
+    public var start: UnderlyingSinkStartCallback
 
-    @inlinable static var LOW_INT: GLenum { 0x8DF3 }
+    @ClosureAttribute2
+    public var write: UnderlyingSinkWriteCallback
 
-    @inlinable static var MEDIUM_INT: GLenum { 0x8DF4 }
+    @ClosureAttribute0
+    public var close: UnderlyingSinkCloseCallback
 
-    @inlinable static var HIGH_INT: GLenum { 0x8DF5 }
+    @ClosureAttribute1
+    public var abort: UnderlyingSinkAbortCallback
 
-    @inlinable static var FRAMEBUFFER: GLenum { 0x8D40 }
+    @ReadWriteAttribute
+    public var type: JSValue
+}
 
-    @inlinable static var RENDERBUFFER: GLenum { 0x8D41 }
+public class UnderlyingSource: BridgedDictionary {
+    public convenience init(start: @escaping UnderlyingSourceStartCallback, pull: @escaping UnderlyingSourcePullCallback, cancel: @escaping UnderlyingSourceCancelCallback, type: ReadableStreamType, autoAllocateChunkSize: UInt64) {
+        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.type] = type.jsValue
+        object[Strings.autoAllocateChunkSize] = autoAllocateChunkSize.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var RGBA4: GLenum { 0x8056 }
+    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)
+    }
 
-    @inlinable static var RGB5_A1: GLenum { 0x8057 }
+    @ClosureAttribute1
+    public var start: UnderlyingSourceStartCallback
 
-    @inlinable static var RGB565: GLenum { 0x8D62 }
+    @ClosureAttribute1
+    public var pull: UnderlyingSourcePullCallback
 
-    @inlinable static var DEPTH_COMPONENT16: GLenum { 0x81A5 }
+    @ClosureAttribute1
+    public var cancel: UnderlyingSourceCancelCallback
 
-    @inlinable static var STENCIL_INDEX8: GLenum { 0x8D48 }
+    @ReadWriteAttribute
+    public var type: ReadableStreamType
 
-    @inlinable static var DEPTH_STENCIL: GLenum { 0x84F9 }
+    @ReadWriteAttribute
+    public var autoAllocateChunkSize: UInt64
+}
 
-    @inlinable static var RENDERBUFFER_WIDTH: GLenum { 0x8D42 }
+public class ValidityState: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.ValidityState].function }
 
-    @inlinable static var RENDERBUFFER_HEIGHT: GLenum { 0x8D43 }
+    public let jsObject: JSObject
 
-    @inlinable static var RENDERBUFFER_INTERNAL_FORMAT: GLenum { 0x8D44 }
+    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
+    }
 
-    @inlinable static var RENDERBUFFER_RED_SIZE: GLenum { 0x8D50 }
+    @ReadonlyAttribute
+    public var valueMissing: Bool
 
-    @inlinable static var RENDERBUFFER_GREEN_SIZE: GLenum { 0x8D51 }
+    @ReadonlyAttribute
+    public var typeMismatch: Bool
 
-    @inlinable static var RENDERBUFFER_BLUE_SIZE: GLenum { 0x8D52 }
+    @ReadonlyAttribute
+    public var patternMismatch: Bool
 
-    @inlinable static var RENDERBUFFER_ALPHA_SIZE: GLenum { 0x8D53 }
+    @ReadonlyAttribute
+    public var tooLong: Bool
 
-    @inlinable static var RENDERBUFFER_DEPTH_SIZE: GLenum { 0x8D54 }
+    @ReadonlyAttribute
+    public var tooShort: Bool
 
-    @inlinable static var RENDERBUFFER_STENCIL_SIZE: GLenum { 0x8D55 }
+    @ReadonlyAttribute
+    public var rangeUnderflow: Bool
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum { 0x8CD0 }
+    @ReadonlyAttribute
+    public var rangeOverflow: Bool
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum { 0x8CD1 }
+    @ReadonlyAttribute
+    public var stepMismatch: Bool
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum { 0x8CD2 }
+    @ReadonlyAttribute
+    public var badInput: Bool
 
-    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum { 0x8CD3 }
+    @ReadonlyAttribute
+    public var customError: Bool
 
-    @inlinable static var COLOR_ATTACHMENT0: GLenum { 0x8CE0 }
+    @ReadonlyAttribute
+    public var valid: Bool
+}
 
-    @inlinable static var DEPTH_ATTACHMENT: GLenum { 0x8D00 }
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.valueMissing] = valueMissing.jsValue
+        object[Strings.typeMismatch] = typeMismatch.jsValue
+        object[Strings.patternMismatch] = patternMismatch.jsValue
+        object[Strings.tooLong] = tooLong.jsValue
+        object[Strings.tooShort] = tooShort.jsValue
+        object[Strings.rangeUnderflow] = rangeUnderflow.jsValue
+        object[Strings.rangeOverflow] = rangeOverflow.jsValue
+        object[Strings.stepMismatch] = stepMismatch.jsValue
+        object[Strings.badInput] = badInput.jsValue
+        object[Strings.customError] = customError.jsValue
+        self.init(unsafelyWrapping: object)
+    }
 
-    @inlinable static var STENCIL_ATTACHMENT: GLenum { 0x8D20 }
+    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)
+    }
 
-    @inlinable static var DEPTH_STENCIL_ATTACHMENT: GLenum { 0x821A }
+    @ReadWriteAttribute
+    public var valueMissing: Bool
 
-    @inlinable static var NONE: GLenum { 0 }
+    @ReadWriteAttribute
+    public var typeMismatch: Bool
 
-    @inlinable static var FRAMEBUFFER_COMPLETE: GLenum { 0x8CD5 }
+    @ReadWriteAttribute
+    public var patternMismatch: Bool
 
-    @inlinable static var FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum { 0x8CD6 }
+    @ReadWriteAttribute
+    public var tooLong: Bool
 
-    @inlinable static var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum { 0x8CD7 }
+    @ReadWriteAttribute
+    public var tooShort: Bool
 
-    @inlinable static var FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum { 0x8CD9 }
+    @ReadWriteAttribute
+    public var rangeUnderflow: Bool
 
-    @inlinable static var FRAMEBUFFER_UNSUPPORTED: GLenum { 0x8CDD }
+    @ReadWriteAttribute
+    public var rangeOverflow: Bool
 
-    @inlinable static var FRAMEBUFFER_BINDING: GLenum { 0x8CA6 }
+    @ReadWriteAttribute
+    public var stepMismatch: Bool
 
-    @inlinable static var RENDERBUFFER_BINDING: GLenum { 0x8CA7 }
+    @ReadWriteAttribute
+    public var badInput: Bool
 
-    @inlinable static var MAX_RENDERBUFFER_SIZE: GLenum { 0x84E8 }
+    @ReadWriteAttribute
+    public var customError: Bool
+}
 
-    @inlinable static var INVALID_FRAMEBUFFER_OPERATION: GLenum { 0x0506 }
+public enum VideoColorPrimaries: JSString, JSValueCompatible {
+    case bt709 = "bt709"
+    case bt470bg = "bt470bg"
+    case smpte170m = "smpte170m"
 
-    @inlinable static var UNPACK_FLIP_Y_WEBGL: GLenum { 0x9240 }
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
+    }
 
-    @inlinable static var UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum { 0x9241 }
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
 
-    @inlinable static var CONTEXT_LOST_WEBGL: GLenum { 0x9242 }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable static var UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum { 0x9243 }
+public class VideoColorSpace: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoColorSpace].function }
 
-    @inlinable static var BROWSER_DEFAULT_WEBGL: GLenum { 0x9244 }
+    public let jsObject: JSObject
 
-    @inlinable var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! }
+    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
+    }
 
-    @inlinable var drawingBufferWidth: GLsizei { jsObject[Strings.drawingBufferWidth].fromJSValue()! }
+    @inlinable public convenience init(init: VideoColorSpaceInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    }
 
-    @inlinable var drawingBufferHeight: GLsizei { jsObject[Strings.drawingBufferHeight].fromJSValue()! }
+    @ReadonlyAttribute
+    public var primaries: VideoColorPrimaries?
 
-    @inlinable func getContextAttributes() -> WebGLContextAttributes? {
-        let this = jsObject
-        return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var transfer: VideoTransferCharacteristics?
 
-    @inlinable func isContextLost() -> Bool {
-        let this = jsObject
-        return this[Strings.isContextLost].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var matrix: VideoMatrixCoefficients?
 
-    @inlinable func getSupportedExtensions() -> [String]? {
-        let this = jsObject
-        return this[Strings.getSupportedExtensions].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadonlyAttribute
+    public var fullRange: Bool?
 
-    @inlinable func getExtension(name: String) -> JSObject? {
+    @inlinable public func toJSON() -> VideoColorSpaceInit {
         let this = jsObject
-        return this[Strings.getExtension].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
     }
+}
 
-    @inlinable func activeTexture(texture: GLenum) {
-        let this = jsObject
-        _ = this[Strings.activeTexture].function!(this: this, arguments: [texture.jsValue])
+public class VideoColorSpaceInit: BridgedDictionary {
+    public convenience init(primaries: VideoColorPrimaries, transfer: VideoTransferCharacteristics, matrix: VideoMatrixCoefficients, fullRange: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.primaries] = primaries.jsValue
+        object[Strings.transfer] = transfer.jsValue
+        object[Strings.matrix] = matrix.jsValue
+        object[Strings.fullRange] = fullRange.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func attachShader(program: WebGLProgram, shader: WebGLShader) {
-        let this = jsObject
-        _ = this[Strings.attachShader].function!(this: this, arguments: [program.jsValue, shader.jsValue])
+    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)
     }
 
-    @inlinable func bindAttribLocation(program: WebGLProgram, index: GLuint, name: String) {
-        let this = jsObject
-        _ = this[Strings.bindAttribLocation].function!(this: this, arguments: [program.jsValue, index.jsValue, name.jsValue])
-    }
+    @ReadWriteAttribute
+    public var primaries: VideoColorPrimaries
 
-    @inlinable func bindBuffer(target: GLenum, buffer: WebGLBuffer?) {
-        let this = jsObject
-        _ = this[Strings.bindBuffer].function!(this: this, arguments: [target.jsValue, buffer.jsValue])
-    }
+    @ReadWriteAttribute
+    public var transfer: VideoTransferCharacteristics
 
-    @inlinable func bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer?) {
-        let this = jsObject
-        _ = this[Strings.bindFramebuffer].function!(this: this, arguments: [target.jsValue, framebuffer.jsValue])
-    }
+    @ReadWriteAttribute
+    public var matrix: VideoMatrixCoefficients
 
-    @inlinable func bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer?) {
-        let this = jsObject
-        _ = this[Strings.bindRenderbuffer].function!(this: this, arguments: [target.jsValue, renderbuffer.jsValue])
-    }
+    @ReadWriteAttribute
+    public var fullRange: Bool
+}
 
-    @inlinable func bindTexture(target: GLenum, texture: WebGLTexture?) {
-        let this = jsObject
-        _ = this[Strings.bindTexture].function!(this: this, arguments: [target.jsValue, texture.jsValue])
-    }
+public class VideoDecoder: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoDecoder].function }
 
-    @inlinable func blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
-        let this = jsObject
-        _ = this[Strings.blendColor].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
-    }
+    public let jsObject: JSObject
 
-    @inlinable func blendEquation(mode: GLenum) {
-        let this = jsObject
-        _ = this[Strings.blendEquation].function!(this: this, arguments: [mode.jsValue])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
+        _decodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.decodeQueueSize)
+        self.jsObject = jsObject
     }
 
-    @inlinable func blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum) {
-        let this = jsObject
-        _ = this[Strings.blendEquationSeparate].function!(this: this, arguments: [modeRGB.jsValue, modeAlpha.jsValue])
+    @inlinable public convenience init(init: VideoDecoderInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
-    @inlinable func blendFunc(sfactor: GLenum, dfactor: GLenum) {
-        let this = jsObject
-        _ = this[Strings.blendFunc].function!(this: this, arguments: [sfactor.jsValue, dfactor.jsValue])
-    }
+    @ReadonlyAttribute
+    public var state: CodecState
 
-    @inlinable func blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {
-        let this = jsObject
-        _ = this[Strings.blendFuncSeparate].function!(this: this, arguments: [srcRGB.jsValue, dstRGB.jsValue, srcAlpha.jsValue, dstAlpha.jsValue])
-    }
+    @ReadonlyAttribute
+    public var decodeQueueSize: UInt32
 
-    @inlinable func checkFramebufferStatus(target: GLenum) -> GLenum {
+    @inlinable public func configure(config: VideoDecoderConfig) {
         let this = jsObject
-        return this[Strings.checkFramebufferStatus].function!(this: this, arguments: [target.jsValue]).fromJSValue()!
+        _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue])
     }
 
-    @inlinable func clear(mask: GLbitfield) {
+    @inlinable public func decode(chunk: EncodedVideoChunk) {
         let this = jsObject
-        _ = this[Strings.clear].function!(this: this, arguments: [mask.jsValue])
+        _ = this[Strings.decode].function!(this: this, arguments: [chunk.jsValue])
     }
 
-    @inlinable func clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
+    @inlinable public func flush() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.clearColor].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
+        return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func clearDepth(depth: GLclampf) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func flush() async throws {
         let this = jsObject
-        _ = this[Strings.clearDepth].function!(this: this, arguments: [depth.jsValue])
+        let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    @inlinable func clearStencil(s: GLint) {
+    @inlinable public func reset() {
         let this = jsObject
-        _ = this[Strings.clearStencil].function!(this: this, arguments: [s.jsValue])
+        _ = this[Strings.reset].function!(this: this, arguments: [])
     }
 
-    @inlinable func colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) {
+    @inlinable public func close() {
         let this = jsObject
-        _ = this[Strings.colorMask].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 
-    @inlinable func compileShader(shader: WebGLShader) {
-        let this = jsObject
-        _ = this[Strings.compileShader].function!(this: this, arguments: [shader.jsValue])
+    @inlinable public static func isConfigSupported(config: VideoDecoderConfig) -> JSPromise {
+        let this = constructor!
+        return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
     }
 
-    @inlinable func copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = x.jsValue
-        let _arg4 = y.jsValue
-        let _arg5 = width.jsValue
-        let _arg6 = height.jsValue
-        let _arg7 = border.jsValue
-        let this = jsObject
-        _ = this[Strings.copyTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public static func isConfigSupported(config: VideoDecoderConfig) async throws -> VideoDecoderSupport {
+        let this = constructor!
+        let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
+}
 
-    @inlinable func copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = x.jsValue
-        let _arg5 = y.jsValue
-        let _arg6 = width.jsValue
-        let _arg7 = height.jsValue
-        let this = jsObject
-        _ = this[Strings.copyTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+public class VideoDecoderConfig: BridgedDictionary {
+    public convenience init(codec: String, description: BufferSource, codedWidth: UInt32, codedHeight: UInt32, displayAspectWidth: UInt32, displayAspectHeight: UInt32, colorSpace: VideoColorSpaceInit, hardwareAcceleration: HardwareAcceleration, optimizeForLatency: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.codec] = codec.jsValue
+        object[Strings.description] = description.jsValue
+        object[Strings.codedWidth] = codedWidth.jsValue
+        object[Strings.codedHeight] = codedHeight.jsValue
+        object[Strings.displayAspectWidth] = displayAspectWidth.jsValue
+        object[Strings.displayAspectHeight] = displayAspectHeight.jsValue
+        object[Strings.colorSpace] = colorSpace.jsValue
+        object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue
+        object[Strings.optimizeForLatency] = optimizeForLatency.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func createBuffer() -> WebGLBuffer? {
-        let this = jsObject
-        return this[Strings.createBuffer].function!(this: this, arguments: []).fromJSValue()!
+    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)
     }
 
-    @inlinable func createFramebuffer() -> WebGLFramebuffer? {
-        let this = jsObject
-        return this[Strings.createFramebuffer].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var codec: String
 
-    @inlinable func createProgram() -> WebGLProgram? {
-        let this = jsObject
-        return this[Strings.createProgram].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var description: BufferSource
 
-    @inlinable func createRenderbuffer() -> WebGLRenderbuffer? {
-        let this = jsObject
-        return this[Strings.createRenderbuffer].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var codedWidth: UInt32
 
-    @inlinable func createShader(type: GLenum) -> WebGLShader? {
-        let this = jsObject
-        return this[Strings.createShader].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var codedHeight: UInt32
 
-    @inlinable func createTexture() -> WebGLTexture? {
-        let this = jsObject
-        return this[Strings.createTexture].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var displayAspectWidth: UInt32
 
-    @inlinable func cullFace(mode: GLenum) {
-        let this = jsObject
-        _ = this[Strings.cullFace].function!(this: this, arguments: [mode.jsValue])
-    }
+    @ReadWriteAttribute
+    public var displayAspectHeight: UInt32
 
-    @inlinable func deleteBuffer(buffer: WebGLBuffer?) {
-        let this = jsObject
-        _ = this[Strings.deleteBuffer].function!(this: this, arguments: [buffer.jsValue])
-    }
+    @ReadWriteAttribute
+    public var colorSpace: VideoColorSpaceInit
 
-    @inlinable func deleteFramebuffer(framebuffer: WebGLFramebuffer?) {
-        let this = jsObject
-        _ = this[Strings.deleteFramebuffer].function!(this: this, arguments: [framebuffer.jsValue])
-    }
+    @ReadWriteAttribute
+    public var hardwareAcceleration: HardwareAcceleration
 
-    @inlinable func deleteProgram(program: WebGLProgram?) {
-        let this = jsObject
-        _ = this[Strings.deleteProgram].function!(this: this, arguments: [program.jsValue])
-    }
+    @ReadWriteAttribute
+    public var optimizeForLatency: Bool
+}
 
-    @inlinable func deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) {
-        let this = jsObject
-        _ = this[Strings.deleteRenderbuffer].function!(this: this, arguments: [renderbuffer.jsValue])
+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)
     }
 
-    @inlinable func deleteShader(shader: WebGLShader?) {
-        let this = jsObject
-        _ = this[Strings.deleteShader].function!(this: this, arguments: [shader.jsValue])
+    public required init(unsafelyWrapping object: JSObject) {
+        _output = ClosureAttribute1Void(jsObject: object, name: Strings.output)
+        _error = ClosureAttribute1Void(jsObject: object, name: Strings.error)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func deleteTexture(texture: WebGLTexture?) {
-        let this = jsObject
-        _ = this[Strings.deleteTexture].function!(this: this, arguments: [texture.jsValue])
-    }
+    @ClosureAttribute1Void
+    public var output: VideoFrameOutputCallback
 
-    @inlinable func depthFunc(func: GLenum) {
-        let this = jsObject
-        _ = this[Strings.depthFunc].function!(this: this, arguments: [`func`.jsValue])
-    }
+    @ClosureAttribute1Void
+    public var error: WebCodecsErrorCallback
+}
 
-    @inlinable func depthMask(flag: GLboolean) {
-        let this = jsObject
-        _ = this[Strings.depthMask].function!(this: this, arguments: [flag.jsValue])
+public class VideoDecoderSupport: BridgedDictionary {
+    public convenience init(supported: Bool, config: VideoDecoderConfig) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.supported] = supported.jsValue
+        object[Strings.config] = config.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func depthRange(zNear: GLclampf, zFar: GLclampf) {
-        let this = jsObject
-        _ = this[Strings.depthRange].function!(this: this, arguments: [zNear.jsValue, zFar.jsValue])
+    public required init(unsafelyWrapping object: JSObject) {
+        _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported)
+        _config = ReadWriteAttribute(jsObject: object, name: Strings.config)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func detachShader(program: WebGLProgram, shader: WebGLShader) {
-        let this = jsObject
-        _ = this[Strings.detachShader].function!(this: this, arguments: [program.jsValue, shader.jsValue])
-    }
+    @ReadWriteAttribute
+    public var supported: Bool
 
-    @inlinable func disable(cap: GLenum) {
-        let this = jsObject
-        _ = this[Strings.disable].function!(this: this, arguments: [cap.jsValue])
-    }
+    @ReadWriteAttribute
+    public var config: VideoDecoderConfig
+}
 
-    @inlinable func disableVertexAttribArray(index: GLuint) {
-        let this = jsObject
-        _ = this[Strings.disableVertexAttribArray].function!(this: this, arguments: [index.jsValue])
-    }
+public class VideoEncoder: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoEncoder].function }
 
-    @inlinable func drawArrays(mode: GLenum, first: GLint, count: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.drawArrays].function!(this: this, arguments: [mode.jsValue, first.jsValue, count.jsValue])
-    }
+    public let jsObject: JSObject
 
-    @inlinable func drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) {
-        let this = jsObject
-        _ = this[Strings.drawElements].function!(this: this, arguments: [mode.jsValue, count.jsValue, type.jsValue, offset.jsValue])
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
+        _encodeQueueSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.encodeQueueSize)
+        self.jsObject = jsObject
     }
 
-    @inlinable func enable(cap: GLenum) {
-        let this = jsObject
-        _ = this[Strings.enable].function!(this: this, arguments: [cap.jsValue])
+    @inlinable public convenience init(init: VideoEncoderInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`.jsValue]))
     }
 
-    @inlinable func enableVertexAttribArray(index: GLuint) {
-        let this = jsObject
-        _ = this[Strings.enableVertexAttribArray].function!(this: this, arguments: [index.jsValue])
-    }
+    @ReadonlyAttribute
+    public var state: CodecState
 
-    @inlinable func finish() {
-        let this = jsObject
-        _ = this[Strings.finish].function!(this: this, arguments: [])
-    }
+    @ReadonlyAttribute
+    public var encodeQueueSize: UInt32
 
-    @inlinable func flush() {
+    @inlinable public func configure(config: VideoEncoderConfig) {
         let this = jsObject
-        _ = this[Strings.flush].function!(this: this, arguments: [])
+        _ = this[Strings.configure].function!(this: this, arguments: [config.jsValue])
     }
 
-    @inlinable func framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer?) {
+    @inlinable public func encode(frame: VideoFrame, options: VideoEncoderEncodeOptions? = nil) {
         let this = jsObject
-        _ = this[Strings.framebufferRenderbuffer].function!(this: this, arguments: [target.jsValue, attachment.jsValue, renderbuffertarget.jsValue, renderbuffer.jsValue])
+        _ = this[Strings.encode].function!(this: this, arguments: [frame.jsValue, options?.jsValue ?? .undefined])
     }
 
-    @inlinable func framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture?, level: GLint) {
+    @inlinable public func flush() -> JSPromise {
         let this = jsObject
-        _ = this[Strings.framebufferTexture2D].function!(this: this, arguments: [target.jsValue, attachment.jsValue, textarget.jsValue, texture.jsValue, level.jsValue])
+        return this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func frontFace(mode: GLenum) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func flush() async throws {
         let this = jsObject
-        _ = this[Strings.frontFace].function!(this: this, arguments: [mode.jsValue])
+        let _promise: JSPromise = this[Strings.flush].function!(this: this, arguments: []).fromJSValue()!
+        _ = try await _promise.value
     }
 
-    @inlinable func generateMipmap(target: GLenum) {
+    @inlinable public func reset() {
         let this = jsObject
-        _ = this[Strings.generateMipmap].function!(this: this, arguments: [target.jsValue])
+        _ = this[Strings.reset].function!(this: this, arguments: [])
     }
 
-    @inlinable func getActiveAttrib(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
+    @inlinable public func close() {
         let this = jsObject
-        return this[Strings.getActiveAttrib].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
 
-    @inlinable func getActiveUniform(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
-        let this = jsObject
-        return this[Strings.getActiveUniform].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
+    @inlinable public static func isConfigSupported(config: VideoEncoderConfig) -> JSPromise {
+        let this = constructor!
+        return this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
     }
 
-    @inlinable func getAttachedShaders(program: WebGLProgram) -> [WebGLShader]? {
-        let this = jsObject
-        return this[Strings.getAttachedShaders].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public static func isConfigSupported(config: VideoEncoderConfig) async throws -> VideoEncoderSupport {
+        let this = constructor!
+        let _promise: JSPromise = this[Strings.isConfigSupported].function!(this: this, arguments: [config.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
+}
 
-    @inlinable func getAttribLocation(program: WebGLProgram, name: String) -> GLint {
-        let this = jsObject
-        return this[Strings.getAttribLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
+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: BitrateMode, latencyMode: LatencyMode) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.codec] = codec.jsValue
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.displayWidth] = displayWidth.jsValue
+        object[Strings.displayHeight] = displayHeight.jsValue
+        object[Strings.bitrate] = bitrate.jsValue
+        object[Strings.framerate] = framerate.jsValue
+        object[Strings.hardwareAcceleration] = hardwareAcceleration.jsValue
+        object[Strings.alpha] = alpha.jsValue
+        object[Strings.scalabilityMode] = scalabilityMode.jsValue
+        object[Strings.bitrateMode] = bitrateMode.jsValue
+        object[Strings.latencyMode] = latencyMode.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getBufferParameter(target: GLenum, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getBufferParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
+    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)
     }
 
-    @inlinable func getParameter(pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getParameter].function!(this: this, arguments: [pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var codec: String
 
-    @inlinable func getError() -> GLenum {
-        let this = jsObject
-        return this[Strings.getError].function!(this: this, arguments: []).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var width: UInt32
 
-    @inlinable func getFramebufferAttachmentParameter(target: GLenum, attachment: GLenum, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getFramebufferAttachmentParameter].function!(this: this, arguments: [target.jsValue, attachment.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var height: UInt32
 
-    @inlinable func getProgramParameter(program: WebGLProgram, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getProgramParameter].function!(this: this, arguments: [program.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var displayWidth: UInt32
 
-    @inlinable func getProgramInfoLog(program: WebGLProgram) -> String? {
-        let this = jsObject
-        return this[Strings.getProgramInfoLog].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var displayHeight: UInt32
 
-    @inlinable func getRenderbufferParameter(target: GLenum, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getRenderbufferParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var bitrate: UInt64
 
-    @inlinable func getShaderParameter(shader: WebGLShader, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getShaderParameter].function!(this: this, arguments: [shader.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var framerate: Double
 
-    @inlinable func getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum) -> WebGLShaderPrecisionFormat? {
-        let this = jsObject
-        return this[Strings.getShaderPrecisionFormat].function!(this: this, arguments: [shadertype.jsValue, precisiontype.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var hardwareAcceleration: HardwareAcceleration
 
-    @inlinable func getShaderInfoLog(shader: WebGLShader) -> String? {
-        let this = jsObject
-        return this[Strings.getShaderInfoLog].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var alpha: AlphaOption
 
-    @inlinable func getShaderSource(shader: WebGLShader) -> String? {
-        let this = jsObject
-        return this[Strings.getShaderSource].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var scalabilityMode: String
 
-    @inlinable func getTexParameter(target: GLenum, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getTexParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var bitrateMode: BitrateMode
 
-    @inlinable func getUniform(program: WebGLProgram, location: WebGLUniformLocation) -> JSValue {
-        let this = jsObject
-        return this[Strings.getUniform].function!(this: this, arguments: [program.jsValue, location.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var latencyMode: LatencyMode
+}
 
-    @inlinable func getUniformLocation(program: WebGLProgram, name: String) -> WebGLUniformLocation? {
-        let this = jsObject
-        return this[Strings.getUniformLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
+public class VideoEncoderEncodeOptions: BridgedDictionary {
+    public convenience init(keyFrame: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.keyFrame] = keyFrame.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getVertexAttrib(index: GLuint, pname: GLenum) -> JSValue {
-        let this = jsObject
-        return this[Strings.getVertexAttrib].function!(this: this, arguments: [index.jsValue, pname.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _keyFrame = ReadWriteAttribute(jsObject: object, name: Strings.keyFrame)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func getVertexAttribOffset(index: GLuint, pname: GLenum) -> GLintptr {
-        let this = jsObject
-        return this[Strings.getVertexAttribOffset].function!(this: this, arguments: [index.jsValue, pname.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var keyFrame: Bool
+}
 
-    @inlinable func hint(target: GLenum, mode: GLenum) {
-        let this = jsObject
-        _ = this[Strings.hint].function!(this: this, arguments: [target.jsValue, mode.jsValue])
+public class VideoEncoderInit: BridgedDictionary {
+    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)
     }
 
-    @inlinable func isBuffer(buffer: WebGLBuffer?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isBuffer].function!(this: this, arguments: [buffer.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _output = ClosureAttribute2Void(jsObject: object, name: Strings.output)
+        _error = ClosureAttribute1Void(jsObject: object, name: Strings.error)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func isEnabled(cap: GLenum) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isEnabled].function!(this: this, arguments: [cap.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute2Void
+    public var output: EncodedVideoChunkOutputCallback
 
-    @inlinable func isFramebuffer(framebuffer: WebGLFramebuffer?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isFramebuffer].function!(this: this, arguments: [framebuffer.jsValue]).fromJSValue()!
-    }
+    @ClosureAttribute1Void
+    public var error: WebCodecsErrorCallback
+}
 
-    @inlinable func isProgram(program: WebGLProgram?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isProgram].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
+public class VideoEncoderSupport: BridgedDictionary {
+    public convenience init(supported: Bool, config: VideoEncoderConfig) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.supported] = supported.jsValue
+        object[Strings.config] = config.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func isRenderbuffer(renderbuffer: WebGLRenderbuffer?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isRenderbuffer].function!(this: this, arguments: [renderbuffer.jsValue]).fromJSValue()!
+    public required init(unsafelyWrapping object: JSObject) {
+        _supported = ReadWriteAttribute(jsObject: object, name: Strings.supported)
+        _config = ReadWriteAttribute(jsObject: object, name: Strings.config)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func isShader(shader: WebGLShader?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isShader].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var supported: Bool
 
-    @inlinable func isTexture(texture: WebGLTexture?) -> GLboolean {
-        let this = jsObject
-        return this[Strings.isTexture].function!(this: this, arguments: [texture.jsValue]).fromJSValue()!
-    }
+    @ReadWriteAttribute
+    public var config: VideoEncoderConfig
+}
 
-    @inlinable func lineWidth(width: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.lineWidth].function!(this: this, arguments: [width.jsValue])
-    }
+public enum VideoFacingModeEnum: JSString, JSValueCompatible {
+    case user = "user"
+    case environment = "environment"
+    case left = "left"
+    case right = "right"
 
-    @inlinable func linkProgram(program: WebGLProgram) {
-        let this = jsObject
-        _ = this[Strings.linkProgram].function!(this: this, arguments: [program.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func pixelStorei(pname: GLenum, param: GLint) {
-        let this = jsObject
-        _ = this[Strings.pixelStorei].function!(this: this, arguments: [pname.jsValue, param.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func polygonOffset(factor: GLfloat, units: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.polygonOffset].function!(this: this, arguments: [factor.jsValue, units.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.renderbufferStorage].function!(this: this, arguments: [target.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
-    }
+public class VideoFrame: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.VideoFrame].function }
 
-    @inlinable func sampleCoverage(value: GLclampf, invert: GLboolean) {
-        let this = jsObject
-        _ = this[Strings.sampleCoverage].function!(this: this, arguments: [value.jsValue, invert.jsValue])
-    }
+    public let jsObject: JSObject
 
-    @inlinable func scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.scissor].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
+    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 func shaderSource(shader: WebGLShader, source: String) {
-        let this = jsObject
-        _ = this[Strings.shaderSource].function!(this: this, arguments: [shader.jsValue, source.jsValue])
+    @inlinable public convenience init(image: CanvasImageSource, init: VideoFrameInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [image.jsValue, `init`?.jsValue ?? .undefined]))
     }
 
-    @inlinable func stencilFunc(func: GLenum, ref: GLint, mask: GLuint) {
-        let this = jsObject
-        _ = this[Strings.stencilFunc].function!(this: this, arguments: [`func`.jsValue, ref.jsValue, mask.jsValue])
+    @inlinable public convenience init(data: BufferSource, init: VideoFrameBufferInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [data.jsValue, `init`.jsValue]))
     }
 
-    @inlinable func stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint) {
-        let this = jsObject
-        _ = this[Strings.stencilFuncSeparate].function!(this: this, arguments: [face.jsValue, `func`.jsValue, ref.jsValue, mask.jsValue])
-    }
+    @ReadonlyAttribute
+    public var format: VideoPixelFormat?
 
-    @inlinable func stencilMask(mask: GLuint) {
-        let this = jsObject
-        _ = this[Strings.stencilMask].function!(this: this, arguments: [mask.jsValue])
-    }
+    @ReadonlyAttribute
+    public var codedWidth: UInt32
 
-    @inlinable func stencilMaskSeparate(face: GLenum, mask: GLuint) {
-        let this = jsObject
-        _ = this[Strings.stencilMaskSeparate].function!(this: this, arguments: [face.jsValue, mask.jsValue])
-    }
+    @ReadonlyAttribute
+    public var codedHeight: UInt32
 
-    @inlinable func stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum) {
-        let this = jsObject
-        _ = this[Strings.stencilOp].function!(this: this, arguments: [fail.jsValue, zfail.jsValue, zpass.jsValue])
-    }
+    @ReadonlyAttribute
+    public var codedRect: DOMRectReadOnly?
 
-    @inlinable func stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum) {
-        let this = jsObject
-        _ = this[Strings.stencilOpSeparate].function!(this: this, arguments: [face.jsValue, fail.jsValue, zfail.jsValue, zpass.jsValue])
-    }
+    @ReadonlyAttribute
+    public var visibleRect: DOMRectReadOnly?
 
-    @inlinable func texParameterf(target: GLenum, pname: GLenum, param: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.texParameterf].function!(this: this, arguments: [target.jsValue, pname.jsValue, param.jsValue])
-    }
+    @ReadonlyAttribute
+    public var displayWidth: UInt32
 
-    @inlinable func texParameteri(target: GLenum, pname: GLenum, param: GLint) {
-        let this = jsObject
-        _ = this[Strings.texParameteri].function!(this: this, arguments: [target.jsValue, pname.jsValue, param.jsValue])
-    }
+    @ReadonlyAttribute
+    public var displayHeight: UInt32
 
-    @inlinable func uniform1f(location: WebGLUniformLocation?, x: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.uniform1f].function!(this: this, arguments: [location.jsValue, x.jsValue])
-    }
+    @ReadonlyAttribute
+    public var duration: UInt64?
 
-    @inlinable func uniform2f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.uniform2f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue])
-    }
+    @ReadonlyAttribute
+    public var timestamp: Int64?
 
-    @inlinable func uniform3f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.uniform3f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue])
-    }
+    @ReadonlyAttribute
+    public var colorSpace: VideoColorSpace
 
-    @inlinable func uniform4f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) {
+    @inlinable public func allocationSize(options: VideoFrameCopyToOptions? = nil) -> UInt32 {
         let this = jsObject
-        _ = this[Strings.uniform4f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+        return this[Strings.allocationSize].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func uniform1i(location: WebGLUniformLocation?, x: GLint) {
+    @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) -> JSPromise {
         let this = jsObject
-        _ = this[Strings.uniform1i].function!(this: this, arguments: [location.jsValue, x.jsValue])
+        return this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable func uniform2i(location: WebGLUniformLocation?, x: GLint, y: GLint) {
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func copyTo(destination: BufferSource, options: VideoFrameCopyToOptions? = nil) async throws -> [PlaneLayout] {
         let this = jsObject
-        _ = this[Strings.uniform2i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue])
+        let _promise: JSPromise = this[Strings.copyTo].function!(this: this, arguments: [destination.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
     }
 
-    @inlinable func uniform3i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint) {
+    @inlinable public func clone() -> Self {
         let this = jsObject
-        _ = this[Strings.uniform3i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue])
+        return this[Strings.clone].function!(this: this, arguments: []).fromJSValue()!
     }
 
-    @inlinable func uniform4i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint, w: GLint) {
+    @inlinable public func close() {
         let this = jsObject
-        _ = this[Strings.uniform4i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+        _ = this[Strings.close].function!(this: this, arguments: [])
     }
+}
 
-    @inlinable func useProgram(program: WebGLProgram?) {
-        let this = jsObject
-        _ = this[Strings.useProgram].function!(this: this, arguments: [program.jsValue])
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.codedWidth] = codedWidth.jsValue
+        object[Strings.codedHeight] = codedHeight.jsValue
+        object[Strings.timestamp] = timestamp.jsValue
+        object[Strings.duration] = duration.jsValue
+        object[Strings.layout] = layout.jsValue
+        object[Strings.visibleRect] = visibleRect.jsValue
+        object[Strings.displayWidth] = displayWidth.jsValue
+        object[Strings.displayHeight] = displayHeight.jsValue
+        object[Strings.colorSpace] = colorSpace.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func validateProgram(program: WebGLProgram) {
-        let this = jsObject
-        _ = this[Strings.validateProgram].function!(this: this, arguments: [program.jsValue])
+    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)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func vertexAttrib1f(index: GLuint, x: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib1f].function!(this: this, arguments: [index.jsValue, x.jsValue])
-    }
+    @ReadWriteAttribute
+    public var format: VideoPixelFormat
 
-    @inlinable func vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib2f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue])
-    }
+    @ReadWriteAttribute
+    public var codedWidth: UInt32
 
-    @inlinable func vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib3f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue])
-    }
+    @ReadWriteAttribute
+    public var codedHeight: UInt32
 
-    @inlinable func vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib4f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
-    }
+    @ReadWriteAttribute
+    public var timestamp: Int64
 
-    @inlinable func vertexAttrib1fv(index: GLuint, values: Float32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib1fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
-    }
+    @ReadWriteAttribute
+    public var duration: UInt64
 
-    @inlinable func vertexAttrib2fv(index: GLuint, values: Float32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib2fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
-    }
+    @ReadWriteAttribute
+    public var layout: [PlaneLayout]
 
-    @inlinable func vertexAttrib3fv(index: GLuint, values: Float32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib3fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
-    }
+    @ReadWriteAttribute
+    public var visibleRect: DOMRectInit
 
-    @inlinable func vertexAttrib4fv(index: GLuint, values: Float32List) {
-        let this = jsObject
-        _ = this[Strings.vertexAttrib4fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
-    }
+    @ReadWriteAttribute
+    public var displayWidth: UInt32
 
-    @inlinable func vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr) {
-        let _arg0 = index.jsValue
-        let _arg1 = size.jsValue
-        let _arg2 = type.jsValue
-        let _arg3 = normalized.jsValue
-        let _arg4 = stride.jsValue
-        let _arg5 = offset.jsValue
-        let this = jsObject
-        _ = this[Strings.vertexAttribPointer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
-    }
+    @ReadWriteAttribute
+    public var displayHeight: UInt32
 
-    @inlinable func viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
-        let this = jsObject
-        _ = this[Strings.viewport].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
-    }
+    @ReadWriteAttribute
+    public var colorSpace: VideoColorSpaceInit
 }
 
-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: [target.jsValue, size.jsValue, usage.jsValue])
-    }
-
-    @inlinable func bufferData(target: GLenum, data: BufferSource?, usage: GLenum) {
-        let this = jsObject
-        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, data.jsValue, usage.jsValue])
+public class VideoFrameCopyToOptions: BridgedDictionary {
+    public convenience init(rect: DOMRectInit, layout: [PlaneLayout]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.rect] = rect.jsValue
+        object[Strings.layout] = layout.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource) {
-        let this = jsObject
-        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, offset.jsValue, data.jsValue])
+    public required init(unsafelyWrapping object: JSObject) {
+        _rect = ReadWriteAttribute(jsObject: object, name: Strings.rect)
+        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = data.jsValue
-        let this = jsObject
-        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
-    }
+    @ReadWriteAttribute
+    public var rect: DOMRectInit
 
-    @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = data.jsValue
-        let this = jsObject
-        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
-    }
+    @ReadWriteAttribute
+    public var layout: [PlaneLayout]
+}
 
-    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
-        let _arg0 = x.jsValue
-        let _arg1 = y.jsValue
-        let _arg2 = width.jsValue
-        let _arg3 = height.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = pixels.jsValue
-        let this = jsObject
-        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+public class VideoFrameInit: BridgedDictionary {
+    public convenience init(duration: UInt64, timestamp: Int64, alpha: AlphaOption, visibleRect: DOMRectInit, displayWidth: UInt32, displayHeight: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.duration] = duration.jsValue
+        object[Strings.timestamp] = timestamp.jsValue
+        object[Strings.alpha] = alpha.jsValue
+        object[Strings.visibleRect] = visibleRect.jsValue
+        object[Strings.displayWidth] = displayWidth.jsValue
+        object[Strings.displayHeight] = displayHeight.jsValue
+        self.init(unsafelyWrapping: object)
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = width.jsValue
-        let _arg4 = height.jsValue
-        let _arg5 = border.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pixels.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    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)
+        super.init(unsafelyWrapping: object)
     }
 
-    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = internalformat.jsValue
-        let _arg3 = format.jsValue
-        let _arg4 = type.jsValue
-        let _arg5 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
-    }
+    @ReadWriteAttribute
+    public var duration: UInt64
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = width.jsValue
-        let _arg5 = height.jsValue
-        let _arg6 = format.jsValue
-        let _arg7 = type.jsValue
-        let _arg8 = pixels.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
-    }
+    @ReadWriteAttribute
+    public var timestamp: Int64
 
-    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
-        let _arg0 = target.jsValue
-        let _arg1 = level.jsValue
-        let _arg2 = xoffset.jsValue
-        let _arg3 = yoffset.jsValue
-        let _arg4 = format.jsValue
-        let _arg5 = type.jsValue
-        let _arg6 = source.jsValue
-        let this = jsObject
-        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
-    }
+    @ReadWriteAttribute
+    public var alpha: AlphaOption
 
-    @inlinable func uniform1fv(location: WebGLUniformLocation?, v: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniform1fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+    @ReadWriteAttribute
+    public var visibleRect: DOMRectInit
 
-    @inlinable func uniform2fv(location: WebGLUniformLocation?, v: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniform2fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+    @ReadWriteAttribute
+    public var displayWidth: UInt32
 
-    @inlinable func uniform3fv(location: WebGLUniformLocation?, v: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniform3fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+    @ReadWriteAttribute
+    public var displayHeight: UInt32
+}
 
-    @inlinable func uniform4fv(location: WebGLUniformLocation?, v: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniform4fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+public enum VideoMatrixCoefficients: JSString, JSValueCompatible {
+    case rgb = "rgb"
+    case bt709 = "bt709"
+    case bt470bg = "bt470bg"
+    case smpte170m = "smpte170m"
 
-    @inlinable func uniform1iv(location: WebGLUniformLocation?, v: Int32List) {
-        let this = jsObject
-        _ = this[Strings.uniform1iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func uniform2iv(location: WebGLUniformLocation?, v: Int32List) {
-        let this = jsObject
-        _ = this[Strings.uniform2iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func uniform3iv(location: WebGLUniformLocation?, v: Int32List) {
-        let this = jsObject
-        _ = this[Strings.uniform3iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
 
-    @inlinable func uniform4iv(location: WebGLUniformLocation?, v: Int32List) {
-        let this = jsObject
-        _ = this[Strings.uniform4iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
-    }
+public enum VideoPixelFormat: JSString, JSValueCompatible {
+    case i420 = "I420"
+    case i420A = "I420A"
+    case i422 = "I422"
+    case i444 = "I444"
+    case nV12 = "NV12"
+    case rGBA = "RGBA"
+    case rGBX = "RGBX"
+    case bGRA = "BGRA"
+    case bGRX = "BGRX"
 
-    @inlinable func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniformMatrix2fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @inlinable func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniformMatrix3fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
 
-    @inlinable func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
-        let this = jsObject
-        _ = this[Strings.uniformMatrix4fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
-    }
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class WebGLSampler: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLSampler].function }
+public enum VideoResizeModeEnum: JSString, JSValueCompatible {
+    case none = "none"
+    case cropAndScale = "crop-and-scale"
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
-}
-
-public class WebGLShader: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLShader].function }
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class WebGLShaderPrecisionFormat: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLShaderPrecisionFormat].function }
+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) {
-        _rangeMin = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeMin)
-        _rangeMax = ReadonlyAttribute(jsObject: jsObject, name: Strings.rangeMax)
-        _precision = ReadonlyAttribute(jsObject: jsObject, name: Strings.precision)
+        _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)
         self.jsObject = jsObject
     }
 
     @ReadonlyAttribute
-    public var rangeMin: GLint
+    public var id: String
 
     @ReadonlyAttribute
-    public var rangeMax: GLint
+    public var kind: String
 
     @ReadonlyAttribute
-    public var precision: GLint
-}
-
-public class WebGLSync: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLSync].function }
-
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        super.init(unsafelyWrapping: jsObject)
-    }
-}
-
-public class WebGLTexture: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLTexture].function }
-
-    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)
-    }
-}
-
-public class WebGLUniformLocation: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLUniformLocation].function }
+    public var label: String
 
-    public let jsObject: JSObject
+    @ReadonlyAttribute
+    public var language: String
 
-    public required init(unsafelyWrapping jsObject: JSObject) {
-        self.jsObject = jsObject
-    }
+    @ReadWriteAttribute
+    public var selected: Bool
 }
 
-public class WebGLVertexArrayObject: WebGLObject {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLVertexArrayObject].function }
+public class VideoTrackList: EventTarget {
+    @inlinable override public 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 class WebSocket: EventTarget {
-    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebSocket].function }
+    @ReadonlyAttribute
+    public var length: UInt32
 
-    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 subscript(key: Int) -> VideoTrack {
+        jsObject[key].fromJSValue()!
     }
 
-    @inlinable public convenience init(url: String, protocols: String_or_seq_of_String? = nil) {
-        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, protocols?.jsValue ?? .undefined]))
+    @inlinable public func getTrackById(id: String) -> VideoTrack? {
+        let this = jsObject
+        return this[Strings.getTrackById].function!(this: this, arguments: [id.jsValue]).fromJSValue()!
     }
 
     @ReadonlyAttribute
-    public var url: String
-
-    public static let CONNECTING: UInt16 = 0
-
-    public static let OPEN: UInt16 = 1
-
-    public static let CLOSING: UInt16 = 2
-
-    public static let CLOSED: UInt16 = 3
-
-    @ReadonlyAttribute
-    public var readyState: UInt16
-
-    @ReadonlyAttribute
-    public var bufferedAmount: UInt64
+    public var selectedIndex: Int32
 
     @ClosureAttribute1Optional
-    public var onopen: EventHandler
+    public var onchange: EventHandler
 
     @ClosureAttribute1Optional
-    public var onerror: EventHandler
+    public var onaddtrack: EventHandler
 
     @ClosureAttribute1Optional
-    public var onclose: EventHandler
-
-    @ReadonlyAttribute
-    public var extensions: String
+    public var onremovetrack: EventHandler
+}
 
-    @ReadonlyAttribute
-    public var `protocol`: String
+public enum VideoTransferCharacteristics: JSString, JSValueCompatible {
+    case bt709 = "bt709"
+    case smpte170m = "smpte170m"
+    case iec6196621 = "iec61966-2-1"
 
-    @inlinable public func close(code: UInt16? = nil, reason: String? = nil) {
-        let this = jsObject
-        _ = this[Strings.close].function!(this: this, arguments: [code?.jsValue ?? .undefined, reason?.jsValue ?? .undefined])
+    @inlinable public static func construct(from jsValue: JSValue) -> Self? {
+        if let string = jsValue.jsString {
+            return Self(rawValue: string)
+        }
+        return nil
     }
 
-    @ClosureAttribute1Optional
-    public var onmessage: EventHandler
-
-    @ReadWriteAttribute
-    public var binaryType: BinaryType
-
-    @inlinable public func send(data: BlobPart) {
-        let this = jsObject
-        _ = this[Strings.send].function!(this: this, arguments: [data.jsValue])
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
     }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
 public class WheelEvent: MouseEvent {
@@ -26178,18 +16614,6 @@ public extension WindowLocalStorage {
 
 public protocol WindowOrWorkerGlobalScope: JSBridgedClass {}
 public extension WindowOrWorkerGlobalScope {
-    @inlinable func fetch(input: RequestInfo, init: RequestInit? = nil) -> JSPromise {
-        let this = jsObject
-        return this[Strings.fetch].function!(this: this, arguments: [input.jsValue, `init`?.jsValue ?? .undefined]).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: [input.jsValue, `init`?.jsValue ?? .undefined]).fromJSValue()!
-        return try await _promise.value.fromJSValue()!
-    }
-
     @inlinable var origin: String { jsObject[Strings.origin].fromJSValue()! }
 
     @inlinable var isSecureContext: Bool { jsObject[Strings.isSecureContext].fromJSValue()! }
@@ -26274,7 +16698,19 @@ public extension WindowOrWorkerGlobalScope {
         return this[Strings.structuredClone].function!(this: this, arguments: [value.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
     }
 
-    @inlinable var performance: Performance { jsObject[Strings.performance].fromJSValue()! }
+    @inlinable var performance: Performance { jsObject[Strings.performance].fromJSValue()! }
+
+    @inlinable func fetch(input: RequestInfo, init: RequestInit? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.fetch].function!(this: this, arguments: [input.jsValue, `init`?.jsValue ?? .undefined]).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: [input.jsValue, `init`?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
 
     @inlinable var caches: CacheStorage { jsObject[Strings.caches].fromJSValue()! }
 }
@@ -26379,8 +16815,8 @@ public enum WorkerType: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-public class Worklet: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.Worklet].function }
+open class Worklet: JSBridgedClass {
+    @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.Worklet].function }
 
     public let jsObject: JSObject
 
@@ -26894,107 +17330,6 @@ public class XSLTProcessor: JSBridgedClass {
     }
 }
 
-public enum console {
-    @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!
-        _ = this[Strings.assert].function!(this: this, arguments: [condition?.jsValue ?? .undefined] + data.map(\.jsValue))
-    }
-
-    @inlinable public static func clear() {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.clear].function!(this: this, arguments: [])
-    }
-
-    @inlinable public static func debug(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.debug].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func error(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.error].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func info(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.info].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func log(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.log].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func table(tabularData: JSValue? = nil, properties: [String]? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.table].function!(this: this, arguments: [tabularData?.jsValue ?? .undefined, properties?.jsValue ?? .undefined])
-    }
-
-    @inlinable public static func trace(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.trace].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func warn(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.warn].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func dir(item: JSValue? = nil, options: JSObject? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.dir].function!(this: this, arguments: [item?.jsValue ?? .undefined, options?.jsValue ?? .undefined])
-    }
-
-    @inlinable public static func dirxml(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.dirxml].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func count(label: String? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.count].function!(this: this, arguments: [label?.jsValue ?? .undefined])
-    }
-
-    @inlinable public static func countReset(label: String? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.countReset].function!(this: this, arguments: [label?.jsValue ?? .undefined])
-    }
-
-    @inlinable public static func group(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.group].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func groupCollapsed(data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.groupCollapsed].function!(this: this, arguments: data.map(\.jsValue))
-    }
-
-    @inlinable public static func groupEnd() {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.groupEnd].function!(this: this, arguments: [])
-    }
-
-    @inlinable public static func time(label: String? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.time].function!(this: this, arguments: [label?.jsValue ?? .undefined])
-    }
-
-    @inlinable public static func timeLog(label: String? = nil, data: JSValue...) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.timeLog].function!(this: this, arguments: [label?.jsValue ?? .undefined] + data.map(\.jsValue))
-    }
-
-    @inlinable public static func timeEnd(label: String? = nil) {
-        let this = JSObject.global[Strings.console].object!
-        _ = this[Strings.timeEnd].function!(this: this, arguments: [label?.jsValue ?? .undefined])
-    }
-}
-
 /* variadic generics please */
 @propertyWrapper public final class ClosureAttribute0<ReturnType>
     where ReturnType: JSValueCompatible
@@ -27382,70 +17717,6 @@ public enum console {
     }
 }
 
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
     where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
 {
@@ -27516,32 +17787,14 @@ public enum console {
     @usableFromInline static let AbortSignal: JSString = "AbortSignal"
     @usableFromInline static let AbstractRange: JSString = "AbstractRange"
     @usableFromInline static let AddSearchProvider: JSString = "AddSearchProvider"
-    @usableFromInline static let AnalyserNode: JSString = "AnalyserNode"
-    @usableFromInline static let Animation: JSString = "Animation"
-    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
-    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
     @usableFromInline static let Attr: JSString = "Attr"
-    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
-    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
-    @usableFromInline static let AudioContext: JSString = "AudioContext"
     @usableFromInline static let AudioData: JSString = "AudioData"
     @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
-    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
     @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
-    @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 AudioTrack: JSString = "AudioTrack"
     @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
-    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
-    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
     @usableFromInline static let BarProp: JSString = "BarProp"
-    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
     @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
-    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
     @usableFromInline static let Blob: JSString = "Blob"
     @usableFromInline static let BlobEvent: JSString = "BlobEvent"
     @usableFromInline static let BroadcastChannel: JSString = "BroadcastChannel"
@@ -27555,14 +17808,9 @@ public enum console {
     @usableFromInline static let CanvasPattern: JSString = "CanvasPattern"
     @usableFromInline static let CanvasRenderingContext2D: JSString = "CanvasRenderingContext2D"
     @usableFromInline static let CaretPosition: JSString = "CaretPosition"
-    @usableFromInline static let ChannelMergerNode: JSString = "ChannelMergerNode"
-    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
     @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
     @usableFromInline static let Comment: JSString = "Comment"
     @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
-    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
-    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
     @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
     @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
     @usableFromInline static let CustomEvent: JSString = "CustomEvent"
@@ -27583,13 +17831,10 @@ public enum console {
     @usableFromInline static let DataTransfer: JSString = "DataTransfer"
     @usableFromInline static let DataTransferItem: JSString = "DataTransferItem"
     @usableFromInline static let DataTransferItemList: JSString = "DataTransferItemList"
-    @usableFromInline static let DelayNode: JSString = "DelayNode"
     @usableFromInline static let Document: JSString = "Document"
     @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
-    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
     @usableFromInline static let DocumentType: JSString = "DocumentType"
     @usableFromInline static let DragEvent: JSString = "DragEvent"
-    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
     @usableFromInline static let Element: JSString = "Element"
     @usableFromInline static let ElementInternals: JSString = "ElementInternals"
     @usableFromInline static let EncodedAudioChunk: JSString = "EncodedAudioChunk"
@@ -27605,43 +17850,6 @@ public enum console {
     @usableFromInline static let FocusEvent: JSString = "FocusEvent"
     @usableFromInline static let FormData: JSString = "FormData"
     @usableFromInline static let FormDataEvent: JSString = "FormDataEvent"
-    @usableFromInline static let GPU: JSString = "GPU"
-    @usableFromInline static let GPUAdapter: JSString = "GPUAdapter"
-    @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 GPUExternalTexture: JSString = "GPUExternalTexture"
-    @usableFromInline static let GPUMapMode: JSString = "GPUMapMode"
-    @usableFromInline static let GPUOutOfMemoryError: JSString = "GPUOutOfMemoryError"
-    @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 GainNode: JSString = "GainNode"
     @usableFromInline static let HTMLAllCollection: JSString = "HTMLAllCollection"
     @usableFromInline static let HTMLAnchorElement: JSString = "HTMLAnchorElement"
     @usableFromInline static let HTMLAreaElement: JSString = "HTMLAreaElement"
@@ -27720,7 +17928,6 @@ public enum console {
     @usableFromInline static let HashChangeEvent: JSString = "HashChangeEvent"
     @usableFromInline static let Headers: JSString = "Headers"
     @usableFromInline static let History: JSString = "History"
-    @usableFromInline static let IIRFilterNode: JSString = "IIRFilterNode"
     @usableFromInline static let ImageBitmap: JSString = "ImageBitmap"
     @usableFromInline static let ImageBitmapRenderingContext: JSString = "ImageBitmapRenderingContext"
     @usableFromInline static let ImageData: JSString = "ImageData"
@@ -27731,21 +17938,16 @@ public enum console {
     @usableFromInline static let InputEvent: JSString = "InputEvent"
     @usableFromInline static let IsSearchProviderInstalled: JSString = "IsSearchProviderInstalled"
     @usableFromInline static let KeyboardEvent: JSString = "KeyboardEvent"
-    @usableFromInline static let KeyframeEffect: JSString = "KeyframeEffect"
     @usableFromInline static let Location: JSString = "Location"
     @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
     @usableFromInline static let MediaDevices: JSString = "MediaDevices"
-    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
     @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
     @usableFromInline static let MediaStream: JSString = "MediaStream"
-    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
-    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
     @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
-    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
     @usableFromInline static let MediaStreamTrackEvent: JSString = "MediaStreamTrackEvent"
     @usableFromInline static let MessageChannel: JSString = "MessageChannel"
     @usableFromInline static let MessageEvent: JSString = "MessageEvent"
@@ -27763,24 +17965,18 @@ public enum console {
     @usableFromInline static let NodeIterator: JSString = "NodeIterator"
     @usableFromInline static let NodeList: JSString = "NodeList"
     @usableFromInline static let Object: JSString = "Object"
-    @usableFromInline static let OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
-    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
     @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
     @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
-    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
     @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
     @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
-    @usableFromInline static let PannerNode: JSString = "PannerNode"
     @usableFromInline static let Path2D: JSString = "Path2D"
     @usableFromInline static let Performance: JSString = "Performance"
-    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
     @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 Q: JSString = "Q"
     @usableFromInline static let RadioNodeList: JSString = "RadioNodeList"
     @usableFromInline static let Range: JSString = "Range"
     @usableFromInline static let ReadableByteStreamController: JSString = "ReadableByteStreamController"
@@ -27792,14 +17988,12 @@ public enum console {
     @usableFromInline static let Request: JSString = "Request"
     @usableFromInline static let Response: JSString = "Response"
     @usableFromInline static let Screen: JSString = "Screen"
-    @usableFromInline static let ScriptProcessorNode: JSString = "ScriptProcessorNode"
     @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 StaticRange: JSString = "StaticRange"
-    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
     @usableFromInline static let Storage: JSString = "Storage"
     @usableFromInline static let StorageEvent: JSString = "StorageEvent"
     @usableFromInline static let SubmitEvent: JSString = "SubmitEvent"
@@ -27824,26 +18018,6 @@ public enum console {
     @usableFromInline static let VideoFrame: JSString = "VideoFrame"
     @usableFromInline static let VideoTrack: JSString = "VideoTrack"
     @usableFromInline static let VideoTrackList: JSString = "VideoTrackList"
-    @usableFromInline static let WaveShaperNode: JSString = "WaveShaperNode"
-    @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext"
-    @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 WebGLQuery: JSString = "WebGLQuery"
-    @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer"
-    @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext"
-    @usableFromInline static let WebGLSampler: JSString = "WebGLSampler"
-    @usableFromInline static let WebGLShader: JSString = "WebGLShader"
-    @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
-    @usableFromInline static let WebGLSync: JSString = "WebGLSync"
-    @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
-    @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback"
-    @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
-    @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
     @usableFromInline static let WheelEvent: JSString = "WheelEvent"
     @usableFromInline static let Window: JSString = "Window"
     @usableFromInline static let Worker: JSString = "Worker"
@@ -27866,14 +18040,12 @@ public enum console {
     @usableFromInline static let aborted: JSString = "aborted"
     @usableFromInline static let accept: JSString = "accept"
     @usableFromInline static let acceptCharset: JSString = "acceptCharset"
-    @usableFromInline static let access: JSString = "access"
     @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 activeTexture: JSString = "activeTexture"
     @usableFromInline static let actualBoundingBoxAscent: JSString = "actualBoundingBoxAscent"
     @usableFromInline static let actualBoundingBoxDescent: JSString = "actualBoundingBoxDescent"
     @usableFromInline static let actualBoundingBoxLeft: JSString = "actualBoundingBoxLeft"
@@ -27887,9 +18059,6 @@ public enum console {
     @usableFromInline static let addTextTrack: JSString = "addTextTrack"
     @usableFromInline static let addTrack: JSString = "addTrack"
     @usableFromInline static let addedNodes: JSString = "addedNodes"
-    @usableFromInline static let addressModeU: JSString = "addressModeU"
-    @usableFromInline static let addressModeV: JSString = "addressModeV"
-    @usableFromInline static let addressModeW: JSString = "addressModeW"
     @usableFromInline static let adoptNode: JSString = "adoptNode"
     @usableFromInline static let advanced: JSString = "advanced"
     @usableFromInline static let after: JSString = "after"
@@ -27902,15 +18071,12 @@ public enum console {
     @usableFromInline static let allowFullscreen: JSString = "allowFullscreen"
     @usableFromInline static let alpha: JSString = "alpha"
     @usableFromInline static let alphaSideData: JSString = "alphaSideData"
-    @usableFromInline static let alphaToCoverageEnabled: JSString = "alphaToCoverageEnabled"
     @usableFromInline static let alphabeticBaseline: JSString = "alphabeticBaseline"
     @usableFromInline static let alt: JSString = "alt"
     @usableFromInline static let altKey: JSString = "altKey"
     @usableFromInline static let ancestorOrigins: JSString = "ancestorOrigins"
     @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animate: JSString = "animate"
     @usableFromInline static let animated: JSString = "animated"
-    @usableFromInline static let antialias: JSString = "antialias"
     @usableFromInline static let appCodeName: JSString = "appCodeName"
     @usableFromInline static let appName: JSString = "appName"
     @usableFromInline static let appVersion: JSString = "appVersion"
@@ -27964,10 +18130,7 @@ public enum console {
     @usableFromInline static let ariaValueNow: JSString = "ariaValueNow"
     @usableFromInline static let ariaValueText: JSString = "ariaValueText"
     @usableFromInline static let arrayBuffer: JSString = "arrayBuffer"
-    @usableFromInline static let arrayLayerCount: JSString = "arrayLayerCount"
-    @usableFromInline static let arrayStride: JSString = "arrayStride"
     @usableFromInline static let `as`: JSString = "as"
-    @usableFromInline static let aspect: JSString = "aspect"
     @usableFromInline static let aspectRatio: JSString = "aspectRatio"
     @usableFromInline static let assert: JSString = "assert"
     @usableFromInline static let assign: JSString = "assign"
@@ -27977,9 +18140,7 @@ public enum console {
     @usableFromInline static let async: JSString = "async"
     @usableFromInline static let atob: JSString = "atob"
     @usableFromInline static let attachInternals: JSString = "attachInternals"
-    @usableFromInline static let attachShader: JSString = "attachShader"
     @usableFromInline static let attachShadow: JSString = "attachShadow"
-    @usableFromInline static let attack: JSString = "attack"
     @usableFromInline static let attrChange: JSString = "attrChange"
     @usableFromInline static let attrName: JSString = "attrName"
     @usableFromInline static let attributeFilter: JSString = "attributeFilter"
@@ -27991,13 +18152,11 @@ public enum console {
     @usableFromInline static let audioBitrateMode: JSString = "audioBitrateMode"
     @usableFromInline static let audioBitsPerSecond: JSString = "audioBitsPerSecond"
     @usableFromInline static let audioTracks: JSString = "audioTracks"
-    @usableFromInline static let audioWorklet: JSString = "audioWorklet"
     @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 automationRate: JSString = "automationRate"
     @usableFromInline static let autoplay: JSString = "autoplay"
     @usableFromInline static let availHeight: JSString = "availHeight"
     @usableFromInline static let availWidth: JSString = "availWidth"
@@ -28006,43 +18165,15 @@ public enum console {
     @usableFromInline static let back: JSString = "back"
     @usableFromInline static let background: JSString = "background"
     @usableFromInline static let badInput: JSString = "badInput"
-    @usableFromInline static let baseArrayLayer: JSString = "baseArrayLayer"
-    @usableFromInline static let baseLatency: JSString = "baseLatency"
-    @usableFromInline static let baseMipLevel: JSString = "baseMipLevel"
     @usableFromInline static let baseURI: JSString = "baseURI"
     @usableFromInline static let before: JSString = "before"
-    @usableFromInline static let beginComputePass: JSString = "beginComputePass"
-    @usableFromInline static let beginOcclusionQuery: JSString = "beginOcclusionQuery"
     @usableFromInline static let beginPath: JSString = "beginPath"
-    @usableFromInline static let beginQuery: JSString = "beginQuery"
-    @usableFromInline static let beginRenderPass: JSString = "beginRenderPass"
-    @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback"
     @usableFromInline static let behavior: JSString = "behavior"
     @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
     @usableFromInline static let bgColor: JSString = "bgColor"
-    @usableFromInline static let binaryType: JSString = "binaryType"
-    @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation"
-    @usableFromInline static let bindBuffer: JSString = "bindBuffer"
-    @usableFromInline static let bindBufferBase: JSString = "bindBufferBase"
-    @usableFromInline static let bindBufferRange: JSString = "bindBufferRange"
-    @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer"
-    @usableFromInline static let bindGroupLayouts: JSString = "bindGroupLayouts"
-    @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer"
-    @usableFromInline static let bindSampler: JSString = "bindSampler"
-    @usableFromInline static let bindTexture: JSString = "bindTexture"
-    @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback"
-    @usableFromInline static let bindVertexArray: JSString = "bindVertexArray"
-    @usableFromInline static let binding: JSString = "binding"
     @usableFromInline static let bitrate: JSString = "bitrate"
     @usableFromInline static let bitrateMode: JSString = "bitrateMode"
     @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
-    @usableFromInline static let blend: JSString = "blend"
-    @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 blitFramebuffer: JSString = "blitFramebuffer"
     @usableFromInline static let blob: JSString = "blob"
     @usableFromInline static let block: JSString = "block"
     @usableFromInline static let blocking: JSString = "blocking"
@@ -28055,28 +18186,19 @@ public enum console {
     @usableFromInline static let box: JSString = "box"
     @usableFromInline static let btoa: JSString = "btoa"
     @usableFromInline static let bubbles: JSString = "bubbles"
-    @usableFromInline static let buffer: JSString = "buffer"
-    @usableFromInline static let bufferData: JSString = "bufferData"
-    @usableFromInline static let bufferSize: JSString = "bufferSize"
-    @usableFromInline static let bufferSubData: JSString = "bufferSubData"
     @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
-    @usableFromInline static let buffers: JSString = "buffers"
     @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 bytesPerRow: JSString = "bytesPerRow"
     @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 canPlayType: JSString = "canPlayType"
     @usableFromInline static let cancel: JSString = "cancel"
-    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
     @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
     @usableFromInline static let cancelBubble: JSString = "cancelBubble"
-    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
     @usableFromInline static let cancelable: JSString = "cancelable"
     @usableFromInline static let canvas: JSString = "canvas"
     @usableFromInline static let caption: JSString = "caption"
@@ -28090,14 +18212,11 @@ public enum console {
     @usableFromInline static let ch: JSString = "ch"
     @usableFromInline static let chOff: JSString = "chOff"
     @usableFromInline static let channelCount: JSString = "channelCount"
-    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
-    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
     @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
     @usableFromInline static let checkValidity: JSString = "checkValidity"
     @usableFromInline static let checked: JSString = "checked"
     @usableFromInline static let childElementCount: JSString = "childElementCount"
@@ -28108,27 +18227,17 @@ public enum console {
     @usableFromInline static let classList: JSString = "classList"
     @usableFromInline static let className: JSString = "className"
     @usableFromInline static let clear: JSString = "clear"
-    @usableFromInline static let clearBuffer: JSString = "clearBuffer"
-    @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 clearColor: JSString = "clearColor"
     @usableFromInline static let clearData: JSString = "clearData"
-    @usableFromInline static let clearDepth: JSString = "clearDepth"
     @usableFromInline static let clearInterval: JSString = "clearInterval"
     @usableFromInline static let clearParameters: JSString = "clearParameters"
     @usableFromInline static let clearRect: JSString = "clearRect"
-    @usableFromInline static let clearStencil: JSString = "clearStencil"
     @usableFromInline static let clearTimeout: JSString = "clearTimeout"
-    @usableFromInline static let clearValue: JSString = "clearValue"
     @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 clientWaitSync: JSString = "clientWaitSync"
     @usableFromInline static let clientWidth: JSString = "clientWidth"
     @usableFromInline static let clientX: JSString = "clientX"
     @usableFromInline static let clientY: JSString = "clientY"
@@ -28153,46 +18262,26 @@ public enum console {
     @usableFromInline static let collapsed: JSString = "collapsed"
     @usableFromInline static let colno: JSString = "colno"
     @usableFromInline static let color: JSString = "color"
-    @usableFromInline static let colorAttachments: JSString = "colorAttachments"
     @usableFromInline static let colorDepth: JSString = "colorDepth"
-    @usableFromInline static let colorFormats: JSString = "colorFormats"
-    @usableFromInline static let colorMask: JSString = "colorMask"
     @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 commitStyles: JSString = "commitStyles"
     @usableFromInline static let commonAncestorContainer: JSString = "commonAncestorContainer"
     @usableFromInline static let compact: JSString = "compact"
-    @usableFromInline static let compare: JSString = "compare"
     @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 compilationInfo: JSString = "compilationInfo"
-    @usableFromInline static let compileShader: JSString = "compileShader"
     @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 composite: JSString = "composite"
-    @usableFromInline static let compositingAlphaMode: JSString = "compositingAlphaMode"
-    @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 compute: JSString = "compute"
-    @usableFromInline static let computedOffset: JSString = "computedOffset"
-    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
-    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
-    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
     @usableFromInline static let config: JSString = "config"
     @usableFromInline static let configure: JSString = "configure"
     @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let connect: JSString = "connect"
     @usableFromInline static let console: JSString = "console"
-    @usableFromInline static let constants: JSString = "constants"
     @usableFromInline static let constraint: JSString = "constraint"
     @usableFromInline static let contains: JSString = "contains"
     @usableFromInline static let content: JSString = "content"
@@ -28200,8 +18289,6 @@ public enum console {
     @usableFromInline static let contentEditable: JSString = "contentEditable"
     @usableFromInline static let contentType: JSString = "contentType"
     @usableFromInline static let contentWindow: JSString = "contentWindow"
-    @usableFromInline static let context: JSString = "context"
-    @usableFromInline static let contextTime: JSString = "contextTime"
     @usableFromInline static let control: JSString = "control"
     @usableFromInline static let controller: JSString = "controller"
     @usableFromInline static let controls: JSString = "controls"
@@ -28212,102 +18299,44 @@ public enum console {
     @usableFromInline static let cookie: JSString = "cookie"
     @usableFromInline static let cookieEnabled: JSString = "cookieEnabled"
     @usableFromInline static let coords: JSString = "coords"
-    @usableFromInline static let copyBufferSubData: JSString = "copyBufferSubData"
-    @usableFromInline static let copyBufferToBuffer: JSString = "copyBufferToBuffer"
-    @usableFromInline static let copyBufferToTexture: JSString = "copyBufferToTexture"
-    @usableFromInline static let copyExternalImageToTexture: JSString = "copyExternalImageToTexture"
-    @usableFromInline static let copyFromChannel: JSString = "copyFromChannel"
-    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
-    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
-    @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D"
-    @usableFromInline static let copyTextureToBuffer: JSString = "copyTextureToBuffer"
-    @usableFromInline static let copyTextureToTexture: JSString = "copyTextureToTexture"
     @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
     @usableFromInline static let count: JSString = "count"
     @usableFromInline static let countReset: JSString = "countReset"
-    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
     @usableFromInline static let createAttribute: JSString = "createAttribute"
     @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
-    @usableFromInline static let createBindGroup: JSString = "createBindGroup"
-    @usableFromInline static let createBindGroupLayout: JSString = "createBindGroupLayout"
-    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
-    @usableFromInline static let createBuffer: JSString = "createBuffer"
-    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
     @usableFromInline static let createCDATASection: JSString = "createCDATASection"
     @usableFromInline static let createCaption: JSString = "createCaption"
-    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
-    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
-    @usableFromInline static let createCommandEncoder: JSString = "createCommandEncoder"
     @usableFromInline static let createComment: JSString = "createComment"
-    @usableFromInline static let createComputePipeline: JSString = "createComputePipeline"
-    @usableFromInline static let createComputePipelineAsync: JSString = "createComputePipelineAsync"
     @usableFromInline static let createConicGradient: JSString = "createConicGradient"
-    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
-    @usableFromInline static let createConvolver: JSString = "createConvolver"
-    @usableFromInline static let createDelay: JSString = "createDelay"
     @usableFromInline static let createDocument: JSString = "createDocument"
     @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
     @usableFromInline static let createDocumentType: JSString = "createDocumentType"
-    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
     @usableFromInline static let createElement: JSString = "createElement"
     @usableFromInline static let createElementNS: JSString = "createElementNS"
     @usableFromInline static let createEvent: JSString = "createEvent"
-    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
-    @usableFromInline static let createGain: JSString = "createGain"
     @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
-    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
     @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
     @usableFromInline static let createImageData: JSString = "createImageData"
     @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
-    @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 createObjectURL: JSString = "createObjectURL"
-    @usableFromInline static let createOscillator: JSString = "createOscillator"
-    @usableFromInline static let createPanner: JSString = "createPanner"
     @usableFromInline static let createPattern: JSString = "createPattern"
-    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
-    @usableFromInline static let createPipelineLayout: JSString = "createPipelineLayout"
     @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
-    @usableFromInline static let createProgram: JSString = "createProgram"
-    @usableFromInline static let createQuery: JSString = "createQuery"
-    @usableFromInline static let createQuerySet: JSString = "createQuerySet"
     @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
     @usableFromInline static let createRange: JSString = "createRange"
-    @usableFromInline static let createRenderBundleEncoder: JSString = "createRenderBundleEncoder"
-    @usableFromInline static let createRenderPipeline: JSString = "createRenderPipeline"
-    @usableFromInline static let createRenderPipelineAsync: JSString = "createRenderPipelineAsync"
-    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
-    @usableFromInline static let createSampler: JSString = "createSampler"
-    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
-    @usableFromInline static let createShader: JSString = "createShader"
-    @usableFromInline static let createShaderModule: JSString = "createShaderModule"
-    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
     @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 createTexture: JSString = "createTexture"
-    @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback"
-    @usableFromInline static let createVertexArray: JSString = "createVertexArray"
-    @usableFromInline static let createView: JSString = "createView"
-    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
     @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 cullFace: JSString = "cullFace"
-    @usableFromInline static let cullMode: JSString = "cullMode"
-    @usableFromInline static let currentIteration: JSString = "currentIteration"
     @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 curve: JSString = "curve"
     @usableFromInline static let customElements: JSString = "customElements"
     @usableFromInline static let customError: JSString = "customError"
     @usableFromInline static let d: JSString = "d"
@@ -28326,89 +18355,47 @@ public enum console {
     @usableFromInline static let defaultMuted: JSString = "defaultMuted"
     @usableFromInline static let defaultPlaybackRate: JSString = "defaultPlaybackRate"
     @usableFromInline static let defaultPrevented: JSString = "defaultPrevented"
-    @usableFromInline static let defaultQueue: JSString = "defaultQueue"
     @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 delay: JSString = "delay"
-    @usableFromInline static let delayTime: JSString = "delayTime"
     @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
     @usableFromInline static let delete: JSString = "delete"
-    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
     @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 deleteFramebuffer: JSString = "deleteFramebuffer"
-    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
-    @usableFromInline static let deleteQuery: JSString = "deleteQuery"
-    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
     @usableFromInline static let deleteRow: JSString = "deleteRow"
-    @usableFromInline static let deleteSampler: JSString = "deleteSampler"
-    @usableFromInline static let deleteShader: JSString = "deleteShader"
-    @usableFromInline static let deleteSync: JSString = "deleteSync"
     @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
     @usableFromInline static let deleteTHead: JSString = "deleteTHead"
-    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
-    @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback"
-    @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray"
     @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 depth: JSString = "depth"
-    @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 depthFunc: JSString = "depthFunc"
-    @usableFromInline static let depthLoadOp: JSString = "depthLoadOp"
-    @usableFromInline static let depthMask: JSString = "depthMask"
-    @usableFromInline static let depthOrArrayLayers: JSString = "depthOrArrayLayers"
-    @usableFromInline static let depthRange: JSString = "depthRange"
-    @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 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 detachShader: JSString = "detachShader"
     @usableFromInline static let detail: JSString = "detail"
-    @usableFromInline static let detune: JSString = "detune"
-    @usableFromInline static let device: JSString = "device"
     @usableFromInline static let deviceId: JSString = "deviceId"
     @usableFromInline static let devicePixelRatio: JSString = "devicePixelRatio"
-    @usableFromInline static let dimension: JSString = "dimension"
     @usableFromInline static let dir: JSString = "dir"
     @usableFromInline static let dirName: JSString = "dirName"
     @usableFromInline static let direction: JSString = "direction"
     @usableFromInline static let dirxml: JSString = "dirxml"
     @usableFromInline static let disable: JSString = "disable"
-    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
-    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
     @usableFromInline static let disabled: JSString = "disabled"
     @usableFromInline static let disconnect: JSString = "disconnect"
-    @usableFromInline static let dispatch: JSString = "dispatch"
     @usableFromInline static let dispatchEvent: JSString = "dispatchEvent"
-    @usableFromInline static let dispatchIndirect: JSString = "dispatchIndirect"
     @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 distanceModel: JSString = "distanceModel"
     @usableFromInline static let doctype: JSString = "doctype"
     @usableFromInline static let document: JSString = "document"
     @usableFromInline static let documentElement: JSString = "documentElement"
@@ -28417,27 +18404,12 @@ public enum console {
     @usableFromInline static let done: JSString = "done"
     @usableFromInline static let download: JSString = "download"
     @usableFromInline static let draggable: JSString = "draggable"
-    @usableFromInline static let draw: JSString = "draw"
-    @usableFromInline static let drawArrays: JSString = "drawArrays"
-    @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced"
-    @usableFromInline static let drawBuffers: JSString = "drawBuffers"
-    @usableFromInline static let drawElements: JSString = "drawElements"
-    @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced"
     @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
     @usableFromInline static let drawImage: JSString = "drawImage"
-    @usableFromInline static let drawIndexed: JSString = "drawIndexed"
-    @usableFromInline static let drawIndexedIndirect: JSString = "drawIndexedIndirect"
-    @usableFromInline static let drawIndirect: JSString = "drawIndirect"
-    @usableFromInline static let drawRangeElements: JSString = "drawRangeElements"
-    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
-    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
     @usableFromInline static let dropEffect: JSString = "dropEffect"
-    @usableFromInline static let dstFactor: JSString = "dstFactor"
     @usableFromInline static let duration: JSString = "duration"
     @usableFromInline static let e: JSString = "e"
-    @usableFromInline static let easing: JSString = "easing"
     @usableFromInline static let echoCancellation: JSString = "echoCancellation"
-    @usableFromInline static let effect: JSString = "effect"
     @usableFromInline static let effectAllowed: JSString = "effectAllowed"
     @usableFromInline static let element: JSString = "element"
     @usableFromInline static let elementFromPoint: JSString = "elementFromPoint"
@@ -28448,7 +18420,6 @@ public enum console {
     @usableFromInline static let emHeightDescent: JSString = "emHeightDescent"
     @usableFromInline static let embeds: JSString = "embeds"
     @usableFromInline static let enable: JSString = "enable"
-    @usableFromInline static let enableVertexAttribArray: JSString = "enableVertexAttribArray"
     @usableFromInline static let enabled: JSString = "enabled"
     @usableFromInline static let enabledPlugin: JSString = "enabledPlugin"
     @usableFromInline static let encode: JSString = "encode"
@@ -28457,18 +18428,12 @@ public enum console {
     @usableFromInline static let enctype: JSString = "enctype"
     @usableFromInline static let end: JSString = "end"
     @usableFromInline static let endContainer: JSString = "endContainer"
-    @usableFromInline static let endDelay: JSString = "endDelay"
-    @usableFromInline static let endOcclusionQuery: JSString = "endOcclusionQuery"
     @usableFromInline static let endOffset: JSString = "endOffset"
-    @usableFromInline static let endQuery: JSString = "endQuery"
     @usableFromInline static let endTime: JSString = "endTime"
-    @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback"
     @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 entryPoint: JSString = "entryPoint"
     @usableFromInline static let enumerateDevices: JSString = "enumerateDevices"
     @usableFromInline static let error: JSString = "error"
     @usableFromInline static let evaluate: JSString = "evaluate"
@@ -28476,26 +18441,14 @@ public enum console {
     @usableFromInline static let eventPhase: JSString = "eventPhase"
     @usableFromInline static let exact: JSString = "exact"
     @usableFromInline static let execCommand: JSString = "execCommand"
-    @usableFromInline static let executeBundles: JSString = "executeBundles"
-    @usableFromInline static let expired: JSString = "expired"
-    @usableFromInline static let exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
     @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
     @usableFromInline static let external: JSString = "external"
-    @usableFromInline static let externalTexture: JSString = "externalTexture"
     @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
-    @usableFromInline static let failOp: JSString = "failOp"
     @usableFromInline static let fastSeek: JSString = "fastSeek"
-    @usableFromInline static let features: JSString = "features"
-    @usableFromInline static let feedback: JSString = "feedback"
-    @usableFromInline static let feedforward: JSString = "feedforward"
-    @usableFromInline static let fenceSync: JSString = "fenceSync"
     @usableFromInline static let fetch: JSString = "fetch"
-    @usableFromInline static let fftSize: JSString = "fftSize"
     @usableFromInline static let fgColor: JSString = "fgColor"
     @usableFromInline static let filename: JSString = "filename"
     @usableFromInline static let files: JSString = "files"
@@ -28504,8 +18457,6 @@ public enum console {
     @usableFromInline static let fillStyle: JSString = "fillStyle"
     @usableFromInline static let fillText: JSString = "fillText"
     @usableFromInline static let filter: JSString = "filter"
-    @usableFromInline static let finish: JSString = "finish"
-    @usableFromInline static let finished: JSString = "finished"
     @usableFromInline static let firstChild: JSString = "firstChild"
     @usableFromInline static let firstElementChild: JSString = "firstElementChild"
     @usableFromInline static let flatten: JSString = "flatten"
@@ -28519,7 +18470,6 @@ public enum console {
     @usableFromInline static let fontKerning: JSString = "fontKerning"
     @usableFromInline static let fontStretch: JSString = "fontStretch"
     @usableFromInline static let fontVariantCaps: JSString = "fontVariantCaps"
-    @usableFromInline static let forceFallbackAdapter: JSString = "forceFallbackAdapter"
     @usableFromInline static let form: JSString = "form"
     @usableFromInline static let formAction: JSString = "formAction"
     @usableFromInline static let formData: JSString = "formData"
@@ -28530,10 +18480,6 @@ public enum console {
     @usableFromInline static let format: JSString = "format"
     @usableFromInline static let forms: JSString = "forms"
     @usableFromInline static let forward: JSString = "forward"
-    @usableFromInline static let forwardX: JSString = "forwardX"
-    @usableFromInline static let forwardY: JSString = "forwardY"
-    @usableFromInline static let forwardZ: JSString = "forwardZ"
-    @usableFromInline static let fragment: JSString = "fragment"
     @usableFromInline static let frame: JSString = "frame"
     @usableFromInline static let frameBorder: JSString = "frameBorder"
     @usableFromInline static let frameCount: JSString = "frameCount"
@@ -28541,13 +18487,8 @@ public enum console {
     @usableFromInline static let frameIndex: JSString = "frameIndex"
     @usableFromInline static let frameOffset: JSString = "frameOffset"
     @usableFromInline static let frameRate: JSString = "frameRate"
-    @usableFromInline static let framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
-    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
-    @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer"
     @usableFromInline static let framerate: JSString = "framerate"
     @usableFromInline static let frames: JSString = "frames"
-    @usableFromInline static let frequency: JSString = "frequency"
-    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
     @usableFromInline static let fromBox: JSString = "fromBox"
     @usableFromInline static let fromFloat32Array: JSString = "fromFloat32Array"
     @usableFromInline static let fromFloat64Array: JSString = "fromFloat64Array"
@@ -28555,111 +18496,56 @@ public enum console {
     @usableFromInline static let fromPoint: JSString = "fromPoint"
     @usableFromInline static let fromQuad: JSString = "fromQuad"
     @usableFromInline static let fromRect: JSString = "fromRect"
-    @usableFromInline static let frontFace: JSString = "frontFace"
     @usableFromInline static let fullRange: JSString = "fullRange"
-    @usableFromInline static let g: JSString = "g"
-    @usableFromInline static let gain: JSString = "gain"
-    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
     @usableFromInline static let get: JSString = "get"
-    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
-    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
-    @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName"
-    @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter"
-    @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms"
     @usableFromInline static let getAll: JSString = "getAll"
     @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
-    @usableFromInline static let getAnimations: JSString = "getAnimations"
     @usableFromInline static let getAsFile: JSString = "getAsFile"
-    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
-    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
     @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 getBindGroupLayout: JSString = "getBindGroupLayout"
     @usableFromInline static let getBoundingClientRect: JSString = "getBoundingClientRect"
     @usableFromInline static let getBounds: JSString = "getBounds"
     @usableFromInline static let getBoxQuads: JSString = "getBoxQuads"
-    @usableFromInline static let getBufferParameter: JSString = "getBufferParameter"
-    @usableFromInline static let getBufferSubData: JSString = "getBufferSubData"
-    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
-    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
     @usableFromInline static let getCapabilities: JSString = "getCapabilities"
-    @usableFromInline static let getChannelData: JSString = "getChannelData"
     @usableFromInline static let getClientRect: JSString = "getClientRect"
     @usableFromInline static let getClientRects: JSString = "getClientRects"
-    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
     @usableFromInline static let getConstraints: JSString = "getConstraints"
     @usableFromInline static let getContextAttributes: JSString = "getContextAttributes"
     @usableFromInline static let getCueById: JSString = "getCueById"
-    @usableFromInline static let getCurrentTexture: JSString = "getCurrentTexture"
     @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 getError: JSString = "getError"
-    @usableFromInline static let getExtension: JSString = "getExtension"
-    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
-    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
-    @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation"
-    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
-    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
     @usableFromInline static let getImageData: JSString = "getImageData"
-    @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter"
-    @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter"
-    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
     @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getMappedRange: JSString = "getMappedRange"
     @usableFromInline static let getModifierState: JSString = "getModifierState"
     @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
-    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
     @usableFromInline static let getParameter: JSString = "getParameter"
-    @usableFromInline static let getPreferredFormat: JSString = "getPreferredFormat"
-    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
-    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
-    @usableFromInline static let getQuery: JSString = "getQuery"
-    @usableFromInline static let getQueryParameter: JSString = "getQueryParameter"
     @usableFromInline static let getReader: JSString = "getReader"
     @usableFromInline static let getRegistration: JSString = "getRegistration"
     @usableFromInline static let getRegistrations: JSString = "getRegistrations"
-    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
     @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
     @usableFromInline static let getRootNode: JSString = "getRootNode"
     @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
-    @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter"
     @usableFromInline static let getSettings: JSString = "getSettings"
-    @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 getStartDate: JSString = "getStartDate"
     @usableFromInline static let getState: JSString = "getState"
     @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
-    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
-    @usableFromInline static let getSyncParameter: JSString = "getSyncParameter"
-    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
-    @usableFromInline static let getTiming: JSString = "getTiming"
     @usableFromInline static let getTrackById: JSString = "getTrackById"
     @usableFromInline static let getTracks: JSString = "getTracks"
     @usableFromInline static let getTransform: JSString = "getTransform"
-    @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying"
-    @usableFromInline static let getUniform: JSString = "getUniform"
-    @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex"
-    @usableFromInline static let getUniformIndices: JSString = "getUniformIndices"
-    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
     @usableFromInline static let getUserMedia: JSString = "getUserMedia"
-    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
-    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
     @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 gpu: JSString = "gpu"
     @usableFromInline static let group: JSString = "group"
     @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
     @usableFromInline static let groupEnd: JSString = "groupEnd"
@@ -28673,7 +18559,6 @@ public enum console {
     @usableFromInline static let hasAttributeNS: JSString = "hasAttributeNS"
     @usableFromInline static let hasAttributes: JSString = "hasAttributes"
     @usableFromInline static let hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasDynamicOffset: JSString = "hasDynamicOffset"
     @usableFromInline static let hasFeature: JSString = "hasFeature"
     @usableFromInline static let hasFocus: JSString = "hasFocus"
     @usableFromInline static let hash: JSString = "hash"
@@ -28684,8 +18569,6 @@ public enum console {
     @usableFromInline static let hidden: JSString = "hidden"
     @usableFromInline static let high: JSString = "high"
     @usableFromInline static let highWaterMark: JSString = "highWaterMark"
-    @usableFromInline static let hint: JSString = "hint"
-    @usableFromInline static let hints: JSString = "hints"
     @usableFromInline static let history: JSString = "history"
     @usableFromInline static let host: JSString = "host"
     @usableFromInline static let hostname: JSString = "hostname"
@@ -28700,7 +18583,6 @@ public enum console {
     @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
     @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
     @usableFromInline static let ignoreVary: JSString = "ignoreVary"
-    @usableFromInline static let imag: JSString = "imag"
     @usableFromInline static let image: JSString = "image"
     @usableFromInline static let imageOrientation: JSString = "imageOrientation"
     @usableFromInline static let imageSizes: JSString = "imageSizes"
@@ -28709,7 +18591,6 @@ public enum console {
     @usableFromInline static let imageSrcset: JSString = "imageSrcset"
     @usableFromInline static let images: JSString = "images"
     @usableFromInline static let implementation: JSString = "implementation"
-    @usableFromInline static let importExternalTexture: JSString = "importExternalTexture"
     @usableFromInline static let importNode: JSString = "importNode"
     @usableFromInline static let importStylesheet: JSString = "importStylesheet"
     @usableFromInline static let inBandMetadataTrackDispatchType: JSString = "inBandMetadataTrackDispatchType"
@@ -28731,7 +18612,6 @@ public enum console {
     @usableFromInline static let innerHeight: JSString = "innerHeight"
     @usableFromInline static let innerText: JSString = "innerText"
     @usableFromInline static let innerWidth: JSString = "innerWidth"
-    @usableFromInline static let inputBuffer: JSString = "inputBuffer"
     @usableFromInline static let inputEncoding: JSString = "inputEncoding"
     @usableFromInline static let inputMode: JSString = "inputMode"
     @usableFromInline static let inputType: JSString = "inputType"
@@ -28740,56 +18620,38 @@ public enum console {
     @usableFromInline static let insertBefore: JSString = "insertBefore"
     @usableFromInline static let insertCell: JSString = "insertCell"
     @usableFromInline static let insertData: JSString = "insertData"
-    @usableFromInline static let insertDebugMarker: JSString = "insertDebugMarker"
     @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 intersectsNode: JSString = "intersectsNode"
     @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState"
-    @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer"
-    @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer"
     @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 isBuffer: JSString = "isBuffer"
     @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 isEnabled: JSString = "isEnabled"
     @usableFromInline static let isEqualNode: JSString = "isEqualNode"
-    @usableFromInline static let isFallbackAdapter: JSString = "isFallbackAdapter"
-    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
     @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 isProgram: JSString = "isProgram"
-    @usableFromInline static let isQuery: JSString = "isQuery"
     @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
-    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
     @usableFromInline static let isSameNode: JSString = "isSameNode"
-    @usableFromInline static let isSampler: JSString = "isSampler"
     @usableFromInline static let isSecureContext: JSString = "isSecureContext"
-    @usableFromInline static let isShader: JSString = "isShader"
-    @usableFromInline static let isSync: JSString = "isSync"
-    @usableFromInline static let isTexture: JSString = "isTexture"
-    @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback"
     @usableFromInline static let isTrusted: JSString = "isTrusted"
     @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
-    @usableFromInline static let isVertexArray: JSString = "isVertexArray"
     @usableFromInline static let isVisible: JSString = "isVisible"
     @usableFromInline static let item: JSString = "item"
     @usableFromInline static let items: JSString = "items"
     @usableFromInline static let iterateNext: JSString = "iterateNext"
-    @usableFromInline static let iterationStart: JSString = "iterationStart"
-    @usableFromInline static let iterations: JSString = "iterations"
     @usableFromInline static let javaEnabled: JSString = "javaEnabled"
     @usableFromInline static let json: JSString = "json"
     @usableFromInline static let keepalive: JSString = "keepalive"
@@ -28798,7 +18660,6 @@ public enum console {
     @usableFromInline static let keyFrame: JSString = "keyFrame"
     @usableFromInline static let keys: JSString = "keys"
     @usableFromInline static let kind: JSString = "kind"
-    @usableFromInline static let knee: JSString = "knee"
     @usableFromInline static let label: JSString = "label"
     @usableFromInline static let labels: JSString = "labels"
     @usableFromInline static let lang: JSString = "lang"
@@ -28809,31 +18670,23 @@ public enum console {
     @usableFromInline static let lastEventId: JSString = "lastEventId"
     @usableFromInline static let lastModified: JSString = "lastModified"
     @usableFromInline static let latency: JSString = "latency"
-    @usableFromInline static let latencyHint: JSString = "latencyHint"
     @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 limits: JSString = "limits"
     @usableFromInline static let lineCap: JSString = "lineCap"
     @usableFromInline static let lineDashOffset: JSString = "lineDashOffset"
     @usableFromInline static let lineJoin: JSString = "lineJoin"
-    @usableFromInline static let lineNum: JSString = "lineNum"
-    @usableFromInline static let linePos: JSString = "linePos"
     @usableFromInline static let lineTo: JSString = "lineTo"
     @usableFromInline static let lineWidth: JSString = "lineWidth"
-    @usableFromInline static let linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
     @usableFromInline static let lineno: JSString = "lineno"
     @usableFromInline static let link: JSString = "link"
     @usableFromInline static let linkColor: JSString = "linkColor"
-    @usableFromInline static let linkProgram: JSString = "linkProgram"
     @usableFromInline static let links: JSString = "links"
     @usableFromInline static let list: JSString = "list"
-    @usableFromInline static let listener: JSString = "listener"
     @usableFromInline static let load: JSString = "load"
-    @usableFromInline static let loadOp: JSString = "loadOp"
     @usableFromInline static let loaded: JSString = "loaded"
     @usableFromInline static let loading: JSString = "loading"
     @usableFromInline static let localName: JSString = "localName"
@@ -28841,16 +18694,11 @@ public enum console {
     @usableFromInline static let location: JSString = "location"
     @usableFromInline static let locationbar: JSString = "locationbar"
     @usableFromInline static let locked: JSString = "locked"
-    @usableFromInline static let lodMaxClamp: JSString = "lodMaxClamp"
-    @usableFromInline static let lodMinClamp: JSString = "lodMinClamp"
     @usableFromInline static let log: JSString = "log"
     @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 loopEnd: JSString = "loopEnd"
-    @usableFromInline static let loopStart: JSString = "loopStart"
-    @usableFromInline static let lost: JSString = "lost"
     @usableFromInline static let low: JSString = "low"
     @usableFromInline static let lowsrc: JSString = "lowsrc"
     @usableFromInline static let m11: JSString = "m11"
@@ -28869,12 +18717,8 @@ public enum console {
     @usableFromInline static let m42: JSString = "m42"
     @usableFromInline static let m43: JSString = "m43"
     @usableFromInline static let m44: JSString = "m44"
-    @usableFromInline static let magFilter: JSString = "magFilter"
-    @usableFromInline static let mapAsync: JSString = "mapAsync"
-    @usableFromInline static let mappedAtCreation: JSString = "mappedAtCreation"
     @usableFromInline static let marginHeight: JSString = "marginHeight"
     @usableFromInline static let marginWidth: JSString = "marginWidth"
-    @usableFromInline static let mask: JSString = "mask"
     @usableFromInline static let match: JSString = "match"
     @usableFromInline static let matchAll: JSString = "matchAll"
     @usableFromInline static let matchMedia: JSString = "matchMedia"
@@ -28882,61 +18726,18 @@ public enum console {
     @usableFromInline static let matrix: JSString = "matrix"
     @usableFromInline static let matrixTransform: JSString = "matrixTransform"
     @usableFromInline static let max: JSString = "max"
-    @usableFromInline static let maxAnisotropy: JSString = "maxAnisotropy"
-    @usableFromInline static let maxBindGroups: JSString = "maxBindGroups"
-    @usableFromInline static let maxChannelCount: JSString = "maxChannelCount"
-    @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 maxDecibels: JSString = "maxDecibels"
-    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
-    @usableFromInline static let maxDistance: JSString = "maxDistance"
-    @usableFromInline static let maxDynamicStorageBuffersPerPipelineLayout: JSString = "maxDynamicStorageBuffersPerPipelineLayout"
-    @usableFromInline static let maxDynamicUniformBuffersPerPipelineLayout: JSString = "maxDynamicUniformBuffersPerPipelineLayout"
-    @usableFromInline static let maxInterStageShaderComponents: JSString = "maxInterStageShaderComponents"
     @usableFromInline static let maxLength: JSString = "maxLength"
-    @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 maxValue: JSString = "maxValue"
-    @usableFromInline static let maxVertexAttributes: JSString = "maxVertexAttributes"
-    @usableFromInline static let maxVertexBufferArrayStride: JSString = "maxVertexBufferArrayStride"
-    @usableFromInline static let maxVertexBuffers: JSString = "maxVertexBuffers"
     @usableFromInline static let measureText: JSString = "measureText"
     @usableFromInline static let media: JSString = "media"
     @usableFromInline static let mediaDevices: JSString = "mediaDevices"
-    @usableFromInline static let mediaElement: JSString = "mediaElement"
-    @usableFromInline static let mediaStream: JSString = "mediaStream"
-    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
     @usableFromInline static let menubar: JSString = "menubar"
     @usableFromInline static let message: JSString = "message"
-    @usableFromInline static let messages: JSString = "messages"
     @usableFromInline static let metaKey: JSString = "metaKey"
     @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 minBindingSize: JSString = "minBindingSize"
-    @usableFromInline static let minDecibels: JSString = "minDecibels"
-    @usableFromInline static let minFilter: JSString = "minFilter"
     @usableFromInline static let minLength: JSString = "minLength"
-    @usableFromInline static let minStorageBufferOffsetAlignment: JSString = "minStorageBufferOffsetAlignment"
-    @usableFromInline static let minUniformBufferOffsetAlignment: JSString = "minUniformBufferOffsetAlignment"
-    @usableFromInline static let minValue: JSString = "minValue"
-    @usableFromInline static let mipLevel: JSString = "mipLevel"
-    @usableFromInline static let mipLevelCount: JSString = "mipLevelCount"
-    @usableFromInline static let mipmapFilter: JSString = "mipmapFilter"
     @usableFromInline static let miterLimit: JSString = "miterLimit"
     @usableFromInline static let mode: JSString = "mode"
     @usableFromInline static let modifierAltGraph: JSString = "modifierAltGraph"
@@ -28949,14 +18750,11 @@ public enum console {
     @usableFromInline static let modifierSuper: JSString = "modifierSuper"
     @usableFromInline static let modifierSymbol: JSString = "modifierSymbol"
     @usableFromInline static let modifierSymbolLock: JSString = "modifierSymbolLock"
-    @usableFromInline static let module: JSString = "module"
     @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 multisample: JSString = "multisample"
-    @usableFromInline static let multisampled: JSString = "multisampled"
     @usableFromInline static let muted: JSString = "muted"
     @usableFromInline static let name: JSString = "name"
     @usableFromInline static let namedItem: JSString = "namedItem"
@@ -28986,11 +18784,8 @@ public enum console {
     @usableFromInline static let now: JSString = "now"
     @usableFromInline static let numberOfChannels: JSString = "numberOfChannels"
     @usableFromInline static let numberOfFrames: JSString = "numberOfFrames"
-    @usableFromInline static let numberOfInputs: JSString = "numberOfInputs"
-    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
     @usableFromInline static let numberValue: JSString = "numberValue"
     @usableFromInline static let observe: JSString = "observe"
-    @usableFromInline static let occlusionQuerySet: JSString = "occlusionQuerySet"
     @usableFromInline static let offset: JSString = "offset"
     @usableFromInline static let offsetHeight: JSString = "offsetHeight"
     @usableFromInline static let offsetLeft: JSString = "offsetLeft"
@@ -29004,11 +18799,9 @@ public enum console {
     @usableFromInline static let oldURL: JSString = "oldURL"
     @usableFromInline static let oldValue: JSString = "oldValue"
     @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onSubmittedWorkDone: JSString = "onSubmittedWorkDone"
     @usableFromInline static let onabort: JSString = "onabort"
     @usableFromInline static let onaddtrack: JSString = "onaddtrack"
     @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
     @usableFromInline static let onauxclick: JSString = "onauxclick"
     @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
     @usableFromInline static let onbeforeunload: JSString = "onbeforeunload"
@@ -29020,7 +18813,6 @@ public enum console {
     @usableFromInline static let onchange: JSString = "onchange"
     @usableFromInline static let onclick: JSString = "onclick"
     @usableFromInline static let onclose: JSString = "onclose"
-    @usableFromInline static let oncomplete: JSString = "oncomplete"
     @usableFromInline static let oncontextlost: JSString = "oncontextlost"
     @usableFromInline static let oncontextmenu: JSString = "oncontextmenu"
     @usableFromInline static let oncontextrestored: JSString = "oncontextrestored"
@@ -29044,7 +18836,6 @@ public enum console {
     @usableFromInline static let onenter: JSString = "onenter"
     @usableFromInline static let onerror: JSString = "onerror"
     @usableFromInline static let onexit: JSString = "onexit"
-    @usableFromInline static let onfinish: JSString = "onfinish"
     @usableFromInline static let onfocus: JSString = "onfocus"
     @usableFromInline static let onformdata: JSString = "onformdata"
     @usableFromInline static let onhashchange: JSString = "onhashchange"
@@ -29079,12 +18870,10 @@ public enum console {
     @usableFromInline static let onplay: JSString = "onplay"
     @usableFromInline static let onplaying: JSString = "onplaying"
     @usableFromInline static let onpopstate: JSString = "onpopstate"
-    @usableFromInline static let onprocessorerror: JSString = "onprocessorerror"
     @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 onremove: JSString = "onremove"
     @usableFromInline static let onremovetrack: JSString = "onremovetrack"
     @usableFromInline static let onreset: JSString = "onreset"
     @usableFromInline static let onresize: JSString = "onresize"
@@ -29105,7 +18894,6 @@ public enum console {
     @usableFromInline static let ontimeout: JSString = "ontimeout"
     @usableFromInline static let ontimeupdate: JSString = "ontimeupdate"
     @usableFromInline static let ontoggle: JSString = "ontoggle"
-    @usableFromInline static let onuncapturederror: JSString = "onuncapturederror"
     @usableFromInline static let onunhandledrejection: JSString = "onunhandledrejection"
     @usableFromInline static let onunload: JSString = "onunload"
     @usableFromInline static let onunmute: JSString = "onunmute"
@@ -29120,26 +18908,17 @@ public enum console {
     @usableFromInline static let onwheel: JSString = "onwheel"
     @usableFromInline static let open: JSString = "open"
     @usableFromInline static let opener: JSString = "opener"
-    @usableFromInline static let operation: JSString = "operation"
     @usableFromInline static let optimizeForLatency: JSString = "optimizeForLatency"
     @usableFromInline static let optimum: JSString = "optimum"
     @usableFromInline static let options: JSString = "options"
-    @usableFromInline static let orientationX: JSString = "orientationX"
-    @usableFromInline static let orientationY: JSString = "orientationY"
-    @usableFromInline static let orientationZ: JSString = "orientationZ"
     @usableFromInline static let origin: JSString = "origin"
     @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
-    @usableFromInline static let originTime: JSString = "originTime"
     @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 outputBuffer: JSString = "outputBuffer"
-    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
-    @usableFromInline static let outputLatency: JSString = "outputLatency"
     @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
-    @usableFromInline static let oversample: JSString = "oversample"
     @usableFromInline static let ownerDocument: JSString = "ownerDocument"
     @usableFromInline static let ownerElement: JSString = "ownerElement"
     @usableFromInline static let p1: JSString = "p1"
@@ -29150,16 +18929,11 @@ public enum console {
     @usableFromInline static let pageXOffset: JSString = "pageXOffset"
     @usableFromInline static let pageY: JSString = "pageY"
     @usableFromInline static let pageYOffset: JSString = "pageYOffset"
-    @usableFromInline static let pan: JSString = "pan"
     @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
-    @usableFromInline static let panningModel: JSString = "panningModel"
-    @usableFromInline static let parameterData: JSString = "parameterData"
-    @usableFromInline static let parameters: JSString = "parameters"
     @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 passOp: JSString = "passOp"
     @usableFromInline static let passive: JSString = "passive"
     @usableFromInline static let password: JSString = "password"
     @usableFromInline static let pathname: JSString = "pathname"
@@ -29167,57 +18941,38 @@ public enum console {
     @usableFromInline static let patternMismatch: JSString = "patternMismatch"
     @usableFromInline static let pause: JSString = "pause"
     @usableFromInline static let pauseOnExit: JSString = "pauseOnExit"
-    @usableFromInline static let pauseTransformFeedback: JSString = "pauseTransformFeedback"
     @usableFromInline static let paused: JSString = "paused"
     @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled"
-    @usableFromInline static let pending: JSString = "pending"
     @usableFromInline static let performance: JSString = "performance"
-    @usableFromInline static let performanceTime: JSString = "performanceTime"
-    @usableFromInline static let periodicWave: JSString = "periodicWave"
-    @usableFromInline static let persist: JSString = "persist"
     @usableFromInline static let persisted: JSString = "persisted"
     @usableFromInline static let personalbar: JSString = "personalbar"
-    @usableFromInline static let phase: JSString = "phase"
     @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 pixelStorei: JSString = "pixelStorei"
     @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 playState: JSString = "playState"
     @usableFromInline static let playbackRate: JSString = "playbackRate"
-    @usableFromInline static let playbackTime: JSString = "playbackTime"
     @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 polygonOffset: JSString = "polygonOffset"
-    @usableFromInline static let popDebugGroup: JSString = "popDebugGroup"
-    @usableFromInline static let popErrorScope: JSString = "popErrorScope"
     @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 positionX: JSString = "positionX"
-    @usableFromInline static let positionY: JSString = "positionY"
-    @usableFromInline static let positionZ: JSString = "positionZ"
     @usableFromInline static let postMessage: JSString = "postMessage"
     @usableFromInline static let poster: JSString = "poster"
-    @usableFromInline static let powerPreference: JSString = "powerPreference"
     @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
-    @usableFromInline static let precision: JSString = "precision"
     @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 premultipliedAlpha: JSString = "premultipliedAlpha"
     @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
     @usableFromInline static let prepend: JSString = "prepend"
-    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
     @usableFromInline static let preservesPitch: JSString = "preservesPitch"
     @usableFromInline static let prevValue: JSString = "prevValue"
     @usableFromInline static let preventAbort: JSString = "preventAbort"
@@ -29229,21 +18984,15 @@ public enum console {
     @usableFromInline static let previousNode: JSString = "previousNode"
     @usableFromInline static let previousSibling: JSString = "previousSibling"
     @usableFromInline static let primaries: JSString = "primaries"
-    @usableFromInline static let primitive: JSString = "primitive"
     @usableFromInline static let print: JSString = "print"
-    @usableFromInline static let processorOptions: JSString = "processorOptions"
     @usableFromInline static let product: JSString = "product"
     @usableFromInline static let productSub: JSString = "productSub"
-    @usableFromInline static let progress: JSString = "progress"
     @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 pseudoElement: JSString = "pseudoElement"
     @usableFromInline static let publicId: JSString = "publicId"
     @usableFromInline static let pull: JSString = "pull"
-    @usableFromInline static let pushDebugGroup: JSString = "pushDebugGroup"
-    @usableFromInline static let pushErrorScope: JSString = "pushErrorScope"
     @usableFromInline static let pushState: JSString = "pushState"
     @usableFromInline static let put: JSString = "put"
     @usableFromInline static let putImageData: JSString = "putImageData"
@@ -29254,36 +19003,24 @@ public enum console {
     @usableFromInline static let queryCommandState: JSString = "queryCommandState"
     @usableFromInline static let queryCommandSupported: JSString = "queryCommandSupported"
     @usableFromInline static let queryCommandValue: JSString = "queryCommandValue"
-    @usableFromInline static let queryIndex: JSString = "queryIndex"
     @usableFromInline static let querySelector: JSString = "querySelector"
     @usableFromInline static let querySelectorAll: JSString = "querySelectorAll"
-    @usableFromInline static let querySet: JSString = "querySet"
-    @usableFromInline static let queue: JSString = "queue"
-    @usableFromInline static let r: JSString = "r"
-    @usableFromInline static let rangeMax: JSString = "rangeMax"
-    @usableFromInline static let rangeMin: JSString = "rangeMin"
     @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
     @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
-    @usableFromInline static let ratio: JSString = "ratio"
     @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 readBuffer: JSString = "readBuffer"
     @usableFromInline static let readOnly: JSString = "readOnly"
-    @usableFromInline static let readPixels: JSString = "readPixels"
     @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 real: JSString = "real"
     @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 reduction: JSString = "reduction"
-    @usableFromInline static let refDistance: JSString = "refDistance"
     @usableFromInline static let referenceNode: JSString = "referenceNode"
     @usableFromInline static let referrer: JSString = "referrer"
     @usableFromInline static let referrerPolicy: JSString = "referrerPolicy"
@@ -29295,7 +19032,6 @@ public enum console {
     @usableFromInline static let relatedNode: JSString = "relatedNode"
     @usableFromInline static let relatedTarget: JSString = "relatedTarget"
     @usableFromInline static let relativeTo: JSString = "relativeTo"
-    @usableFromInline static let release: JSString = "release"
     @usableFromInline static let releaseEvents: JSString = "releaseEvents"
     @usableFromInline static let releaseLock: JSString = "releaseLock"
     @usableFromInline static let reload: JSString = "reload"
@@ -29310,9 +19046,6 @@ public enum console {
     @usableFromInline static let removeParameter: JSString = "removeParameter"
     @usableFromInline static let removeTrack: JSString = "removeTrack"
     @usableFromInline static let removedNodes: JSString = "removedNodes"
-    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
-    @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample"
-    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
     @usableFromInline static let `repeat`: JSString = "repeat"
     @usableFromInline static let repetitionCount: JSString = "repetitionCount"
     @usableFromInline static let replace: JSString = "replace"
@@ -29325,13 +19058,9 @@ public enum console {
     @usableFromInline static let reportError: JSString = "reportError"
     @usableFromInline static let reportValidity: JSString = "reportValidity"
     @usableFromInline static let request: JSString = "request"
-    @usableFromInline static let requestAdapter: JSString = "requestAdapter"
     @usableFromInline static let requestData: JSString = "requestData"
-    @usableFromInline static let requestDevice: JSString = "requestDevice"
     @usableFromInline static let requestSubmit: JSString = "requestSubmit"
     @usableFromInline static let required: JSString = "required"
-    @usableFromInline static let requiredFeatures: JSString = "requiredFeatures"
-    @usableFromInline static let requiredLimits: JSString = "requiredLimits"
     @usableFromInline static let reset: JSString = "reset"
     @usableFromInline static let resetTransform: JSString = "resetTransform"
     @usableFromInline static let resizeBy: JSString = "resizeBy"
@@ -29340,9 +19069,6 @@ public enum console {
     @usableFromInline static let resizeQuality: JSString = "resizeQuality"
     @usableFromInline static let resizeTo: JSString = "resizeTo"
     @usableFromInline static let resizeWidth: JSString = "resizeWidth"
-    @usableFromInline static let resolveQuerySet: JSString = "resolveQuerySet"
-    @usableFromInline static let resolveTarget: JSString = "resolveTarget"
-    @usableFromInline static let resource: JSString = "resource"
     @usableFromInline static let respond: JSString = "respond"
     @usableFromInline static let respondWithNewView: JSString = "respondWithNewView"
     @usableFromInline static let response: JSString = "response"
@@ -29355,15 +19081,12 @@ public enum console {
     @usableFromInline static let resultType: JSString = "resultType"
     @usableFromInline static let resultingClientId: JSString = "resultingClientId"
     @usableFromInline static let resume: JSString = "resume"
-    @usableFromInline static let resumeTransformFeedback: JSString = "resumeTransformFeedback"
     @usableFromInline static let returnValue: JSString = "returnValue"
     @usableFromInline static let rev: JSString = "rev"
-    @usableFromInline static let reverse: JSString = "reverse"
     @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 rolloffFactor: JSString = "rolloffFactor"
     @usableFromInline static let root: JSString = "root"
     @usableFromInline static let rotate: JSString = "rotate"
     @usableFromInline static let rotateAxisAngle: JSString = "rotateAxisAngle"
@@ -29375,16 +19098,9 @@ public enum console {
     @usableFromInline static let rowIndex: JSString = "rowIndex"
     @usableFromInline static let rowSpan: JSString = "rowSpan"
     @usableFromInline static let rows: JSString = "rows"
-    @usableFromInline static let rowsPerImage: JSString = "rowsPerImage"
     @usableFromInline static let rules: JSString = "rules"
-    @usableFromInline static let sampleCount: JSString = "sampleCount"
-    @usableFromInline static let sampleCoverage: JSString = "sampleCoverage"
     @usableFromInline static let sampleRate: JSString = "sampleRate"
     @usableFromInline static let sampleSize: JSString = "sampleSize"
-    @usableFromInline static let sampleType: JSString = "sampleType"
-    @usableFromInline static let sampler: JSString = "sampler"
-    @usableFromInline static let samplerParameterf: JSString = "samplerParameterf"
-    @usableFromInline static let samplerParameteri: JSString = "samplerParameteri"
     @usableFromInline static let sandbox: JSString = "sandbox"
     @usableFromInline static let save: JSString = "save"
     @usableFromInline static let scalabilityMode: JSString = "scalabilityMode"
@@ -29394,7 +19110,6 @@ public enum console {
     @usableFromInline static let scaleNonUniform: JSString = "scaleNonUniform"
     @usableFromInline static let scaleSelf: JSString = "scaleSelf"
     @usableFromInline static let scheme: JSString = "scheme"
-    @usableFromInline static let scissor: JSString = "scissor"
     @usableFromInline static let scope: JSString = "scope"
     @usableFromInline static let screen: JSString = "screen"
     @usableFromInline static let screenLeft: JSString = "screenLeft"
@@ -29443,8 +19158,6 @@ public enum console {
     @usableFromInline static let setAttributeNS: JSString = "setAttributeNS"
     @usableFromInline static let setAttributeNode: JSString = "setAttributeNode"
     @usableFromInline static let setAttributeNodeNS: JSString = "setAttributeNodeNS"
-    @usableFromInline static let setBindGroup: JSString = "setBindGroup"
-    @usableFromInline static let setBlendConstant: JSString = "setBlendConstant"
     @usableFromInline static let setCustomValidity: JSString = "setCustomValidity"
     @usableFromInline static let setData: JSString = "setData"
     @usableFromInline static let setDragImage: JSString = "setDragImage"
@@ -29453,36 +19166,21 @@ public enum console {
     @usableFromInline static let setEndBefore: JSString = "setEndBefore"
     @usableFromInline static let setFormValue: JSString = "setFormValue"
     @usableFromInline static let setHeaderValue: JSString = "setHeaderValue"
-    @usableFromInline static let setIndexBuffer: JSString = "setIndexBuffer"
     @usableFromInline static let setInterval: JSString = "setInterval"
-    @usableFromInline static let setKeyframes: JSString = "setKeyframes"
     @usableFromInline static let setLineDash: JSString = "setLineDash"
     @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
     @usableFromInline static let setNamedItem: JSString = "setNamedItem"
     @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
-    @usableFromInline static let setOrientation: JSString = "setOrientation"
     @usableFromInline static let setParameter: JSString = "setParameter"
-    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
-    @usableFromInline static let setPipeline: JSString = "setPipeline"
-    @usableFromInline static let setPosition: JSString = "setPosition"
     @usableFromInline static let setRangeText: JSString = "setRangeText"
     @usableFromInline static let setRequestHeader: JSString = "setRequestHeader"
-    @usableFromInline static let setScissorRect: JSString = "setScissorRect"
     @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 setStencilReference: JSString = "setStencilReference"
-    @usableFromInline static let setTargetAtTime: JSString = "setTargetAtTime"
     @usableFromInline static let setTimeout: JSString = "setTimeout"
     @usableFromInline static let setTransform: JSString = "setTransform"
     @usableFromInline static let setValidity: JSString = "setValidity"
-    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
-    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
-    @usableFromInline static let setVertexBuffer: JSString = "setVertexBuffer"
-    @usableFromInline static let setViewport: JSString = "setViewport"
-    @usableFromInline static let shaderLocation: JSString = "shaderLocation"
-    @usableFromInline static let shaderSource: JSString = "shaderSource"
     @usableFromInline static let shadowBlur: JSString = "shadowBlur"
     @usableFromInline static let shadowColor: JSString = "shadowColor"
     @usableFromInline static let shadowOffsetX: JSString = "shadowOffsetX"
@@ -29504,19 +19202,16 @@ public enum console {
     @usableFromInline static let slice: JSString = "slice"
     @usableFromInline static let slot: JSString = "slot"
     @usableFromInline static let slotAssignment: JSString = "slotAssignment"
-    @usableFromInline static let smoothingTimeConstant: JSString = "smoothingTimeConstant"
     @usableFromInline static let snapshotItem: JSString = "snapshotItem"
     @usableFromInline static let snapshotLength: JSString = "snapshotLength"
     @usableFromInline static let sort: JSString = "sort"
     @usableFromInline static let source: JSString = "source"
-    @usableFromInline static let sourceMap: JSString = "sourceMap"
     @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 srcFactor: JSString = "srcFactor"
     @usableFromInline static let srcdoc: JSString = "srcdoc"
     @usableFromInline static let srclang: JSString = "srclang"
     @usableFromInline static let srcset: JSString = "srcset"
@@ -29525,43 +19220,22 @@ public enum console {
     @usableFromInline static let startContainer: JSString = "startContainer"
     @usableFromInline static let startMessages: JSString = "startMessages"
     @usableFromInline static let startOffset: JSString = "startOffset"
-    @usableFromInline static let startRendering: JSString = "startRendering"
     @usableFromInline static let startTime: JSString = "startTime"
     @usableFromInline static let state: JSString = "state"
     @usableFromInline static let status: JSString = "status"
-    @usableFromInline static let statusMessage: JSString = "statusMessage"
     @usableFromInline static let statusText: JSString = "statusText"
     @usableFromInline static let statusbar: JSString = "statusbar"
-    @usableFromInline static let stencil: JSString = "stencil"
-    @usableFromInline static let stencilBack: JSString = "stencilBack"
-    @usableFromInline static let stencilClearValue: JSString = "stencilClearValue"
-    @usableFromInline static let stencilFront: JSString = "stencilFront"
-    @usableFromInline static let stencilFunc: JSString = "stencilFunc"
-    @usableFromInline static let stencilFuncSeparate: JSString = "stencilFuncSeparate"
-    @usableFromInline static let stencilLoadOp: JSString = "stencilLoadOp"
-    @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 stencilReadMask: JSString = "stencilReadMask"
-    @usableFromInline static let stencilReadOnly: JSString = "stencilReadOnly"
-    @usableFromInline static let stencilStoreOp: JSString = "stencilStoreOp"
-    @usableFromInline static let stencilWriteMask: JSString = "stencilWriteMask"
     @usableFromInline static let step: JSString = "step"
     @usableFromInline static let stepDown: JSString = "stepDown"
     @usableFromInline static let stepMismatch: JSString = "stepMismatch"
-    @usableFromInline static let stepMode: JSString = "stepMode"
     @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 storageTexture: JSString = "storageTexture"
-    @usableFromInline static let storeOp: JSString = "storeOp"
     @usableFromInline static let stream: JSString = "stream"
     @usableFromInline static let stride: JSString = "stride"
     @usableFromInline static let stringValue: JSString = "stringValue"
-    @usableFromInline static let stripIndexFormat: JSString = "stripIndexFormat"
     @usableFromInline static let stroke: JSString = "stroke"
     @usableFromInline static let strokeRect: JSString = "strokeRect"
     @usableFromInline static let strokeStyle: JSString = "strokeStyle"
@@ -29576,7 +19250,6 @@ public enum console {
     @usableFromInline static let supported: JSString = "supported"
     @usableFromInline static let supports: JSString = "supports"
     @usableFromInline static let surroundContents: JSString = "surroundContents"
-    @usableFromInline static let suspend: JSString = "suspend"
     @usableFromInline static let svc: JSString = "svc"
     @usableFromInline static let systemId: JSString = "systemId"
     @usableFromInline static let tBodies: JSString = "tBodies"
@@ -29589,18 +19262,9 @@ public enum console {
     @usableFromInline static let takeRecords: JSString = "takeRecords"
     @usableFromInline static let target: JSString = "target"
     @usableFromInline static let targetOrigin: JSString = "targetOrigin"
-    @usableFromInline static let targets: JSString = "targets"
     @usableFromInline static let tee: JSString = "tee"
     @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
     @usableFromInline static let terminate: JSString = "terminate"
-    @usableFromInline static let texImage2D: JSString = "texImage2D"
-    @usableFromInline static let texImage3D: JSString = "texImage3D"
-    @usableFromInline static let texParameterf: JSString = "texParameterf"
-    @usableFromInline static let texParameteri: JSString = "texParameteri"
-    @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 text: JSString = "text"
     @usableFromInline static let textAlign: JSString = "textAlign"
     @usableFromInline static let textBaseline: JSString = "textBaseline"
@@ -29608,8 +19272,6 @@ public enum console {
     @usableFromInline static let textLength: JSString = "textLength"
     @usableFromInline static let textRendering: JSString = "textRendering"
     @usableFromInline static let textTracks: JSString = "textTracks"
-    @usableFromInline static let texture: JSString = "texture"
-    @usableFromInline static let threshold: JSString = "threshold"
     @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
     @usableFromInline static let time: JSString = "time"
     @usableFromInline static let timeEnd: JSString = "timeEnd"
@@ -29617,10 +19279,8 @@ public enum console {
     @usableFromInline static let timeOrigin: JSString = "timeOrigin"
     @usableFromInline static let timeStamp: JSString = "timeStamp"
     @usableFromInline static let timecode: JSString = "timecode"
-    @usableFromInline static let timeline: JSString = "timeline"
     @usableFromInline static let timeout: JSString = "timeout"
     @usableFromInline static let timestamp: JSString = "timestamp"
-    @usableFromInline static let timestampWrites: JSString = "timestampWrites"
     @usableFromInline static let title: JSString = "title"
     @usableFromInline static let toBox: JSString = "toBox"
     @usableFromInline static let toDataURL: JSString = "toDataURL"
@@ -29634,7 +19294,6 @@ public enum console {
     @usableFromInline static let tooShort: JSString = "tooShort"
     @usableFromInline static let toolbar: JSString = "toolbar"
     @usableFromInline static let top: JSString = "top"
-    @usableFromInline static let topology: JSString = "topology"
     @usableFromInline static let total: JSString = "total"
     @usableFromInline static let trace: JSString = "trace"
     @usableFromInline static let track: JSString = "track"
@@ -29644,7 +19303,6 @@ public enum console {
     @usableFromInline static let transferFromImageBitmap: JSString = "transferFromImageBitmap"
     @usableFromInline static let transferToImageBitmap: JSString = "transferToImageBitmap"
     @usableFromInline static let transform: JSString = "transform"
-    @usableFromInline static let transformFeedbackVaryings: JSString = "transformFeedbackVaryings"
     @usableFromInline static let transformPoint: JSString = "transformPoint"
     @usableFromInline static let transformToDocument: JSString = "transformToDocument"
     @usableFromInline static let transformToFragment: JSString = "transformToFragment"
@@ -29654,64 +19312,19 @@ public enum console {
     @usableFromInline static let type: JSString = "type"
     @usableFromInline static let typeMismatch: JSString = "typeMismatch"
     @usableFromInline static let types: JSString = "types"
-    @usableFromInline static let unclippedDepth: JSString = "unclippedDepth"
-    @usableFromInline static let unconfigure: JSString = "unconfigure"
-    @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 uniform1ui: JSString = "uniform1ui"
-    @usableFromInline static let uniform1uiv: JSString = "uniform1uiv"
-    @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 uniform2ui: JSString = "uniform2ui"
-    @usableFromInline static let uniform2uiv: JSString = "uniform2uiv"
-    @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 uniform3ui: JSString = "uniform3ui"
-    @usableFromInline static let uniform3uiv: JSString = "uniform3uiv"
-    @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 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 unmap: JSString = "unmap"
     @usableFromInline static let unregister: JSString = "unregister"
     @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
-    @usableFromInline static let upX: JSString = "upX"
-    @usableFromInline static let upY: JSString = "upY"
-    @usableFromInline static let upZ: JSString = "upZ"
     @usableFromInline static let update: JSString = "update"
-    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
-    @usableFromInline static let updateTiming: JSString = "updateTiming"
     @usableFromInline static let updateViaCache: JSString = "updateViaCache"
     @usableFromInline static let upgrade: JSString = "upgrade"
     @usableFromInline static let upload: JSString = "upload"
     @usableFromInline static let url: JSString = "url"
-    @usableFromInline static let usage: JSString = "usage"
     @usableFromInline static let useMap: JSString = "useMap"
-    @usableFromInline static let useProgram: JSString = "useProgram"
     @usableFromInline static let userAgent: JSString = "userAgent"
     @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 validateProgram: JSString = "validateProgram"
     @usableFromInline static let validationMessage: JSString = "validationMessage"
     @usableFromInline static let validity: JSString = "validity"
     @usableFromInline static let value: JSString = "value"
@@ -29722,32 +19335,12 @@ public enum console {
     @usableFromInline static let vendor: JSString = "vendor"
     @usableFromInline static let vendorSub: JSString = "vendorSub"
     @usableFromInline static let version: JSString = "version"
-    @usableFromInline static let vertex: JSString = "vertex"
-    @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 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 vertexAttribPointer: JSString = "vertexAttribPointer"
     @usableFromInline static let video: JSString = "video"
     @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
     @usableFromInline static let videoHeight: JSString = "videoHeight"
     @usableFromInline static let videoTracks: JSString = "videoTracks"
     @usableFromInline static let videoWidth: JSString = "videoWidth"
     @usableFromInline static let view: JSString = "view"
-    @usableFromInline static let viewDimension: JSString = "viewDimension"
-    @usableFromInline static let viewFormats: JSString = "viewFormats"
-    @usableFromInline static let viewport: JSString = "viewport"
-    @usableFromInline static let visibility: JSString = "visibility"
     @usableFromInline static let visibilityState: JSString = "visibilityState"
     @usableFromInline static let visible: JSString = "visible"
     @usableFromInline static let visibleRect: JSString = "visibleRect"
@@ -29755,10 +19348,8 @@ public enum console {
     @usableFromInline static let volume: JSString = "volume"
     @usableFromInline static let vspace: JSString = "vspace"
     @usableFromInline static let w: JSString = "w"
-    @usableFromInline static let waitSync: JSString = "waitSync"
     @usableFromInline static let waiting: JSString = "waiting"
     @usableFromInline static let warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
     @usableFromInline static let webkitMatchesSelector: JSString = "webkitMatchesSelector"
     @usableFromInline static let whatToShow: JSString = "whatToShow"
     @usableFromInline static let whenDefined: JSString = "whenDefined"
@@ -29774,10 +19365,6 @@ public enum console {
     @usableFromInline static let writable: JSString = "writable"
     @usableFromInline static let writableType: JSString = "writableType"
     @usableFromInline static let write: JSString = "write"
-    @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 writeln: JSString = "writeln"
     @usableFromInline static let x: JSString = "x"
     @usableFromInline static let y: JSString = "y"
@@ -29826,48 +19413,6 @@ public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String
     }
 }
 
-public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
-extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
-extension Double: Any_AudioContextLatencyCategory_or_Double {}
-
-public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
-    case audioContextLatencyCategory(AudioContextLatencyCategory)
-    case double(Double)
-
-    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
-        switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
-            return .audioContextLatencyCategory(audioContextLatencyCategory)
-        }
-        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
-        }
-    }
-}
-
 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 {}
@@ -30386,48 +19931,6 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
     }
 }
 
-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 {}
-
-public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
-    case compositeOperationOrAuto(CompositeOperationOrAuto)
-    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
-
-    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
-        switch self {
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
-            return .compositeOperationOrAuto(compositeOperationOrAuto)
-        }
-        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
-            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto):
-            return compositeOperationOrAuto.jsValue
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
-            return seq_of_CompositeOperationOrAuto.jsValue
-        }
-    }
-}
-
 public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
 extension Bool: Any_ConstrainBoolean {}
 extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
@@ -30708,170 +20211,44 @@ public enum DOMPointInit_or_Double_or_seq_of_DOMPointInit_or_Double: JSValueComp
     }
 }
 
-public protocol Any_Document_or_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Document: Any_Document_or_XMLHttpRequestBodyInit {}
-extension XMLHttpRequestBodyInit: Any_Document_or_XMLHttpRequestBodyInit {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .document(document):
-            return document.jsValue
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
-            return xmlHttpRequestBodyInit.jsValue
-        }
-    }
-}
-
-public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
-extension Double: Any_Double_or_KeyframeAnimationOptions {}
-extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
-
-public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
-    case double(Double)
-    case keyframeAnimationOptions(KeyframeAnimationOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
-        switch self {
-        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
-            return .keyframeAnimationOptions(keyframeAnimationOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
-    case double(Double)
-    case keyframeEffectOptions(KeyframeEffectOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeEffectOptions: KeyframeEffectOptions? {
-        switch self {
-        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
-            return .keyframeEffectOptions(keyframeEffectOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
+public protocol Any_Document_or_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Document: Any_Document_or_XMLHttpRequestBodyInit {}
+extension XMLHttpRequestBodyInit: Any_Document_or_XMLHttpRequestBodyInit {}
 
-public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
-    case double(Double)
-    case string(String)
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
 
-    public var double: Double? {
+    public var document: Document? {
         switch self {
-        case let .double(double): return double
+        case let .document(document): return document
         default: return nil
         }
     }
 
-    public var string: String? {
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
         switch self {
-        case let .string(string): return string
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
         }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
         }
         return nil
     }
 
     public var jsValue: JSValue {
         switch self {
-        case let .double(double):
-            return double.jsValue
-        case let .string(string):
-            return string.jsValue
+        case let .document(document):
+            return document.jsValue
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
+            return xmlHttpRequestBodyInit.jsValue
         }
     }
 }
@@ -31100,408 +20477,86 @@ public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_
         switch self {
         case let .file(file): return file
         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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Float32List: ConvertibleToJSValue {}
-extension Float32Array: Any_Float32List {}
-extension Array: Any_Float32List where Element == GLfloat {}
-
-public enum Float32List: JSValueCompatible, Any_Float32List {
-    case float32Array(Float32Array)
-    case seq_of_GLfloat([GLfloat])
-
-    public var float32Array: Float32Array? {
-        switch self {
-        case let .float32Array(float32Array): return float32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLfloat: [GLfloat]? {
-        switch self {
-        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .file(file):
-            return file.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_GPUBindingResource: ConvertibleToJSValue {}
-extension GPUBufferBinding: Any_GPUBindingResource {}
-extension GPUExternalTexture: Any_GPUBindingResource {}
-extension GPUSampler: Any_GPUBindingResource {}
-extension GPUTextureView: Any_GPUBindingResource {}
-
-public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource {
-    case gpuBufferBinding(GPUBufferBinding)
-    case gpuExternalTexture(GPUExternalTexture)
-    case gpuSampler(GPUSampler)
-    case gpuTextureView(GPUTextureView)
-
-    public var gpuBufferBinding: GPUBufferBinding? {
-        switch self {
-        case let .gpuBufferBinding(gpuBufferBinding): return gpuBufferBinding
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_GPUColor: ConvertibleToJSValue {}
-extension GPUColorDict: Any_GPUColor {}
-extension Array: Any_GPUColor where Element == Double {}
-
-public enum GPUColor: JSValueCompatible, Any_GPUColor {
-    case gpuColorDict(GPUColorDict)
-    case seq_of_Double([Double])
-
-    public var gpuColorDict: GPUColorDict? {
-        switch self {
-        case let .gpuColorDict(gpuColorDict): return gpuColorDict
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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_GPUError: ConvertibleToJSValue {}
-extension GPUOutOfMemoryError: Any_GPUError {}
-extension GPUValidationError: Any_GPUError {}
-
-public enum GPUError: JSValueCompatible, Any_GPUError {
-    case gpuOutOfMemoryError(GPUOutOfMemoryError)
-    case gpuValidationError(GPUValidationError)
-
-    public var gpuOutOfMemoryError: GPUOutOfMemoryError? {
-        switch self {
-        case let .gpuOutOfMemoryError(gpuOutOfMemoryError): return gpuOutOfMemoryError
-        default: return nil
-        }
-    }
-
-    public var gpuValidationError: GPUValidationError? {
-        switch self {
-        case let .gpuValidationError(gpuValidationError): return gpuValidationError
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let gpuOutOfMemoryError: GPUOutOfMemoryError = value.fromJSValue() {
-            return .gpuOutOfMemoryError(gpuOutOfMemoryError)
-        }
-        if let gpuValidationError: GPUValidationError = value.fromJSValue() {
-            return .gpuValidationError(gpuValidationError)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .gpuOutOfMemoryError(gpuOutOfMemoryError):
-            return gpuOutOfMemoryError.jsValue
-        case let .gpuValidationError(gpuValidationError):
-            return gpuValidationError.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])
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_GPUOrigin2D: ConvertibleToJSValue {}
-extension GPUOrigin2DDict: Any_GPUOrigin2D {}
-extension Array: Any_GPUOrigin2D where Element == GPUIntegerCoordinate {}
-
-public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D {
-    case gpuOrigin2DDict(GPUOrigin2DDict)
-    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
+        }
+    }
 
-    public var gpuOrigin2DDict: GPUOrigin2DDict? {
+    public var formData: FormData? {
         switch self {
-        case let .gpuOrigin2DDict(gpuOrigin2DDict): return gpuOrigin2DDict
+        case let .formData(formData): return formData
         default: return nil
         }
     }
 
-    public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? {
+    public var string: String? {
         switch self {
-        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate
+        case let .string(string): return string
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() {
-            return .gpuOrigin2DDict(gpuOrigin2DDict)
+        if let file: File = value.fromJSValue() {
+            return .file(file)
         }
-        if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() {
-            return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate)
+        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 .gpuOrigin2DDict(gpuOrigin2DDict):
-            return gpuOrigin2DDict.jsValue
-        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
-            return seq_of_GPUIntegerCoordinate.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_GPUOrigin3D: ConvertibleToJSValue {}
-extension GPUOrigin3DDict: Any_GPUOrigin3D {}
-extension Array: Any_GPUOrigin3D where Element == GPUIntegerCoordinate {}
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
 
-public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D {
-    case gpuOrigin3DDict(GPUOrigin3DDict)
-    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
 
-    public var gpuOrigin3DDict: GPUOrigin3DDict? {
+    public var file: File? {
         switch self {
-        case let .gpuOrigin3DDict(gpuOrigin3DDict): return gpuOrigin3DDict
+        case let .file(file): return file
         default: return nil
         }
     }
 
-    public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? {
+    public var string: String? {
         switch self {
-        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate): return seq_of_GPUIntegerCoordinate
+        case let .string(string): return string
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() {
-            return .gpuOrigin3DDict(gpuOrigin3DDict)
+        if let file: File = value.fromJSValue() {
+            return .file(file)
         }
-        if let seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate] = value.fromJSValue() {
-            return .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate)
+        if let string: String = value.fromJSValue() {
+            return .string(string)
         }
         return nil
     }
 
     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 .file(file):
+            return file.jsValue
+        case let .string(string):
+            return string.jsValue
         }
     }
 }
@@ -31576,62 +20631,6 @@ public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
     }
 }
 
-public protocol Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-extension ImageBitmap: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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 static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        if let imageBitmap: ImageBitmap = value.fromJSValue() {
-            return .imageBitmap(imageBitmap)
-        }
-        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 .imageBitmap(imageBitmap):
-            return imageBitmap.jsValue
-        case let .offscreenCanvas(offscreenCanvas):
-            return offscreenCanvas.jsValue
-        }
-    }
-}
-
 public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
 extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
 extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
@@ -31898,48 +20897,6 @@ public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
     }
 }
 
-public protocol Any_Int32List: ConvertibleToJSValue {}
-extension Int32Array: Any_Int32List {}
-extension Array: Any_Int32List where Element == GLint {}
-
-public enum Int32List: JSValueCompatible, Any_Int32List {
-    case int32Array(Int32Array)
-    case seq_of_GLint([GLint])
-
-    public var int32Array: Int32Array? {
-        switch self {
-        case let .int32Array(int32Array): return int32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLint: [GLint]? {
-        switch self {
-        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
 public protocol Any_MessageEventSource: ConvertibleToJSValue {}
 extension MessagePort: Any_MessageEventSource {}
 extension ServiceWorker: Any_MessageEventSource {}
@@ -32388,118 +21345,6 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str
     }
 }
 
-public protocol Any_TexImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_TexImageSource {}
-extension HTMLImageElement: Any_TexImageSource {}
-extension HTMLVideoElement: Any_TexImageSource {}
-extension ImageBitmap: Any_TexImageSource {}
-extension ImageData: Any_TexImageSource {}
-extension OffscreenCanvas: Any_TexImageSource {}
-extension VideoFrame: Any_TexImageSource {}
-
-public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlImageElement(HTMLImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case imageData(ImageData)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
 public protocol Any_TimerHandler: ConvertibleToJSValue {}
 extension JSFunction: Any_TimerHandler {}
 extension String: Any_TimerHandler {}
@@ -32542,48 +21387,6 @@ public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
     }
 }
 
-public protocol Any_Uint32List: ConvertibleToJSValue {}
-extension Uint32Array: Any_Uint32List {}
-extension Array: Any_Uint32List where Element == GLuint {}
-
-public enum Uint32List: JSValueCompatible, Any_Uint32List {
-    case uint32Array(Uint32Array)
-    case seq_of_GLuint([GLuint])
-
-    public var uint32Array: Uint32Array? {
-        switch self {
-        case let .uint32Array(uint32Array): return uint32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLuint: [GLuint]? {
-        switch self {
-        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
 public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
 extension Blob: Any_XMLHttpRequestBodyInit {}
 extension BufferSource: Any_XMLHttpRequestBodyInit {}
@@ -32667,45 +21470,3 @@ public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyIni
         }
     }
 }
-
-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 {
-    case nullable_Double(Double?)
-    case seq_of_nullable_Double([Double?])
-
-    public var nullable_Double: Double?? {
-        switch self {
-        case let .nullable_Double(nullable_Double): return nullable_Double
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
diff --git a/Sources/WebAPIKit/RenderingContext.swift b/Sources/DOM/RenderingContext.swift
similarity index 77%
rename from Sources/WebAPIKit/RenderingContext.swift
rename to Sources/DOM/RenderingContext.swift
index 81628ccf..7ddcfc9c 100644
--- a/Sources/WebAPIKit/RenderingContext.swift
+++ b/Sources/DOM/RenderingContext.swift
@@ -5,10 +5,6 @@ public protocol RenderingContext: JSValueCompatible {
     static var contextID: JSString { get }
 }
 
-extension GPUCanvasContext: RenderingContext {
-    public static var contextID: JSString { "webgpu" }
-}
-
 extension ImageBitmapRenderingContext: RenderingContext {
     public static var contextID: JSString { "bitmaprenderer" }
 }
@@ -17,23 +13,12 @@ extension CanvasRenderingContext2D: RenderingContext {
     public static var contextID: JSString { "2d" }
 }
 
-extension WebGL2RenderingContext: RenderingContext {
-    public static var contextID: JSString { "webgl2" }
-}
-
-extension WebGLRenderingContext: RenderingContext {
-    public static var contextID: JSString { "webgl" }
-}
-
 public protocol OffscreenRenderingContext: JSValueCompatible {
     static var contextID: JSString { get }
 }
 
-extension GPUCanvasContext: OffscreenRenderingContext {}
 extension ImageBitmapRenderingContext: OffscreenRenderingContext {}
 extension CanvasRenderingContext2D: OffscreenRenderingContext {}
-extension WebGL2RenderingContext: OffscreenRenderingContext {}
-extension WebGLRenderingContext: OffscreenRenderingContext {}
 extension OffscreenCanvasRenderingContext2D: OffscreenRenderingContext {
     public static var contextID: JSString { "2d" }
 }
diff --git a/Sources/WebAPIKit/RotationMatrixType.swift b/Sources/DOM/RotationMatrixType.swift
similarity index 100%
rename from Sources/WebAPIKit/RotationMatrixType.swift
rename to Sources/DOM/RotationMatrixType.swift
diff --git a/Sources/WebAPIKit/Support.swift b/Sources/DOM/Support.swift
similarity index 96%
rename from Sources/WebAPIKit/Support.swift
rename to Sources/DOM/Support.swift
index a4c1aa5e..f0f2cc80 100644
--- a/Sources/WebAPIKit/Support.swift
+++ b/Sources/DOM/Support.swift
@@ -18,8 +18,7 @@ public typealias Uint8ClampedArray = JSUInt8ClampedArray
 // public typealias CSSColorValue_or_CSSStyleValue = CSSStyleValue
 // public typealias Any_CSSColorValue_or_CSSStyleValue = CSSStyleValue
 public typealias Blob_or_MediaSource = Blob
+public typealias BodyInit = XMLHttpRequestBodyInit
 public typealias HTMLOrSVGImageElement = HTMLImageElement
 public typealias HTMLOrSVGScriptElement = HTMLScriptElement
-public typealias BodyInit = XMLHttpRequestBodyInit
 public typealias CustomElementConstructor = JSFunction
-public typealias GLintptr = Int32
diff --git a/Sources/ECMAScript/ArrayBufferView.swift b/Sources/ECMAScript/ArrayBufferView.swift
index 7951b2cd..754a6ec9 100644
--- a/Sources/ECMAScript/ArrayBufferView.swift
+++ b/Sources/ECMAScript/ArrayBufferView.swift
@@ -1,6 +1,5 @@
 // This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
 
-import JavaScriptEventLoop
 import JavaScriptKit
 
 // TODO: expand this to BigInt arrays
diff --git a/Sources/WebAPIBase/Generated.swift b/Sources/WebAPIBase/Generated.swift
new file mode 100644
index 00000000..ae719928
--- /dev/null
+++ b/Sources/WebAPIBase/Generated.swift
@@ -0,0 +1,520 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import ECMAScript
+import JavaScriptKit
+
+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
+    }
+
+    @inlinable public convenience init(message: String? = nil, name: String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [message?.jsValue ?? .undefined, name?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var name: String
+
+    @ReadonlyAttribute
+    public var message: String
+
+    @ReadonlyAttribute
+    public var code: UInt16
+
+    public static let INDEX_SIZE_ERR: UInt16 = 1
+
+    public static let DOMSTRING_SIZE_ERR: UInt16 = 2
+
+    public static let HIERARCHY_REQUEST_ERR: UInt16 = 3
+
+    public static let WRONG_DOCUMENT_ERR: UInt16 = 4
+
+    public static let INVALID_CHARACTER_ERR: UInt16 = 5
+
+    public static let NO_DATA_ALLOWED_ERR: UInt16 = 6
+
+    public static let NO_MODIFICATION_ALLOWED_ERR: UInt16 = 7
+
+    public static let NOT_FOUND_ERR: UInt16 = 8
+
+    public static let NOT_SUPPORTED_ERR: UInt16 = 9
+
+    public static let INUSE_ATTRIBUTE_ERR: UInt16 = 10
+
+    public static let INVALID_STATE_ERR: UInt16 = 11
+
+    public static let SYNTAX_ERR: UInt16 = 12
+
+    public static let INVALID_MODIFICATION_ERR: UInt16 = 13
+
+    public static let NAMESPACE_ERR: UInt16 = 14
+
+    public static let INVALID_ACCESS_ERR: UInt16 = 15
+
+    public static let VALIDATION_ERR: UInt16 = 16
+
+    public static let TYPE_MISMATCH_ERR: UInt16 = 17
+
+    public static let SECURITY_ERR: UInt16 = 18
+
+    public static let NETWORK_ERR: UInt16 = 19
+
+    public static let ABORT_ERR: UInt16 = 20
+
+    public static let URL_MISMATCH_ERR: UInt16 = 21
+
+    public static let QUOTA_EXCEEDED_ERR: UInt16 = 22
+
+    public static let TIMEOUT_ERR: UInt16 = 23
+
+    public static let INVALID_NODE_TYPE_ERR: UInt16 = 24
+
+    public static let DATA_CLONE_ERR: UInt16 = 25
+}
+
+public typealias DOMTimeStamp = UInt64
+public typealias VoidFunction = () -> Void
+public class URL: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URL].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)
+        _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
+    }
+
+    @inlinable public convenience init(url: String, base: String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, base?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var href: String
+
+    @ReadonlyAttribute
+    public var origin: String
+
+    @ReadWriteAttribute
+    public var `protocol`: String
+
+    @ReadWriteAttribute
+    public var username: String
+
+    @ReadWriteAttribute
+    public var password: String
+
+    @ReadWriteAttribute
+    public var host: String
+
+    @ReadWriteAttribute
+    public var hostname: String
+
+    @ReadWriteAttribute
+    public var port: String
+
+    @ReadWriteAttribute
+    public var pathname: String
+
+    @ReadWriteAttribute
+    public var search: String
+
+    @ReadonlyAttribute
+    public var searchParams: URLSearchParams
+
+    @ReadWriteAttribute
+    public var hash: String
+
+    @inlinable public func toJSON() -> String {
+        let this = jsObject
+        return this[Strings.toJSON].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
+
+public class URLSearchParams: JSBridgedClass, Sequence {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.URLSearchParams].function }
+
+    public let 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) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [`init`?.jsValue ?? .undefined]))
+    }
+
+    @inlinable public func append(name: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.append].function!(this: this, arguments: [name.jsValue, value.jsValue])
+    }
+
+    @inlinable public func delete(name: String) {
+        let this = jsObject
+        _ = this[Strings.delete].function!(this: this, arguments: [name.jsValue])
+    }
+
+    @inlinable public func get(name: String) -> String? {
+        let this = jsObject
+        return this[Strings.get].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func getAll(name: String) -> [String] {
+        let this = jsObject
+        return this[Strings.getAll].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func has(name: String) -> Bool {
+        let this = jsObject
+        return this[Strings.has].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func set(name: String, value: String) {
+        let this = jsObject
+        _ = this[Strings.set].function!(this: this, arguments: [name.jsValue, value.jsValue])
+    }
+
+    @inlinable public func sort() {
+        let this = jsObject
+        _ = this[Strings.sort].function!(this: this, arguments: [])
+    }
+
+    public typealias Element = String
+    public func makeIterator() -> ValueIterableIterator<URLSearchParams> {
+        ValueIterableIterator(sequence: self)
+    }
+
+    @inlinable public var description: String {
+        jsObject[Strings.toString]!().fromJSValue()!
+    }
+}
+
+public enum console {
+    @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!
+        _ = this[Strings.assert].function!(this: this, arguments: [condition?.jsValue ?? .undefined] + data.map(\.jsValue))
+    }
+
+    @inlinable public static func clear() {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.clear].function!(this: this, arguments: [])
+    }
+
+    @inlinable public static func debug(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.debug].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func error(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.error].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func info(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.info].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func log(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.log].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func table(tabularData: JSValue? = nil, properties: [String]? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.table].function!(this: this, arguments: [tabularData?.jsValue ?? .undefined, properties?.jsValue ?? .undefined])
+    }
+
+    @inlinable public static func trace(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.trace].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func warn(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.warn].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func dir(item: JSValue? = nil, options: JSObject? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.dir].function!(this: this, arguments: [item?.jsValue ?? .undefined, options?.jsValue ?? .undefined])
+    }
+
+    @inlinable public static func dirxml(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.dirxml].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func count(label: String? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.count].function!(this: this, arguments: [label?.jsValue ?? .undefined])
+    }
+
+    @inlinable public static func countReset(label: String? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.countReset].function!(this: this, arguments: [label?.jsValue ?? .undefined])
+    }
+
+    @inlinable public static func group(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.group].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func groupCollapsed(data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.groupCollapsed].function!(this: this, arguments: data.map(\.jsValue))
+    }
+
+    @inlinable public static func groupEnd() {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.groupEnd].function!(this: this, arguments: [])
+    }
+
+    @inlinable public static func time(label: String? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.time].function!(this: this, arguments: [label?.jsValue ?? .undefined])
+    }
+
+    @inlinable public static func timeLog(label: String? = nil, data: JSValue...) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.timeLog].function!(this: this, arguments: [label?.jsValue ?? .undefined] + data.map(\.jsValue))
+    }
+
+    @inlinable public static func timeEnd(label: String? = nil) {
+        let this = JSObject.global[Strings.console].object!
+        _ = this[Strings.timeEnd].function!(this: this, arguments: [label?.jsValue ?? .undefined])
+    }
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 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 `protocol`: JSString = "protocol"
+    @usableFromInline static let search: JSString = "search"
+    @usableFromInline static let searchParams: JSString = "searchParams"
+    @usableFromInline static let set: JSString = "set"
+    @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_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
diff --git a/Sources/WebAPIKitDemo/WebGLDemo.swift b/Sources/WebAPIKitDemo/WebGLDemo.swift
index b73594c4..a10d0d5a 100644
--- a/Sources/WebAPIKitDemo/WebGLDemo.swift
+++ b/Sources/WebAPIKitDemo/WebGLDemo.swift
@@ -27,7 +27,7 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
-import WebAPIKit
+import WebGL2
 
 let vertexShaderSource =
   """
diff --git a/Sources/WebAPIKitDemo/main.swift b/Sources/WebAPIKitDemo/main.swift
index 38f61dd4..93df201e 100644
--- a/Sources/WebAPIKitDemo/main.swift
+++ b/Sources/WebAPIKitDemo/main.swift
@@ -1,5 +1,5 @@
+import DOM
 import JavaScriptKit
-import WebAPIKit
 
 let document = globalThis.document
 
diff --git a/Sources/WebAnimations/Generated.swift b/Sources/WebAnimations/Generated.swift
new file mode 100644
index 00000000..b71454a8
--- /dev/null
+++ b/Sources/WebAnimations/Generated.swift
@@ -0,0 +1,5293 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import DOM
+import ECMAScript
+import JavaScriptKit
+import WebAPIBase
+import WebAudio
+
+public protocol Animatable: JSBridgedClass {}
+public extension Animatable {
+    @inlinable func animate(keyframes: JSObject?, options: Double_or_KeyframeAnimationOptions? = nil) -> Animation {
+        let this = jsObject
+        return this[Strings.animate].function!(this: this, arguments: [keyframes.jsValue, options?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable func getAnimations(options: GetAnimationsOptions? = nil) -> [Animation] {
+        let this = jsObject
+        return this[Strings.getAnimations].function!(this: this, arguments: [options?.jsValue ?? .undefined]).fromJSValue()!
+    }
+}
+
+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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onfinish)
+        _oncancel = ReadWriteAttribute(jsObject: jsObject, name: Strings.oncancel)
+        _onremove = ReadWriteAttribute(jsObject: jsObject, name: Strings.onremove)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(effect: AnimationEffect? = nil, timeline: AnimationTimeline? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [effect?.jsValue ?? .undefined, timeline?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var id: String
+
+    @ReadWriteAttribute
+    public var effect: AnimationEffect?
+
+    @ReadWriteAttribute
+    public var timeline: AnimationTimeline?
+
+    @ReadWriteAttribute
+    public var playbackRate: Double
+
+    @ReadonlyAttribute
+    public var playState: AnimationPlayState
+
+    @ReadonlyAttribute
+    public var replaceState: AnimationReplaceState
+
+    @ReadonlyAttribute
+    public var pending: Bool
+
+    @ReadonlyAttribute
+    public var ready: JSPromise
+
+    @ReadonlyAttribute
+    public var finished: JSPromise
+
+    @ReadWriteAttribute
+    public var onfinish: EventHandler
+
+    @ReadWriteAttribute
+    public var oncancel: EventHandler
+
+    @ReadWriteAttribute
+    public var onremove: EventHandler
+
+    @inlinable public func cancel() {
+        let this = jsObject
+        _ = this[Strings.cancel].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func finish() {
+        let this = jsObject
+        _ = this[Strings.finish].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func play() {
+        let this = jsObject
+        _ = this[Strings.play].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func pause() {
+        let this = jsObject
+        _ = this[Strings.pause].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func updatePlaybackRate(playbackRate: Double) {
+        let this = jsObject
+        _ = this[Strings.updatePlaybackRate].function!(this: this, arguments: [playbackRate.jsValue])
+    }
+
+    @inlinable public func reverse() {
+        let this = jsObject
+        _ = this[Strings.reverse].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func persist() {
+        let this = jsObject
+        _ = this[Strings.persist].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func commitStyles() {
+        let this = jsObject
+        _ = this[Strings.commitStyles].function!(this: this, arguments: [])
+    }
+}
+
+public class AnimationEffect: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AnimationEffect].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func getTiming() -> EffectTiming {
+        let this = jsObject
+        return this[Strings.getTiming].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func getComputedTiming() -> ComputedEffectTiming {
+        let this = jsObject
+        return this[Strings.getComputedTiming].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func updateTiming(timing: OptionalEffectTiming? = nil) {
+        let this = jsObject
+        _ = this[Strings.updateTiming].function!(this: this, arguments: [timing?.jsValue ?? .undefined])
+    }
+}
+
+public enum AnimationPlayState: JSString, JSValueCompatible {
+    case idle = "idle"
+    case running = "running"
+    case paused = "paused"
+    case finished = "finished"
+
+    @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 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)
+        }
+        return nil
+    }
+
+    @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) {
+        _currentTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.currentTime)
+        _phase = ReadonlyAttribute(jsObject: jsObject, name: Strings.phase)
+        self.jsObject = jsObject
+    }
+
+    @ReadonlyAttribute
+    public var currentTime: Double?
+
+    @ReadonlyAttribute
+    public var phase: TimelinePhase
+}
+
+public class BaseComputedKeyframe: BridgedDictionary {
+    public convenience init(offset: Double?, computedOffset: Double, easing: String, composite: CompositeOperationOrAuto) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.offset] = offset.jsValue
+        object[Strings.computedOffset] = computedOffset.jsValue
+        object[Strings.easing] = easing.jsValue
+        object[Strings.composite] = composite.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var offset: Double?
+
+    @ReadWriteAttribute
+    public var computedOffset: Double
+
+    @ReadWriteAttribute
+    public var easing: String
+
+    @ReadWriteAttribute
+    public var composite: CompositeOperationOrAuto
+}
+
+public class BaseKeyframe: BridgedDictionary {
+    public convenience init(offset: Double?, easing: String, composite: CompositeOperationOrAuto) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.offset] = offset.jsValue
+        object[Strings.easing] = easing.jsValue
+        object[Strings.composite] = composite.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var offset: Double?
+
+    @ReadWriteAttribute
+    public var easing: String
+
+    @ReadWriteAttribute
+    public var composite: CompositeOperationOrAuto
+}
+
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.offset] = offset.jsValue
+        object[Strings.easing] = easing.jsValue
+        object[Strings.composite] = composite.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var offset: nullable_Double_or_seq_of_nullable_Double
+
+    @ReadWriteAttribute
+    public var easing: String_or_seq_of_String
+
+    @ReadWriteAttribute
+    public var composite: CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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"
+    case accumulate = "accumulate"
+    case auto = "auto"
+
+    @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 ComputedEffectTiming: BridgedDictionary {
+    public convenience init(progress: Double?, currentIteration: Double?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.progress] = progress.jsValue
+        object[Strings.currentIteration] = currentIteration.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var progress: Double?
+
+    @ReadWriteAttribute
+    public var currentIteration: Double?
+}
+
+public protocol DocumentOrShadowRoot: JSBridgedClass {}
+public extension DocumentOrShadowRoot {
+    @inlinable 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 }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(options: DocumentTimelineOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [options?.jsValue ?? .undefined]))
+    }
+}
+
+public class DocumentTimelineOptions: BridgedDictionary {
+    public convenience init(originTime: DOMHighResTimeStamp) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.originTime] = originTime.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _originTime = ReadWriteAttribute(jsObject: object, name: Strings.originTime)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var originTime: DOMHighResTimeStamp
+}
+
+public class EffectTiming: BridgedDictionary {
+    public convenience init(delay: Double, endDelay: Double, fill: FillMode, iterationStart: Double, iterations: Double, direction: PlaybackDirection, easing: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.delay] = delay.jsValue
+        object[Strings.endDelay] = endDelay.jsValue
+        object[Strings.fill] = fill.jsValue
+        object[Strings.iterationStart] = iterationStart.jsValue
+        object[Strings.iterations] = iterations.jsValue
+        object[Strings.direction] = direction.jsValue
+        object[Strings.easing] = easing.jsValue
+        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)
+        _direction = ReadWriteAttribute(jsObject: object, name: Strings.direction)
+        _easing = ReadWriteAttribute(jsObject: object, name: Strings.easing)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var delay: Double
+
+    @ReadWriteAttribute
+    public var endDelay: Double
+
+    @ReadWriteAttribute
+    public var fill: FillMode
+
+    @ReadWriteAttribute
+    public var iterationStart: Double
+
+    @ReadWriteAttribute
+    public var iterations: Double
+
+    @ReadWriteAttribute
+    public var direction: PlaybackDirection
+
+    @ReadWriteAttribute
+    public var easing: String
+}
+
+public enum FillMode: JSString, JSValueCompatible {
+    case none = "none"
+    case forwards = "forwards"
+    case backwards = "backwards"
+    case both = "both"
+    case auto = "auto"
+
+    @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 GetAnimationsOptions: BridgedDictionary {
+    public convenience init(subtree: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.subtree] = subtree.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _subtree = ReadWriteAttribute(jsObject: object, name: Strings.subtree)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var subtree: Bool
+}
+
+public class KeyframeAnimationOptions: BridgedDictionary {
+    public convenience init(id: String, timeline: AnimationTimeline?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.id] = id.jsValue
+        object[Strings.timeline] = timeline.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var id: String
+
+    @ReadWriteAttribute
+    public var timeline: AnimationTimeline?
+}
+
+public class KeyframeEffect: AnimationEffect {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(target: Element?, keyframes: JSObject?, options: Double_or_KeyframeEffectOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [target.jsValue, keyframes.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @inlinable public convenience init(source: KeyframeEffect) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [source.jsValue]))
+    }
+
+    @ReadWriteAttribute
+    public var target: Element?
+
+    @ReadWriteAttribute
+    public var pseudoElement: String?
+
+    @ReadWriteAttribute
+    public var composite: CompositeOperation
+
+    @inlinable public func getKeyframes() -> [JSObject] {
+        let this = jsObject
+        return this[Strings.getKeyframes].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func setKeyframes(keyframes: JSObject?) {
+        let this = jsObject
+        _ = this[Strings.setKeyframes].function!(this: this, arguments: [keyframes.jsValue])
+    }
+}
+
+public class KeyframeEffectOptions: BridgedDictionary {
+    public convenience init(composite: CompositeOperation, pseudoElement: String?) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.composite] = composite.jsValue
+        object[Strings.pseudoElement] = pseudoElement.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var composite: CompositeOperation
+
+    @ReadWriteAttribute
+    public var pseudoElement: String?
+}
+
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.delay] = delay.jsValue
+        object[Strings.endDelay] = endDelay.jsValue
+        object[Strings.fill] = fill.jsValue
+        object[Strings.iterationStart] = iterationStart.jsValue
+        object[Strings.iterations] = iterations.jsValue
+        object[Strings.duration] = duration.jsValue
+        object[Strings.direction] = direction.jsValue
+        object[Strings.easing] = easing.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var delay: Double
+
+    @ReadWriteAttribute
+    public var endDelay: Double
+
+    @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
+}
+
+public enum PlaybackDirection: JSString, JSValueCompatible {
+    case normal = "normal"
+    case reverse = "reverse"
+    case alternate = "alternate"
+    case alternateReverse = "alternate-reverse"
+
+    @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 TimelinePhase: JSString, JSValueCompatible {
+    case inactive = "inactive"
+    case before = "before"
+    case active = "active"
+    case after = "after"
+
+    @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 }
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 AnalyserNode: JSString = "AnalyserNode"
+    @usableFromInline static let Animation: JSString = "Animation"
+    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
+    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
+    @usableFromInline static let Attr: JSString = "Attr"
+    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
+    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
+    @usableFromInline static let AudioContext: JSString = "AudioContext"
+    @usableFromInline static let AudioData: JSString = "AudioData"
+    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
+    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
+    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
+    @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 AudioTrack: JSString = "AudioTrack"
+    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
+    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
+    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
+    @usableFromInline static let BarProp: JSString = "BarProp"
+    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
+    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
+    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
+    @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 CanvasFilter: JSString = "CanvasFilter"
+    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
+    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
+    @usableFromInline static let CharacterData: JSString = "CharacterData"
+    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
+    @usableFromInline static let Comment: JSString = "Comment"
+    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
+    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
+    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
+    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
+    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
+    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
+    @usableFromInline static let DOMException: JSString = "DOMException"
+    @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 DelayNode: JSString = "DelayNode"
+    @usableFromInline static let Document: JSString = "Document"
+    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
+    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
+    @usableFromInline static let DocumentType: JSString = "DocumentType"
+    @usableFromInline static let DragEvent: JSString = "DragEvent"
+    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
+    @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 GainNode: JSString = "GainNode"
+    @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 IIRFilterNode: JSString = "IIRFilterNode"
+    @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 KeyframeEffect: JSString = "KeyframeEffect"
+    @usableFromInline static let Location: JSString = "Location"
+    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
+    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
+    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
+    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @usableFromInline static let MediaStream: JSString = "MediaStream"
+    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
+    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
+    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
+    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
+    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
+    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
+    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
+    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
+    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
+    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
+    @usableFromInline static let PannerNode: JSString = "PannerNode"
+    @usableFromInline static let Path2D: JSString = "Path2D"
+    @usableFromInline static let Performance: JSString = "Performance"
+    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
+    @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 Q: JSString = "Q"
+    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
+    @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 StaticRange: JSString = "StaticRange"
+    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
+    @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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WaveShaperNode: JSString = "WaveShaperNode"
+    @usableFromInline static let WebSocket: JSString = "WebSocket"
+    @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 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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @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 ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animate: JSString = "animate"
+    @usableFromInline static let animated: JSString = "animated"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 `as`: JSString = "as"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 attack: JSString = "attack"
+    @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 audioWorklet: JSString = "audioWorklet"
+    @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 automationRate: JSString = "automationRate"
+    @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 b: JSString = "b"
+    @usableFromInline static let back: JSString = "back"
+    @usableFromInline static let background: JSString = "background"
+    @usableFromInline static let badInput: JSString = "badInput"
+    @usableFromInline static let baseLatency: JSString = "baseLatency"
+    @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 binaryType: JSString = "binaryType"
+    @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 buffer: JSString = "buffer"
+    @usableFromInline static let bufferSize: JSString = "bufferSize"
+    @usableFromInline static let buffered: JSString = "buffered"
+    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
+    @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 canPlayType: JSString = "canPlayType"
+    @usableFromInline static let cancel: JSString = "cancel"
+    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
+    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
+    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
+    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
+    @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 channelCount: JSString = "channelCount"
+    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
+    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
+    @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 checkValidity: JSString = "checkValidity"
+    @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 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 commitStyles: JSString = "commitStyles"
+    @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 composite: JSString = "composite"
+    @usableFromInline static let computedOffset: JSString = "computedOffset"
+    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
+    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
+    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
+    @usableFromInline static let config: JSString = "config"
+    @usableFromInline static let configure: JSString = "configure"
+    @usableFromInline static let confirm: JSString = "confirm"
+    @usableFromInline static let connect: JSString = "connect"
+    @usableFromInline static let console: JSString = "console"
+    @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 context: JSString = "context"
+    @usableFromInline static let contextTime: JSString = "contextTime"
+    @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 copyFromChannel: JSString = "copyFromChannel"
+    @usableFromInline static let copyTo: JSString = "copyTo"
+    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
+    @usableFromInline static let count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
+    @usableFromInline static let createAttribute: JSString = "createAttribute"
+    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
+    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
+    @usableFromInline static let createBuffer: JSString = "createBuffer"
+    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
+    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
+    @usableFromInline static let createCaption: JSString = "createCaption"
+    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
+    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
+    @usableFromInline static let createComment: JSString = "createComment"
+    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
+    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
+    @usableFromInline static let createConvolver: JSString = "createConvolver"
+    @usableFromInline static let createDelay: JSString = "createDelay"
+    @usableFromInline static let createDocument: JSString = "createDocument"
+    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
+    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
+    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
+    @usableFromInline static let createElement: JSString = "createElement"
+    @usableFromInline static let createElementNS: JSString = "createElementNS"
+    @usableFromInline static let createEvent: JSString = "createEvent"
+    @usableFromInline static let createGain: JSString = "createGain"
+    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
+    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
+    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
+    @usableFromInline static let createImageData: JSString = "createImageData"
+    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
+    @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 createObjectURL: JSString = "createObjectURL"
+    @usableFromInline static let createOscillator: JSString = "createOscillator"
+    @usableFromInline static let createPanner: JSString = "createPanner"
+    @usableFromInline static let createPattern: JSString = "createPattern"
+    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
+    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
+    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
+    @usableFromInline static let createRange: JSString = "createRange"
+    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
+    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
+    @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 createWaveShaper: JSString = "createWaveShaper"
+    @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 currentIteration: JSString = "currentIteration"
+    @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 curve: JSString = "curve"
+    @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 debug: JSString = "debug"
+    @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 `defer`: JSString = "defer"
+    @usableFromInline static let define: JSString = "define"
+    @usableFromInline static let delay: JSString = "delay"
+    @usableFromInline static let delayTime: JSString = "delayTime"
+    @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 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 detune: JSString = "detune"
+    @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 dirxml: JSString = "dirxml"
+    @usableFromInline static let disable: JSString = "disable"
+    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
+    @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 distanceModel: JSString = "distanceModel"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @usableFromInline static let duration: JSString = "duration"
+    @usableFromInline static let e: JSString = "e"
+    @usableFromInline static let easing: JSString = "easing"
+    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
+    @usableFromInline static let effect: JSString = "effect"
+    @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 endDelay: JSString = "endDelay"
+    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
+    @usableFromInline static let extends: JSString = "extends"
+    @usableFromInline static let extensions: JSString = "extensions"
+    @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 feedback: JSString = "feedback"
+    @usableFromInline static let feedforward: JSString = "feedforward"
+    @usableFromInline static let fetch: JSString = "fetch"
+    @usableFromInline static let fftSize: JSString = "fftSize"
+    @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 finish: JSString = "finish"
+    @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 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 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 forwardX: JSString = "forwardX"
+    @usableFromInline static let forwardY: JSString = "forwardY"
+    @usableFromInline static let forwardZ: JSString = "forwardZ"
+    @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 frequency: JSString = "frequency"
+    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
+    @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 gain: JSString = "gain"
+    @usableFromInline static let get: JSString = "get"
+    @usableFromInline static let getAll: JSString = "getAll"
+    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
+    @usableFromInline static let getAnimations: JSString = "getAnimations"
+    @usableFromInline static let getAsFile: JSString = "getAsFile"
+    @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 getByteFrequencyData: JSString = "getByteFrequencyData"
+    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
+    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
+    @usableFromInline static let getChannelData: JSString = "getChannelData"
+    @usableFromInline static let getClientRect: JSString = "getClientRect"
+    @usableFromInline static let getClientRects: JSString = "getClientRects"
+    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
+    @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 getFloatFrequencyData: JSString = "getFloatFrequencyData"
+    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
+    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
+    @usableFromInline static let getImageData: JSString = "getImageData"
+    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
+    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
+    @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 getSettings: JSString = "getSettings"
+    @usableFromInline static let getStartDate: JSString = "getStartDate"
+    @usableFromInline static let getState: JSString = "getState"
+    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
+    @usableFromInline static let getTiming: JSString = "getTiming"
+    @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 group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 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 ideographicBaseline: JSString = "ideographicBaseline"
+    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
+    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
+    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
+    @usableFromInline static let imag: JSString = "imag"
+    @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 inputBuffer: JSString = "inputBuffer"
+    @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 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 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 isVisible: JSString = "isVisible"
+    @usableFromInline static let item: JSString = "item"
+    @usableFromInline static let items: JSString = "items"
+    @usableFromInline static let iterateNext: JSString = "iterateNext"
+    @usableFromInline static let iterationStart: JSString = "iterationStart"
+    @usableFromInline static let iterations: JSString = "iterations"
+    @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 knee: JSString = "knee"
+    @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 latencyHint: JSString = "latencyHint"
+    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
+    @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 listener: JSString = "listener"
+    @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 log: JSString = "log"
+    @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 loopEnd: JSString = "loopEnd"
+    @usableFromInline static let loopStart: JSString = "loopStart"
+    @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 maxChannelCount: JSString = "maxChannelCount"
+    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
+    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
+    @usableFromInline static let maxDistance: JSString = "maxDistance"
+    @usableFromInline static let maxLength: JSString = "maxLength"
+    @usableFromInline static let maxValue: JSString = "maxValue"
+    @usableFromInline static let measureText: JSString = "measureText"
+    @usableFromInline static let media: JSString = "media"
+    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
+    @usableFromInline static let mediaElement: JSString = "mediaElement"
+    @usableFromInline static let mediaStream: JSString = "mediaStream"
+    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
+    @usableFromInline static let menubar: JSString = "menubar"
+    @usableFromInline static let message: JSString = "message"
+    @usableFromInline static let metaKey: JSString = "metaKey"
+    @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 minDecibels: JSString = "minDecibels"
+    @usableFromInline static let minLength: JSString = "minLength"
+    @usableFromInline static let minValue: JSString = "minValue"
+    @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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 numberOfInputs: JSString = "numberOfInputs"
+    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncomplete: JSString = "oncomplete"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 onfinish: JSString = "onfinish"
+    @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 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 onprocessorerror: JSString = "onprocessorerror"
+    @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 onremove: JSString = "onremove"
+    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 orientationX: JSString = "orientationX"
+    @usableFromInline static let orientationY: JSString = "orientationY"
+    @usableFromInline static let orientationZ: JSString = "orientationZ"
+    @usableFromInline static let origin: JSString = "origin"
+    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
+    @usableFromInline static let originTime: JSString = "originTime"
+    @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 outputBuffer: JSString = "outputBuffer"
+    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
+    @usableFromInline static let outputLatency: JSString = "outputLatency"
+    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
+    @usableFromInline static let oversample: JSString = "oversample"
+    @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 pageX: JSString = "pageX"
+    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
+    @usableFromInline static let pageY: JSString = "pageY"
+    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
+    @usableFromInline static let pan: JSString = "pan"
+    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
+    @usableFromInline static let panningModel: JSString = "panningModel"
+    @usableFromInline static let parameterData: JSString = "parameterData"
+    @usableFromInline static let parameters: JSString = "parameters"
+    @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 pending: JSString = "pending"
+    @usableFromInline static let performance: JSString = "performance"
+    @usableFromInline static let performanceTime: JSString = "performanceTime"
+    @usableFromInline static let periodicWave: JSString = "periodicWave"
+    @usableFromInline static let persist: JSString = "persist"
+    @usableFromInline static let persisted: JSString = "persisted"
+    @usableFromInline static let personalbar: JSString = "personalbar"
+    @usableFromInline static let phase: JSString = "phase"
+    @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 playState: JSString = "playState"
+    @usableFromInline static let playbackRate: JSString = "playbackRate"
+    @usableFromInline static let playbackTime: JSString = "playbackTime"
+    @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 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 positionX: JSString = "positionX"
+    @usableFromInline static let positionY: JSString = "positionY"
+    @usableFromInline static let positionZ: JSString = "positionZ"
+    @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 processorOptions: JSString = "processorOptions"
+    @usableFromInline static let product: JSString = "product"
+    @usableFromInline static let productSub: JSString = "productSub"
+    @usableFromInline static let progress: JSString = "progress"
+    @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 pseudoElement: JSString = "pseudoElement"
+    @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 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 rangeOverflow: JSString = "rangeOverflow"
+    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
+    @usableFromInline static let ratio: JSString = "ratio"
+    @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 real: JSString = "real"
+    @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 reduction: JSString = "reduction"
+    @usableFromInline static let refDistance: JSString = "refDistance"
+    @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 release: JSString = "release"
+    @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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
+    @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 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 reverse: JSString = "reverse"
+    @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 rolloffFactor: JSString = "rolloffFactor"
+    @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 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 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 searchParams: JSString = "searchParams"
+    @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 setKeyframes: JSString = "setKeyframes"
+    @usableFromInline static let setLineDash: JSString = "setLineDash"
+    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
+    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
+    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
+    @usableFromInline static let setOrientation: JSString = "setOrientation"
+    @usableFromInline static let setParameter: JSString = "setParameter"
+    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
+    @usableFromInline static let setPosition: JSString = "setPosition"
+    @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 setTargetAtTime: JSString = "setTargetAtTime"
+    @usableFromInline static let setTimeout: JSString = "setTimeout"
+    @usableFromInline static let setTransform: JSString = "setTransform"
+    @usableFromInline static let setValidity: JSString = "setValidity"
+    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
+    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
+    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
+    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
+    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
+    @usableFromInline static let sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @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 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 startRendering: JSString = "startRendering"
+    @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 supports: JSString = "supports"
+    @usableFromInline static let surroundContents: JSString = "surroundContents"
+    @usableFromInline static let suspend: JSString = "suspend"
+    @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 table: JSString = "table"
+    @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 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 threshold: JSString = "threshold"
+    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
+    @usableFromInline static let time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
+    @usableFromInline static let timeStamp: JSString = "timeStamp"
+    @usableFromInline static let timecode: JSString = "timecode"
+    @usableFromInline static let timeline: JSString = "timeline"
+    @usableFromInline static let timeout: JSString = "timeout"
+    @usableFromInline static let timestamp: JSString = "timestamp"
+    @usableFromInline static let title: JSString = "title"
+    @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 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 trace: JSString = "trace"
+    @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 translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 upX: JSString = "upX"
+    @usableFromInline static let upY: JSString = "upY"
+    @usableFromInline static let upZ: JSString = "upZ"
+    @usableFromInline static let update: JSString = "update"
+    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
+    @usableFromInline static let updateTiming: JSString = "updateTiming"
+    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
+    @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 userAgent: JSString = "userAgent"
+    @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 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 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 warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
+extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
+extension Double: Any_AudioContextLatencyCategory_or_Double {}
+
+public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
+    case audioContextLatencyCategory(AudioContextLatencyCategory)
+    case double(Double)
+
+    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+        switch self {
+        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
+            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+
+public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
+    case compositeOperationOrAuto(CompositeOperationOrAuto)
+    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
+
+    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
+        switch self {
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
+            return .compositeOperationOrAuto(compositeOperationOrAuto)
+        }
+        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
+            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto):
+            return compositeOperationOrAuto.jsValue
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
+            return seq_of_CompositeOperationOrAuto.jsValue
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .document(document):
+            return document.jsValue
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
+            return xmlHttpRequestBodyInit.jsValue
+        }
+    }
+}
+
+public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeAnimationOptions {}
+extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
+
+public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
+    case double(Double)
+    case keyframeAnimationOptions(KeyframeAnimationOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
+        switch self {
+        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
+            return .keyframeAnimationOptions(keyframeAnimationOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
+    case double(Double)
+    case keyframeEffectOptions(KeyframeEffectOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeEffectOptions: KeyframeEffectOptions? {
+        switch self {
+        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
+            return .keyframeEffectOptions(keyframeEffectOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
+    case double(Double)
+    case string(String)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .double(double):
+            return double.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
+extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
+extension String: Any_ElementCreationOptions_or_String {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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 {
+    case nullable_Double(Double?)
+    case seq_of_nullable_Double([Double?])
+
+    public var nullable_Double: Double?? {
+        switch self {
+        case let .nullable_Double(nullable_Double): return nullable_Double
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
diff --git a/Sources/WebAudio/Generated.swift b/Sources/WebAudio/Generated.swift
new file mode 100644
index 00000000..5f217680
--- /dev/null
+++ b/Sources/WebAudio/Generated.swift
@@ -0,0 +1,6497 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import DOM
+import ECMAScript
+import JavaScriptKit
+import WebAPIBase
+
+public class AnalyserNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: AnalyserOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @inlinable public func getFloatFrequencyData(array: Float32Array) {
+        let this = jsObject
+        _ = this[Strings.getFloatFrequencyData].function!(this: this, arguments: [array.jsValue])
+    }
+
+    @inlinable public func getByteFrequencyData(array: Uint8Array) {
+        let this = jsObject
+        _ = this[Strings.getByteFrequencyData].function!(this: this, arguments: [array.jsValue])
+    }
+
+    @inlinable public func getFloatTimeDomainData(array: Float32Array) {
+        let this = jsObject
+        _ = this[Strings.getFloatTimeDomainData].function!(this: this, arguments: [array.jsValue])
+    }
+
+    @inlinable public func getByteTimeDomainData(array: Uint8Array) {
+        let this = jsObject
+        _ = this[Strings.getByteTimeDomainData].function!(this: this, arguments: [array.jsValue])
+    }
+
+    @ReadWriteAttribute
+    public var fftSize: UInt32
+
+    @ReadonlyAttribute
+    public var frequencyBinCount: UInt32
+
+    @ReadWriteAttribute
+    public var minDecibels: Double
+
+    @ReadWriteAttribute
+    public var maxDecibels: Double
+
+    @ReadWriteAttribute
+    public var smoothingTimeConstant: Double
+}
+
+public class AnalyserOptions: BridgedDictionary {
+    public convenience init(fftSize: UInt32, maxDecibels: Double, minDecibels: Double, smoothingTimeConstant: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.fftSize] = fftSize.jsValue
+        object[Strings.maxDecibels] = maxDecibels.jsValue
+        object[Strings.minDecibels] = minDecibels.jsValue
+        object[Strings.smoothingTimeConstant] = smoothingTimeConstant.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var fftSize: UInt32
+
+    @ReadWriteAttribute
+    public var maxDecibels: Double
+
+    @ReadWriteAttribute
+    public var minDecibels: Double
+
+    @ReadWriteAttribute
+    public var smoothingTimeConstant: Double
+}
+
+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
+    }
+
+    @inlinable public convenience init(options: AudioBufferOptions) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [options.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var sampleRate: Float
+
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @ReadonlyAttribute
+    public var duration: Double
+
+    @ReadonlyAttribute
+    public var numberOfChannels: UInt32
+
+    @inlinable public func getChannelData(channel: UInt32) -> Float32Array {
+        let this = jsObject
+        return this[Strings.getChannelData].function!(this: this, arguments: [channel.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func copyFromChannel(destination: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) {
+        let this = jsObject
+        _ = this[Strings.copyFromChannel].function!(this: this, arguments: [destination.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func copyToChannel(source: Float32Array, channelNumber: UInt32, bufferOffset: UInt32? = nil) {
+        let this = jsObject
+        _ = this[Strings.copyToChannel].function!(this: this, arguments: [source.jsValue, channelNumber.jsValue, bufferOffset?.jsValue ?? .undefined])
+    }
+}
+
+public class AudioBufferOptions: BridgedDictionary {
+    public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.numberOfChannels] = numberOfChannels.jsValue
+        object[Strings.length] = length.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var numberOfChannels: UInt32
+
+    @ReadWriteAttribute
+    public var length: UInt32
+
+    @ReadWriteAttribute
+    public var sampleRate: Float
+}
+
+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 convenience init(context: BaseAudioContext, options: AudioBufferSourceOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var buffer: AudioBuffer?
+
+    @ReadonlyAttribute
+    public var playbackRate: AudioParam
+
+    @ReadonlyAttribute
+    public var detune: AudioParam
+
+    @ReadWriteAttribute
+    public var loop: Bool
+
+    @ReadWriteAttribute
+    public var loopStart: Double
+
+    @ReadWriteAttribute
+    public var loopEnd: Double
+
+    // XXX: member 'start' is ignored
+}
+
+public class AudioBufferSourceOptions: BridgedDictionary {
+    public convenience init(buffer: AudioBuffer?, detune: Float, loop: Bool, loopEnd: Double, loopStart: Double, playbackRate: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.buffer] = buffer.jsValue
+        object[Strings.detune] = detune.jsValue
+        object[Strings.loop] = loop.jsValue
+        object[Strings.loopEnd] = loopEnd.jsValue
+        object[Strings.loopStart] = loopStart.jsValue
+        object[Strings.playbackRate] = playbackRate.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var playbackRate: Float
+}
+
+public class AudioContext: BaseAudioContext {
+    @inlinable override public 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)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(contextOptions: AudioContextOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [contextOptions?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var baseLatency: Double
+
+    @ReadonlyAttribute
+    public var outputLatency: Double
+
+    @inlinable public func getOutputTimestamp() -> AudioTimestamp {
+        let this = jsObject
+        return this[Strings.getOutputTimestamp].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable 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
+    }
+
+    @inlinable 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
+    }
+
+    @inlinable 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
+    }
+
+    @inlinable public func createMediaElementSource(mediaElement: HTMLMediaElement) -> MediaElementAudioSourceNode {
+        let this = jsObject
+        return this[Strings.createMediaElementSource].function!(this: this, arguments: [mediaElement.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createMediaStreamSource(mediaStream: MediaStream) -> MediaStreamAudioSourceNode {
+        let this = jsObject
+        return this[Strings.createMediaStreamSource].function!(this: this, arguments: [mediaStream.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createMediaStreamTrackSource(mediaStreamTrack: MediaStreamTrack) -> MediaStreamTrackAudioSourceNode {
+        let this = jsObject
+        return this[Strings.createMediaStreamTrackSource].function!(this: this, arguments: [mediaStreamTrack.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createMediaStreamDestination() -> MediaStreamAudioDestinationNode {
+        let this = jsObject
+        return this[Strings.createMediaStreamDestination].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
+
+public enum AudioContextLatencyCategory: JSString, JSValueCompatible {
+    case balanced = "balanced"
+    case interactive = "interactive"
+    case playback = "playback"
+
+    @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 AudioContextOptions: BridgedDictionary {
+    public convenience init(latencyHint: AudioContextLatencyCategory_or_Double, sampleRate: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.latencyHint] = latencyHint.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _latencyHint = ReadWriteAttribute(jsObject: object, name: Strings.latencyHint)
+        _sampleRate = ReadWriteAttribute(jsObject: object, name: Strings.sampleRate)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var latencyHint: AudioContextLatencyCategory_or_Double
+
+    @ReadWriteAttribute
+    public var sampleRate: Float
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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)
+    }
+
+    @ReadonlyAttribute
+    public var maxChannelCount: UInt32
+}
+
+public class AudioListener: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.AudioListener].function }
+
+    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
+    }
+
+    @ReadonlyAttribute
+    public var positionX: AudioParam
+
+    @ReadonlyAttribute
+    public var positionY: AudioParam
+
+    @ReadonlyAttribute
+    public var positionZ: AudioParam
+
+    @ReadonlyAttribute
+    public var forwardX: AudioParam
+
+    @ReadonlyAttribute
+    public var forwardY: AudioParam
+
+    @ReadonlyAttribute
+    public var forwardZ: AudioParam
+
+    @ReadonlyAttribute
+    public var upX: AudioParam
+
+    @ReadonlyAttribute
+    public var upY: AudioParam
+
+    @ReadonlyAttribute
+    public var upZ: AudioParam
+
+    @inlinable public func setPosition(x: Float, y: Float, z: Float) {
+        let this = jsObject
+        _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+    }
+
+    @inlinable public func setOrientation(x: Float, y: Float, z: Float, xUp: Float, yUp: Float, zUp: Float) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = z.jsValue
+        let _arg3 = xUp.jsValue
+        let _arg4 = yUp.jsValue
+        let _arg5 = zUp.jsValue
+        let this = jsObject
+        _ = this[Strings.setOrientation].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+}
+
+public class AudioNode: EventTarget {
+    @inlinable override public 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)
+    }
+
+    @inlinable public func connect(destinationNode: AudioNode, output: UInt32? = nil, input: UInt32? = nil) -> Self {
+        let this = jsObject
+        return this[Strings.connect].function!(this: this, arguments: [destinationNode.jsValue, output?.jsValue ?? .undefined, input?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func connect(destinationParam: AudioParam, output: UInt32? = nil) {
+        let this = jsObject
+        _ = this[Strings.connect].function!(this: this, arguments: [destinationParam.jsValue, output?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func disconnect() {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func disconnect(output: UInt32) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [output.jsValue])
+    }
+
+    @inlinable public func disconnect(destinationNode: AudioNode) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue])
+    }
+
+    @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue])
+    }
+
+    @inlinable public func disconnect(destinationNode: AudioNode, output: UInt32, input: UInt32) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationNode.jsValue, output.jsValue, input.jsValue])
+    }
+
+    @inlinable public func disconnect(destinationParam: AudioParam) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue])
+    }
+
+    @inlinable public func disconnect(destinationParam: AudioParam, output: UInt32) {
+        let this = jsObject
+        _ = this[Strings.disconnect].function!(this: this, arguments: [destinationParam.jsValue, output.jsValue])
+    }
+
+    @ReadonlyAttribute
+    public var context: BaseAudioContext
+
+    @ReadonlyAttribute
+    public var numberOfInputs: UInt32
+
+    @ReadonlyAttribute
+    public var numberOfOutputs: UInt32
+
+    @ReadWriteAttribute
+    public var channelCount: UInt32
+
+    @ReadWriteAttribute
+    public var channelCountMode: ChannelCountMode
+
+    @ReadWriteAttribute
+    public var channelInterpretation: ChannelInterpretation
+}
+
+public class AudioNodeOptions: BridgedDictionary {
+    public convenience init(channelCount: UInt32, channelCountMode: ChannelCountMode, channelInterpretation: ChannelInterpretation) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.channelCount] = channelCount.jsValue
+        object[Strings.channelCountMode] = channelCountMode.jsValue
+        object[Strings.channelInterpretation] = channelInterpretation.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var channelCount: UInt32
+
+    @ReadWriteAttribute
+    public var channelCountMode: ChannelCountMode
+
+    @ReadWriteAttribute
+    public var channelInterpretation: ChannelInterpretation
+}
+
+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
+    }
+
+    @ReadWriteAttribute
+    public var value: Float
+
+    @ReadWriteAttribute
+    public var automationRate: AutomationRate
+
+    @ReadonlyAttribute
+    public var defaultValue: Float
+
+    @ReadonlyAttribute
+    public var minValue: Float
+
+    @ReadonlyAttribute
+    public var maxValue: Float
+
+    @inlinable public func setValueAtTime(value: Float, startTime: Double) -> Self {
+        let this = jsObject
+        return this[Strings.setValueAtTime].function!(this: this, arguments: [value.jsValue, startTime.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func linearRampToValueAtTime(value: Float, endTime: Double) -> Self {
+        let this = jsObject
+        return this[Strings.linearRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func exponentialRampToValueAtTime(value: Float, endTime: Double) -> Self {
+        let this = jsObject
+        return this[Strings.exponentialRampToValueAtTime].function!(this: this, arguments: [value.jsValue, endTime.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func setTargetAtTime(target: Float, startTime: Double, timeConstant: Float) -> Self {
+        let this = jsObject
+        return this[Strings.setTargetAtTime].function!(this: this, arguments: [target.jsValue, startTime.jsValue, timeConstant.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func setValueCurveAtTime(values: [Float], startTime: Double, duration: Double) -> Self {
+        let this = jsObject
+        return this[Strings.setValueCurveAtTime].function!(this: this, arguments: [values.jsValue, startTime.jsValue, duration.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func cancelScheduledValues(cancelTime: Double) -> Self {
+        let this = jsObject
+        return this[Strings.cancelScheduledValues].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func cancelAndHoldAtTime(cancelTime: Double) -> Self {
+        let this = jsObject
+        return this[Strings.cancelAndHoldAtTime].function!(this: this, arguments: [cancelTime.jsValue]).fromJSValue()!
+    }
+}
+
+public class AudioParamDescriptor: BridgedDictionary {
+    public convenience init(name: String, defaultValue: Float, minValue: Float, maxValue: Float, automationRate: AutomationRate) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.name] = name.jsValue
+        object[Strings.defaultValue] = defaultValue.jsValue
+        object[Strings.minValue] = minValue.jsValue
+        object[Strings.maxValue] = maxValue.jsValue
+        object[Strings.automationRate] = automationRate.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var name: String
+
+    @ReadWriteAttribute
+    public var defaultValue: Float
+
+    @ReadWriteAttribute
+    public var minValue: Float
+
+    @ReadWriteAttribute
+    public var maxValue: Float
+
+    @ReadWriteAttribute
+    public var automationRate: AutomationRate
+}
+
+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
+    }
+
+    // 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 convenience init(type: String, eventInitDict: AudioProcessingEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var playbackTime: Double
+
+    @ReadonlyAttribute
+    public var inputBuffer: AudioBuffer
+
+    @ReadonlyAttribute
+    public var outputBuffer: AudioBuffer
+}
+
+public class AudioProcessingEventInit: BridgedDictionary {
+    public convenience init(playbackTime: Double, inputBuffer: AudioBuffer, outputBuffer: AudioBuffer) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.playbackTime] = playbackTime.jsValue
+        object[Strings.inputBuffer] = inputBuffer.jsValue
+        object[Strings.outputBuffer] = outputBuffer.jsValue
+        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 AudioScheduledSourceNode: AudioNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioScheduledSourceNode].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _onended = ReadWriteAttribute(jsObject: jsObject, name: Strings.onended)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @ReadWriteAttribute
+    public var onended: EventHandler
+
+    @inlinable public func start(when: Double? = nil) {
+        let this = jsObject
+        _ = this[Strings.start].function!(this: this, arguments: [when?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func stop(when: Double? = nil) {
+        let this = jsObject
+        _ = this[Strings.stop].function!(this: this, arguments: [when?.jsValue ?? .undefined])
+    }
+}
+
+public class AudioTimestamp: BridgedDictionary {
+    public convenience init(contextTime: Double, performanceTime: DOMHighResTimeStamp) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.contextTime] = contextTime.jsValue
+        object[Strings.performanceTime] = performanceTime.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var contextTime: Double
+
+    @ReadWriteAttribute
+    public var performanceTime: DOMHighResTimeStamp
+}
+
+public class AudioWorklet: Worklet {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioWorklet].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+}
+
+public class AudioWorkletNode: AudioNode {
+    @inlinable override public 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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onprocessorerror)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, name: String, options: AudioWorkletNodeOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, name.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var parameters: AudioParamMap
+
+    @ReadonlyAttribute
+    public var port: MessagePort
+
+    @ReadWriteAttribute
+    public var onprocessorerror: EventHandler
+}
+
+public class AudioWorkletNodeOptions: BridgedDictionary {
+    public convenience init(numberOfInputs: UInt32, numberOfOutputs: UInt32, outputChannelCount: [UInt32], parameterData: [String: Double], processorOptions: JSObject) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.numberOfInputs] = numberOfInputs.jsValue
+        object[Strings.numberOfOutputs] = numberOfOutputs.jsValue
+        object[Strings.outputChannelCount] = outputChannelCount.jsValue
+        object[Strings.parameterData] = parameterData.jsValue
+        object[Strings.processorOptions] = processorOptions.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var numberOfInputs: UInt32
+
+    @ReadWriteAttribute
+    public var numberOfOutputs: UInt32
+
+    @ReadWriteAttribute
+    public var outputChannelCount: [UInt32]
+
+    @ReadWriteAttribute
+    public var parameterData: [String: Double]
+
+    @ReadWriteAttribute
+    public var processorOptions: JSObject
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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 }
+
+    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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onstatechange)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @ReadonlyAttribute
+    public var destination: AudioDestinationNode
+
+    @ReadonlyAttribute
+    public var sampleRate: Float
+
+    @ReadonlyAttribute
+    public var currentTime: Double
+
+    @ReadonlyAttribute
+    public var listener: AudioListener
+
+    @ReadonlyAttribute
+    public var state: AudioContextState
+
+    @ReadonlyAttribute
+    public var audioWorklet: AudioWorklet
+
+    @ReadWriteAttribute
+    public var onstatechange: EventHandler
+
+    @inlinable public func createAnalyser() -> AnalyserNode {
+        let this = jsObject
+        return this[Strings.createAnalyser].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable 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 {
+        let this = jsObject
+        return this[Strings.createBuffer].function!(this: this, arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createBufferSource() -> AudioBufferSourceNode {
+        let this = jsObject
+        return this[Strings.createBufferSource].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func createChannelMerger(numberOfInputs: UInt32? = nil) -> ChannelMergerNode {
+        let this = jsObject
+        return this[Strings.createChannelMerger].function!(this: this, arguments: [numberOfInputs?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createChannelSplitter(numberOfOutputs: UInt32? = nil) -> ChannelSplitterNode {
+        let this = jsObject
+        return this[Strings.createChannelSplitter].function!(this: this, arguments: [numberOfOutputs?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createConstantSource() -> ConstantSourceNode {
+        let this = jsObject
+        return this[Strings.createConstantSource].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func createConvolver() -> ConvolverNode {
+        let this = jsObject
+        return this[Strings.createConvolver].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func createDelay(maxDelayTime: Double? = nil) -> DelayNode {
+        let this = jsObject
+        return this[Strings.createDelay].function!(this: this, arguments: [maxDelayTime?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createDynamicsCompressor() -> DynamicsCompressorNode {
+        let this = jsObject
+        return this[Strings.createDynamicsCompressor].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable 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 {
+        let this = jsObject
+        return this[Strings.createIIRFilter].function!(this: this, arguments: [feedforward.jsValue, feedback.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createOscillator() -> OscillatorNode {
+        let this = jsObject
+        return this[Strings.createOscillator].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable 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 {
+        let this = jsObject
+        return this[Strings.createPeriodicWave].function!(this: this, arguments: [real.jsValue, imag.jsValue, constraints?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createScriptProcessor(bufferSize: UInt32? = nil, numberOfInputChannels: UInt32? = nil, numberOfOutputChannels: UInt32? = nil) -> ScriptProcessorNode {
+        let this = jsObject
+        return this[Strings.createScriptProcessor].function!(this: this, arguments: [bufferSize?.jsValue ?? .undefined, numberOfInputChannels?.jsValue ?? .undefined, numberOfOutputChannels?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createStereoPanner() -> StereoPannerNode {
+        let this = jsObject
+        return this[Strings.createStereoPanner].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable public func createWaveShaper() -> WaveShaperNode {
+        let this = jsObject
+        return this[Strings.createWaveShaper].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    // XXX: member 'decodeAudioData' is ignored
+
+    // XXX: member 'decodeAudioData' is ignored
+}
+
+public class BiquadFilterNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: BiquadFilterOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var type: BiquadFilterType
+
+    @ReadonlyAttribute
+    public var frequency: AudioParam
+
+    @ReadonlyAttribute
+    public var detune: AudioParam
+
+    @ReadonlyAttribute
+    public var Q: AudioParam
+
+    @ReadonlyAttribute
+    public var gain: AudioParam
+
+    @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) {
+        let this = jsObject
+        _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue])
+    }
+}
+
+public class BiquadFilterOptions: BridgedDictionary {
+    public convenience init(type: BiquadFilterType, Q: Float, detune: Float, frequency: Float, gain: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.Q] = Q.jsValue
+        object[Strings.detune] = detune.jsValue
+        object[Strings.frequency] = frequency.jsValue
+        object[Strings.gain] = gain.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var type: BiquadFilterType
+
+    @ReadWriteAttribute
+    public var Q: Float
+
+    @ReadWriteAttribute
+    public var detune: Float
+
+    @ReadWriteAttribute
+    public var frequency: Float
+
+    @ReadWriteAttribute
+    public var gain: Float
+}
+
+public enum BiquadFilterType: JSString, JSValueCompatible {
+    case lowpass = "lowpass"
+    case highpass = "highpass"
+    case bandpass = "bandpass"
+    case lowshelf = "lowshelf"
+    case highshelf = "highshelf"
+    case peaking = "peaking"
+    case notch = "notch"
+    case allpass = "allpass"
+
+    @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 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)
+        }
+        return nil
+    }
+
+    @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)
+        }
+        return nil
+    }
+
+    @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 convenience init(context: BaseAudioContext, options: ChannelMergerOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+}
+
+public class ChannelMergerOptions: BridgedDictionary {
+    public convenience init(numberOfInputs: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.numberOfInputs] = numberOfInputs.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _numberOfInputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfInputs)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var numberOfInputs: UInt32
+}
+
+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 convenience init(context: BaseAudioContext, options: ChannelSplitterOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+}
+
+public class ChannelSplitterOptions: BridgedDictionary {
+    public convenience init(numberOfOutputs: UInt32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.numberOfOutputs] = numberOfOutputs.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _numberOfOutputs = ReadWriteAttribute(jsObject: object, name: Strings.numberOfOutputs)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var numberOfOutputs: UInt32
+}
+
+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 convenience init(context: BaseAudioContext, options: ConstantSourceOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var offset: AudioParam
+}
+
+public class ConstantSourceOptions: BridgedDictionary {
+    public convenience init(offset: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.offset] = offset.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _offset = ReadWriteAttribute(jsObject: object, name: Strings.offset)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var offset: Float
+}
+
+public class ConvolverNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: ConvolverOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var buffer: AudioBuffer?
+
+    @ReadWriteAttribute
+    public var normalize: Bool
+}
+
+public class ConvolverOptions: BridgedDictionary {
+    public convenience init(buffer: AudioBuffer?, disableNormalization: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.buffer] = buffer.jsValue
+        object[Strings.disableNormalization] = disableNormalization.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var buffer: AudioBuffer?
+
+    @ReadWriteAttribute
+    public var disableNormalization: Bool
+}
+
+public class DelayNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: DelayOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var delayTime: AudioParam
+}
+
+public class DelayOptions: BridgedDictionary {
+    public convenience init(maxDelayTime: Double, delayTime: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.maxDelayTime] = maxDelayTime.jsValue
+        object[Strings.delayTime] = delayTime.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var maxDelayTime: Double
+
+    @ReadWriteAttribute
+    public var delayTime: Double
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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 convenience init(context: BaseAudioContext, options: DynamicsCompressorOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var threshold: AudioParam
+
+    @ReadonlyAttribute
+    public var knee: AudioParam
+
+    @ReadonlyAttribute
+    public var ratio: AudioParam
+
+    @ReadonlyAttribute
+    public var reduction: Float
+
+    @ReadonlyAttribute
+    public var attack: AudioParam
+
+    @ReadonlyAttribute
+    public var release: AudioParam
+}
+
+public class DynamicsCompressorOptions: BridgedDictionary {
+    public convenience init(attack: Float, knee: Float, ratio: Float, release: Float, threshold: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.attack] = attack.jsValue
+        object[Strings.knee] = knee.jsValue
+        object[Strings.ratio] = ratio.jsValue
+        object[Strings.release] = release.jsValue
+        object[Strings.threshold] = threshold.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var attack: Float
+
+    @ReadWriteAttribute
+    public var knee: Float
+
+    @ReadWriteAttribute
+    public var ratio: Float
+
+    @ReadWriteAttribute
+    public var release: Float
+
+    @ReadWriteAttribute
+    public var threshold: Float
+}
+
+public class GainNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: GainOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var gain: AudioParam
+}
+
+public class GainOptions: BridgedDictionary {
+    public convenience init(gain: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.gain] = gain.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _gain = ReadWriteAttribute(jsObject: object, name: Strings.gain)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var gain: Float
+}
+
+public class IIRFilterNode: AudioNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.IIRFilterNode].function }
+
+    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: [context.jsValue, options.jsValue]))
+    }
+
+    @inlinable public func getFrequencyResponse(frequencyHz: Float32Array, magResponse: Float32Array, phaseResponse: Float32Array) {
+        let this = jsObject
+        _ = this[Strings.getFrequencyResponse].function!(this: this, arguments: [frequencyHz.jsValue, magResponse.jsValue, phaseResponse.jsValue])
+    }
+}
+
+public class IIRFilterOptions: BridgedDictionary {
+    public convenience init(feedforward: [Double], feedback: [Double]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.feedforward] = feedforward.jsValue
+        object[Strings.feedback] = feedback.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var feedforward: [Double]
+
+    @ReadWriteAttribute
+    public var feedback: [Double]
+}
+
+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 convenience init(context: AudioContext, options: MediaElementAudioSourceOptions) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var mediaElement: HTMLMediaElement
+}
+
+public class MediaElementAudioSourceOptions: BridgedDictionary {
+    public convenience init(mediaElement: HTMLMediaElement) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.mediaElement] = mediaElement.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _mediaElement = ReadWriteAttribute(jsObject: object, name: Strings.mediaElement)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var mediaElement: HTMLMediaElement
+}
+
+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 convenience init(context: AudioContext, options: AudioNodeOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var stream: MediaStream
+}
+
+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 convenience init(context: AudioContext, options: MediaStreamAudioSourceOptions) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var mediaStream: MediaStream
+}
+
+public class MediaStreamAudioSourceOptions: BridgedDictionary {
+    public convenience init(mediaStream: MediaStream) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.mediaStream] = mediaStream.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _mediaStream = ReadWriteAttribute(jsObject: object, name: Strings.mediaStream)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var mediaStream: MediaStream
+}
+
+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 convenience init(context: AudioContext, options: MediaStreamTrackAudioSourceOptions) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options.jsValue]))
+    }
+}
+
+public class MediaStreamTrackAudioSourceOptions: BridgedDictionary {
+    public convenience init(mediaStreamTrack: MediaStreamTrack) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.mediaStreamTrack] = mediaStreamTrack.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _mediaStreamTrack = ReadWriteAttribute(jsObject: object, name: Strings.mediaStreamTrack)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var mediaStreamTrack: MediaStreamTrack
+}
+
+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 convenience init(type: String, eventInitDict: OfflineAudioCompletionEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var renderedBuffer: AudioBuffer
+}
+
+public class OfflineAudioCompletionEventInit: BridgedDictionary {
+    public convenience init(renderedBuffer: AudioBuffer) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.renderedBuffer] = renderedBuffer.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _renderedBuffer = ReadWriteAttribute(jsObject: object, name: Strings.renderedBuffer)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var renderedBuffer: AudioBuffer
+}
+
+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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.oncomplete)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(contextOptions: OfflineAudioContextOptions) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [contextOptions.jsValue]))
+    }
+
+    @inlinable public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [numberOfChannels.jsValue, length.jsValue, sampleRate.jsValue]))
+    }
+
+    @inlinable 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()!
+    }
+
+    @inlinable 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
+    }
+
+    @inlinable public func suspend(suspendTime: Double) -> JSPromise {
+        let this = jsObject
+        return this[Strings.suspend].function!(this: this, arguments: [suspendTime.jsValue]).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: [suspendTime.jsValue]).fromJSValue()!
+        _ = try await _promise.value
+    }
+
+    @ReadonlyAttribute
+    public var length: UInt32
+
+    @ReadWriteAttribute
+    public var oncomplete: EventHandler
+}
+
+public class OfflineAudioContextOptions: BridgedDictionary {
+    public convenience init(numberOfChannels: UInt32, length: UInt32, sampleRate: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.numberOfChannels] = numberOfChannels.jsValue
+        object[Strings.length] = length.jsValue
+        object[Strings.sampleRate] = sampleRate.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var numberOfChannels: UInt32
+
+    @ReadWriteAttribute
+    public var length: UInt32
+
+    @ReadWriteAttribute
+    public var sampleRate: Float
+}
+
+public class OscillatorNode: AudioScheduledSourceNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: OscillatorOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var type: OscillatorType
+
+    @ReadonlyAttribute
+    public var frequency: AudioParam
+
+    @ReadonlyAttribute
+    public var detune: AudioParam
+
+    @inlinable public func setPeriodicWave(periodicWave: PeriodicWave) {
+        let this = jsObject
+        _ = this[Strings.setPeriodicWave].function!(this: this, arguments: [periodicWave.jsValue])
+    }
+}
+
+public class OscillatorOptions: BridgedDictionary {
+    public convenience init(type: OscillatorType, frequency: Float, detune: Float, periodicWave: PeriodicWave) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.frequency] = frequency.jsValue
+        object[Strings.detune] = detune.jsValue
+        object[Strings.periodicWave] = periodicWave.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var type: OscillatorType
+
+    @ReadWriteAttribute
+    public var frequency: Float
+
+    @ReadWriteAttribute
+    public var detune: Float
+
+    @ReadWriteAttribute
+    public var periodicWave: PeriodicWave
+}
+
+public enum OscillatorType: JSString, JSValueCompatible {
+    case sine = "sine"
+    case square = "square"
+    case sawtooth = "sawtooth"
+    case triangle = "triangle"
+    case custom = "custom"
+
+    @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 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)
+        }
+        return nil
+    }
+
+    @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 convenience init(context: BaseAudioContext, options: PannerOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var panningModel: PanningModelType
+
+    @ReadonlyAttribute
+    public var positionX: AudioParam
+
+    @ReadonlyAttribute
+    public var positionY: AudioParam
+
+    @ReadonlyAttribute
+    public var positionZ: AudioParam
+
+    @ReadonlyAttribute
+    public var orientationX: AudioParam
+
+    @ReadonlyAttribute
+    public var orientationY: AudioParam
+
+    @ReadonlyAttribute
+    public var orientationZ: AudioParam
+
+    @ReadWriteAttribute
+    public var distanceModel: DistanceModelType
+
+    @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 func setPosition(x: Float, y: Float, z: Float) {
+        let this = jsObject
+        _ = this[Strings.setPosition].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+    }
+
+    @inlinable public func setOrientation(x: Float, y: Float, z: Float) {
+        let this = jsObject
+        _ = this[Strings.setOrientation].function!(this: this, arguments: [x.jsValue, y.jsValue, z.jsValue])
+    }
+}
+
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.panningModel] = panningModel.jsValue
+        object[Strings.distanceModel] = distanceModel.jsValue
+        object[Strings.positionX] = positionX.jsValue
+        object[Strings.positionY] = positionY.jsValue
+        object[Strings.positionZ] = positionZ.jsValue
+        object[Strings.orientationX] = orientationX.jsValue
+        object[Strings.orientationY] = orientationY.jsValue
+        object[Strings.orientationZ] = orientationZ.jsValue
+        object[Strings.refDistance] = refDistance.jsValue
+        object[Strings.maxDistance] = maxDistance.jsValue
+        object[Strings.rolloffFactor] = rolloffFactor.jsValue
+        object[Strings.coneInnerAngle] = coneInnerAngle.jsValue
+        object[Strings.coneOuterAngle] = coneOuterAngle.jsValue
+        object[Strings.coneOuterGain] = coneOuterGain.jsValue
+        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)
+    }
+
+    @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
+
+    @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
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: PeriodicWaveOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+}
+
+public class PeriodicWaveConstraints: BridgedDictionary {
+    public convenience init(disableNormalization: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.disableNormalization] = disableNormalization.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _disableNormalization = ReadWriteAttribute(jsObject: object, name: Strings.disableNormalization)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var disableNormalization: Bool
+}
+
+public class PeriodicWaveOptions: BridgedDictionary {
+    public convenience init(real: [Float], imag: [Float]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.real] = real.jsValue
+        object[Strings.imag] = imag.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var real: [Float]
+
+    @ReadWriteAttribute
+    public var imag: [Float]
+}
+
+public class ScriptProcessorNode: AudioNode {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ScriptProcessorNode].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _onaudioprocess = ReadWriteAttribute(jsObject: jsObject, name: Strings.onaudioprocess)
+        _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @ReadWriteAttribute
+    public var onaudioprocess: EventHandler
+
+    @ReadonlyAttribute
+    public var bufferSize: Int32
+}
+
+public class StereoPannerNode: AudioNode {
+    @inlinable override public 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)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: StereoPannerOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var pan: AudioParam
+}
+
+public class StereoPannerOptions: BridgedDictionary {
+    public convenience init(pan: Float) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.pan] = pan.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _pan = ReadWriteAttribute(jsObject: object, name: Strings.pan)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var pan: Float
+}
+
+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 }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _curve = ReadWriteAttribute(jsObject: jsObject, name: Strings.curve)
+        _oversample = ReadWriteAttribute(jsObject: jsObject, name: Strings.oversample)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(context: BaseAudioContext, options: WaveShaperOptions? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [context.jsValue, options?.jsValue ?? .undefined]))
+    }
+
+    @ReadWriteAttribute
+    public var curve: Float32Array?
+
+    @ReadWriteAttribute
+    public var oversample: OverSampleType
+}
+
+public class WaveShaperOptions: BridgedDictionary {
+    public convenience init(curve: [Float], oversample: OverSampleType) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.curve] = curve.jsValue
+        object[Strings.oversample] = oversample.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var curve: [Float]
+
+    @ReadWriteAttribute
+    public var oversample: OverSampleType
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 AnalyserNode: JSString = "AnalyserNode"
+    @usableFromInline static let Attr: JSString = "Attr"
+    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
+    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
+    @usableFromInline static let AudioContext: JSString = "AudioContext"
+    @usableFromInline static let AudioData: JSString = "AudioData"
+    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
+    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
+    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
+    @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 AudioTrack: JSString = "AudioTrack"
+    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
+    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
+    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
+    @usableFromInline static let BarProp: JSString = "BarProp"
+    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
+    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
+    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
+    @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 CanvasFilter: JSString = "CanvasFilter"
+    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
+    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
+    @usableFromInline static let CharacterData: JSString = "CharacterData"
+    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
+    @usableFromInline static let Comment: JSString = "Comment"
+    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
+    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
+    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
+    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
+    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
+    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
+    @usableFromInline static let DOMException: JSString = "DOMException"
+    @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 DelayNode: JSString = "DelayNode"
+    @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 DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
+    @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 GainNode: JSString = "GainNode"
+    @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 IIRFilterNode: JSString = "IIRFilterNode"
+    @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 MediaDeviceInfo: JSString = "MediaDeviceInfo"
+    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
+    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
+    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @usableFromInline static let MediaStream: JSString = "MediaStream"
+    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
+    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
+    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
+    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
+    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
+    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
+    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
+    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
+    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
+    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
+    @usableFromInline static let PannerNode: JSString = "PannerNode"
+    @usableFromInline static let Path2D: JSString = "Path2D"
+    @usableFromInline static let Performance: JSString = "Performance"
+    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
+    @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 Q: JSString = "Q"
+    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
+    @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 StaticRange: JSString = "StaticRange"
+    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
+    @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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WaveShaperNode: JSString = "WaveShaperNode"
+    @usableFromInline static let WebSocket: JSString = "WebSocket"
+    @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 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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @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 ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animated: JSString = "animated"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 `as`: JSString = "as"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 attack: JSString = "attack"
+    @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 audioWorklet: JSString = "audioWorklet"
+    @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 automationRate: JSString = "automationRate"
+    @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 b: JSString = "b"
+    @usableFromInline static let back: JSString = "back"
+    @usableFromInline static let background: JSString = "background"
+    @usableFromInline static let badInput: JSString = "badInput"
+    @usableFromInline static let baseLatency: JSString = "baseLatency"
+    @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 binaryType: JSString = "binaryType"
+    @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 buffer: JSString = "buffer"
+    @usableFromInline static let bufferSize: JSString = "bufferSize"
+    @usableFromInline static let buffered: JSString = "buffered"
+    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
+    @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 canPlayType: JSString = "canPlayType"
+    @usableFromInline static let cancel: JSString = "cancel"
+    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
+    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
+    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
+    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
+    @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 channelCount: JSString = "channelCount"
+    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
+    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
+    @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 checkValidity: JSString = "checkValidity"
+    @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 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 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 coneInnerAngle: JSString = "coneInnerAngle"
+    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
+    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
+    @usableFromInline static let config: JSString = "config"
+    @usableFromInline static let configure: JSString = "configure"
+    @usableFromInline static let confirm: JSString = "confirm"
+    @usableFromInline static let connect: JSString = "connect"
+    @usableFromInline static let console: JSString = "console"
+    @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 context: JSString = "context"
+    @usableFromInline static let contextTime: JSString = "contextTime"
+    @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 copyFromChannel: JSString = "copyFromChannel"
+    @usableFromInline static let copyTo: JSString = "copyTo"
+    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
+    @usableFromInline static let count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
+    @usableFromInline static let createAttribute: JSString = "createAttribute"
+    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
+    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
+    @usableFromInline static let createBuffer: JSString = "createBuffer"
+    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
+    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
+    @usableFromInline static let createCaption: JSString = "createCaption"
+    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
+    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
+    @usableFromInline static let createComment: JSString = "createComment"
+    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
+    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
+    @usableFromInline static let createConvolver: JSString = "createConvolver"
+    @usableFromInline static let createDelay: JSString = "createDelay"
+    @usableFromInline static let createDocument: JSString = "createDocument"
+    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
+    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
+    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
+    @usableFromInline static let createElement: JSString = "createElement"
+    @usableFromInline static let createElementNS: JSString = "createElementNS"
+    @usableFromInline static let createEvent: JSString = "createEvent"
+    @usableFromInline static let createGain: JSString = "createGain"
+    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
+    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
+    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
+    @usableFromInline static let createImageData: JSString = "createImageData"
+    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
+    @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 createObjectURL: JSString = "createObjectURL"
+    @usableFromInline static let createOscillator: JSString = "createOscillator"
+    @usableFromInline static let createPanner: JSString = "createPanner"
+    @usableFromInline static let createPattern: JSString = "createPattern"
+    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
+    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
+    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
+    @usableFromInline static let createRange: JSString = "createRange"
+    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
+    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
+    @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 createWaveShaper: JSString = "createWaveShaper"
+    @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 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 curve: JSString = "curve"
+    @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 debug: JSString = "debug"
+    @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 `defer`: JSString = "defer"
+    @usableFromInline static let define: JSString = "define"
+    @usableFromInline static let delayTime: JSString = "delayTime"
+    @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 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 detune: JSString = "detune"
+    @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 dirxml: JSString = "dirxml"
+    @usableFromInline static let disable: JSString = "disable"
+    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
+    @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 distanceModel: JSString = "distanceModel"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @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 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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
+    @usableFromInline static let extends: JSString = "extends"
+    @usableFromInline static let extensions: JSString = "extensions"
+    @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 feedback: JSString = "feedback"
+    @usableFromInline static let feedforward: JSString = "feedforward"
+    @usableFromInline static let fetch: JSString = "fetch"
+    @usableFromInline static let fftSize: JSString = "fftSize"
+    @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 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 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 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 forwardX: JSString = "forwardX"
+    @usableFromInline static let forwardY: JSString = "forwardY"
+    @usableFromInline static let forwardZ: JSString = "forwardZ"
+    @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 frequency: JSString = "frequency"
+    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
+    @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 gain: JSString = "gain"
+    @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 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 getByteFrequencyData: JSString = "getByteFrequencyData"
+    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
+    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
+    @usableFromInline static let getChannelData: JSString = "getChannelData"
+    @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 getFloatFrequencyData: JSString = "getFloatFrequencyData"
+    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
+    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
+    @usableFromInline static let getImageData: JSString = "getImageData"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
+    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
+    @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 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 group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 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 ideographicBaseline: JSString = "ideographicBaseline"
+    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
+    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
+    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
+    @usableFromInline static let imag: JSString = "imag"
+    @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 inputBuffer: JSString = "inputBuffer"
+    @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 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 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 isVisible: JSString = "isVisible"
+    @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 knee: JSString = "knee"
+    @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 latencyHint: JSString = "latencyHint"
+    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
+    @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 listener: JSString = "listener"
+    @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 log: JSString = "log"
+    @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 loopEnd: JSString = "loopEnd"
+    @usableFromInline static let loopStart: JSString = "loopStart"
+    @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 maxChannelCount: JSString = "maxChannelCount"
+    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
+    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
+    @usableFromInline static let maxDistance: JSString = "maxDistance"
+    @usableFromInline static let maxLength: JSString = "maxLength"
+    @usableFromInline static let maxValue: JSString = "maxValue"
+    @usableFromInline static let measureText: JSString = "measureText"
+    @usableFromInline static let media: JSString = "media"
+    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
+    @usableFromInline static let mediaElement: JSString = "mediaElement"
+    @usableFromInline static let mediaStream: JSString = "mediaStream"
+    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
+    @usableFromInline static let menubar: JSString = "menubar"
+    @usableFromInline static let message: JSString = "message"
+    @usableFromInline static let metaKey: JSString = "metaKey"
+    @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 minDecibels: JSString = "minDecibels"
+    @usableFromInline static let minLength: JSString = "minLength"
+    @usableFromInline static let minValue: JSString = "minValue"
+    @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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 numberOfInputs: JSString = "numberOfInputs"
+    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncomplete: JSString = "oncomplete"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 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 onprocessorerror: JSString = "onprocessorerror"
+    @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 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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 orientationX: JSString = "orientationX"
+    @usableFromInline static let orientationY: JSString = "orientationY"
+    @usableFromInline static let orientationZ: JSString = "orientationZ"
+    @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 outputBuffer: JSString = "outputBuffer"
+    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
+    @usableFromInline static let outputLatency: JSString = "outputLatency"
+    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
+    @usableFromInline static let oversample: JSString = "oversample"
+    @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 pageX: JSString = "pageX"
+    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
+    @usableFromInline static let pageY: JSString = "pageY"
+    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
+    @usableFromInline static let pan: JSString = "pan"
+    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
+    @usableFromInline static let panningModel: JSString = "panningModel"
+    @usableFromInline static let parameterData: JSString = "parameterData"
+    @usableFromInline static let parameters: JSString = "parameters"
+    @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 performanceTime: JSString = "performanceTime"
+    @usableFromInline static let periodicWave: JSString = "periodicWave"
+    @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 playbackTime: JSString = "playbackTime"
+    @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 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 positionX: JSString = "positionX"
+    @usableFromInline static let positionY: JSString = "positionY"
+    @usableFromInline static let positionZ: JSString = "positionZ"
+    @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 processorOptions: JSString = "processorOptions"
+    @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 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 rangeOverflow: JSString = "rangeOverflow"
+    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
+    @usableFromInline static let ratio: JSString = "ratio"
+    @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 real: JSString = "real"
+    @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 reduction: JSString = "reduction"
+    @usableFromInline static let refDistance: JSString = "refDistance"
+    @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 release: JSString = "release"
+    @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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
+    @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 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 rolloffFactor: JSString = "rolloffFactor"
+    @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 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 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 searchParams: JSString = "searchParams"
+    @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 setMatrixValue: JSString = "setMatrixValue"
+    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
+    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
+    @usableFromInline static let setOrientation: JSString = "setOrientation"
+    @usableFromInline static let setParameter: JSString = "setParameter"
+    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
+    @usableFromInline static let setPosition: JSString = "setPosition"
+    @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 setTargetAtTime: JSString = "setTargetAtTime"
+    @usableFromInline static let setTimeout: JSString = "setTimeout"
+    @usableFromInline static let setTransform: JSString = "setTransform"
+    @usableFromInline static let setValidity: JSString = "setValidity"
+    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
+    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
+    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
+    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
+    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
+    @usableFromInline static let sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @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 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 startRendering: JSString = "startRendering"
+    @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 supports: JSString = "supports"
+    @usableFromInline static let surroundContents: JSString = "surroundContents"
+    @usableFromInline static let suspend: JSString = "suspend"
+    @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 table: JSString = "table"
+    @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 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 threshold: JSString = "threshold"
+    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
+    @usableFromInline static let time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @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 title: JSString = "title"
+    @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 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 trace: JSString = "trace"
+    @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 translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 upX: JSString = "upX"
+    @usableFromInline static let upY: JSString = "upY"
+    @usableFromInline static let upZ: JSString = "upZ"
+    @usableFromInline static let update: JSString = "update"
+    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
+    @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 userAgent: JSString = "userAgent"
+    @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 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 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 warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
+extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
+extension Double: Any_AudioContextLatencyCategory_or_Double {}
+
+public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
+    case audioContextLatencyCategory(AudioContextLatencyCategory)
+    case double(Double)
+
+    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+        switch self {
+        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
+            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
diff --git a/Sources/WebGL1/Generated.swift b/Sources/WebGL1/Generated.swift
new file mode 100644
index 00000000..3cc2b5e0
--- /dev/null
+++ b/Sources/WebGL1/Generated.swift
@@ -0,0 +1,6629 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import DOM
+import ECMAScript
+import JavaScriptBigIntSupport
+import JavaScriptKit
+import WebAnimations
+
+public typealias GLenum = UInt32
+public typealias GLboolean = Bool
+public typealias GLbitfield = UInt32
+public typealias GLbyte = Int8
+public typealias GLshort = Int16
+public typealias GLint = Int32
+public typealias GLsizei = Int32
+public typealias GLsizeiptr = Int64
+public typealias GLubyte = UInt8
+public typealias GLushort = UInt16
+public typealias GLuint = UInt32
+public typealias GLfloat = Float
+public typealias GLclampf = Float
+
+public class WebGLActiveInfo: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLActiveInfo].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)
+        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
+        self.jsObject = jsObject
+    }
+
+    @ReadonlyAttribute
+    public var size: GLint
+
+    @ReadonlyAttribute
+    public var type: GLenum
+
+    @ReadonlyAttribute
+    public var name: String
+}
+
+public class WebGLBuffer: WebGLObject {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLBuffer].function }
+
+    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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.alpha] = alpha.jsValue
+        object[Strings.depth] = depth.jsValue
+        object[Strings.stencil] = stencil.jsValue
+        object[Strings.antialias] = antialias.jsValue
+        object[Strings.premultipliedAlpha] = premultipliedAlpha.jsValue
+        object[Strings.preserveDrawingBuffer] = preserveDrawingBuffer.jsValue
+        object[Strings.powerPreference] = powerPreference.jsValue
+        object[Strings.failIfMajorPerformanceCaveat] = failIfMajorPerformanceCaveat.jsValue
+        object[Strings.desynchronized] = desynchronized.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var powerPreference: WebGLPowerPreference
+
+    @ReadWriteAttribute
+    public var failIfMajorPerformanceCaveat: Bool
+
+    @ReadWriteAttribute
+    public var desynchronized: Bool
+}
+
+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 convenience init(type: String, eventInit: WebGLContextEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInit?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var statusMessage: String
+}
+
+public class WebGLContextEventInit: BridgedDictionary {
+    public convenience init(statusMessage: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.statusMessage] = statusMessage.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _statusMessage = ReadWriteAttribute(jsObject: object, name: Strings.statusMessage)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var statusMessage: String
+}
+
+public class WebGLFramebuffer: WebGLObject {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLFramebuffer].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+}
+
+public class WebGLObject: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLObject].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+}
+
+public enum WebGLPowerPreference: JSString, JSValueCompatible {
+    case `default` = "default"
+    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)
+        }
+        return nil
+    }
+
+    @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 }
+
+    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)
+    }
+}
+
+public class WebGLRenderingContext: JSBridgedClass, WebGLRenderingContextBase, WebGLRenderingContextOverloads {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLRenderingContext].function }
+
+    public let 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 }
+
+    @inlinable static var STENCIL_BUFFER_BIT: GLenum { 0x0000_0400 }
+
+    @inlinable static var COLOR_BUFFER_BIT: GLenum { 0x0000_4000 }
+
+    @inlinable static var POINTS: GLenum { 0x0000 }
+
+    @inlinable static var LINES: GLenum { 0x0001 }
+
+    @inlinable static var LINE_LOOP: GLenum { 0x0002 }
+
+    @inlinable static var LINE_STRIP: GLenum { 0x0003 }
+
+    @inlinable static var TRIANGLES: GLenum { 0x0004 }
+
+    @inlinable static var TRIANGLE_STRIP: GLenum { 0x0005 }
+
+    @inlinable static var TRIANGLE_FAN: GLenum { 0x0006 }
+
+    @inlinable static var ZERO: GLenum { 0 }
+
+    @inlinable static var ONE: GLenum { 1 }
+
+    @inlinable static var SRC_COLOR: GLenum { 0x0300 }
+
+    @inlinable static var ONE_MINUS_SRC_COLOR: GLenum { 0x0301 }
+
+    @inlinable static var SRC_ALPHA: GLenum { 0x0302 }
+
+    @inlinable static var ONE_MINUS_SRC_ALPHA: GLenum { 0x0303 }
+
+    @inlinable static var DST_ALPHA: GLenum { 0x0304 }
+
+    @inlinable static var ONE_MINUS_DST_ALPHA: GLenum { 0x0305 }
+
+    @inlinable static var DST_COLOR: GLenum { 0x0306 }
+
+    @inlinable static var ONE_MINUS_DST_COLOR: GLenum { 0x0307 }
+
+    @inlinable static var SRC_ALPHA_SATURATE: GLenum { 0x0308 }
+
+    @inlinable static var FUNC_ADD: GLenum { 0x8006 }
+
+    @inlinable static var BLEND_EQUATION: GLenum { 0x8009 }
+
+    @inlinable static var BLEND_EQUATION_RGB: GLenum { 0x8009 }
+
+    @inlinable static var BLEND_EQUATION_ALPHA: GLenum { 0x883D }
+
+    @inlinable static var FUNC_SUBTRACT: GLenum { 0x800A }
+
+    @inlinable static var FUNC_REVERSE_SUBTRACT: GLenum { 0x800B }
+
+    @inlinable static var BLEND_DST_RGB: GLenum { 0x80C8 }
+
+    @inlinable static var BLEND_SRC_RGB: GLenum { 0x80C9 }
+
+    @inlinable static var BLEND_DST_ALPHA: GLenum { 0x80CA }
+
+    @inlinable static var BLEND_SRC_ALPHA: GLenum { 0x80CB }
+
+    @inlinable static var CONSTANT_COLOR: GLenum { 0x8001 }
+
+    @inlinable static var ONE_MINUS_CONSTANT_COLOR: GLenum { 0x8002 }
+
+    @inlinable static var CONSTANT_ALPHA: GLenum { 0x8003 }
+
+    @inlinable static var ONE_MINUS_CONSTANT_ALPHA: GLenum { 0x8004 }
+
+    @inlinable static var BLEND_COLOR: GLenum { 0x8005 }
+
+    @inlinable static var ARRAY_BUFFER: GLenum { 0x8892 }
+
+    @inlinable static var ELEMENT_ARRAY_BUFFER: GLenum { 0x8893 }
+
+    @inlinable static var ARRAY_BUFFER_BINDING: GLenum { 0x8894 }
+
+    @inlinable static var ELEMENT_ARRAY_BUFFER_BINDING: GLenum { 0x8895 }
+
+    @inlinable static var STREAM_DRAW: GLenum { 0x88E0 }
+
+    @inlinable static var STATIC_DRAW: GLenum { 0x88E4 }
+
+    @inlinable static var DYNAMIC_DRAW: GLenum { 0x88E8 }
+
+    @inlinable static var BUFFER_SIZE: GLenum { 0x8764 }
+
+    @inlinable static var BUFFER_USAGE: GLenum { 0x8765 }
+
+    @inlinable static var CURRENT_VERTEX_ATTRIB: GLenum { 0x8626 }
+
+    @inlinable static var FRONT: GLenum { 0x0404 }
+
+    @inlinable static var BACK: GLenum { 0x0405 }
+
+    @inlinable static var FRONT_AND_BACK: GLenum { 0x0408 }
+
+    @inlinable static var CULL_FACE: GLenum { 0x0B44 }
+
+    @inlinable static var BLEND: GLenum { 0x0BE2 }
+
+    @inlinable static var DITHER: GLenum { 0x0BD0 }
+
+    @inlinable static var STENCIL_TEST: GLenum { 0x0B90 }
+
+    @inlinable static var DEPTH_TEST: GLenum { 0x0B71 }
+
+    @inlinable static var SCISSOR_TEST: GLenum { 0x0C11 }
+
+    @inlinable static var POLYGON_OFFSET_FILL: GLenum { 0x8037 }
+
+    @inlinable static var SAMPLE_ALPHA_TO_COVERAGE: GLenum { 0x809E }
+
+    @inlinable static var SAMPLE_COVERAGE: GLenum { 0x80A0 }
+
+    @inlinable static var NO_ERROR: GLenum { 0 }
+
+    @inlinable static var INVALID_ENUM: GLenum { 0x0500 }
+
+    @inlinable static var INVALID_VALUE: GLenum { 0x0501 }
+
+    @inlinable static var INVALID_OPERATION: GLenum { 0x0502 }
+
+    @inlinable static var OUT_OF_MEMORY: GLenum { 0x0505 }
+
+    @inlinable static var CW: GLenum { 0x0900 }
+
+    @inlinable static var CCW: GLenum { 0x0901 }
+
+    @inlinable static var LINE_WIDTH: GLenum { 0x0B21 }
+
+    @inlinable static var ALIASED_POINT_SIZE_RANGE: GLenum { 0x846D }
+
+    @inlinable static var ALIASED_LINE_WIDTH_RANGE: GLenum { 0x846E }
+
+    @inlinable static var CULL_FACE_MODE: GLenum { 0x0B45 }
+
+    @inlinable static var FRONT_FACE: GLenum { 0x0B46 }
+
+    @inlinable static var DEPTH_RANGE: GLenum { 0x0B70 }
+
+    @inlinable static var DEPTH_WRITEMASK: GLenum { 0x0B72 }
+
+    @inlinable static var DEPTH_CLEAR_VALUE: GLenum { 0x0B73 }
+
+    @inlinable static var DEPTH_FUNC: GLenum { 0x0B74 }
+
+    @inlinable static var STENCIL_CLEAR_VALUE: GLenum { 0x0B91 }
+
+    @inlinable static var STENCIL_FUNC: GLenum { 0x0B92 }
+
+    @inlinable static var STENCIL_FAIL: GLenum { 0x0B94 }
+
+    @inlinable static var STENCIL_PASS_DEPTH_FAIL: GLenum { 0x0B95 }
+
+    @inlinable static var STENCIL_PASS_DEPTH_PASS: GLenum { 0x0B96 }
+
+    @inlinable static var STENCIL_REF: GLenum { 0x0B97 }
+
+    @inlinable static var STENCIL_VALUE_MASK: GLenum { 0x0B93 }
+
+    @inlinable static var STENCIL_WRITEMASK: GLenum { 0x0B98 }
+
+    @inlinable static var STENCIL_BACK_FUNC: GLenum { 0x8800 }
+
+    @inlinable static var STENCIL_BACK_FAIL: GLenum { 0x8801 }
+
+    @inlinable static var STENCIL_BACK_PASS_DEPTH_FAIL: GLenum { 0x8802 }
+
+    @inlinable static var STENCIL_BACK_PASS_DEPTH_PASS: GLenum { 0x8803 }
+
+    @inlinable static var STENCIL_BACK_REF: GLenum { 0x8CA3 }
+
+    @inlinable static var STENCIL_BACK_VALUE_MASK: GLenum { 0x8CA4 }
+
+    @inlinable static var STENCIL_BACK_WRITEMASK: GLenum { 0x8CA5 }
+
+    @inlinable static var VIEWPORT: GLenum { 0x0BA2 }
+
+    @inlinable static var SCISSOR_BOX: GLenum { 0x0C10 }
+
+    @inlinable static var COLOR_CLEAR_VALUE: GLenum { 0x0C22 }
+
+    @inlinable static var COLOR_WRITEMASK: GLenum { 0x0C23 }
+
+    @inlinable static var UNPACK_ALIGNMENT: GLenum { 0x0CF5 }
+
+    @inlinable static var PACK_ALIGNMENT: GLenum { 0x0D05 }
+
+    @inlinable static var MAX_TEXTURE_SIZE: GLenum { 0x0D33 }
+
+    @inlinable static var MAX_VIEWPORT_DIMS: GLenum { 0x0D3A }
+
+    @inlinable static var SUBPIXEL_BITS: GLenum { 0x0D50 }
+
+    @inlinable static var RED_BITS: GLenum { 0x0D52 }
+
+    @inlinable static var GREEN_BITS: GLenum { 0x0D53 }
+
+    @inlinable static var BLUE_BITS: GLenum { 0x0D54 }
+
+    @inlinable static var ALPHA_BITS: GLenum { 0x0D55 }
+
+    @inlinable static var DEPTH_BITS: GLenum { 0x0D56 }
+
+    @inlinable static var STENCIL_BITS: GLenum { 0x0D57 }
+
+    @inlinable static var POLYGON_OFFSET_UNITS: GLenum { 0x2A00 }
+
+    @inlinable static var POLYGON_OFFSET_FACTOR: GLenum { 0x8038 }
+
+    @inlinable static var TEXTURE_BINDING_2D: GLenum { 0x8069 }
+
+    @inlinable static var SAMPLE_BUFFERS: GLenum { 0x80A8 }
+
+    @inlinable static var SAMPLES: GLenum { 0x80A9 }
+
+    @inlinable static var SAMPLE_COVERAGE_VALUE: GLenum { 0x80AA }
+
+    @inlinable static var SAMPLE_COVERAGE_INVERT: GLenum { 0x80AB }
+
+    @inlinable static var COMPRESSED_TEXTURE_FORMATS: GLenum { 0x86A3 }
+
+    @inlinable static var DONT_CARE: GLenum { 0x1100 }
+
+    @inlinable static var FASTEST: GLenum { 0x1101 }
+
+    @inlinable static var NICEST: GLenum { 0x1102 }
+
+    @inlinable static var GENERATE_MIPMAP_HINT: GLenum { 0x8192 }
+
+    @inlinable static var BYTE: GLenum { 0x1400 }
+
+    @inlinable static var UNSIGNED_BYTE: GLenum { 0x1401 }
+
+    @inlinable static var SHORT: GLenum { 0x1402 }
+
+    @inlinable static var UNSIGNED_SHORT: GLenum { 0x1403 }
+
+    @inlinable static var INT: GLenum { 0x1404 }
+
+    @inlinable static var UNSIGNED_INT: GLenum { 0x1405 }
+
+    @inlinable static var FLOAT: GLenum { 0x1406 }
+
+    @inlinable static var DEPTH_COMPONENT: GLenum { 0x1902 }
+
+    @inlinable static var ALPHA: GLenum { 0x1906 }
+
+    @inlinable static var RGB: GLenum { 0x1907 }
+
+    @inlinable static var RGBA: GLenum { 0x1908 }
+
+    @inlinable static var LUMINANCE: GLenum { 0x1909 }
+
+    @inlinable static var LUMINANCE_ALPHA: GLenum { 0x190A }
+
+    @inlinable static var UNSIGNED_SHORT_4_4_4_4: GLenum { 0x8033 }
+
+    @inlinable static var UNSIGNED_SHORT_5_5_5_1: GLenum { 0x8034 }
+
+    @inlinable static var UNSIGNED_SHORT_5_6_5: GLenum { 0x8363 }
+
+    @inlinable static var FRAGMENT_SHADER: GLenum { 0x8B30 }
+
+    @inlinable static var VERTEX_SHADER: GLenum { 0x8B31 }
+
+    @inlinable static var MAX_VERTEX_ATTRIBS: GLenum { 0x8869 }
+
+    @inlinable static var MAX_VERTEX_UNIFORM_VECTORS: GLenum { 0x8DFB }
+
+    @inlinable static var MAX_VARYING_VECTORS: GLenum { 0x8DFC }
+
+    @inlinable static var MAX_COMBINED_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4D }
+
+    @inlinable static var MAX_VERTEX_TEXTURE_IMAGE_UNITS: GLenum { 0x8B4C }
+
+    @inlinable static var MAX_TEXTURE_IMAGE_UNITS: GLenum { 0x8872 }
+
+    @inlinable static var MAX_FRAGMENT_UNIFORM_VECTORS: GLenum { 0x8DFD }
+
+    @inlinable static var SHADER_TYPE: GLenum { 0x8B4F }
+
+    @inlinable static var DELETE_STATUS: GLenum { 0x8B80 }
+
+    @inlinable static var LINK_STATUS: GLenum { 0x8B82 }
+
+    @inlinable static var VALIDATE_STATUS: GLenum { 0x8B83 }
+
+    @inlinable static var ATTACHED_SHADERS: GLenum { 0x8B85 }
+
+    @inlinable static var ACTIVE_UNIFORMS: GLenum { 0x8B86 }
+
+    @inlinable static var ACTIVE_ATTRIBUTES: GLenum { 0x8B89 }
+
+    @inlinable static var SHADING_LANGUAGE_VERSION: GLenum { 0x8B8C }
+
+    @inlinable static var CURRENT_PROGRAM: GLenum { 0x8B8D }
+
+    @inlinable static var NEVER: GLenum { 0x0200 }
+
+    @inlinable static var LESS: GLenum { 0x0201 }
+
+    @inlinable static var EQUAL: GLenum { 0x0202 }
+
+    @inlinable static var LEQUAL: GLenum { 0x0203 }
+
+    @inlinable static var GREATER: GLenum { 0x0204 }
+
+    @inlinable static var NOTEQUAL: GLenum { 0x0205 }
+
+    @inlinable static var GEQUAL: GLenum { 0x0206 }
+
+    @inlinable static var ALWAYS: GLenum { 0x0207 }
+
+    @inlinable static var KEEP: GLenum { 0x1E00 }
+
+    @inlinable static var REPLACE: GLenum { 0x1E01 }
+
+    @inlinable static var INCR: GLenum { 0x1E02 }
+
+    @inlinable static var DECR: GLenum { 0x1E03 }
+
+    @inlinable static var INVERT: GLenum { 0x150A }
+
+    @inlinable static var INCR_WRAP: GLenum { 0x8507 }
+
+    @inlinable static var DECR_WRAP: GLenum { 0x8508 }
+
+    @inlinable static var VENDOR: GLenum { 0x1F00 }
+
+    @inlinable static var RENDERER: GLenum { 0x1F01 }
+
+    @inlinable static var VERSION: GLenum { 0x1F02 }
+
+    @inlinable static var NEAREST: GLenum { 0x2600 }
+
+    @inlinable static var LINEAR: GLenum { 0x2601 }
+
+    @inlinable static var NEAREST_MIPMAP_NEAREST: GLenum { 0x2700 }
+
+    @inlinable static var LINEAR_MIPMAP_NEAREST: GLenum { 0x2701 }
+
+    @inlinable static var NEAREST_MIPMAP_LINEAR: GLenum { 0x2702 }
+
+    @inlinable static var LINEAR_MIPMAP_LINEAR: GLenum { 0x2703 }
+
+    @inlinable static var TEXTURE_MAG_FILTER: GLenum { 0x2800 }
+
+    @inlinable static var TEXTURE_MIN_FILTER: GLenum { 0x2801 }
+
+    @inlinable static var TEXTURE_WRAP_S: GLenum { 0x2802 }
+
+    @inlinable static var TEXTURE_WRAP_T: GLenum { 0x2803 }
+
+    @inlinable static var TEXTURE_2D: GLenum { 0x0DE1 }
+
+    @inlinable static var TEXTURE: GLenum { 0x1702 }
+
+    @inlinable static var TEXTURE_CUBE_MAP: GLenum { 0x8513 }
+
+    @inlinable static var TEXTURE_BINDING_CUBE_MAP: GLenum { 0x8514 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_X: GLenum { 0x8515 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_X: GLenum { 0x8516 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Y: GLenum { 0x8517 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Y: GLenum { 0x8518 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_POSITIVE_Z: GLenum { 0x8519 }
+
+    @inlinable static var TEXTURE_CUBE_MAP_NEGATIVE_Z: GLenum { 0x851A }
+
+    @inlinable static var MAX_CUBE_MAP_TEXTURE_SIZE: GLenum { 0x851C }
+
+    @inlinable static var TEXTURE0: GLenum { 0x84C0 }
+
+    @inlinable static var TEXTURE1: GLenum { 0x84C1 }
+
+    @inlinable static var TEXTURE2: GLenum { 0x84C2 }
+
+    @inlinable static var TEXTURE3: GLenum { 0x84C3 }
+
+    @inlinable static var TEXTURE4: GLenum { 0x84C4 }
+
+    @inlinable static var TEXTURE5: GLenum { 0x84C5 }
+
+    @inlinable static var TEXTURE6: GLenum { 0x84C6 }
+
+    @inlinable static var TEXTURE7: GLenum { 0x84C7 }
+
+    @inlinable static var TEXTURE8: GLenum { 0x84C8 }
+
+    @inlinable static var TEXTURE9: GLenum { 0x84C9 }
+
+    @inlinable static var TEXTURE10: GLenum { 0x84CA }
+
+    @inlinable static var TEXTURE11: GLenum { 0x84CB }
+
+    @inlinable static var TEXTURE12: GLenum { 0x84CC }
+
+    @inlinable static var TEXTURE13: GLenum { 0x84CD }
+
+    @inlinable static var TEXTURE14: GLenum { 0x84CE }
+
+    @inlinable static var TEXTURE15: GLenum { 0x84CF }
+
+    @inlinable static var TEXTURE16: GLenum { 0x84D0 }
+
+    @inlinable static var TEXTURE17: GLenum { 0x84D1 }
+
+    @inlinable static var TEXTURE18: GLenum { 0x84D2 }
+
+    @inlinable static var TEXTURE19: GLenum { 0x84D3 }
+
+    @inlinable static var TEXTURE20: GLenum { 0x84D4 }
+
+    @inlinable static var TEXTURE21: GLenum { 0x84D5 }
+
+    @inlinable static var TEXTURE22: GLenum { 0x84D6 }
+
+    @inlinable static var TEXTURE23: GLenum { 0x84D7 }
+
+    @inlinable static var TEXTURE24: GLenum { 0x84D8 }
+
+    @inlinable static var TEXTURE25: GLenum { 0x84D9 }
+
+    @inlinable static var TEXTURE26: GLenum { 0x84DA }
+
+    @inlinable static var TEXTURE27: GLenum { 0x84DB }
+
+    @inlinable static var TEXTURE28: GLenum { 0x84DC }
+
+    @inlinable static var TEXTURE29: GLenum { 0x84DD }
+
+    @inlinable static var TEXTURE30: GLenum { 0x84DE }
+
+    @inlinable static var TEXTURE31: GLenum { 0x84DF }
+
+    @inlinable static var ACTIVE_TEXTURE: GLenum { 0x84E0 }
+
+    @inlinable static var REPEAT: GLenum { 0x2901 }
+
+    @inlinable static var CLAMP_TO_EDGE: GLenum { 0x812F }
+
+    @inlinable static var MIRRORED_REPEAT: GLenum { 0x8370 }
+
+    @inlinable static var FLOAT_VEC2: GLenum { 0x8B50 }
+
+    @inlinable static var FLOAT_VEC3: GLenum { 0x8B51 }
+
+    @inlinable static var FLOAT_VEC4: GLenum { 0x8B52 }
+
+    @inlinable static var INT_VEC2: GLenum { 0x8B53 }
+
+    @inlinable static var INT_VEC3: GLenum { 0x8B54 }
+
+    @inlinable static var INT_VEC4: GLenum { 0x8B55 }
+
+    @inlinable static var BOOL: GLenum { 0x8B56 }
+
+    @inlinable static var BOOL_VEC2: GLenum { 0x8B57 }
+
+    @inlinable static var BOOL_VEC3: GLenum { 0x8B58 }
+
+    @inlinable static var BOOL_VEC4: GLenum { 0x8B59 }
+
+    @inlinable static var FLOAT_MAT2: GLenum { 0x8B5A }
+
+    @inlinable static var FLOAT_MAT3: GLenum { 0x8B5B }
+
+    @inlinable static var FLOAT_MAT4: GLenum { 0x8B5C }
+
+    @inlinable static var SAMPLER_2D: GLenum { 0x8B5E }
+
+    @inlinable static var SAMPLER_CUBE: GLenum { 0x8B60 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_ENABLED: GLenum { 0x8622 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_SIZE: GLenum { 0x8623 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_STRIDE: GLenum { 0x8624 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_TYPE: GLenum { 0x8625 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_NORMALIZED: GLenum { 0x886A }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_POINTER: GLenum { 0x8645 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_BUFFER_BINDING: GLenum { 0x889F }
+
+    @inlinable static var IMPLEMENTATION_COLOR_READ_TYPE: GLenum { 0x8B9A }
+
+    @inlinable static var IMPLEMENTATION_COLOR_READ_FORMAT: GLenum { 0x8B9B }
+
+    @inlinable static var COMPILE_STATUS: GLenum { 0x8B81 }
+
+    @inlinable static var LOW_FLOAT: GLenum { 0x8DF0 }
+
+    @inlinable static var MEDIUM_FLOAT: GLenum { 0x8DF1 }
+
+    @inlinable static var HIGH_FLOAT: GLenum { 0x8DF2 }
+
+    @inlinable static var LOW_INT: GLenum { 0x8DF3 }
+
+    @inlinable static var MEDIUM_INT: GLenum { 0x8DF4 }
+
+    @inlinable static var HIGH_INT: GLenum { 0x8DF5 }
+
+    @inlinable static var FRAMEBUFFER: GLenum { 0x8D40 }
+
+    @inlinable static var RENDERBUFFER: GLenum { 0x8D41 }
+
+    @inlinable static var RGBA4: GLenum { 0x8056 }
+
+    @inlinable static var RGB5_A1: GLenum { 0x8057 }
+
+    @inlinable static var RGB565: GLenum { 0x8D62 }
+
+    @inlinable static var DEPTH_COMPONENT16: GLenum { 0x81A5 }
+
+    @inlinable static var STENCIL_INDEX8: GLenum { 0x8D48 }
+
+    @inlinable static var DEPTH_STENCIL: GLenum { 0x84F9 }
+
+    @inlinable static var RENDERBUFFER_WIDTH: GLenum { 0x8D42 }
+
+    @inlinable static var RENDERBUFFER_HEIGHT: GLenum { 0x8D43 }
+
+    @inlinable static var RENDERBUFFER_INTERNAL_FORMAT: GLenum { 0x8D44 }
+
+    @inlinable static var RENDERBUFFER_RED_SIZE: GLenum { 0x8D50 }
+
+    @inlinable static var RENDERBUFFER_GREEN_SIZE: GLenum { 0x8D51 }
+
+    @inlinable static var RENDERBUFFER_BLUE_SIZE: GLenum { 0x8D52 }
+
+    @inlinable static var RENDERBUFFER_ALPHA_SIZE: GLenum { 0x8D53 }
+
+    @inlinable static var RENDERBUFFER_DEPTH_SIZE: GLenum { 0x8D54 }
+
+    @inlinable static var RENDERBUFFER_STENCIL_SIZE: GLenum { 0x8D55 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE: GLenum { 0x8CD0 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_OBJECT_NAME: GLenum { 0x8CD1 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL: GLenum { 0x8CD2 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE: GLenum { 0x8CD3 }
+
+    @inlinable static var COLOR_ATTACHMENT0: GLenum { 0x8CE0 }
+
+    @inlinable static var DEPTH_ATTACHMENT: GLenum { 0x8D00 }
+
+    @inlinable static var STENCIL_ATTACHMENT: GLenum { 0x8D20 }
+
+    @inlinable static var DEPTH_STENCIL_ATTACHMENT: GLenum { 0x821A }
+
+    @inlinable static var NONE: GLenum { 0 }
+
+    @inlinable static var FRAMEBUFFER_COMPLETE: GLenum { 0x8CD5 }
+
+    @inlinable static var FRAMEBUFFER_INCOMPLETE_ATTACHMENT: GLenum { 0x8CD6 }
+
+    @inlinable static var FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT: GLenum { 0x8CD7 }
+
+    @inlinable static var FRAMEBUFFER_INCOMPLETE_DIMENSIONS: GLenum { 0x8CD9 }
+
+    @inlinable static var FRAMEBUFFER_UNSUPPORTED: GLenum { 0x8CDD }
+
+    @inlinable static var FRAMEBUFFER_BINDING: GLenum { 0x8CA6 }
+
+    @inlinable static var RENDERBUFFER_BINDING: GLenum { 0x8CA7 }
+
+    @inlinable static var MAX_RENDERBUFFER_SIZE: GLenum { 0x84E8 }
+
+    @inlinable static var INVALID_FRAMEBUFFER_OPERATION: GLenum { 0x0506 }
+
+    @inlinable static var UNPACK_FLIP_Y_WEBGL: GLenum { 0x9240 }
+
+    @inlinable static var UNPACK_PREMULTIPLY_ALPHA_WEBGL: GLenum { 0x9241 }
+
+    @inlinable static var CONTEXT_LOST_WEBGL: GLenum { 0x9242 }
+
+    @inlinable static var UNPACK_COLORSPACE_CONVERSION_WEBGL: GLenum { 0x9243 }
+
+    @inlinable static var BROWSER_DEFAULT_WEBGL: GLenum { 0x9244 }
+
+    @inlinable var canvas: HTMLCanvasElement_or_OffscreenCanvas { jsObject[Strings.canvas].fromJSValue()! }
+
+    @inlinable var drawingBufferWidth: GLsizei { jsObject[Strings.drawingBufferWidth].fromJSValue()! }
+
+    @inlinable var drawingBufferHeight: GLsizei { jsObject[Strings.drawingBufferHeight].fromJSValue()! }
+
+    @inlinable func getContextAttributes() -> WebGLContextAttributes? {
+        let this = jsObject
+        return this[Strings.getContextAttributes].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func isContextLost() -> Bool {
+        let this = jsObject
+        return this[Strings.isContextLost].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func getSupportedExtensions() -> [String]? {
+        let this = jsObject
+        return this[Strings.getSupportedExtensions].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func getExtension(name: String) -> JSObject? {
+        let this = jsObject
+        return this[Strings.getExtension].function!(this: this, arguments: [name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func activeTexture(texture: GLenum) {
+        let this = jsObject
+        _ = this[Strings.activeTexture].function!(this: this, arguments: [texture.jsValue])
+    }
+
+    @inlinable func attachShader(program: WebGLProgram, shader: WebGLShader) {
+        let this = jsObject
+        _ = this[Strings.attachShader].function!(this: this, arguments: [program.jsValue, shader.jsValue])
+    }
+
+    @inlinable func bindAttribLocation(program: WebGLProgram, index: GLuint, name: String) {
+        let this = jsObject
+        _ = this[Strings.bindAttribLocation].function!(this: this, arguments: [program.jsValue, index.jsValue, name.jsValue])
+    }
+
+    @inlinable func bindBuffer(target: GLenum, buffer: WebGLBuffer?) {
+        let this = jsObject
+        _ = this[Strings.bindBuffer].function!(this: this, arguments: [target.jsValue, buffer.jsValue])
+    }
+
+    @inlinable func bindFramebuffer(target: GLenum, framebuffer: WebGLFramebuffer?) {
+        let this = jsObject
+        _ = this[Strings.bindFramebuffer].function!(this: this, arguments: [target.jsValue, framebuffer.jsValue])
+    }
+
+    @inlinable func bindRenderbuffer(target: GLenum, renderbuffer: WebGLRenderbuffer?) {
+        let this = jsObject
+        _ = this[Strings.bindRenderbuffer].function!(this: this, arguments: [target.jsValue, renderbuffer.jsValue])
+    }
+
+    @inlinable func bindTexture(target: GLenum, texture: WebGLTexture?) {
+        let this = jsObject
+        _ = this[Strings.bindTexture].function!(this: this, arguments: [target.jsValue, texture.jsValue])
+    }
+
+    @inlinable func blendColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
+        let this = jsObject
+        _ = this[Strings.blendColor].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
+    }
+
+    @inlinable func blendEquation(mode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.blendEquation].function!(this: this, arguments: [mode.jsValue])
+    }
+
+    @inlinable func blendEquationSeparate(modeRGB: GLenum, modeAlpha: GLenum) {
+        let this = jsObject
+        _ = this[Strings.blendEquationSeparate].function!(this: this, arguments: [modeRGB.jsValue, modeAlpha.jsValue])
+    }
+
+    @inlinable func blendFunc(sfactor: GLenum, dfactor: GLenum) {
+        let this = jsObject
+        _ = this[Strings.blendFunc].function!(this: this, arguments: [sfactor.jsValue, dfactor.jsValue])
+    }
+
+    @inlinable func blendFuncSeparate(srcRGB: GLenum, dstRGB: GLenum, srcAlpha: GLenum, dstAlpha: GLenum) {
+        let this = jsObject
+        _ = this[Strings.blendFuncSeparate].function!(this: this, arguments: [srcRGB.jsValue, dstRGB.jsValue, srcAlpha.jsValue, dstAlpha.jsValue])
+    }
+
+    @inlinable func checkFramebufferStatus(target: GLenum) -> GLenum {
+        let this = jsObject
+        return this[Strings.checkFramebufferStatus].function!(this: this, arguments: [target.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func clear(mask: GLbitfield) {
+        let this = jsObject
+        _ = this[Strings.clear].function!(this: this, arguments: [mask.jsValue])
+    }
+
+    @inlinable func clearColor(red: GLclampf, green: GLclampf, blue: GLclampf, alpha: GLclampf) {
+        let this = jsObject
+        _ = this[Strings.clearColor].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
+    }
+
+    @inlinable func clearDepth(depth: GLclampf) {
+        let this = jsObject
+        _ = this[Strings.clearDepth].function!(this: this, arguments: [depth.jsValue])
+    }
+
+    @inlinable func clearStencil(s: GLint) {
+        let this = jsObject
+        _ = this[Strings.clearStencil].function!(this: this, arguments: [s.jsValue])
+    }
+
+    @inlinable func colorMask(red: GLboolean, green: GLboolean, blue: GLboolean, alpha: GLboolean) {
+        let this = jsObject
+        _ = this[Strings.colorMask].function!(this: this, arguments: [red.jsValue, green.jsValue, blue.jsValue, alpha.jsValue])
+    }
+
+    @inlinable func compileShader(shader: WebGLShader) {
+        let this = jsObject
+        _ = this[Strings.compileShader].function!(this: this, arguments: [shader.jsValue])
+    }
+
+    @inlinable func copyTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, x: GLint, y: GLint, width: GLsizei, height: GLsizei, border: GLint) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = x.jsValue
+        let _arg4 = y.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = border.jsValue
+        let this = jsObject
+        _ = this[Strings.copyTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+
+    @inlinable func copyTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = x.jsValue
+        let _arg5 = y.jsValue
+        let _arg6 = width.jsValue
+        let _arg7 = height.jsValue
+        let this = jsObject
+        _ = this[Strings.copyTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+
+    @inlinable func createBuffer() -> WebGLBuffer? {
+        let this = jsObject
+        return this[Strings.createBuffer].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func createFramebuffer() -> WebGLFramebuffer? {
+        let this = jsObject
+        return this[Strings.createFramebuffer].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func createProgram() -> WebGLProgram? {
+        let this = jsObject
+        return this[Strings.createProgram].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func createRenderbuffer() -> WebGLRenderbuffer? {
+        let this = jsObject
+        return this[Strings.createRenderbuffer].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func createShader(type: GLenum) -> WebGLShader? {
+        let this = jsObject
+        return this[Strings.createShader].function!(this: this, arguments: [type.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func createTexture() -> WebGLTexture? {
+        let this = jsObject
+        return this[Strings.createTexture].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func cullFace(mode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.cullFace].function!(this: this, arguments: [mode.jsValue])
+    }
+
+    @inlinable func deleteBuffer(buffer: WebGLBuffer?) {
+        let this = jsObject
+        _ = this[Strings.deleteBuffer].function!(this: this, arguments: [buffer.jsValue])
+    }
+
+    @inlinable func deleteFramebuffer(framebuffer: WebGLFramebuffer?) {
+        let this = jsObject
+        _ = this[Strings.deleteFramebuffer].function!(this: this, arguments: [framebuffer.jsValue])
+    }
+
+    @inlinable func deleteProgram(program: WebGLProgram?) {
+        let this = jsObject
+        _ = this[Strings.deleteProgram].function!(this: this, arguments: [program.jsValue])
+    }
+
+    @inlinable func deleteRenderbuffer(renderbuffer: WebGLRenderbuffer?) {
+        let this = jsObject
+        _ = this[Strings.deleteRenderbuffer].function!(this: this, arguments: [renderbuffer.jsValue])
+    }
+
+    @inlinable func deleteShader(shader: WebGLShader?) {
+        let this = jsObject
+        _ = this[Strings.deleteShader].function!(this: this, arguments: [shader.jsValue])
+    }
+
+    @inlinable func deleteTexture(texture: WebGLTexture?) {
+        let this = jsObject
+        _ = this[Strings.deleteTexture].function!(this: this, arguments: [texture.jsValue])
+    }
+
+    @inlinable func depthFunc(func: GLenum) {
+        let this = jsObject
+        _ = this[Strings.depthFunc].function!(this: this, arguments: [`func`.jsValue])
+    }
+
+    @inlinable func depthMask(flag: GLboolean) {
+        let this = jsObject
+        _ = this[Strings.depthMask].function!(this: this, arguments: [flag.jsValue])
+    }
+
+    @inlinable func depthRange(zNear: GLclampf, zFar: GLclampf) {
+        let this = jsObject
+        _ = this[Strings.depthRange].function!(this: this, arguments: [zNear.jsValue, zFar.jsValue])
+    }
+
+    @inlinable func detachShader(program: WebGLProgram, shader: WebGLShader) {
+        let this = jsObject
+        _ = this[Strings.detachShader].function!(this: this, arguments: [program.jsValue, shader.jsValue])
+    }
+
+    @inlinable func disable(cap: GLenum) {
+        let this = jsObject
+        _ = this[Strings.disable].function!(this: this, arguments: [cap.jsValue])
+    }
+
+    @inlinable func disableVertexAttribArray(index: GLuint) {
+        let this = jsObject
+        _ = this[Strings.disableVertexAttribArray].function!(this: this, arguments: [index.jsValue])
+    }
+
+    @inlinable func drawArrays(mode: GLenum, first: GLint, count: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.drawArrays].function!(this: this, arguments: [mode.jsValue, first.jsValue, count.jsValue])
+    }
+
+    @inlinable func drawElements(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr) {
+        let this = jsObject
+        _ = this[Strings.drawElements].function!(this: this, arguments: [mode.jsValue, count.jsValue, type.jsValue, offset.jsValue])
+    }
+
+    @inlinable func enable(cap: GLenum) {
+        let this = jsObject
+        _ = this[Strings.enable].function!(this: this, arguments: [cap.jsValue])
+    }
+
+    @inlinable func enableVertexAttribArray(index: GLuint) {
+        let this = jsObject
+        _ = this[Strings.enableVertexAttribArray].function!(this: this, arguments: [index.jsValue])
+    }
+
+    @inlinable func finish() {
+        let this = jsObject
+        _ = this[Strings.finish].function!(this: this, arguments: [])
+    }
+
+    @inlinable func flush() {
+        let this = jsObject
+        _ = this[Strings.flush].function!(this: this, arguments: [])
+    }
+
+    @inlinable func framebufferRenderbuffer(target: GLenum, attachment: GLenum, renderbuffertarget: GLenum, renderbuffer: WebGLRenderbuffer?) {
+        let this = jsObject
+        _ = this[Strings.framebufferRenderbuffer].function!(this: this, arguments: [target.jsValue, attachment.jsValue, renderbuffertarget.jsValue, renderbuffer.jsValue])
+    }
+
+    @inlinable func framebufferTexture2D(target: GLenum, attachment: GLenum, textarget: GLenum, texture: WebGLTexture?, level: GLint) {
+        let this = jsObject
+        _ = this[Strings.framebufferTexture2D].function!(this: this, arguments: [target.jsValue, attachment.jsValue, textarget.jsValue, texture.jsValue, level.jsValue])
+    }
+
+    @inlinable func frontFace(mode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.frontFace].function!(this: this, arguments: [mode.jsValue])
+    }
+
+    @inlinable func generateMipmap(target: GLenum) {
+        let this = jsObject
+        _ = this[Strings.generateMipmap].function!(this: this, arguments: [target.jsValue])
+    }
+
+    @inlinable func getActiveAttrib(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
+        let this = jsObject
+        return this[Strings.getActiveAttrib].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getActiveUniform(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
+        let this = jsObject
+        return this[Strings.getActiveUniform].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getAttachedShaders(program: WebGLProgram) -> [WebGLShader]? {
+        let this = jsObject
+        return this[Strings.getAttachedShaders].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getAttribLocation(program: WebGLProgram, name: String) -> GLint {
+        let this = jsObject
+        return this[Strings.getAttribLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getBufferParameter(target: GLenum, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getBufferParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getParameter(pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getParameter].function!(this: this, arguments: [pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable 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 {
+        let this = jsObject
+        return this[Strings.getFramebufferAttachmentParameter].function!(this: this, arguments: [target.jsValue, attachment.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getProgramParameter(program: WebGLProgram, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getProgramParameter].function!(this: this, arguments: [program.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getProgramInfoLog(program: WebGLProgram) -> String? {
+        let this = jsObject
+        return this[Strings.getProgramInfoLog].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getRenderbufferParameter(target: GLenum, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getRenderbufferParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getShaderParameter(shader: WebGLShader, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getShaderParameter].function!(this: this, arguments: [shader.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getShaderPrecisionFormat(shadertype: GLenum, precisiontype: GLenum) -> WebGLShaderPrecisionFormat? {
+        let this = jsObject
+        return this[Strings.getShaderPrecisionFormat].function!(this: this, arguments: [shadertype.jsValue, precisiontype.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getShaderInfoLog(shader: WebGLShader) -> String? {
+        let this = jsObject
+        return this[Strings.getShaderInfoLog].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getShaderSource(shader: WebGLShader) -> String? {
+        let this = jsObject
+        return this[Strings.getShaderSource].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getTexParameter(target: GLenum, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getTexParameter].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getUniform(program: WebGLProgram, location: WebGLUniformLocation) -> JSValue {
+        let this = jsObject
+        return this[Strings.getUniform].function!(this: this, arguments: [program.jsValue, location.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getUniformLocation(program: WebGLProgram, name: String) -> WebGLUniformLocation? {
+        let this = jsObject
+        return this[Strings.getUniformLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getVertexAttrib(index: GLuint, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getVertexAttrib].function!(this: this, arguments: [index.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getVertexAttribOffset(index: GLuint, pname: GLenum) -> GLintptr {
+        let this = jsObject
+        return this[Strings.getVertexAttribOffset].function!(this: this, arguments: [index.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func hint(target: GLenum, mode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.hint].function!(this: this, arguments: [target.jsValue, mode.jsValue])
+    }
+
+    @inlinable func isBuffer(buffer: WebGLBuffer?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isBuffer].function!(this: this, arguments: [buffer.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isEnabled(cap: GLenum) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isEnabled].function!(this: this, arguments: [cap.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isFramebuffer(framebuffer: WebGLFramebuffer?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isFramebuffer].function!(this: this, arguments: [framebuffer.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isProgram(program: WebGLProgram?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isProgram].function!(this: this, arguments: [program.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isRenderbuffer(renderbuffer: WebGLRenderbuffer?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isRenderbuffer].function!(this: this, arguments: [renderbuffer.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isShader(shader: WebGLShader?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isShader].function!(this: this, arguments: [shader.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isTexture(texture: WebGLTexture?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isTexture].function!(this: this, arguments: [texture.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func lineWidth(width: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.lineWidth].function!(this: this, arguments: [width.jsValue])
+    }
+
+    @inlinable func linkProgram(program: WebGLProgram) {
+        let this = jsObject
+        _ = this[Strings.linkProgram].function!(this: this, arguments: [program.jsValue])
+    }
+
+    @inlinable func pixelStorei(pname: GLenum, param: GLint) {
+        let this = jsObject
+        _ = this[Strings.pixelStorei].function!(this: this, arguments: [pname.jsValue, param.jsValue])
+    }
+
+    @inlinable func polygonOffset(factor: GLfloat, units: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.polygonOffset].function!(this: this, arguments: [factor.jsValue, units.jsValue])
+    }
+
+    @inlinable func renderbufferStorage(target: GLenum, internalformat: GLenum, width: GLsizei, height: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.renderbufferStorage].function!(this: this, arguments: [target.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
+    }
+
+    @inlinable func sampleCoverage(value: GLclampf, invert: GLboolean) {
+        let this = jsObject
+        _ = this[Strings.sampleCoverage].function!(this: this, arguments: [value.jsValue, invert.jsValue])
+    }
+
+    @inlinable func scissor(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.scissor].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
+    }
+
+    @inlinable func shaderSource(shader: WebGLShader, source: String) {
+        let this = jsObject
+        _ = this[Strings.shaderSource].function!(this: this, arguments: [shader.jsValue, source.jsValue])
+    }
+
+    @inlinable func stencilFunc(func: GLenum, ref: GLint, mask: GLuint) {
+        let this = jsObject
+        _ = this[Strings.stencilFunc].function!(this: this, arguments: [`func`.jsValue, ref.jsValue, mask.jsValue])
+    }
+
+    @inlinable func stencilFuncSeparate(face: GLenum, func: GLenum, ref: GLint, mask: GLuint) {
+        let this = jsObject
+        _ = this[Strings.stencilFuncSeparate].function!(this: this, arguments: [face.jsValue, `func`.jsValue, ref.jsValue, mask.jsValue])
+    }
+
+    @inlinable func stencilMask(mask: GLuint) {
+        let this = jsObject
+        _ = this[Strings.stencilMask].function!(this: this, arguments: [mask.jsValue])
+    }
+
+    @inlinable func stencilMaskSeparate(face: GLenum, mask: GLuint) {
+        let this = jsObject
+        _ = this[Strings.stencilMaskSeparate].function!(this: this, arguments: [face.jsValue, mask.jsValue])
+    }
+
+    @inlinable func stencilOp(fail: GLenum, zfail: GLenum, zpass: GLenum) {
+        let this = jsObject
+        _ = this[Strings.stencilOp].function!(this: this, arguments: [fail.jsValue, zfail.jsValue, zpass.jsValue])
+    }
+
+    @inlinable func stencilOpSeparate(face: GLenum, fail: GLenum, zfail: GLenum, zpass: GLenum) {
+        let this = jsObject
+        _ = this[Strings.stencilOpSeparate].function!(this: this, arguments: [face.jsValue, fail.jsValue, zfail.jsValue, zpass.jsValue])
+    }
+
+    @inlinable func texParameterf(target: GLenum, pname: GLenum, param: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.texParameterf].function!(this: this, arguments: [target.jsValue, pname.jsValue, param.jsValue])
+    }
+
+    @inlinable func texParameteri(target: GLenum, pname: GLenum, param: GLint) {
+        let this = jsObject
+        _ = this[Strings.texParameteri].function!(this: this, arguments: [target.jsValue, pname.jsValue, param.jsValue])
+    }
+
+    @inlinable func uniform1f(location: WebGLUniformLocation?, x: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.uniform1f].function!(this: this, arguments: [location.jsValue, x.jsValue])
+    }
+
+    @inlinable func uniform2f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.uniform2f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue])
+    }
+
+    @inlinable func uniform3f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.uniform3f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue])
+    }
+
+    @inlinable func uniform4f(location: WebGLUniformLocation?, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.uniform4f].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    }
+
+    @inlinable func uniform1i(location: WebGLUniformLocation?, x: GLint) {
+        let this = jsObject
+        _ = this[Strings.uniform1i].function!(this: this, arguments: [location.jsValue, x.jsValue])
+    }
+
+    @inlinable func uniform2i(location: WebGLUniformLocation?, x: GLint, y: GLint) {
+        let this = jsObject
+        _ = this[Strings.uniform2i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue])
+    }
+
+    @inlinable func uniform3i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint) {
+        let this = jsObject
+        _ = this[Strings.uniform3i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue])
+    }
+
+    @inlinable func uniform4i(location: WebGLUniformLocation?, x: GLint, y: GLint, z: GLint, w: GLint) {
+        let this = jsObject
+        _ = this[Strings.uniform4i].function!(this: this, arguments: [location.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    }
+
+    @inlinable func useProgram(program: WebGLProgram?) {
+        let this = jsObject
+        _ = this[Strings.useProgram].function!(this: this, arguments: [program.jsValue])
+    }
+
+    @inlinable func validateProgram(program: WebGLProgram) {
+        let this = jsObject
+        _ = this[Strings.validateProgram].function!(this: this, arguments: [program.jsValue])
+    }
+
+    @inlinable func vertexAttrib1f(index: GLuint, x: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib1f].function!(this: this, arguments: [index.jsValue, x.jsValue])
+    }
+
+    @inlinable func vertexAttrib2f(index: GLuint, x: GLfloat, y: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib2f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue])
+    }
+
+    @inlinable func vertexAttrib3f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib3f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue])
+    }
+
+    @inlinable func vertexAttrib4f(index: GLuint, x: GLfloat, y: GLfloat, z: GLfloat, w: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib4f].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    }
+
+    @inlinable func vertexAttrib1fv(index: GLuint, values: Float32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib1fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttrib2fv(index: GLuint, values: Float32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib2fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttrib3fv(index: GLuint, values: Float32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib3fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttrib4fv(index: GLuint, values: Float32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttrib4fv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttribPointer(index: GLuint, size: GLint, type: GLenum, normalized: GLboolean, stride: GLsizei, offset: GLintptr) {
+        let _arg0 = index.jsValue
+        let _arg1 = size.jsValue
+        let _arg2 = type.jsValue
+        let _arg3 = normalized.jsValue
+        let _arg4 = stride.jsValue
+        let _arg5 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.vertexAttribPointer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func viewport(x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.viewport].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
+    }
+}
+
+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: [target.jsValue, size.jsValue, usage.jsValue])
+    }
+
+    @inlinable func bufferData(target: GLenum, data: BufferSource?, usage: GLenum) {
+        let this = jsObject
+        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, data.jsValue, usage.jsValue])
+    }
+
+    @inlinable func bufferSubData(target: GLenum, offset: GLintptr, data: BufferSource) {
+        let this = jsObject
+        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, offset.jsValue, data.jsValue])
+    }
+
+    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, data: ArrayBufferView) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = data.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, data: ArrayBufferView) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = data.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+
+    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = width.jsValue
+        let _arg3 = height.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = pixels.jsValue
+        let this = jsObject
+        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pixels.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = format.jsValue
+        let _arg4 = type.jsValue
+        let _arg5 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pixels.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func uniform1fv(location: WebGLUniformLocation?, v: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniform1fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform2fv(location: WebGLUniformLocation?, v: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniform2fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform3fv(location: WebGLUniformLocation?, v: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniform3fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform4fv(location: WebGLUniformLocation?, v: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniform4fv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform1iv(location: WebGLUniformLocation?, v: Int32List) {
+        let this = jsObject
+        _ = this[Strings.uniform1iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform2iv(location: WebGLUniformLocation?, v: Int32List) {
+        let this = jsObject
+        _ = this[Strings.uniform2iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform3iv(location: WebGLUniformLocation?, v: Int32List) {
+        let this = jsObject
+        _ = this[Strings.uniform3iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniform4iv(location: WebGLUniformLocation?, v: Int32List) {
+        let this = jsObject
+        _ = this[Strings.uniform4iv].function!(this: this, arguments: [location.jsValue, v.jsValue])
+    }
+
+    @inlinable func uniformMatrix2fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniformMatrix2fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
+    }
+
+    @inlinable func uniformMatrix3fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniformMatrix3fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
+    }
+
+    @inlinable func uniformMatrix4fv(location: WebGLUniformLocation?, transpose: GLboolean, value: Float32List) {
+        let this = jsObject
+        _ = this[Strings.uniformMatrix4fv].function!(this: this, arguments: [location.jsValue, transpose.jsValue, value.jsValue])
+    }
+}
+
+public class WebGLShader: WebGLObject {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLShader].function }
+
+    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 }
+
+    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
+    }
+
+    @ReadonlyAttribute
+    public var rangeMin: GLint
+
+    @ReadonlyAttribute
+    public var rangeMax: GLint
+
+    @ReadonlyAttribute
+    public var precision: GLint
+}
+
+public class WebGLTexture: WebGLObject {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLTexture].function }
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        super.init(unsafelyWrapping: jsObject)
+    }
+}
+
+public class WebGLUniformLocation: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLUniformLocation].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 AnalyserNode: JSString = "AnalyserNode"
+    @usableFromInline static let Animation: JSString = "Animation"
+    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
+    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
+    @usableFromInline static let Attr: JSString = "Attr"
+    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
+    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
+    @usableFromInline static let AudioContext: JSString = "AudioContext"
+    @usableFromInline static let AudioData: JSString = "AudioData"
+    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
+    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
+    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
+    @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 AudioTrack: JSString = "AudioTrack"
+    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
+    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
+    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
+    @usableFromInline static let BarProp: JSString = "BarProp"
+    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
+    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
+    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
+    @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 CanvasFilter: JSString = "CanvasFilter"
+    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
+    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
+    @usableFromInline static let CharacterData: JSString = "CharacterData"
+    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
+    @usableFromInline static let Comment: JSString = "Comment"
+    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
+    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
+    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
+    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
+    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
+    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
+    @usableFromInline static let DOMException: JSString = "DOMException"
+    @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 DelayNode: JSString = "DelayNode"
+    @usableFromInline static let Document: JSString = "Document"
+    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
+    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
+    @usableFromInline static let DocumentType: JSString = "DocumentType"
+    @usableFromInline static let DragEvent: JSString = "DragEvent"
+    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
+    @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 GainNode: JSString = "GainNode"
+    @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 IIRFilterNode: JSString = "IIRFilterNode"
+    @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 KeyframeEffect: JSString = "KeyframeEffect"
+    @usableFromInline static let Location: JSString = "Location"
+    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
+    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
+    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
+    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @usableFromInline static let MediaStream: JSString = "MediaStream"
+    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
+    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
+    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
+    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
+    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
+    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
+    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
+    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
+    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
+    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
+    @usableFromInline static let PannerNode: JSString = "PannerNode"
+    @usableFromInline static let Path2D: JSString = "Path2D"
+    @usableFromInline static let Performance: JSString = "Performance"
+    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
+    @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 Q: JSString = "Q"
+    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
+    @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 StaticRange: JSString = "StaticRange"
+    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
+    @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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WaveShaperNode: JSString = "WaveShaperNode"
+    @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 WebSocket: JSString = "WebSocket"
+    @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 activeTexture: JSString = "activeTexture"
+    @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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @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 ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animate: JSString = "animate"
+    @usableFromInline static let animated: JSString = "animated"
+    @usableFromInline static let antialias: JSString = "antialias"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 `as`: JSString = "as"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 attachShader: JSString = "attachShader"
+    @usableFromInline static let attachShadow: JSString = "attachShadow"
+    @usableFromInline static let attack: JSString = "attack"
+    @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 audioWorklet: JSString = "audioWorklet"
+    @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 automationRate: JSString = "automationRate"
+    @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 b: JSString = "b"
+    @usableFromInline static let back: JSString = "back"
+    @usableFromInline static let background: JSString = "background"
+    @usableFromInline static let badInput: JSString = "badInput"
+    @usableFromInline static let baseLatency: JSString = "baseLatency"
+    @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 binaryType: JSString = "binaryType"
+    @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 bitrate: JSString = "bitrate"
+    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
+    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
+    @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 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 buffer: JSString = "buffer"
+    @usableFromInline static let bufferData: JSString = "bufferData"
+    @usableFromInline static let bufferSize: JSString = "bufferSize"
+    @usableFromInline static let bufferSubData: JSString = "bufferSubData"
+    @usableFromInline static let buffered: JSString = "buffered"
+    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
+    @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 canPlayType: JSString = "canPlayType"
+    @usableFromInline static let cancel: JSString = "cancel"
+    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
+    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
+    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
+    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
+    @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 channelCount: JSString = "channelCount"
+    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
+    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
+    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
+    @usableFromInline static let checkValidity: JSString = "checkValidity"
+    @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 clearColor: JSString = "clearColor"
+    @usableFromInline static let clearData: JSString = "clearData"
+    @usableFromInline static let clearDepth: JSString = "clearDepth"
+    @usableFromInline static let clearInterval: JSString = "clearInterval"
+    @usableFromInline static let clearParameters: JSString = "clearParameters"
+    @usableFromInline static let clearRect: JSString = "clearRect"
+    @usableFromInline static let clearStencil: JSString = "clearStencil"
+    @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 colorMask: JSString = "colorMask"
+    @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 commitStyles: JSString = "commitStyles"
+    @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 compileShader: JSString = "compileShader"
+    @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 composite: JSString = "composite"
+    @usableFromInline static let compressedTexImage2D: JSString = "compressedTexImage2D"
+    @usableFromInline static let compressedTexSubImage2D: JSString = "compressedTexSubImage2D"
+    @usableFromInline static let computedOffset: JSString = "computedOffset"
+    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
+    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
+    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
+    @usableFromInline static let config: JSString = "config"
+    @usableFromInline static let configure: JSString = "configure"
+    @usableFromInline static let confirm: JSString = "confirm"
+    @usableFromInline static let connect: JSString = "connect"
+    @usableFromInline static let console: JSString = "console"
+    @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 context: JSString = "context"
+    @usableFromInline static let contextTime: JSString = "contextTime"
+    @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 copyFromChannel: JSString = "copyFromChannel"
+    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
+    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
+    @usableFromInline static let copyTo: JSString = "copyTo"
+    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
+    @usableFromInline static let count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
+    @usableFromInline static let createAttribute: JSString = "createAttribute"
+    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
+    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
+    @usableFromInline static let createBuffer: JSString = "createBuffer"
+    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
+    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
+    @usableFromInline static let createCaption: JSString = "createCaption"
+    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
+    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
+    @usableFromInline static let createComment: JSString = "createComment"
+    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
+    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
+    @usableFromInline static let createConvolver: JSString = "createConvolver"
+    @usableFromInline static let createDelay: JSString = "createDelay"
+    @usableFromInline static let createDocument: JSString = "createDocument"
+    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
+    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
+    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
+    @usableFromInline static let createElement: JSString = "createElement"
+    @usableFromInline static let createElementNS: JSString = "createElementNS"
+    @usableFromInline static let createEvent: JSString = "createEvent"
+    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
+    @usableFromInline static let createGain: JSString = "createGain"
+    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
+    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
+    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
+    @usableFromInline static let createImageData: JSString = "createImageData"
+    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
+    @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 createObjectURL: JSString = "createObjectURL"
+    @usableFromInline static let createOscillator: JSString = "createOscillator"
+    @usableFromInline static let createPanner: JSString = "createPanner"
+    @usableFromInline static let createPattern: JSString = "createPattern"
+    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
+    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
+    @usableFromInline static let createProgram: JSString = "createProgram"
+    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
+    @usableFromInline static let createRange: JSString = "createRange"
+    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
+    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
+    @usableFromInline static let createShader: JSString = "createShader"
+    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
+    @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 createTexture: JSString = "createTexture"
+    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
+    @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 cullFace: JSString = "cullFace"
+    @usableFromInline static let currentIteration: JSString = "currentIteration"
+    @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 curve: JSString = "curve"
+    @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 debug: JSString = "debug"
+    @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 `defer`: JSString = "defer"
+    @usableFromInline static let define: JSString = "define"
+    @usableFromInline static let delay: JSString = "delay"
+    @usableFromInline static let delayTime: JSString = "delayTime"
+    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
+    @usableFromInline static let delete: JSString = "delete"
+    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
+    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
+    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
+    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
+    @usableFromInline static let deleteRow: JSString = "deleteRow"
+    @usableFromInline static let deleteShader: JSString = "deleteShader"
+    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
+    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
+    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
+    @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 depth: JSString = "depth"
+    @usableFromInline static let depthFunc: JSString = "depthFunc"
+    @usableFromInline static let depthMask: JSString = "depthMask"
+    @usableFromInline static let depthRange: JSString = "depthRange"
+    @usableFromInline static let description: JSString = "description"
+    @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 detachShader: JSString = "detachShader"
+    @usableFromInline static let detail: JSString = "detail"
+    @usableFromInline static let detune: JSString = "detune"
+    @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 dirxml: JSString = "dirxml"
+    @usableFromInline static let disable: JSString = "disable"
+    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
+    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
+    @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 distanceModel: JSString = "distanceModel"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let drawArrays: JSString = "drawArrays"
+    @usableFromInline static let drawElements: JSString = "drawElements"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
+    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @usableFromInline static let duration: JSString = "duration"
+    @usableFromInline static let e: JSString = "e"
+    @usableFromInline static let easing: JSString = "easing"
+    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
+    @usableFromInline static let effect: JSString = "effect"
+    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
+    @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 endDelay: JSString = "endDelay"
+    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
+    @usableFromInline static let extends: JSString = "extends"
+    @usableFromInline static let extensions: JSString = "extensions"
+    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
+    @usableFromInline static let fastSeek: JSString = "fastSeek"
+    @usableFromInline static let feedback: JSString = "feedback"
+    @usableFromInline static let feedforward: JSString = "feedforward"
+    @usableFromInline static let fetch: JSString = "fetch"
+    @usableFromInline static let fftSize: JSString = "fftSize"
+    @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 finish: JSString = "finish"
+    @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 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 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 forwardX: JSString = "forwardX"
+    @usableFromInline static let forwardY: JSString = "forwardY"
+    @usableFromInline static let forwardZ: JSString = "forwardZ"
+    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
+    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
+    @usableFromInline static let framerate: JSString = "framerate"
+    @usableFromInline static let frames: JSString = "frames"
+    @usableFromInline static let frequency: JSString = "frequency"
+    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
+    @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 frontFace: JSString = "frontFace"
+    @usableFromInline static let fullRange: JSString = "fullRange"
+    @usableFromInline static let gain: JSString = "gain"
+    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
+    @usableFromInline static let get: JSString = "get"
+    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
+    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
+    @usableFromInline static let getAll: JSString = "getAll"
+    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
+    @usableFromInline static let getAnimations: JSString = "getAnimations"
+    @usableFromInline static let getAsFile: JSString = "getAsFile"
+    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
+    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
+    @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 getBufferParameter: JSString = "getBufferParameter"
+    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
+    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
+    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
+    @usableFromInline static let getChannelData: JSString = "getChannelData"
+    @usableFromInline static let getClientRect: JSString = "getClientRect"
+    @usableFromInline static let getClientRects: JSString = "getClientRects"
+    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
+    @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 getError: JSString = "getError"
+    @usableFromInline static let getExtension: JSString = "getExtension"
+    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
+    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
+    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
+    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
+    @usableFromInline static let getImageData: JSString = "getImageData"
+    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
+    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
+    @usableFromInline static let getParameter: JSString = "getParameter"
+    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
+    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
+    @usableFromInline static let getReader: JSString = "getReader"
+    @usableFromInline static let getRegistration: JSString = "getRegistration"
+    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
+    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
+    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
+    @usableFromInline static let getRootNode: JSString = "getRootNode"
+    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
+    @usableFromInline static let getSettings: JSString = "getSettings"
+    @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 getStartDate: JSString = "getStartDate"
+    @usableFromInline static let getState: JSString = "getState"
+    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
+    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
+    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
+    @usableFromInline static let getTiming: JSString = "getTiming"
+    @usableFromInline static let getTrackById: JSString = "getTrackById"
+    @usableFromInline static let getTracks: JSString = "getTracks"
+    @usableFromInline static let getTransform: JSString = "getTransform"
+    @usableFromInline static let getUniform: JSString = "getUniform"
+    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
+    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
+    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
+    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
+    @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 group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 high: JSString = "high"
+    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
+    @usableFromInline static let hint: JSString = "hint"
+    @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 ideographicBaseline: JSString = "ideographicBaseline"
+    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
+    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
+    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
+    @usableFromInline static let imag: JSString = "imag"
+    @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 inputBuffer: JSString = "inputBuffer"
+    @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 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 isBuffer: JSString = "isBuffer"
+    @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 isEnabled: JSString = "isEnabled"
+    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
+    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
+    @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 isProgram: JSString = "isProgram"
+    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
+    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
+    @usableFromInline static let isSameNode: JSString = "isSameNode"
+    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
+    @usableFromInline static let isShader: JSString = "isShader"
+    @usableFromInline static let isTexture: JSString = "isTexture"
+    @usableFromInline static let isTrusted: JSString = "isTrusted"
+    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
+    @usableFromInline static let isVisible: JSString = "isVisible"
+    @usableFromInline static let item: JSString = "item"
+    @usableFromInline static let items: JSString = "items"
+    @usableFromInline static let iterateNext: JSString = "iterateNext"
+    @usableFromInline static let iterationStart: JSString = "iterationStart"
+    @usableFromInline static let iterations: JSString = "iterations"
+    @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 knee: JSString = "knee"
+    @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 latencyHint: JSString = "latencyHint"
+    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
+    @usableFromInline static let lineno: JSString = "lineno"
+    @usableFromInline static let link: JSString = "link"
+    @usableFromInline static let linkColor: JSString = "linkColor"
+    @usableFromInline static let linkProgram: JSString = "linkProgram"
+    @usableFromInline static let links: JSString = "links"
+    @usableFromInline static let list: JSString = "list"
+    @usableFromInline static let listener: JSString = "listener"
+    @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 log: JSString = "log"
+    @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 loopEnd: JSString = "loopEnd"
+    @usableFromInline static let loopStart: JSString = "loopStart"
+    @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 maxChannelCount: JSString = "maxChannelCount"
+    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
+    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
+    @usableFromInline static let maxDistance: JSString = "maxDistance"
+    @usableFromInline static let maxLength: JSString = "maxLength"
+    @usableFromInline static let maxValue: JSString = "maxValue"
+    @usableFromInline static let measureText: JSString = "measureText"
+    @usableFromInline static let media: JSString = "media"
+    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
+    @usableFromInline static let mediaElement: JSString = "mediaElement"
+    @usableFromInline static let mediaStream: JSString = "mediaStream"
+    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
+    @usableFromInline static let menubar: JSString = "menubar"
+    @usableFromInline static let message: JSString = "message"
+    @usableFromInline static let metaKey: JSString = "metaKey"
+    @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 minDecibels: JSString = "minDecibels"
+    @usableFromInline static let minLength: JSString = "minLength"
+    @usableFromInline static let minValue: JSString = "minValue"
+    @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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 numberOfInputs: JSString = "numberOfInputs"
+    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncomplete: JSString = "oncomplete"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 onfinish: JSString = "onfinish"
+    @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 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 onprocessorerror: JSString = "onprocessorerror"
+    @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 onremove: JSString = "onremove"
+    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 orientationX: JSString = "orientationX"
+    @usableFromInline static let orientationY: JSString = "orientationY"
+    @usableFromInline static let orientationZ: JSString = "orientationZ"
+    @usableFromInline static let origin: JSString = "origin"
+    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
+    @usableFromInline static let originTime: JSString = "originTime"
+    @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 outputBuffer: JSString = "outputBuffer"
+    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
+    @usableFromInline static let outputLatency: JSString = "outputLatency"
+    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
+    @usableFromInline static let oversample: JSString = "oversample"
+    @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 pageX: JSString = "pageX"
+    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
+    @usableFromInline static let pageY: JSString = "pageY"
+    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
+    @usableFromInline static let pan: JSString = "pan"
+    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
+    @usableFromInline static let panningModel: JSString = "panningModel"
+    @usableFromInline static let parameterData: JSString = "parameterData"
+    @usableFromInline static let parameters: JSString = "parameters"
+    @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 pending: JSString = "pending"
+    @usableFromInline static let performance: JSString = "performance"
+    @usableFromInline static let performanceTime: JSString = "performanceTime"
+    @usableFromInline static let periodicWave: JSString = "periodicWave"
+    @usableFromInline static let persist: JSString = "persist"
+    @usableFromInline static let persisted: JSString = "persisted"
+    @usableFromInline static let personalbar: JSString = "personalbar"
+    @usableFromInline static let phase: JSString = "phase"
+    @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 pixelStorei: JSString = "pixelStorei"
+    @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 playState: JSString = "playState"
+    @usableFromInline static let playbackRate: JSString = "playbackRate"
+    @usableFromInline static let playbackTime: JSString = "playbackTime"
+    @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 polygonOffset: JSString = "polygonOffset"
+    @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 positionX: JSString = "positionX"
+    @usableFromInline static let positionY: JSString = "positionY"
+    @usableFromInline static let positionZ: JSString = "positionZ"
+    @usableFromInline static let postMessage: JSString = "postMessage"
+    @usableFromInline static let poster: JSString = "poster"
+    @usableFromInline static let powerPreference: JSString = "powerPreference"
+    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
+    @usableFromInline static let precision: JSString = "precision"
+    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
+    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
+    @usableFromInline static let prepend: JSString = "prepend"
+    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
+    @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 processorOptions: JSString = "processorOptions"
+    @usableFromInline static let product: JSString = "product"
+    @usableFromInline static let productSub: JSString = "productSub"
+    @usableFromInline static let progress: JSString = "progress"
+    @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 pseudoElement: JSString = "pseudoElement"
+    @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 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 rangeMax: JSString = "rangeMax"
+    @usableFromInline static let rangeMin: JSString = "rangeMin"
+    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
+    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
+    @usableFromInline static let ratio: JSString = "ratio"
+    @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 readPixels: JSString = "readPixels"
+    @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 real: JSString = "real"
+    @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 reduction: JSString = "reduction"
+    @usableFromInline static let refDistance: JSString = "refDistance"
+    @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 release: JSString = "release"
+    @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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
+    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
+    @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 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 reverse: JSString = "reverse"
+    @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 rolloffFactor: JSString = "rolloffFactor"
+    @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 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 sampleCoverage: JSString = "sampleCoverage"
+    @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 scissor: JSString = "scissor"
+    @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 searchParams: JSString = "searchParams"
+    @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 setKeyframes: JSString = "setKeyframes"
+    @usableFromInline static let setLineDash: JSString = "setLineDash"
+    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
+    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
+    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
+    @usableFromInline static let setOrientation: JSString = "setOrientation"
+    @usableFromInline static let setParameter: JSString = "setParameter"
+    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
+    @usableFromInline static let setPosition: JSString = "setPosition"
+    @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 setTargetAtTime: JSString = "setTargetAtTime"
+    @usableFromInline static let setTimeout: JSString = "setTimeout"
+    @usableFromInline static let setTransform: JSString = "setTransform"
+    @usableFromInline static let setValidity: JSString = "setValidity"
+    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
+    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
+    @usableFromInline static let shaderSource: JSString = "shaderSource"
+    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
+    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
+    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
+    @usableFromInline static let sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @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 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 startRendering: JSString = "startRendering"
+    @usableFromInline static let startTime: JSString = "startTime"
+    @usableFromInline static let state: JSString = "state"
+    @usableFromInline static let status: JSString = "status"
+    @usableFromInline static let statusMessage: JSString = "statusMessage"
+    @usableFromInline static let statusText: JSString = "statusText"
+    @usableFromInline static let statusbar: JSString = "statusbar"
+    @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 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 supports: JSString = "supports"
+    @usableFromInline static let surroundContents: JSString = "surroundContents"
+    @usableFromInline static let suspend: JSString = "suspend"
+    @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 table: JSString = "table"
+    @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 tee: JSString = "tee"
+    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
+    @usableFromInline static let terminate: JSString = "terminate"
+    @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 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 threshold: JSString = "threshold"
+    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
+    @usableFromInline static let time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
+    @usableFromInline static let timeStamp: JSString = "timeStamp"
+    @usableFromInline static let timecode: JSString = "timecode"
+    @usableFromInline static let timeline: JSString = "timeline"
+    @usableFromInline static let timeout: JSString = "timeout"
+    @usableFromInline static let timestamp: JSString = "timestamp"
+    @usableFromInline static let title: JSString = "title"
+    @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 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 trace: JSString = "trace"
+    @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 translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 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 unregister: JSString = "unregister"
+    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
+    @usableFromInline static let upX: JSString = "upX"
+    @usableFromInline static let upY: JSString = "upY"
+    @usableFromInline static let upZ: JSString = "upZ"
+    @usableFromInline static let update: JSString = "update"
+    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
+    @usableFromInline static let updateTiming: JSString = "updateTiming"
+    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
+    @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 useProgram: JSString = "useProgram"
+    @usableFromInline static let userAgent: JSString = "userAgent"
+    @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 validateProgram: JSString = "validateProgram"
+    @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 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 video: JSString = "video"
+    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
+    @usableFromInline static let videoHeight: JSString = "videoHeight"
+    @usableFromInline static let videoTracks: JSString = "videoTracks"
+    @usableFromInline static let videoWidth: JSString = "videoWidth"
+    @usableFromInline static let view: JSString = "view"
+    @usableFromInline static let viewport: JSString = "viewport"
+    @usableFromInline static let visibilityState: JSString = "visibilityState"
+    @usableFromInline static let visible: JSString = "visible"
+    @usableFromInline static let visibleRect: JSString = "visibleRect"
+    @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 warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
+extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
+extension Double: Any_AudioContextLatencyCategory_or_Double {}
+
+public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
+    case audioContextLatencyCategory(AudioContextLatencyCategory)
+    case double(Double)
+
+    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+        switch self {
+        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
+            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+
+public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
+    case compositeOperationOrAuto(CompositeOperationOrAuto)
+    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
+
+    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
+        switch self {
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
+            return .compositeOperationOrAuto(compositeOperationOrAuto)
+        }
+        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
+            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto):
+            return compositeOperationOrAuto.jsValue
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
+            return seq_of_CompositeOperationOrAuto.jsValue
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .document(document):
+            return document.jsValue
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
+            return xmlHttpRequestBodyInit.jsValue
+        }
+    }
+}
+
+public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeAnimationOptions {}
+extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
+
+public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
+    case double(Double)
+    case keyframeAnimationOptions(KeyframeAnimationOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
+        switch self {
+        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
+            return .keyframeAnimationOptions(keyframeAnimationOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
+    case double(Double)
+    case keyframeEffectOptions(KeyframeEffectOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeEffectOptions: KeyframeEffectOptions? {
+        switch self {
+        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
+            return .keyframeEffectOptions(keyframeEffectOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
+    case double(Double)
+    case string(String)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .double(double):
+            return double.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
+extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
+extension String: Any_ElementCreationOptions_or_String {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Float32List: ConvertibleToJSValue {}
+extension Float32Array: Any_Float32List {}
+extension Array: Any_Float32List where Element == GLfloat {}
+
+public enum Float32List: JSValueCompatible, Any_Float32List {
+    case float32Array(Float32Array)
+    case seq_of_GLfloat([GLfloat])
+
+    public var float32Array: Float32Array? {
+        switch self {
+        case let .float32Array(float32Array): return float32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLfloat: [GLfloat]? {
+        switch self {
+        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_Int32List: ConvertibleToJSValue {}
+extension Int32Array: Any_Int32List {}
+extension Array: Any_Int32List where Element == GLint {}
+
+public enum Int32List: JSValueCompatible, Any_Int32List {
+    case int32Array(Int32Array)
+    case seq_of_GLint([GLint])
+
+    public var int32Array: Int32Array? {
+        switch self {
+        case let .int32Array(int32Array): return int32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLint: [GLint]? {
+        switch self {
+        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TexImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_TexImageSource {}
+extension HTMLImageElement: Any_TexImageSource {}
+extension HTMLVideoElement: Any_TexImageSource {}
+extension ImageBitmap: Any_TexImageSource {}
+extension ImageData: Any_TexImageSource {}
+extension OffscreenCanvas: Any_TexImageSource {}
+extension VideoFrame: Any_TexImageSource {}
+
+public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlImageElement(HTMLImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case imageData(ImageData)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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 {
+    case nullable_Double(Double?)
+    case seq_of_nullable_Double([Double?])
+
+    public var nullable_Double: Double?? {
+        switch self {
+        case let .nullable_Double(nullable_Double): return nullable_Double
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
diff --git a/Sources/WebGL1/Support.swift b/Sources/WebGL1/Support.swift
new file mode 100644
index 00000000..b4bf7943
--- /dev/null
+++ b/Sources/WebGL1/Support.swift
@@ -0,0 +1,9 @@
+import DOM
+
+public typealias GLintptr = Int32
+
+extension WebGLRenderingContext: RenderingContext {
+    public static var contextID: JSString { "webgl" }
+}
+
+extension WebGLRenderingContext: OffscreenRenderingContext {}
diff --git a/Sources/WebGL2/Generated.swift b/Sources/WebGL2/Generated.swift
new file mode 100644
index 00000000..ddcfcfaf
--- /dev/null
+++ b/Sources/WebGL2/Generated.swift
@@ -0,0 +1,6671 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import ECMAScript
+import JavaScriptBigIntSupport
+import JavaScriptKit
+import WebGL1
+
+public typealias GLint64 = Int64
+public typealias GLuint64 = UInt64
+
+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 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 }
+
+    @inlinable static var UNPACK_SKIP_PIXELS: GLenum { 0x0CF4 }
+
+    @inlinable static var PACK_ROW_LENGTH: GLenum { 0x0D02 }
+
+    @inlinable static var PACK_SKIP_ROWS: GLenum { 0x0D03 }
+
+    @inlinable static var PACK_SKIP_PIXELS: GLenum { 0x0D04 }
+
+    @inlinable static var COLOR: GLenum { 0x1800 }
+
+    @inlinable static var DEPTH: GLenum { 0x1801 }
+
+    @inlinable static var STENCIL: GLenum { 0x1802 }
+
+    @inlinable static var RED: GLenum { 0x1903 }
+
+    @inlinable static var RGB8: GLenum { 0x8051 }
+
+    @inlinable static var RGBA8: GLenum { 0x8058 }
+
+    @inlinable static var RGB10_A2: GLenum { 0x8059 }
+
+    @inlinable static var TEXTURE_BINDING_3D: GLenum { 0x806A }
+
+    @inlinable static var UNPACK_SKIP_IMAGES: GLenum { 0x806D }
+
+    @inlinable static var UNPACK_IMAGE_HEIGHT: GLenum { 0x806E }
+
+    @inlinable static var TEXTURE_3D: GLenum { 0x806F }
+
+    @inlinable static var TEXTURE_WRAP_R: GLenum { 0x8072 }
+
+    @inlinable static var MAX_3D_TEXTURE_SIZE: GLenum { 0x8073 }
+
+    @inlinable static var UNSIGNED_INT_2_10_10_10_REV: GLenum { 0x8368 }
+
+    @inlinable static var MAX_ELEMENTS_VERTICES: GLenum { 0x80E8 }
+
+    @inlinable static var MAX_ELEMENTS_INDICES: GLenum { 0x80E9 }
+
+    @inlinable static var TEXTURE_MIN_LOD: GLenum { 0x813A }
+
+    @inlinable static var TEXTURE_MAX_LOD: GLenum { 0x813B }
+
+    @inlinable static var TEXTURE_BASE_LEVEL: GLenum { 0x813C }
+
+    @inlinable static var TEXTURE_MAX_LEVEL: GLenum { 0x813D }
+
+    @inlinable static var MIN: GLenum { 0x8007 }
+
+    @inlinable static var MAX: GLenum { 0x8008 }
+
+    @inlinable static var DEPTH_COMPONENT24: GLenum { 0x81A6 }
+
+    @inlinable static var MAX_TEXTURE_LOD_BIAS: GLenum { 0x84FD }
+
+    @inlinable static var TEXTURE_COMPARE_MODE: GLenum { 0x884C }
+
+    @inlinable static var TEXTURE_COMPARE_FUNC: GLenum { 0x884D }
+
+    @inlinable static var CURRENT_QUERY: GLenum { 0x8865 }
+
+    @inlinable static var QUERY_RESULT: GLenum { 0x8866 }
+
+    @inlinable static var QUERY_RESULT_AVAILABLE: GLenum { 0x8867 }
+
+    @inlinable static var STREAM_READ: GLenum { 0x88E1 }
+
+    @inlinable static var STREAM_COPY: GLenum { 0x88E2 }
+
+    @inlinable static var STATIC_READ: GLenum { 0x88E5 }
+
+    @inlinable static var STATIC_COPY: GLenum { 0x88E6 }
+
+    @inlinable static var DYNAMIC_READ: GLenum { 0x88E9 }
+
+    @inlinable static var DYNAMIC_COPY: GLenum { 0x88EA }
+
+    @inlinable static var MAX_DRAW_BUFFERS: GLenum { 0x8824 }
+
+    @inlinable static var DRAW_BUFFER0: GLenum { 0x8825 }
+
+    @inlinable static var DRAW_BUFFER1: GLenum { 0x8826 }
+
+    @inlinable static var DRAW_BUFFER2: GLenum { 0x8827 }
+
+    @inlinable static var DRAW_BUFFER3: GLenum { 0x8828 }
+
+    @inlinable static var DRAW_BUFFER4: GLenum { 0x8829 }
+
+    @inlinable static var DRAW_BUFFER5: GLenum { 0x882A }
+
+    @inlinable static var DRAW_BUFFER6: GLenum { 0x882B }
+
+    @inlinable static var DRAW_BUFFER7: GLenum { 0x882C }
+
+    @inlinable static var DRAW_BUFFER8: GLenum { 0x882D }
+
+    @inlinable static var DRAW_BUFFER9: GLenum { 0x882E }
+
+    @inlinable static var DRAW_BUFFER10: GLenum { 0x882F }
+
+    @inlinable static var DRAW_BUFFER11: GLenum { 0x8830 }
+
+    @inlinable static var DRAW_BUFFER12: GLenum { 0x8831 }
+
+    @inlinable static var DRAW_BUFFER13: GLenum { 0x8832 }
+
+    @inlinable static var DRAW_BUFFER14: GLenum { 0x8833 }
+
+    @inlinable static var DRAW_BUFFER15: GLenum { 0x8834 }
+
+    @inlinable static var MAX_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8B49 }
+
+    @inlinable static var MAX_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8B4A }
+
+    @inlinable static var SAMPLER_3D: GLenum { 0x8B5F }
+
+    @inlinable static var SAMPLER_2D_SHADOW: GLenum { 0x8B62 }
+
+    @inlinable static var FRAGMENT_SHADER_DERIVATIVE_HINT: GLenum { 0x8B8B }
+
+    @inlinable static var PIXEL_PACK_BUFFER: GLenum { 0x88EB }
+
+    @inlinable static var PIXEL_UNPACK_BUFFER: GLenum { 0x88EC }
+
+    @inlinable static var PIXEL_PACK_BUFFER_BINDING: GLenum { 0x88ED }
+
+    @inlinable static var PIXEL_UNPACK_BUFFER_BINDING: GLenum { 0x88EF }
+
+    @inlinable static var FLOAT_MAT2x3: GLenum { 0x8B65 }
+
+    @inlinable static var FLOAT_MAT2x4: GLenum { 0x8B66 }
+
+    @inlinable static var FLOAT_MAT3x2: GLenum { 0x8B67 }
+
+    @inlinable static var FLOAT_MAT3x4: GLenum { 0x8B68 }
+
+    @inlinable static var FLOAT_MAT4x2: GLenum { 0x8B69 }
+
+    @inlinable static var FLOAT_MAT4x3: GLenum { 0x8B6A }
+
+    @inlinable static var SRGB: GLenum { 0x8C40 }
+
+    @inlinable static var SRGB8: GLenum { 0x8C41 }
+
+    @inlinable static var SRGB8_ALPHA8: GLenum { 0x8C43 }
+
+    @inlinable static var COMPARE_REF_TO_TEXTURE: GLenum { 0x884E }
+
+    @inlinable static var RGBA32F: GLenum { 0x8814 }
+
+    @inlinable static var RGB32F: GLenum { 0x8815 }
+
+    @inlinable static var RGBA16F: GLenum { 0x881A }
+
+    @inlinable static var RGB16F: GLenum { 0x881B }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_INTEGER: GLenum { 0x88FD }
+
+    @inlinable static var MAX_ARRAY_TEXTURE_LAYERS: GLenum { 0x88FF }
+
+    @inlinable static var MIN_PROGRAM_TEXEL_OFFSET: GLenum { 0x8904 }
+
+    @inlinable static var MAX_PROGRAM_TEXEL_OFFSET: GLenum { 0x8905 }
+
+    @inlinable static var MAX_VARYING_COMPONENTS: GLenum { 0x8B4B }
+
+    @inlinable static var TEXTURE_2D_ARRAY: GLenum { 0x8C1A }
+
+    @inlinable static var TEXTURE_BINDING_2D_ARRAY: GLenum { 0x8C1D }
+
+    @inlinable static var R11F_G11F_B10F: GLenum { 0x8C3A }
+
+    @inlinable static var UNSIGNED_INT_10F_11F_11F_REV: GLenum { 0x8C3B }
+
+    @inlinable static var RGB9_E5: GLenum { 0x8C3D }
+
+    @inlinable static var UNSIGNED_INT_5_9_9_9_REV: GLenum { 0x8C3E }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_MODE: GLenum { 0x8C7F }
+
+    @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: GLenum { 0x8C80 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_VARYINGS: GLenum { 0x8C83 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_START: GLenum { 0x8C84 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_SIZE: GLenum { 0x8C85 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: GLenum { 0x8C88 }
+
+    @inlinable static var RASTERIZER_DISCARD: GLenum { 0x8C89 }
+
+    @inlinable static var MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: GLenum { 0x8C8A }
+
+    @inlinable static var MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: GLenum { 0x8C8B }
+
+    @inlinable static var INTERLEAVED_ATTRIBS: GLenum { 0x8C8C }
+
+    @inlinable static var SEPARATE_ATTRIBS: GLenum { 0x8C8D }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BUFFER: GLenum { 0x8C8E }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BUFFER_BINDING: GLenum { 0x8C8F }
+
+    @inlinable static var RGBA32UI: GLenum { 0x8D70 }
+
+    @inlinable static var RGB32UI: GLenum { 0x8D71 }
+
+    @inlinable static var RGBA16UI: GLenum { 0x8D76 }
+
+    @inlinable static var RGB16UI: GLenum { 0x8D77 }
+
+    @inlinable static var RGBA8UI: GLenum { 0x8D7C }
+
+    @inlinable static var RGB8UI: GLenum { 0x8D7D }
+
+    @inlinable static var RGBA32I: GLenum { 0x8D82 }
+
+    @inlinable static var RGB32I: GLenum { 0x8D83 }
+
+    @inlinable static var RGBA16I: GLenum { 0x8D88 }
+
+    @inlinable static var RGB16I: GLenum { 0x8D89 }
+
+    @inlinable static var RGBA8I: GLenum { 0x8D8E }
+
+    @inlinable static var RGB8I: GLenum { 0x8D8F }
+
+    @inlinable static var RED_INTEGER: GLenum { 0x8D94 }
+
+    @inlinable static var RGB_INTEGER: GLenum { 0x8D98 }
+
+    @inlinable static var RGBA_INTEGER: GLenum { 0x8D99 }
+
+    @inlinable static var SAMPLER_2D_ARRAY: GLenum { 0x8DC1 }
+
+    @inlinable static var SAMPLER_2D_ARRAY_SHADOW: GLenum { 0x8DC4 }
+
+    @inlinable static var SAMPLER_CUBE_SHADOW: GLenum { 0x8DC5 }
+
+    @inlinable static var UNSIGNED_INT_VEC2: GLenum { 0x8DC6 }
+
+    @inlinable static var UNSIGNED_INT_VEC3: GLenum { 0x8DC7 }
+
+    @inlinable static var UNSIGNED_INT_VEC4: GLenum { 0x8DC8 }
+
+    @inlinable static var INT_SAMPLER_2D: GLenum { 0x8DCA }
+
+    @inlinable static var INT_SAMPLER_3D: GLenum { 0x8DCB }
+
+    @inlinable static var INT_SAMPLER_CUBE: GLenum { 0x8DCC }
+
+    @inlinable static var INT_SAMPLER_2D_ARRAY: GLenum { 0x8DCF }
+
+    @inlinable static var UNSIGNED_INT_SAMPLER_2D: GLenum { 0x8DD2 }
+
+    @inlinable static var UNSIGNED_INT_SAMPLER_3D: GLenum { 0x8DD3 }
+
+    @inlinable static var UNSIGNED_INT_SAMPLER_CUBE: GLenum { 0x8DD4 }
+
+    @inlinable static var UNSIGNED_INT_SAMPLER_2D_ARRAY: GLenum { 0x8DD7 }
+
+    @inlinable static var DEPTH_COMPONENT32F: GLenum { 0x8CAC }
+
+    @inlinable static var DEPTH32F_STENCIL8: GLenum { 0x8CAD }
+
+    @inlinable static var FLOAT_32_UNSIGNED_INT_24_8_REV: GLenum { 0x8DAD }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: GLenum { 0x8210 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: GLenum { 0x8211 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_RED_SIZE: GLenum { 0x8212 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: GLenum { 0x8213 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: GLenum { 0x8214 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: GLenum { 0x8215 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: GLenum { 0x8216 }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: GLenum { 0x8217 }
+
+    @inlinable static var FRAMEBUFFER_DEFAULT: GLenum { 0x8218 }
+
+    @inlinable static var UNSIGNED_INT_24_8: GLenum { 0x84FA }
+
+    @inlinable static var DEPTH24_STENCIL8: GLenum { 0x88F0 }
+
+    @inlinable static var UNSIGNED_NORMALIZED: GLenum { 0x8C17 }
+
+    @inlinable static var DRAW_FRAMEBUFFER_BINDING: GLenum { 0x8CA6 }
+
+    @inlinable static var READ_FRAMEBUFFER: GLenum { 0x8CA8 }
+
+    @inlinable static var DRAW_FRAMEBUFFER: GLenum { 0x8CA9 }
+
+    @inlinable static var READ_FRAMEBUFFER_BINDING: GLenum { 0x8CAA }
+
+    @inlinable static var RENDERBUFFER_SAMPLES: GLenum { 0x8CAB }
+
+    @inlinable static var FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: GLenum { 0x8CD4 }
+
+    @inlinable static var MAX_COLOR_ATTACHMENTS: GLenum { 0x8CDF }
+
+    @inlinable static var COLOR_ATTACHMENT1: GLenum { 0x8CE1 }
+
+    @inlinable static var COLOR_ATTACHMENT2: GLenum { 0x8CE2 }
+
+    @inlinable static var COLOR_ATTACHMENT3: GLenum { 0x8CE3 }
+
+    @inlinable static var COLOR_ATTACHMENT4: GLenum { 0x8CE4 }
+
+    @inlinable static var COLOR_ATTACHMENT5: GLenum { 0x8CE5 }
+
+    @inlinable static var COLOR_ATTACHMENT6: GLenum { 0x8CE6 }
+
+    @inlinable static var COLOR_ATTACHMENT7: GLenum { 0x8CE7 }
+
+    @inlinable static var COLOR_ATTACHMENT8: GLenum { 0x8CE8 }
+
+    @inlinable static var COLOR_ATTACHMENT9: GLenum { 0x8CE9 }
+
+    @inlinable static var COLOR_ATTACHMENT10: GLenum { 0x8CEA }
+
+    @inlinable static var COLOR_ATTACHMENT11: GLenum { 0x8CEB }
+
+    @inlinable static var COLOR_ATTACHMENT12: GLenum { 0x8CEC }
+
+    @inlinable static var COLOR_ATTACHMENT13: GLenum { 0x8CED }
+
+    @inlinable static var COLOR_ATTACHMENT14: GLenum { 0x8CEE }
+
+    @inlinable static var COLOR_ATTACHMENT15: GLenum { 0x8CEF }
+
+    @inlinable static var FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: GLenum { 0x8D56 }
+
+    @inlinable static var MAX_SAMPLES: GLenum { 0x8D57 }
+
+    @inlinable static var HALF_FLOAT: GLenum { 0x140B }
+
+    @inlinable static var RG: GLenum { 0x8227 }
+
+    @inlinable static var RG_INTEGER: GLenum { 0x8228 }
+
+    @inlinable static var R8: GLenum { 0x8229 }
+
+    @inlinable static var RG8: GLenum { 0x822B }
+
+    @inlinable static var R16F: GLenum { 0x822D }
+
+    @inlinable static var R32F: GLenum { 0x822E }
+
+    @inlinable static var RG16F: GLenum { 0x822F }
+
+    @inlinable static var RG32F: GLenum { 0x8230 }
+
+    @inlinable static var R8I: GLenum { 0x8231 }
+
+    @inlinable static var R8UI: GLenum { 0x8232 }
+
+    @inlinable static var R16I: GLenum { 0x8233 }
+
+    @inlinable static var R16UI: GLenum { 0x8234 }
+
+    @inlinable static var R32I: GLenum { 0x8235 }
+
+    @inlinable static var R32UI: GLenum { 0x8236 }
+
+    @inlinable static var RG8I: GLenum { 0x8237 }
+
+    @inlinable static var RG8UI: GLenum { 0x8238 }
+
+    @inlinable static var RG16I: GLenum { 0x8239 }
+
+    @inlinable static var RG16UI: GLenum { 0x823A }
+
+    @inlinable static var RG32I: GLenum { 0x823B }
+
+    @inlinable static var RG32UI: GLenum { 0x823C }
+
+    @inlinable static var VERTEX_ARRAY_BINDING: GLenum { 0x85B5 }
+
+    @inlinable static var R8_SNORM: GLenum { 0x8F94 }
+
+    @inlinable static var RG8_SNORM: GLenum { 0x8F95 }
+
+    @inlinable static var RGB8_SNORM: GLenum { 0x8F96 }
+
+    @inlinable static var RGBA8_SNORM: GLenum { 0x8F97 }
+
+    @inlinable static var SIGNED_NORMALIZED: GLenum { 0x8F9C }
+
+    @inlinable static var COPY_READ_BUFFER: GLenum { 0x8F36 }
+
+    @inlinable static var COPY_WRITE_BUFFER: GLenum { 0x8F37 }
+
+    @inlinable static var COPY_READ_BUFFER_BINDING: GLenum { 0x8F36 }
+
+    @inlinable static var COPY_WRITE_BUFFER_BINDING: GLenum { 0x8F37 }
+
+    @inlinable static var UNIFORM_BUFFER: GLenum { 0x8A11 }
+
+    @inlinable static var UNIFORM_BUFFER_BINDING: GLenum { 0x8A28 }
+
+    @inlinable static var UNIFORM_BUFFER_START: GLenum { 0x8A29 }
+
+    @inlinable static var UNIFORM_BUFFER_SIZE: GLenum { 0x8A2A }
+
+    @inlinable static var MAX_VERTEX_UNIFORM_BLOCKS: GLenum { 0x8A2B }
+
+    @inlinable static var MAX_FRAGMENT_UNIFORM_BLOCKS: GLenum { 0x8A2D }
+
+    @inlinable static var MAX_COMBINED_UNIFORM_BLOCKS: GLenum { 0x8A2E }
+
+    @inlinable static var MAX_UNIFORM_BUFFER_BINDINGS: GLenum { 0x8A2F }
+
+    @inlinable static var MAX_UNIFORM_BLOCK_SIZE: GLenum { 0x8A30 }
+
+    @inlinable static var MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: GLenum { 0x8A31 }
+
+    @inlinable static var MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: GLenum { 0x8A33 }
+
+    @inlinable static var UNIFORM_BUFFER_OFFSET_ALIGNMENT: GLenum { 0x8A34 }
+
+    @inlinable static var ACTIVE_UNIFORM_BLOCKS: GLenum { 0x8A36 }
+
+    @inlinable static var UNIFORM_TYPE: GLenum { 0x8A37 }
+
+    @inlinable static var UNIFORM_SIZE: GLenum { 0x8A38 }
+
+    @inlinable static var UNIFORM_BLOCK_INDEX: GLenum { 0x8A3A }
+
+    @inlinable static var UNIFORM_OFFSET: GLenum { 0x8A3B }
+
+    @inlinable static var UNIFORM_ARRAY_STRIDE: GLenum { 0x8A3C }
+
+    @inlinable static var UNIFORM_MATRIX_STRIDE: GLenum { 0x8A3D }
+
+    @inlinable static var UNIFORM_IS_ROW_MAJOR: GLenum { 0x8A3E }
+
+    @inlinable static var UNIFORM_BLOCK_BINDING: GLenum { 0x8A3F }
+
+    @inlinable static var UNIFORM_BLOCK_DATA_SIZE: GLenum { 0x8A40 }
+
+    @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORMS: GLenum { 0x8A42 }
+
+    @inlinable static var UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: GLenum { 0x8A43 }
+
+    @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: GLenum { 0x8A44 }
+
+    @inlinable static var UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: GLenum { 0x8A46 }
+
+    @inlinable static var INVALID_INDEX: GLenum { 0xFFFF_FFFF }
+
+    @inlinable static var MAX_VERTEX_OUTPUT_COMPONENTS: GLenum { 0x9122 }
+
+    @inlinable static var MAX_FRAGMENT_INPUT_COMPONENTS: GLenum { 0x9125 }
+
+    @inlinable static var MAX_SERVER_WAIT_TIMEOUT: GLenum { 0x9111 }
+
+    @inlinable static var OBJECT_TYPE: GLenum { 0x9112 }
+
+    @inlinable static var SYNC_CONDITION: GLenum { 0x9113 }
+
+    @inlinable static var SYNC_STATUS: GLenum { 0x9114 }
+
+    @inlinable static var SYNC_FLAGS: GLenum { 0x9115 }
+
+    @inlinable static var SYNC_FENCE: GLenum { 0x9116 }
+
+    @inlinable static var SYNC_GPU_COMMANDS_COMPLETE: GLenum { 0x9117 }
+
+    @inlinable static var UNSIGNALED: GLenum { 0x9118 }
+
+    @inlinable static var SIGNALED: GLenum { 0x9119 }
+
+    @inlinable static var ALREADY_SIGNALED: GLenum { 0x911A }
+
+    @inlinable static var TIMEOUT_EXPIRED: GLenum { 0x911B }
+
+    @inlinable static var CONDITION_SATISFIED: GLenum { 0x911C }
+
+    @inlinable static var WAIT_FAILED: GLenum { 0x911D }
+
+    @inlinable static var SYNC_FLUSH_COMMANDS_BIT: GLenum { 0x0000_0001 }
+
+    @inlinable static var VERTEX_ATTRIB_ARRAY_DIVISOR: GLenum { 0x88FE }
+
+    @inlinable static var ANY_SAMPLES_PASSED: GLenum { 0x8C2F }
+
+    @inlinable static var ANY_SAMPLES_PASSED_CONSERVATIVE: GLenum { 0x8D6A }
+
+    @inlinable static var SAMPLER_BINDING: GLenum { 0x8919 }
+
+    @inlinable static var RGB10_A2UI: GLenum { 0x906F }
+
+    @inlinable static var INT_2_10_10_10_REV: GLenum { 0x8D9F }
+
+    @inlinable static var TRANSFORM_FEEDBACK: GLenum { 0x8E22 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_PAUSED: GLenum { 0x8E23 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_ACTIVE: GLenum { 0x8E24 }
+
+    @inlinable static var TRANSFORM_FEEDBACK_BINDING: GLenum { 0x8E25 }
+
+    @inlinable static var TEXTURE_IMMUTABLE_FORMAT: GLenum { 0x912F }
+
+    @inlinable static var MAX_ELEMENT_INDEX: GLenum { 0x8D6B }
+
+    @inlinable static var TEXTURE_IMMUTABLE_LEVELS: GLenum { 0x82DF }
+
+    @inlinable static var TIMEOUT_IGNORED: GLint64 { -1 }
+
+    @inlinable static var MAX_CLIENT_WAIT_TIMEOUT_WEBGL: GLenum { 0x9247 }
+
+    @inlinable func copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) {
+        let this = jsObject
+        _ = this[Strings.copyBufferSubData].function!(this: this, arguments: [readTarget.jsValue, writeTarget.jsValue, readOffset.jsValue, writeOffset.jsValue, size.jsValue])
+    }
+
+    @inlinable func getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset: GLuint? = nil, length: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.getBufferSubData].function!(this: this, arguments: [target.jsValue, srcByteOffset.jsValue, dstBuffer.jsValue, dstOffset?.jsValue ?? .undefined, length?.jsValue ?? .undefined])
+    }
+
+    @inlinable func blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) {
+        let _arg0 = srcX0.jsValue
+        let _arg1 = srcY0.jsValue
+        let _arg2 = srcX1.jsValue
+        let _arg3 = srcY1.jsValue
+        let _arg4 = dstX0.jsValue
+        let _arg5 = dstY0.jsValue
+        let _arg6 = dstX1.jsValue
+        let _arg7 = dstY1.jsValue
+        let _arg8 = mask.jsValue
+        let _arg9 = filter.jsValue
+        let this = jsObject
+        _ = this[Strings.blitFramebuffer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture?, level: GLint, layer: GLint) {
+        let this = jsObject
+        _ = this[Strings.framebufferTextureLayer].function!(this: this, arguments: [target.jsValue, attachment.jsValue, texture.jsValue, level.jsValue, layer.jsValue])
+    }
+
+    @inlinable func invalidateFramebuffer(target: GLenum, attachments: [GLenum]) {
+        let this = jsObject
+        _ = this[Strings.invalidateFramebuffer].function!(this: this, arguments: [target.jsValue, attachments.jsValue])
+    }
+
+    @inlinable func invalidateSubFramebuffer(target: GLenum, attachments: [GLenum], x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
+        let _arg0 = target.jsValue
+        let _arg1 = attachments.jsValue
+        let _arg2 = x.jsValue
+        let _arg3 = y.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let this = jsObject
+        _ = this[Strings.invalidateSubFramebuffer].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func readBuffer(src: GLenum) {
+        let this = jsObject
+        _ = this[Strings.readBuffer].function!(this: this, arguments: [src.jsValue])
+    }
+
+    @inlinable func getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getInternalformatParameter].function!(this: this, arguments: [target.jsValue, internalformat.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.renderbufferStorageMultisample].function!(this: this, arguments: [target.jsValue, samples.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
+    }
+
+    @inlinable func texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.texStorage2D].function!(this: this, arguments: [target.jsValue, levels.jsValue, internalformat.jsValue, width.jsValue, height.jsValue])
+    }
+
+    @inlinable func texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) {
+        let _arg0 = target.jsValue
+        let _arg1 = levels.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let this = jsObject
+        _ = this[Strings.texStorage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = format.jsValue
+        let _arg8 = type.jsValue
+        let _arg9 = pboOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = format.jsValue
+        let _arg8 = type.jsValue
+        let _arg9 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView?) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = format.jsValue
+        let _arg8 = type.jsValue
+        let _arg9 = srcData.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = format.jsValue
+        let _arg8 = type.jsValue
+        let _arg9 = srcData.jsValue
+        let _arg10 = srcOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = depth.jsValue
+        let _arg8 = format.jsValue
+        let _arg9 = type.jsValue
+        let _arg10 = pboOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = depth.jsValue
+        let _arg8 = format.jsValue
+        let _arg9 = type.jsValue
+        let _arg10 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = depth.jsValue
+        let _arg8 = format.jsValue
+        let _arg9 = type.jsValue
+        let _arg10 = srcData.jsValue
+        let _arg11 = srcOffset?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.texSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11])
+    }
+
+    @inlinable func copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = x.jsValue
+        let _arg6 = y.jsValue
+        let _arg7 = width.jsValue
+        let _arg8 = height.jsValue
+        let this = jsObject
+        _ = this[Strings.copyTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = imageSize.jsValue
+        let _arg8 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = depth.jsValue
+        let _arg6 = border.jsValue
+        let _arg7 = srcData.jsValue
+        let _arg8 = srcOffset?.jsValue ?? .undefined
+        let _arg9 = srcLengthOverride?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.compressedTexImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = depth.jsValue
+        let _arg8 = format.jsValue
+        let _arg9 = imageSize.jsValue
+        let _arg10 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = zoffset.jsValue
+        let _arg5 = width.jsValue
+        let _arg6 = height.jsValue
+        let _arg7 = depth.jsValue
+        let _arg8 = format.jsValue
+        let _arg9 = srcData.jsValue
+        let _arg10 = srcOffset?.jsValue ?? .undefined
+        let _arg11 = srcLengthOverride?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.compressedTexSubImage3D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9, _arg10, _arg11])
+    }
+
+    @inlinable func getFragDataLocation(program: WebGLProgram, name: String) -> GLint {
+        let this = jsObject
+        return this[Strings.getFragDataLocation].function!(this: this, arguments: [program.jsValue, name.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func uniform1ui(location: WebGLUniformLocation?, v0: GLuint) {
+        let this = jsObject
+        _ = this[Strings.uniform1ui].function!(this: this, arguments: [location.jsValue, v0.jsValue])
+    }
+
+    @inlinable func uniform2ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint) {
+        let this = jsObject
+        _ = this[Strings.uniform2ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue])
+    }
+
+    @inlinable func uniform3ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint) {
+        let this = jsObject
+        _ = this[Strings.uniform3ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue, v2.jsValue])
+    }
+
+    @inlinable func uniform4ui(location: WebGLUniformLocation?, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) {
+        let this = jsObject
+        _ = this[Strings.uniform4ui].function!(this: this, arguments: [location.jsValue, v0.jsValue, v1.jsValue, v2.jsValue, v3.jsValue])
+    }
+
+    @inlinable func uniform1uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform1uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform2uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform2uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform3uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform3uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform4uiv(location: WebGLUniformLocation?, data: Uint32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform4uiv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribI4i].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    }
+
+    @inlinable func vertexAttribI4iv(index: GLuint, values: Int32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribI4iv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribI4ui].function!(this: this, arguments: [index.jsValue, x.jsValue, y.jsValue, z.jsValue, w.jsValue])
+    }
+
+    @inlinable func vertexAttribI4uiv(index: GLuint, values: Uint32List) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribI4uiv].function!(this: this, arguments: [index.jsValue, values.jsValue])
+    }
+
+    @inlinable func vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribIPointer].function!(this: this, arguments: [index.jsValue, size.jsValue, type.jsValue, stride.jsValue, offset.jsValue])
+    }
+
+    @inlinable func vertexAttribDivisor(index: GLuint, divisor: GLuint) {
+        let this = jsObject
+        _ = this[Strings.vertexAttribDivisor].function!(this: this, arguments: [index.jsValue, divisor.jsValue])
+    }
+
+    @inlinable func drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.drawArraysInstanced].function!(this: this, arguments: [mode.jsValue, first.jsValue, count.jsValue, instanceCount.jsValue])
+    }
+
+    @inlinable func drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) {
+        let this = jsObject
+        _ = this[Strings.drawElementsInstanced].function!(this: this, arguments: [mode.jsValue, count.jsValue, type.jsValue, offset.jsValue, instanceCount.jsValue])
+    }
+
+    @inlinable func drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) {
+        let _arg0 = mode.jsValue
+        let _arg1 = start.jsValue
+        let _arg2 = end.jsValue
+        let _arg3 = count.jsValue
+        let _arg4 = type.jsValue
+        let _arg5 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.drawRangeElements].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func drawBuffers(buffers: [GLenum]) {
+        let this = jsObject
+        _ = this[Strings.drawBuffers].function!(this: this, arguments: [buffers.jsValue])
+    }
+
+    @inlinable func clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.clearBufferfv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
+    }
+
+    @inlinable func clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.clearBufferiv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
+    }
+
+    @inlinable func clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.clearBufferuiv].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, values.jsValue, srcOffset?.jsValue ?? .undefined])
+    }
+
+    @inlinable func clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) {
+        let this = jsObject
+        _ = this[Strings.clearBufferfi].function!(this: this, arguments: [buffer.jsValue, drawbuffer.jsValue, depth.jsValue, stencil.jsValue])
+    }
+
+    @inlinable func createQuery() -> WebGLQuery? {
+        let this = jsObject
+        return this[Strings.createQuery].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func deleteQuery(query: WebGLQuery?) {
+        let this = jsObject
+        _ = this[Strings.deleteQuery].function!(this: this, arguments: [query.jsValue])
+    }
+
+    @inlinable func isQuery(query: WebGLQuery?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isQuery].function!(this: this, arguments: [query.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func beginQuery(target: GLenum, query: WebGLQuery) {
+        let this = jsObject
+        _ = this[Strings.beginQuery].function!(this: this, arguments: [target.jsValue, query.jsValue])
+    }
+
+    @inlinable func endQuery(target: GLenum) {
+        let this = jsObject
+        _ = this[Strings.endQuery].function!(this: this, arguments: [target.jsValue])
+    }
+
+    @inlinable func getQuery(target: GLenum, pname: GLenum) -> WebGLQuery? {
+        let this = jsObject
+        return this[Strings.getQuery].function!(this: this, arguments: [target.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getQueryParameter(query: WebGLQuery, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getQueryParameter].function!(this: this, arguments: [query.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func createSampler() -> WebGLSampler? {
+        let this = jsObject
+        return this[Strings.createSampler].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func deleteSampler(sampler: WebGLSampler?) {
+        let this = jsObject
+        _ = this[Strings.deleteSampler].function!(this: this, arguments: [sampler.jsValue])
+    }
+
+    @inlinable func isSampler(sampler: WebGLSampler?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isSampler].function!(this: this, arguments: [sampler.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func bindSampler(unit: GLuint, sampler: WebGLSampler?) {
+        let this = jsObject
+        _ = this[Strings.bindSampler].function!(this: this, arguments: [unit.jsValue, sampler.jsValue])
+    }
+
+    @inlinable func samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) {
+        let this = jsObject
+        _ = this[Strings.samplerParameteri].function!(this: this, arguments: [sampler.jsValue, pname.jsValue, param.jsValue])
+    }
+
+    @inlinable func samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) {
+        let this = jsObject
+        _ = this[Strings.samplerParameterf].function!(this: this, arguments: [sampler.jsValue, pname.jsValue, param.jsValue])
+    }
+
+    @inlinable func getSamplerParameter(sampler: WebGLSampler, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getSamplerParameter].function!(this: this, arguments: [sampler.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func fenceSync(condition: GLenum, flags: GLbitfield) -> WebGLSync? {
+        let this = jsObject
+        return this[Strings.fenceSync].function!(this: this, arguments: [condition.jsValue, flags.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func isSync(sync: WebGLSync?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isSync].function!(this: this, arguments: [sync.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func deleteSync(sync: WebGLSync?) {
+        let this = jsObject
+        _ = this[Strings.deleteSync].function!(this: this, arguments: [sync.jsValue])
+    }
+
+    @inlinable func clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) -> GLenum {
+        let this = jsObject
+        return this[Strings.clientWaitSync].function!(this: this, arguments: [sync.jsValue, flags.jsValue, timeout.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) {
+        let this = jsObject
+        _ = this[Strings.waitSync].function!(this: this, arguments: [sync.jsValue, flags.jsValue, timeout.jsValue])
+    }
+
+    @inlinable func getSyncParameter(sync: WebGLSync, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getSyncParameter].function!(this: this, arguments: [sync.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func createTransformFeedback() -> WebGLTransformFeedback? {
+        let this = jsObject
+        return this[Strings.createTransformFeedback].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func deleteTransformFeedback(tf: WebGLTransformFeedback?) {
+        let this = jsObject
+        _ = this[Strings.deleteTransformFeedback].function!(this: this, arguments: [tf.jsValue])
+    }
+
+    @inlinable func isTransformFeedback(tf: WebGLTransformFeedback?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isTransformFeedback].function!(this: this, arguments: [tf.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback?) {
+        let this = jsObject
+        _ = this[Strings.bindTransformFeedback].function!(this: this, arguments: [target.jsValue, tf.jsValue])
+    }
+
+    @inlinable func beginTransformFeedback(primitiveMode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.beginTransformFeedback].function!(this: this, arguments: [primitiveMode.jsValue])
+    }
+
+    @inlinable func endTransformFeedback() {
+        let this = jsObject
+        _ = this[Strings.endTransformFeedback].function!(this: this, arguments: [])
+    }
+
+    @inlinable func transformFeedbackVaryings(program: WebGLProgram, varyings: [String], bufferMode: GLenum) {
+        let this = jsObject
+        _ = this[Strings.transformFeedbackVaryings].function!(this: this, arguments: [program.jsValue, varyings.jsValue, bufferMode.jsValue])
+    }
+
+    @inlinable func getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) -> WebGLActiveInfo? {
+        let this = jsObject
+        return this[Strings.getTransformFeedbackVarying].function!(this: this, arguments: [program.jsValue, index.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func pauseTransformFeedback() {
+        let this = jsObject
+        _ = this[Strings.pauseTransformFeedback].function!(this: this, arguments: [])
+    }
+
+    @inlinable func resumeTransformFeedback() {
+        let this = jsObject
+        _ = this[Strings.resumeTransformFeedback].function!(this: this, arguments: [])
+    }
+
+    @inlinable func bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer?) {
+        let this = jsObject
+        _ = this[Strings.bindBufferBase].function!(this: this, arguments: [target.jsValue, index.jsValue, buffer.jsValue])
+    }
+
+    @inlinable func bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer?, offset: GLintptr, size: GLsizeiptr) {
+        let this = jsObject
+        _ = this[Strings.bindBufferRange].function!(this: this, arguments: [target.jsValue, index.jsValue, buffer.jsValue, offset.jsValue, size.jsValue])
+    }
+
+    @inlinable func getIndexedParameter(target: GLenum, index: GLuint) -> JSValue {
+        let this = jsObject
+        return this[Strings.getIndexedParameter].function!(this: this, arguments: [target.jsValue, index.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getUniformIndices(program: WebGLProgram, uniformNames: [String]) -> [GLuint]? {
+        let this = jsObject
+        return this[Strings.getUniformIndices].function!(this: this, arguments: [program.jsValue, uniformNames.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getActiveUniforms(program: WebGLProgram, uniformIndices: [GLuint], pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getActiveUniforms].function!(this: this, arguments: [program.jsValue, uniformIndices.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getUniformBlockIndex(program: WebGLProgram, uniformBlockName: String) -> GLuint {
+        let this = jsObject
+        return this[Strings.getUniformBlockIndex].function!(this: this, arguments: [program.jsValue, uniformBlockName.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) -> JSValue {
+        let this = jsObject
+        return this[Strings.getActiveUniformBlockParameter].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue, pname.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) -> String? {
+        let this = jsObject
+        return this[Strings.getActiveUniformBlockName].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) {
+        let this = jsObject
+        _ = this[Strings.uniformBlockBinding].function!(this: this, arguments: [program.jsValue, uniformBlockIndex.jsValue, uniformBlockBinding.jsValue])
+    }
+
+    @inlinable func createVertexArray() -> WebGLVertexArrayObject? {
+        let this = jsObject
+        return this[Strings.createVertexArray].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @inlinable func deleteVertexArray(vertexArray: WebGLVertexArrayObject?) {
+        let this = jsObject
+        _ = this[Strings.deleteVertexArray].function!(this: this, arguments: [vertexArray.jsValue])
+    }
+
+    @inlinable func isVertexArray(vertexArray: WebGLVertexArrayObject?) -> GLboolean {
+        let this = jsObject
+        return this[Strings.isVertexArray].function!(this: this, arguments: [vertexArray.jsValue]).fromJSValue()!
+    }
+
+    @inlinable func bindVertexArray(array: WebGLVertexArrayObject?) {
+        let this = jsObject
+        _ = this[Strings.bindVertexArray].function!(this: this, arguments: [array.jsValue])
+    }
+}
+
+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: [target.jsValue, size.jsValue, usage.jsValue])
+    }
+
+    @inlinable func bufferData(target: GLenum, srcData: BufferSource?, usage: GLenum) {
+        let this = jsObject
+        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, srcData.jsValue, usage.jsValue])
+    }
+
+    @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource) {
+        let this = jsObject
+        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, dstByteOffset.jsValue, srcData.jsValue])
+    }
+
+    @inlinable func bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.bufferData].function!(this: this, arguments: [target.jsValue, srcData.jsValue, usage.jsValue, srcOffset.jsValue, length?.jsValue ?? .undefined])
+    }
+
+    @inlinable func bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.bufferSubData].function!(this: this, arguments: [target.jsValue, dstByteOffset.jsValue, srcData.jsValue, srcOffset.jsValue, length?.jsValue ?? .undefined])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pixels.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = format.jsValue
+        let _arg4 = type.jsValue
+        let _arg5 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView?) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pixels.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pboOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = srcData.jsValue
+        let _arg9 = srcOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = pboOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = source.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = type.jsValue
+        let _arg8 = srcData.jsValue
+        let _arg9 = srcOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.texSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = imageSize.jsValue
+        let _arg7 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+
+    @inlinable func compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset: GLuint? = nil, srcLengthOverride: GLuint? = nil) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = internalformat.jsValue
+        let _arg3 = width.jsValue
+        let _arg4 = height.jsValue
+        let _arg5 = border.jsValue
+        let _arg6 = srcData.jsValue
+        let _arg7 = srcOffset?.jsValue ?? .undefined
+        let _arg8 = srcLengthOverride?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.compressedTexImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @inlinable func compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) {
+        let _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = imageSize.jsValue
+        let _arg8 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8])
+    }
+
+    @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 _arg0 = target.jsValue
+        let _arg1 = level.jsValue
+        let _arg2 = xoffset.jsValue
+        let _arg3 = yoffset.jsValue
+        let _arg4 = width.jsValue
+        let _arg5 = height.jsValue
+        let _arg6 = format.jsValue
+        let _arg7 = srcData.jsValue
+        let _arg8 = srcOffset?.jsValue ?? .undefined
+        let _arg9 = srcLengthOverride?.jsValue ?? .undefined
+        let this = jsObject
+        _ = this[Strings.compressedTexSubImage2D].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8, _arg9])
+    }
+
+    @inlinable func uniform1fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform1fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform2fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform2fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform3fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform3fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform4fv(location: WebGLUniformLocation?, data: Float32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform4fv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform1iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform1iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform2iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform2iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform3iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform3iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func uniform4iv(location: WebGLUniformLocation?, data: Int32List, srcOffset: GLuint? = nil, srcLength: GLuint? = nil) {
+        let this = jsObject
+        _ = this[Strings.uniform4iv].function!(this: this, arguments: [location.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @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: [location.jsValue, transpose.jsValue, data.jsValue, srcOffset?.jsValue ?? .undefined, srcLength?.jsValue ?? .undefined])
+    }
+
+    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView?) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = width.jsValue
+        let _arg3 = height.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = dstData.jsValue
+        let this = jsObject
+        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = width.jsValue
+        let _arg3 = height.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = offset.jsValue
+        let this = jsObject
+        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6])
+    }
+
+    @inlinable func readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = width.jsValue
+        let _arg3 = height.jsValue
+        let _arg4 = format.jsValue
+        let _arg5 = type.jsValue
+        let _arg6 = dstData.jsValue
+        let _arg7 = dstOffset.jsValue
+        let this = jsObject
+        _ = this[Strings.readPixels].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7])
+    }
+}
+
+public class WebGLQuery: WebGLObject {
+    @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.WebGLQuery].function }
+
+    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 }
+
+    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 }
+
+    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)
+    }
+}
+
+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)
+    }
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 AnalyserNode: JSString = "AnalyserNode"
+    @usableFromInline static let Animation: JSString = "Animation"
+    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
+    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
+    @usableFromInline static let Attr: JSString = "Attr"
+    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
+    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
+    @usableFromInline static let AudioContext: JSString = "AudioContext"
+    @usableFromInline static let AudioData: JSString = "AudioData"
+    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
+    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
+    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
+    @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 AudioTrack: JSString = "AudioTrack"
+    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
+    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
+    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
+    @usableFromInline static let BarProp: JSString = "BarProp"
+    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
+    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
+    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
+    @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 CanvasFilter: JSString = "CanvasFilter"
+    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
+    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
+    @usableFromInline static let CharacterData: JSString = "CharacterData"
+    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
+    @usableFromInline static let Comment: JSString = "Comment"
+    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
+    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
+    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
+    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
+    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
+    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
+    @usableFromInline static let DOMException: JSString = "DOMException"
+    @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 DelayNode: JSString = "DelayNode"
+    @usableFromInline static let Document: JSString = "Document"
+    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
+    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
+    @usableFromInline static let DocumentType: JSString = "DocumentType"
+    @usableFromInline static let DragEvent: JSString = "DragEvent"
+    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
+    @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 GainNode: JSString = "GainNode"
+    @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 IIRFilterNode: JSString = "IIRFilterNode"
+    @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 KeyframeEffect: JSString = "KeyframeEffect"
+    @usableFromInline static let Location: JSString = "Location"
+    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
+    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
+    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
+    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @usableFromInline static let MediaStream: JSString = "MediaStream"
+    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
+    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
+    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
+    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
+    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
+    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
+    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
+    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
+    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
+    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
+    @usableFromInline static let PannerNode: JSString = "PannerNode"
+    @usableFromInline static let Path2D: JSString = "Path2D"
+    @usableFromInline static let Performance: JSString = "Performance"
+    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
+    @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 Q: JSString = "Q"
+    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
+    @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 StaticRange: JSString = "StaticRange"
+    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
+    @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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WaveShaperNode: JSString = "WaveShaperNode"
+    @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext"
+    @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 WebGLQuery: JSString = "WebGLQuery"
+    @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer"
+    @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext"
+    @usableFromInline static let WebGLSampler: JSString = "WebGLSampler"
+    @usableFromInline static let WebGLShader: JSString = "WebGLShader"
+    @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
+    @usableFromInline static let WebGLSync: JSString = "WebGLSync"
+    @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
+    @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback"
+    @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
+    @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject"
+    @usableFromInline static let WebSocket: JSString = "WebSocket"
+    @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 activeTexture: JSString = "activeTexture"
+    @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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @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 ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animate: JSString = "animate"
+    @usableFromInline static let animated: JSString = "animated"
+    @usableFromInline static let antialias: JSString = "antialias"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 `as`: JSString = "as"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 attachShader: JSString = "attachShader"
+    @usableFromInline static let attachShadow: JSString = "attachShadow"
+    @usableFromInline static let attack: JSString = "attack"
+    @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 audioWorklet: JSString = "audioWorklet"
+    @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 automationRate: JSString = "automationRate"
+    @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 b: JSString = "b"
+    @usableFromInline static let back: JSString = "back"
+    @usableFromInline static let background: JSString = "background"
+    @usableFromInline static let badInput: JSString = "badInput"
+    @usableFromInline static let baseLatency: JSString = "baseLatency"
+    @usableFromInline static let baseURI: JSString = "baseURI"
+    @usableFromInline static let before: JSString = "before"
+    @usableFromInline static let beginPath: JSString = "beginPath"
+    @usableFromInline static let beginQuery: JSString = "beginQuery"
+    @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback"
+    @usableFromInline static let behavior: JSString = "behavior"
+    @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
+    @usableFromInline static let bgColor: JSString = "bgColor"
+    @usableFromInline static let binaryType: JSString = "binaryType"
+    @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation"
+    @usableFromInline static let bindBuffer: JSString = "bindBuffer"
+    @usableFromInline static let bindBufferBase: JSString = "bindBufferBase"
+    @usableFromInline static let bindBufferRange: JSString = "bindBufferRange"
+    @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer"
+    @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer"
+    @usableFromInline static let bindSampler: JSString = "bindSampler"
+    @usableFromInline static let bindTexture: JSString = "bindTexture"
+    @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback"
+    @usableFromInline static let bindVertexArray: JSString = "bindVertexArray"
+    @usableFromInline static let bitrate: JSString = "bitrate"
+    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
+    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
+    @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 blitFramebuffer: JSString = "blitFramebuffer"
+    @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 buffer: JSString = "buffer"
+    @usableFromInline static let bufferData: JSString = "bufferData"
+    @usableFromInline static let bufferSize: JSString = "bufferSize"
+    @usableFromInline static let bufferSubData: JSString = "bufferSubData"
+    @usableFromInline static let buffered: JSString = "buffered"
+    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
+    @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 canPlayType: JSString = "canPlayType"
+    @usableFromInline static let cancel: JSString = "cancel"
+    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
+    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
+    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
+    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
+    @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 channelCount: JSString = "channelCount"
+    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
+    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
+    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
+    @usableFromInline static let checkValidity: JSString = "checkValidity"
+    @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 clearBufferfi: JSString = "clearBufferfi"
+    @usableFromInline static let clearBufferfv: JSString = "clearBufferfv"
+    @usableFromInline static let clearBufferiv: JSString = "clearBufferiv"
+    @usableFromInline static let clearBufferuiv: JSString = "clearBufferuiv"
+    @usableFromInline static let clearColor: JSString = "clearColor"
+    @usableFromInline static let clearData: JSString = "clearData"
+    @usableFromInline static let clearDepth: JSString = "clearDepth"
+    @usableFromInline static let clearInterval: JSString = "clearInterval"
+    @usableFromInline static let clearParameters: JSString = "clearParameters"
+    @usableFromInline static let clearRect: JSString = "clearRect"
+    @usableFromInline static let clearStencil: JSString = "clearStencil"
+    @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 clientWaitSync: JSString = "clientWaitSync"
+    @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 colorMask: JSString = "colorMask"
+    @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 commitStyles: JSString = "commitStyles"
+    @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 compileShader: JSString = "compileShader"
+    @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 composite: JSString = "composite"
+    @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 computedOffset: JSString = "computedOffset"
+    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
+    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
+    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
+    @usableFromInline static let config: JSString = "config"
+    @usableFromInline static let configure: JSString = "configure"
+    @usableFromInline static let confirm: JSString = "confirm"
+    @usableFromInline static let connect: JSString = "connect"
+    @usableFromInline static let console: JSString = "console"
+    @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 context: JSString = "context"
+    @usableFromInline static let contextTime: JSString = "contextTime"
+    @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 copyBufferSubData: JSString = "copyBufferSubData"
+    @usableFromInline static let copyFromChannel: JSString = "copyFromChannel"
+    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
+    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
+    @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D"
+    @usableFromInline static let copyTo: JSString = "copyTo"
+    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
+    @usableFromInline static let count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
+    @usableFromInline static let createAttribute: JSString = "createAttribute"
+    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
+    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
+    @usableFromInline static let createBuffer: JSString = "createBuffer"
+    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
+    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
+    @usableFromInline static let createCaption: JSString = "createCaption"
+    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
+    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
+    @usableFromInline static let createComment: JSString = "createComment"
+    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
+    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
+    @usableFromInline static let createConvolver: JSString = "createConvolver"
+    @usableFromInline static let createDelay: JSString = "createDelay"
+    @usableFromInline static let createDocument: JSString = "createDocument"
+    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
+    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
+    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
+    @usableFromInline static let createElement: JSString = "createElement"
+    @usableFromInline static let createElementNS: JSString = "createElementNS"
+    @usableFromInline static let createEvent: JSString = "createEvent"
+    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
+    @usableFromInline static let createGain: JSString = "createGain"
+    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
+    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
+    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
+    @usableFromInline static let createImageData: JSString = "createImageData"
+    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
+    @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 createObjectURL: JSString = "createObjectURL"
+    @usableFromInline static let createOscillator: JSString = "createOscillator"
+    @usableFromInline static let createPanner: JSString = "createPanner"
+    @usableFromInline static let createPattern: JSString = "createPattern"
+    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
+    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
+    @usableFromInline static let createProgram: JSString = "createProgram"
+    @usableFromInline static let createQuery: JSString = "createQuery"
+    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
+    @usableFromInline static let createRange: JSString = "createRange"
+    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
+    @usableFromInline static let createSampler: JSString = "createSampler"
+    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
+    @usableFromInline static let createShader: JSString = "createShader"
+    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
+    @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 createTexture: JSString = "createTexture"
+    @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback"
+    @usableFromInline static let createVertexArray: JSString = "createVertexArray"
+    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
+    @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 cullFace: JSString = "cullFace"
+    @usableFromInline static let currentIteration: JSString = "currentIteration"
+    @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 curve: JSString = "curve"
+    @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 debug: JSString = "debug"
+    @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 `defer`: JSString = "defer"
+    @usableFromInline static let define: JSString = "define"
+    @usableFromInline static let delay: JSString = "delay"
+    @usableFromInline static let delayTime: JSString = "delayTime"
+    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
+    @usableFromInline static let delete: JSString = "delete"
+    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
+    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
+    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
+    @usableFromInline static let deleteQuery: JSString = "deleteQuery"
+    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
+    @usableFromInline static let deleteRow: JSString = "deleteRow"
+    @usableFromInline static let deleteSampler: JSString = "deleteSampler"
+    @usableFromInline static let deleteShader: JSString = "deleteShader"
+    @usableFromInline static let deleteSync: JSString = "deleteSync"
+    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
+    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
+    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
+    @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback"
+    @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray"
+    @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 depth: JSString = "depth"
+    @usableFromInline static let depthFunc: JSString = "depthFunc"
+    @usableFromInline static let depthMask: JSString = "depthMask"
+    @usableFromInline static let depthRange: JSString = "depthRange"
+    @usableFromInline static let description: JSString = "description"
+    @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 detachShader: JSString = "detachShader"
+    @usableFromInline static let detail: JSString = "detail"
+    @usableFromInline static let detune: JSString = "detune"
+    @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 dirxml: JSString = "dirxml"
+    @usableFromInline static let disable: JSString = "disable"
+    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
+    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
+    @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 distanceModel: JSString = "distanceModel"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let drawArrays: JSString = "drawArrays"
+    @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced"
+    @usableFromInline static let drawBuffers: JSString = "drawBuffers"
+    @usableFromInline static let drawElements: JSString = "drawElements"
+    @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let drawRangeElements: JSString = "drawRangeElements"
+    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
+    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @usableFromInline static let duration: JSString = "duration"
+    @usableFromInline static let e: JSString = "e"
+    @usableFromInline static let easing: JSString = "easing"
+    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
+    @usableFromInline static let effect: JSString = "effect"
+    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
+    @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 endDelay: JSString = "endDelay"
+    @usableFromInline static let endOffset: JSString = "endOffset"
+    @usableFromInline static let endQuery: JSString = "endQuery"
+    @usableFromInline static let endTime: JSString = "endTime"
+    @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback"
+    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
+    @usableFromInline static let extends: JSString = "extends"
+    @usableFromInline static let extensions: JSString = "extensions"
+    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
+    @usableFromInline static let fastSeek: JSString = "fastSeek"
+    @usableFromInline static let feedback: JSString = "feedback"
+    @usableFromInline static let feedforward: JSString = "feedforward"
+    @usableFromInline static let fenceSync: JSString = "fenceSync"
+    @usableFromInline static let fetch: JSString = "fetch"
+    @usableFromInline static let fftSize: JSString = "fftSize"
+    @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 finish: JSString = "finish"
+    @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 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 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 forwardX: JSString = "forwardX"
+    @usableFromInline static let forwardY: JSString = "forwardY"
+    @usableFromInline static let forwardZ: JSString = "forwardZ"
+    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
+    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
+    @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer"
+    @usableFromInline static let framerate: JSString = "framerate"
+    @usableFromInline static let frames: JSString = "frames"
+    @usableFromInline static let frequency: JSString = "frequency"
+    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
+    @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 frontFace: JSString = "frontFace"
+    @usableFromInline static let fullRange: JSString = "fullRange"
+    @usableFromInline static let gain: JSString = "gain"
+    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
+    @usableFromInline static let get: JSString = "get"
+    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
+    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
+    @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName"
+    @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter"
+    @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms"
+    @usableFromInline static let getAll: JSString = "getAll"
+    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
+    @usableFromInline static let getAnimations: JSString = "getAnimations"
+    @usableFromInline static let getAsFile: JSString = "getAsFile"
+    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
+    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
+    @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 getBufferParameter: JSString = "getBufferParameter"
+    @usableFromInline static let getBufferSubData: JSString = "getBufferSubData"
+    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
+    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
+    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
+    @usableFromInline static let getChannelData: JSString = "getChannelData"
+    @usableFromInline static let getClientRect: JSString = "getClientRect"
+    @usableFromInline static let getClientRects: JSString = "getClientRects"
+    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
+    @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 getError: JSString = "getError"
+    @usableFromInline static let getExtension: JSString = "getExtension"
+    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
+    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
+    @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation"
+    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
+    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
+    @usableFromInline static let getImageData: JSString = "getImageData"
+    @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter"
+    @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter"
+    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
+    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
+    @usableFromInline static let getParameter: JSString = "getParameter"
+    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
+    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
+    @usableFromInline static let getQuery: JSString = "getQuery"
+    @usableFromInline static let getQueryParameter: JSString = "getQueryParameter"
+    @usableFromInline static let getReader: JSString = "getReader"
+    @usableFromInline static let getRegistration: JSString = "getRegistration"
+    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
+    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
+    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
+    @usableFromInline static let getRootNode: JSString = "getRootNode"
+    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
+    @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter"
+    @usableFromInline static let getSettings: JSString = "getSettings"
+    @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 getStartDate: JSString = "getStartDate"
+    @usableFromInline static let getState: JSString = "getState"
+    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
+    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
+    @usableFromInline static let getSyncParameter: JSString = "getSyncParameter"
+    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
+    @usableFromInline static let getTiming: JSString = "getTiming"
+    @usableFromInline static let getTrackById: JSString = "getTrackById"
+    @usableFromInline static let getTracks: JSString = "getTracks"
+    @usableFromInline static let getTransform: JSString = "getTransform"
+    @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying"
+    @usableFromInline static let getUniform: JSString = "getUniform"
+    @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex"
+    @usableFromInline static let getUniformIndices: JSString = "getUniformIndices"
+    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
+    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
+    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
+    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
+    @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 group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 high: JSString = "high"
+    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
+    @usableFromInline static let hint: JSString = "hint"
+    @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 ideographicBaseline: JSString = "ideographicBaseline"
+    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
+    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
+    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
+    @usableFromInline static let imag: JSString = "imag"
+    @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 inputBuffer: JSString = "inputBuffer"
+    @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 intersectsNode: JSString = "intersectsNode"
+    @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState"
+    @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer"
+    @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer"
+    @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 isBuffer: JSString = "isBuffer"
+    @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 isEnabled: JSString = "isEnabled"
+    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
+    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
+    @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 isProgram: JSString = "isProgram"
+    @usableFromInline static let isQuery: JSString = "isQuery"
+    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
+    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
+    @usableFromInline static let isSameNode: JSString = "isSameNode"
+    @usableFromInline static let isSampler: JSString = "isSampler"
+    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
+    @usableFromInline static let isShader: JSString = "isShader"
+    @usableFromInline static let isSync: JSString = "isSync"
+    @usableFromInline static let isTexture: JSString = "isTexture"
+    @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback"
+    @usableFromInline static let isTrusted: JSString = "isTrusted"
+    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
+    @usableFromInline static let isVertexArray: JSString = "isVertexArray"
+    @usableFromInline static let isVisible: JSString = "isVisible"
+    @usableFromInline static let item: JSString = "item"
+    @usableFromInline static let items: JSString = "items"
+    @usableFromInline static let iterateNext: JSString = "iterateNext"
+    @usableFromInline static let iterationStart: JSString = "iterationStart"
+    @usableFromInline static let iterations: JSString = "iterations"
+    @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 knee: JSString = "knee"
+    @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 latencyHint: JSString = "latencyHint"
+    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
+    @usableFromInline static let lineno: JSString = "lineno"
+    @usableFromInline static let link: JSString = "link"
+    @usableFromInline static let linkColor: JSString = "linkColor"
+    @usableFromInline static let linkProgram: JSString = "linkProgram"
+    @usableFromInline static let links: JSString = "links"
+    @usableFromInline static let list: JSString = "list"
+    @usableFromInline static let listener: JSString = "listener"
+    @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 log: JSString = "log"
+    @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 loopEnd: JSString = "loopEnd"
+    @usableFromInline static let loopStart: JSString = "loopStart"
+    @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 maxChannelCount: JSString = "maxChannelCount"
+    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
+    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
+    @usableFromInline static let maxDistance: JSString = "maxDistance"
+    @usableFromInline static let maxLength: JSString = "maxLength"
+    @usableFromInline static let maxValue: JSString = "maxValue"
+    @usableFromInline static let measureText: JSString = "measureText"
+    @usableFromInline static let media: JSString = "media"
+    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
+    @usableFromInline static let mediaElement: JSString = "mediaElement"
+    @usableFromInline static let mediaStream: JSString = "mediaStream"
+    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
+    @usableFromInline static let menubar: JSString = "menubar"
+    @usableFromInline static let message: JSString = "message"
+    @usableFromInline static let metaKey: JSString = "metaKey"
+    @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 minDecibels: JSString = "minDecibels"
+    @usableFromInline static let minLength: JSString = "minLength"
+    @usableFromInline static let minValue: JSString = "minValue"
+    @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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 numberOfInputs: JSString = "numberOfInputs"
+    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncomplete: JSString = "oncomplete"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 onfinish: JSString = "onfinish"
+    @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 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 onprocessorerror: JSString = "onprocessorerror"
+    @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 onremove: JSString = "onremove"
+    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 orientationX: JSString = "orientationX"
+    @usableFromInline static let orientationY: JSString = "orientationY"
+    @usableFromInline static let orientationZ: JSString = "orientationZ"
+    @usableFromInline static let origin: JSString = "origin"
+    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
+    @usableFromInline static let originTime: JSString = "originTime"
+    @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 outputBuffer: JSString = "outputBuffer"
+    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
+    @usableFromInline static let outputLatency: JSString = "outputLatency"
+    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
+    @usableFromInline static let oversample: JSString = "oversample"
+    @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 pageX: JSString = "pageX"
+    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
+    @usableFromInline static let pageY: JSString = "pageY"
+    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
+    @usableFromInline static let pan: JSString = "pan"
+    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
+    @usableFromInline static let panningModel: JSString = "panningModel"
+    @usableFromInline static let parameterData: JSString = "parameterData"
+    @usableFromInline static let parameters: JSString = "parameters"
+    @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 pauseTransformFeedback: JSString = "pauseTransformFeedback"
+    @usableFromInline static let paused: JSString = "paused"
+    @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled"
+    @usableFromInline static let pending: JSString = "pending"
+    @usableFromInline static let performance: JSString = "performance"
+    @usableFromInline static let performanceTime: JSString = "performanceTime"
+    @usableFromInline static let periodicWave: JSString = "periodicWave"
+    @usableFromInline static let persist: JSString = "persist"
+    @usableFromInline static let persisted: JSString = "persisted"
+    @usableFromInline static let personalbar: JSString = "personalbar"
+    @usableFromInline static let phase: JSString = "phase"
+    @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 pixelStorei: JSString = "pixelStorei"
+    @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 playState: JSString = "playState"
+    @usableFromInline static let playbackRate: JSString = "playbackRate"
+    @usableFromInline static let playbackTime: JSString = "playbackTime"
+    @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 polygonOffset: JSString = "polygonOffset"
+    @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 positionX: JSString = "positionX"
+    @usableFromInline static let positionY: JSString = "positionY"
+    @usableFromInline static let positionZ: JSString = "positionZ"
+    @usableFromInline static let postMessage: JSString = "postMessage"
+    @usableFromInline static let poster: JSString = "poster"
+    @usableFromInline static let powerPreference: JSString = "powerPreference"
+    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
+    @usableFromInline static let precision: JSString = "precision"
+    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
+    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
+    @usableFromInline static let prepend: JSString = "prepend"
+    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
+    @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 processorOptions: JSString = "processorOptions"
+    @usableFromInline static let product: JSString = "product"
+    @usableFromInline static let productSub: JSString = "productSub"
+    @usableFromInline static let progress: JSString = "progress"
+    @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 pseudoElement: JSString = "pseudoElement"
+    @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 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 rangeMax: JSString = "rangeMax"
+    @usableFromInline static let rangeMin: JSString = "rangeMin"
+    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
+    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
+    @usableFromInline static let ratio: JSString = "ratio"
+    @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 readBuffer: JSString = "readBuffer"
+    @usableFromInline static let readOnly: JSString = "readOnly"
+    @usableFromInline static let readPixels: JSString = "readPixels"
+    @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 real: JSString = "real"
+    @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 reduction: JSString = "reduction"
+    @usableFromInline static let refDistance: JSString = "refDistance"
+    @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 release: JSString = "release"
+    @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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
+    @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample"
+    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
+    @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 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 resumeTransformFeedback: JSString = "resumeTransformFeedback"
+    @usableFromInline static let returnValue: JSString = "returnValue"
+    @usableFromInline static let rev: JSString = "rev"
+    @usableFromInline static let reverse: JSString = "reverse"
+    @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 rolloffFactor: JSString = "rolloffFactor"
+    @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 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 sampleCoverage: JSString = "sampleCoverage"
+    @usableFromInline static let sampleRate: JSString = "sampleRate"
+    @usableFromInline static let sampleSize: JSString = "sampleSize"
+    @usableFromInline static let samplerParameterf: JSString = "samplerParameterf"
+    @usableFromInline static let samplerParameteri: JSString = "samplerParameteri"
+    @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 scissor: JSString = "scissor"
+    @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 searchParams: JSString = "searchParams"
+    @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 setKeyframes: JSString = "setKeyframes"
+    @usableFromInline static let setLineDash: JSString = "setLineDash"
+    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
+    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
+    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
+    @usableFromInline static let setOrientation: JSString = "setOrientation"
+    @usableFromInline static let setParameter: JSString = "setParameter"
+    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
+    @usableFromInline static let setPosition: JSString = "setPosition"
+    @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 setTargetAtTime: JSString = "setTargetAtTime"
+    @usableFromInline static let setTimeout: JSString = "setTimeout"
+    @usableFromInline static let setTransform: JSString = "setTransform"
+    @usableFromInline static let setValidity: JSString = "setValidity"
+    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
+    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
+    @usableFromInline static let shaderSource: JSString = "shaderSource"
+    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
+    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
+    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
+    @usableFromInline static let sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @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 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 startRendering: JSString = "startRendering"
+    @usableFromInline static let startTime: JSString = "startTime"
+    @usableFromInline static let state: JSString = "state"
+    @usableFromInline static let status: JSString = "status"
+    @usableFromInline static let statusMessage: JSString = "statusMessage"
+    @usableFromInline static let statusText: JSString = "statusText"
+    @usableFromInline static let statusbar: JSString = "statusbar"
+    @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 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 supports: JSString = "supports"
+    @usableFromInline static let surroundContents: JSString = "surroundContents"
+    @usableFromInline static let suspend: JSString = "suspend"
+    @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 table: JSString = "table"
+    @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 tee: JSString = "tee"
+    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
+    @usableFromInline static let terminate: JSString = "terminate"
+    @usableFromInline static let texImage2D: JSString = "texImage2D"
+    @usableFromInline static let texImage3D: JSString = "texImage3D"
+    @usableFromInline static let texParameterf: JSString = "texParameterf"
+    @usableFromInline static let texParameteri: JSString = "texParameteri"
+    @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 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 threshold: JSString = "threshold"
+    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
+    @usableFromInline static let time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
+    @usableFromInline static let timeStamp: JSString = "timeStamp"
+    @usableFromInline static let timecode: JSString = "timecode"
+    @usableFromInline static let timeline: JSString = "timeline"
+    @usableFromInline static let timeout: JSString = "timeout"
+    @usableFromInline static let timestamp: JSString = "timestamp"
+    @usableFromInline static let title: JSString = "title"
+    @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 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 trace: JSString = "trace"
+    @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 transformFeedbackVaryings: JSString = "transformFeedbackVaryings"
+    @usableFromInline static let transformPoint: JSString = "transformPoint"
+    @usableFromInline static let transformToDocument: JSString = "transformToDocument"
+    @usableFromInline static let transformToFragment: JSString = "transformToFragment"
+    @usableFromInline static let translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 uniform1f: JSString = "uniform1f"
+    @usableFromInline static let uniform1fv: JSString = "uniform1fv"
+    @usableFromInline static let uniform1i: JSString = "uniform1i"
+    @usableFromInline static let uniform1iv: JSString = "uniform1iv"
+    @usableFromInline static let uniform1ui: JSString = "uniform1ui"
+    @usableFromInline static let uniform1uiv: JSString = "uniform1uiv"
+    @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 uniform2ui: JSString = "uniform2ui"
+    @usableFromInline static let uniform2uiv: JSString = "uniform2uiv"
+    @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 uniform3ui: JSString = "uniform3ui"
+    @usableFromInline static let uniform3uiv: JSString = "uniform3uiv"
+    @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 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 unregister: JSString = "unregister"
+    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
+    @usableFromInline static let upX: JSString = "upX"
+    @usableFromInline static let upY: JSString = "upY"
+    @usableFromInline static let upZ: JSString = "upZ"
+    @usableFromInline static let update: JSString = "update"
+    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
+    @usableFromInline static let updateTiming: JSString = "updateTiming"
+    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
+    @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 useProgram: JSString = "useProgram"
+    @usableFromInline static let userAgent: JSString = "userAgent"
+    @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 validateProgram: JSString = "validateProgram"
+    @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 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 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 vertexAttribPointer: JSString = "vertexAttribPointer"
+    @usableFromInline static let video: JSString = "video"
+    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
+    @usableFromInline static let videoHeight: JSString = "videoHeight"
+    @usableFromInline static let videoTracks: JSString = "videoTracks"
+    @usableFromInline static let videoWidth: JSString = "videoWidth"
+    @usableFromInline static let view: JSString = "view"
+    @usableFromInline static let viewport: JSString = "viewport"
+    @usableFromInline static let visibilityState: JSString = "visibilityState"
+    @usableFromInline static let visible: JSString = "visible"
+    @usableFromInline static let visibleRect: JSString = "visibleRect"
+    @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 waitSync: JSString = "waitSync"
+    @usableFromInline static let waiting: JSString = "waiting"
+    @usableFromInline static let warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
+extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
+extension Double: Any_AudioContextLatencyCategory_or_Double {}
+
+public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
+    case audioContextLatencyCategory(AudioContextLatencyCategory)
+    case double(Double)
+
+    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+        switch self {
+        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
+            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+
+public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
+    case compositeOperationOrAuto(CompositeOperationOrAuto)
+    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
+
+    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
+        switch self {
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
+            return .compositeOperationOrAuto(compositeOperationOrAuto)
+        }
+        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
+            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto):
+            return compositeOperationOrAuto.jsValue
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
+            return seq_of_CompositeOperationOrAuto.jsValue
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .document(document):
+            return document.jsValue
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
+            return xmlHttpRequestBodyInit.jsValue
+        }
+    }
+}
+
+public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeAnimationOptions {}
+extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
+
+public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
+    case double(Double)
+    case keyframeAnimationOptions(KeyframeAnimationOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
+        switch self {
+        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
+            return .keyframeAnimationOptions(keyframeAnimationOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
+    case double(Double)
+    case keyframeEffectOptions(KeyframeEffectOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeEffectOptions: KeyframeEffectOptions? {
+        switch self {
+        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
+            return .keyframeEffectOptions(keyframeEffectOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
+    case double(Double)
+    case string(String)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .double(double):
+            return double.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
+extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
+extension String: Any_ElementCreationOptions_or_String {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Float32List: ConvertibleToJSValue {}
+extension Float32Array: Any_Float32List {}
+extension Array: Any_Float32List where Element == GLfloat {}
+
+public enum Float32List: JSValueCompatible, Any_Float32List {
+    case float32Array(Float32Array)
+    case seq_of_GLfloat([GLfloat])
+
+    public var float32Array: Float32Array? {
+        switch self {
+        case let .float32Array(float32Array): return float32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLfloat: [GLfloat]? {
+        switch self {
+        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_Int32List: ConvertibleToJSValue {}
+extension Int32Array: Any_Int32List {}
+extension Array: Any_Int32List where Element == GLint {}
+
+public enum Int32List: JSValueCompatible, Any_Int32List {
+    case int32Array(Int32Array)
+    case seq_of_GLint([GLint])
+
+    public var int32Array: Int32Array? {
+        switch self {
+        case let .int32Array(int32Array): return int32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLint: [GLint]? {
+        switch self {
+        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TexImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_TexImageSource {}
+extension HTMLImageElement: Any_TexImageSource {}
+extension HTMLVideoElement: Any_TexImageSource {}
+extension ImageBitmap: Any_TexImageSource {}
+extension ImageData: Any_TexImageSource {}
+extension OffscreenCanvas: Any_TexImageSource {}
+extension VideoFrame: Any_TexImageSource {}
+
+public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlImageElement(HTMLImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case imageData(ImageData)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_Uint32List: ConvertibleToJSValue {}
+extension Uint32Array: Any_Uint32List {}
+extension Array: Any_Uint32List where Element == GLuint {}
+
+public enum Uint32List: JSValueCompatible, Any_Uint32List {
+    case uint32Array(Uint32Array)
+    case seq_of_GLuint([GLuint])
+
+    public var uint32Array: Uint32Array? {
+        switch self {
+        case let .uint32Array(uint32Array): return uint32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLuint: [GLuint]? {
+        switch self {
+        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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 {
+    case nullable_Double(Double?)
+    case seq_of_nullable_Double([Double?])
+
+    public var nullable_Double: Double?? {
+        switch self {
+        case let .nullable_Double(nullable_Double): return nullable_Double
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
diff --git a/Sources/WebGL2/Support.swift b/Sources/WebGL2/Support.swift
new file mode 100644
index 00000000..f30fa785
--- /dev/null
+++ b/Sources/WebGL2/Support.swift
@@ -0,0 +1,7 @@
+import DOM
+
+extension WebGL2RenderingContext: RenderingContext {
+  public static var contextID: JSString { "webgl2" }
+}
+
+extension WebGL2RenderingContext: OffscreenRenderingContext {}
diff --git a/Sources/WebGPU/Generated.swift b/Sources/WebGPU/Generated.swift
new file mode 100644
index 00000000..1c3e210d
--- /dev/null
+++ b/Sources/WebGPU/Generated.swift
@@ -0,0 +1,9106 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import DOM
+import ECMAScript
+import JavaScriptKit
+import WebAnimations
+import WebGL1
+
+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) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func requestAdapter(options: GPURequestAdapterOptions? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.requestAdapter].function!(this: this, arguments: [options?.jsValue ?? .undefined]).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: [options?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
+}
+
+public class GPUAdapter: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUAdapter].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
+        _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 name: String
+
+    @ReadonlyAttribute
+    public var features: GPUSupportedFeatures
+
+    @ReadonlyAttribute
+    public var limits: GPUSupportedLimits
+
+    @ReadonlyAttribute
+    public var isFallbackAdapter: Bool
+
+    @inlinable public func requestDevice(descriptor: GPUDeviceDescriptor? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.requestDevice].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).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: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
+}
+
+public enum GPUAddressMode: JSString, JSValueCompatible {
+    case clampToEdge = "clamp-to-edge"
+    case `repeat` = "repeat"
+    case mirrorRepeat = "mirror-repeat"
+
+    @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 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 class GPUBindGroupDescriptor: BridgedDictionary {
+    public convenience init(layout: GPUBindGroupLayout, entries: [GPUBindGroupEntry]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.layout] = layout.jsValue
+        object[Strings.entries] = entries.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var layout: GPUBindGroupLayout
+
+    @ReadWriteAttribute
+    public var entries: [GPUBindGroupEntry]
+}
+
+public class GPUBindGroupEntry: BridgedDictionary {
+    public convenience init(binding: GPUIndex32, resource: GPUBindingResource) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.binding] = binding.jsValue
+        object[Strings.resource] = resource.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var binding: GPUIndex32
+
+    @ReadWriteAttribute
+    public var resource: GPUBindingResource
+}
+
+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 class GPUBindGroupLayoutDescriptor: BridgedDictionary {
+    public convenience init(entries: [GPUBindGroupLayoutEntry]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.entries] = entries.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _entries = ReadWriteAttribute(jsObject: object, name: Strings.entries)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var entries: [GPUBindGroupLayoutEntry]
+}
+
+public class GPUBindGroupLayoutEntry: BridgedDictionary {
+    public convenience init(binding: GPUIndex32, visibility: GPUShaderStageFlags, buffer: GPUBufferBindingLayout, sampler: GPUSamplerBindingLayout, texture: GPUTextureBindingLayout, storageTexture: GPUStorageTextureBindingLayout, externalTexture: GPUExternalTextureBindingLayout) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.binding] = binding.jsValue
+        object[Strings.visibility] = visibility.jsValue
+        object[Strings.buffer] = buffer.jsValue
+        object[Strings.sampler] = sampler.jsValue
+        object[Strings.texture] = texture.jsValue
+        object[Strings.storageTexture] = storageTexture.jsValue
+        object[Strings.externalTexture] = externalTexture.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var binding: GPUIndex32
+
+    @ReadWriteAttribute
+    public var visibility: GPUShaderStageFlags
+
+    @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
+}
+
+public class GPUBlendComponent: BridgedDictionary {
+    public convenience init(operation: GPUBlendOperation, srcFactor: GPUBlendFactor, dstFactor: GPUBlendFactor) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.operation] = operation.jsValue
+        object[Strings.srcFactor] = srcFactor.jsValue
+        object[Strings.dstFactor] = dstFactor.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var operation: GPUBlendOperation
+
+    @ReadWriteAttribute
+    public var srcFactor: GPUBlendFactor
+
+    @ReadWriteAttribute
+    public var dstFactor: GPUBlendFactor
+}
+
+public enum GPUBlendFactor: JSString, JSValueCompatible {
+    case zero = "zero"
+    case one = "one"
+    case src = "src"
+    case oneMinusSrc = "one-minus-src"
+    case srcAlpha = "src-alpha"
+    case oneMinusSrcAlpha = "one-minus-src-alpha"
+    case dst = "dst"
+    case oneMinusDst = "one-minus-dst"
+    case dstAlpha = "dst-alpha"
+    case oneMinusDstAlpha = "one-minus-dst-alpha"
+    case srcAlphaSaturated = "src-alpha-saturated"
+    case constant = "constant"
+    case oneMinusConstant = "one-minus-constant"
+
+    @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 GPUBlendOperation: JSString, JSValueCompatible {
+    case add = "add"
+    case subtract = "subtract"
+    case reverseSubtract = "reverse-subtract"
+    case min = "min"
+    case max = "max"
+
+    @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 GPUBlendState: BridgedDictionary {
+    public convenience init(color: GPUBlendComponent, alpha: GPUBlendComponent) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.color] = color.jsValue
+        object[Strings.alpha] = alpha.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var color: GPUBlendComponent
+
+    @ReadWriteAttribute
+    public var alpha: GPUBlendComponent
+}
+
+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) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func mapAsync(mode: GPUMapModeFlags, offset: GPUSize64? = nil, size: GPUSize64? = nil) -> JSPromise {
+        let this = jsObject
+        return this[Strings.mapAsync].function!(this: this, arguments: [mode.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).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 {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.mapAsync].function!(this: this, arguments: [mode.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).fromJSValue()!
+        _ = try await _promise.value
+    }
+
+    @inlinable public func getMappedRange(offset: GPUSize64? = nil, size: GPUSize64? = nil) -> ArrayBuffer {
+        let this = jsObject
+        return this[Strings.getMappedRange].function!(this: this, arguments: [offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func unmap() {
+        let this = jsObject
+        _ = this[Strings.unmap].function!(this: this, arguments: [])
+    }
+
+    @inlinable 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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.buffer] = buffer.jsValue
+        object[Strings.offset] = offset.jsValue
+        object[Strings.size] = size.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var buffer: GPUBuffer
+
+    @ReadWriteAttribute
+    public var offset: GPUSize64
+
+    @ReadWriteAttribute
+    public var size: GPUSize64
+}
+
+public class GPUBufferBindingLayout: BridgedDictionary {
+    public convenience init(type: GPUBufferBindingType, hasDynamicOffset: Bool, minBindingSize: GPUSize64) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.hasDynamicOffset] = hasDynamicOffset.jsValue
+        object[Strings.minBindingSize] = minBindingSize.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var type: GPUBufferBindingType
+
+    @ReadWriteAttribute
+    public var hasDynamicOffset: Bool
+
+    @ReadWriteAttribute
+    public var minBindingSize: GPUSize64
+}
+
+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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public class GPUBufferDescriptor: BridgedDictionary {
+    public convenience init(size: GPUSize64, usage: GPUBufferUsageFlags, mappedAtCreation: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.size] = size.jsValue
+        object[Strings.usage] = usage.jsValue
+        object[Strings.mappedAtCreation] = mappedAtCreation.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var size: GPUSize64
+
+    @ReadWriteAttribute
+    public var usage: GPUBufferUsageFlags
+
+    @ReadWriteAttribute
+    public var mappedAtCreation: Bool
+}
+
+public enum GPUBufferUsage {
+    @inlinable public static var jsObject: JSObject {
+        JSObject.global[Strings.GPUBufferUsage].object!
+    }
+
+    public static let MAP_READ: GPUFlagsConstant = 0x0001
+
+    public static let MAP_WRITE: GPUFlagsConstant = 0x0002
+
+    public static let COPY_SRC: GPUFlagsConstant = 0x0004
+
+    public static let COPY_DST: GPUFlagsConstant = 0x0008
+
+    public static let INDEX: GPUFlagsConstant = 0x0010
+
+    public static let VERTEX: GPUFlagsConstant = 0x0020
+
+    public static let UNIFORM: GPUFlagsConstant = 0x0040
+
+    public static let STORAGE: GPUFlagsConstant = 0x0080
+
+    public static let INDIRECT: GPUFlagsConstant = 0x0100
+
+    public static let QUERY_RESOLVE: GPUFlagsConstant = 0x0200
+}
+
+public enum GPUCanvasCompositingAlphaMode: 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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public class GPUCanvasConfiguration: BridgedDictionary {
+    public convenience init(device: GPUDevice, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat], colorSpace: GPUPredefinedColorSpace, compositingAlphaMode: GPUCanvasCompositingAlphaMode, size: GPUExtent3D) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.device] = device.jsValue
+        object[Strings.format] = format.jsValue
+        object[Strings.usage] = usage.jsValue
+        object[Strings.viewFormats] = viewFormats.jsValue
+        object[Strings.colorSpace] = colorSpace.jsValue
+        object[Strings.compositingAlphaMode] = compositingAlphaMode.jsValue
+        object[Strings.size] = size.jsValue
+        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)
+        _compositingAlphaMode = ReadWriteAttribute(jsObject: object, name: Strings.compositingAlphaMode)
+        _size = ReadWriteAttribute(jsObject: object, name: Strings.size)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var device: GPUDevice
+
+    @ReadWriteAttribute
+    public var format: GPUTextureFormat
+
+    @ReadWriteAttribute
+    public var usage: GPUTextureUsageFlags
+
+    @ReadWriteAttribute
+    public var viewFormats: [GPUTextureFormat]
+
+    @ReadWriteAttribute
+    public var colorSpace: GPUPredefinedColorSpace
+
+    @ReadWriteAttribute
+    public var compositingAlphaMode: GPUCanvasCompositingAlphaMode
+
+    @ReadWriteAttribute
+    public var size: GPUExtent3D
+}
+
+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
+    }
+
+    @ReadonlyAttribute
+    public var canvas: HTMLCanvasElement_or_OffscreenCanvas
+
+    @inlinable public func configure(configuration: GPUCanvasConfiguration) {
+        let this = jsObject
+        _ = this[Strings.configure].function!(this: this, arguments: [configuration.jsValue])
+    }
+
+    @inlinable public func unconfigure() {
+        let this = jsObject
+        _ = this[Strings.unconfigure].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func getPreferredFormat(adapter: GPUAdapter) -> GPUTextureFormat {
+        let this = jsObject
+        return this[Strings.getPreferredFormat].function!(this: this, arguments: [adapter.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func getCurrentTexture() -> GPUTexture {
+        let this = jsObject
+        return this[Strings.getCurrentTexture].function!(this: this, arguments: []).fromJSValue()!
+    }
+}
+
+public class GPUColorDict: BridgedDictionary {
+    public convenience init(r: Double, g: Double, b: Double, a: Double) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.r] = r.jsValue
+        object[Strings.g] = g.jsValue
+        object[Strings.b] = b.jsValue
+        object[Strings.a] = a.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var r: Double
+
+    @ReadWriteAttribute
+    public var g: Double
+
+    @ReadWriteAttribute
+    public var b: Double
+
+    @ReadWriteAttribute
+    public var a: Double
+}
+
+public class GPUColorTargetState: BridgedDictionary {
+    public convenience init(format: GPUTextureFormat, blend: GPUBlendState, writeMask: GPUColorWriteFlags) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.blend] = blend.jsValue
+        object[Strings.writeMask] = writeMask.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var format: GPUTextureFormat
+
+    @ReadWriteAttribute
+    public var blend: GPUBlendState
+
+    @ReadWriteAttribute
+    public var writeMask: GPUColorWriteFlags
+}
+
+public enum GPUColorWrite {
+    @inlinable public static var jsObject: JSObject {
+        JSObject.global[Strings.GPUColorWrite].object!
+    }
+
+    public static let RED: GPUFlagsConstant = 0x1
+
+    public static let GREEN: GPUFlagsConstant = 0x2
+
+    public static let BLUE: GPUFlagsConstant = 0x4
+
+    public static let ALPHA: GPUFlagsConstant = 0x8
+
+    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 class GPUCommandBufferDescriptor: 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 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
+    }
+
+    @inlinable public func beginRenderPass(descriptor: GPURenderPassDescriptor) -> GPURenderPassEncoder {
+        let this = jsObject
+        return this[Strings.beginRenderPass].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func beginComputePass(descriptor: GPUComputePassDescriptor? = nil) -> GPUComputePassEncoder {
+        let this = jsObject
+        return this[Strings.beginComputePass].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).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: [source.jsValue, sourceOffset.jsValue, destination.jsValue, destinationOffset.jsValue, size.jsValue])
+    }
+
+    @inlinable public func copyBufferToTexture(source: GPUImageCopyBuffer, destination: GPUImageCopyTexture, copySize: GPUExtent3D) {
+        let this = jsObject
+        _ = this[Strings.copyBufferToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
+    }
+
+    @inlinable public func copyTextureToBuffer(source: GPUImageCopyTexture, destination: GPUImageCopyBuffer, copySize: GPUExtent3D) {
+        let this = jsObject
+        _ = this[Strings.copyTextureToBuffer].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
+    }
+
+    @inlinable public func copyTextureToTexture(source: GPUImageCopyTexture, destination: GPUImageCopyTexture, copySize: GPUExtent3D) {
+        let this = jsObject
+        _ = this[Strings.copyTextureToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
+    }
+
+    @inlinable public func clearBuffer(buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
+        let this = jsObject
+        _ = this[Strings.clearBuffer].function!(this: this, arguments: [buffer.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func writeTimestamp(querySet: GPUQuerySet, queryIndex: GPUSize32) {
+        let this = jsObject
+        _ = this[Strings.writeTimestamp].function!(this: this, arguments: [querySet.jsValue, queryIndex.jsValue])
+    }
+
+    @inlinable public func resolveQuerySet(querySet: GPUQuerySet, firstQuery: GPUSize32, queryCount: GPUSize32, destination: GPUBuffer, destinationOffset: GPUSize64) {
+        let this = jsObject
+        _ = this[Strings.resolveQuerySet].function!(this: this, arguments: [querySet.jsValue, firstQuery.jsValue, queryCount.jsValue, destination.jsValue, destinationOffset.jsValue])
+    }
+
+    @inlinable public func finish(descriptor: GPUCommandBufferDescriptor? = nil) -> GPUCommandBuffer {
+        let this = jsObject
+        return this[Strings.finish].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+    }
+}
+
+public class GPUCommandEncoderDescriptor: 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 protocol GPUCommandsMixin: JSBridgedClass {}
+public extension GPUCommandsMixin {}
+
+public enum GPUCompareFunction: JSString, JSValueCompatible {
+    case never = "never"
+    case less = "less"
+    case equal = "equal"
+    case lessEqual = "less-equal"
+    case greater = "greater"
+    case notEqual = "not-equal"
+    case greaterEqual = "greater-equal"
+    case always = "always"
+
+    @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 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
+    }
+
+    @ReadonlyAttribute
+    public var messages: [GPUCompilationMessage]
+}
+
+public class GPUCompilationMessage: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUCompilationMessage].function }
+
+    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
+    }
+
+    @ReadonlyAttribute
+    public var message: String
+
+    @ReadonlyAttribute
+    public var type: GPUCompilationMessageType
+
+    @ReadonlyAttribute
+    public var lineNum: UInt64
+
+    @ReadonlyAttribute
+    public var linePos: UInt64
+
+    @ReadonlyAttribute
+    public var offset: UInt64
+
+    @ReadonlyAttribute
+    public var length: UInt64
+}
+
+public enum GPUCompilationMessageType: JSString, JSValueCompatible {
+    case error = "error"
+    case warning = "warning"
+    case info = "info"
+
+    @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 GPUComputePassDescriptor: BridgedDictionary {
+    public convenience init(timestampWrites: GPUComputePassTimestampWrites) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.timestampWrites] = timestampWrites.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _timestampWrites = ReadWriteAttribute(jsObject: object, name: Strings.timestampWrites)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var timestampWrites: GPUComputePassTimestampWrites
+}
+
+public class GPUComputePassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUComputePassEncoder].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func setPipeline(pipeline: GPUComputePipeline) {
+        let this = jsObject
+        _ = this[Strings.setPipeline].function!(this: this, arguments: [pipeline.jsValue])
+    }
+
+    @inlinable public func dispatch(workgroupCountX: GPUSize32, workgroupCountY: GPUSize32? = nil, workgroupCountZ: GPUSize32? = nil) {
+        let this = jsObject
+        _ = this[Strings.dispatch].function!(this: this, arguments: [workgroupCountX.jsValue, workgroupCountY?.jsValue ?? .undefined, workgroupCountZ?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func dispatchIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
+        let this = jsObject
+        _ = this[Strings.dispatchIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
+    }
+
+    @inlinable public func end() {
+        let this = jsObject
+        _ = this[Strings.end].function!(this: this, arguments: [])
+    }
+}
+
+public enum GPUComputePassTimestampLocation: JSString, JSValueCompatible {
+    case beginning = "beginning"
+    case end = "end"
+
+    @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 GPUComputePassTimestampWrite: BridgedDictionary {
+    public convenience init(querySet: GPUQuerySet, queryIndex: GPUSize32, location: GPUComputePassTimestampLocation) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.querySet] = querySet.jsValue
+        object[Strings.queryIndex] = queryIndex.jsValue
+        object[Strings.location] = location.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet)
+        _queryIndex = ReadWriteAttribute(jsObject: object, name: Strings.queryIndex)
+        _location = ReadWriteAttribute(jsObject: object, name: Strings.location)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var querySet: GPUQuerySet
+
+    @ReadWriteAttribute
+    public var queryIndex: GPUSize32
+
+    @ReadWriteAttribute
+    public var location: GPUComputePassTimestampLocation
+}
+
+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 class GPUComputePipelineDescriptor: BridgedDictionary {
+    public convenience init(compute: GPUProgrammableStage) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.compute] = compute.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _compute = ReadWriteAttribute(jsObject: object, name: Strings.compute)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var compute: GPUProgrammableStage
+}
+
+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) {
+        let this = jsObject
+        _ = this[Strings.pushDebugGroup].function!(this: this, arguments: [groupLabel.jsValue])
+    }
+
+    @inlinable func popDebugGroup() {
+        let this = jsObject
+        _ = this[Strings.popDebugGroup].function!(this: this, arguments: [])
+    }
+
+    @inlinable func insertDebugMarker(markerLabel: String) {
+        let this = jsObject
+        _ = this[Strings.insertDebugMarker].function!(this: this, arguments: [markerLabel.jsValue])
+    }
+}
+
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.depthWriteEnabled] = depthWriteEnabled.jsValue
+        object[Strings.depthCompare] = depthCompare.jsValue
+        object[Strings.stencilFront] = stencilFront.jsValue
+        object[Strings.stencilBack] = stencilBack.jsValue
+        object[Strings.stencilReadMask] = stencilReadMask.jsValue
+        object[Strings.stencilWriteMask] = stencilWriteMask.jsValue
+        object[Strings.depthBias] = depthBias.jsValue
+        object[Strings.depthBiasSlopeScale] = depthBiasSlopeScale.jsValue
+        object[Strings.depthBiasClamp] = depthBiasClamp.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var stencilWriteMask: GPUStencilValue
+
+    @ReadWriteAttribute
+    public var depthBias: GPUDepthBias
+
+    @ReadWriteAttribute
+    public var depthBiasSlopeScale: Float
+
+    @ReadWriteAttribute
+    public var depthBiasClamp: Float
+}
+
+public class GPUDevice: EventTarget, GPUObjectBase {
+    @inlinable override public 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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onuncapturederror)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @ReadonlyAttribute
+    public var features: GPUSupportedFeatures
+
+    @ReadonlyAttribute
+    public var limits: GPUSupportedLimits
+
+    @ReadonlyAttribute
+    public var queue: GPUQueue
+
+    @inlinable public func destroy() {
+        let this = jsObject
+        _ = this[Strings.destroy].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func createBuffer(descriptor: GPUBufferDescriptor) -> GPUBuffer {
+        let this = jsObject
+        return this[Strings.createBuffer].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createTexture(descriptor: GPUTextureDescriptor) -> GPUTexture {
+        let this = jsObject
+        return this[Strings.createTexture].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createSampler(descriptor: GPUSamplerDescriptor? = nil) -> GPUSampler {
+        let this = jsObject
+        return this[Strings.createSampler].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func importExternalTexture(descriptor: GPUExternalTextureDescriptor) -> GPUExternalTexture {
+        let this = jsObject
+        return this[Strings.importExternalTexture].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createBindGroupLayout(descriptor: GPUBindGroupLayoutDescriptor) -> GPUBindGroupLayout {
+        let this = jsObject
+        return this[Strings.createBindGroupLayout].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createPipelineLayout(descriptor: GPUPipelineLayoutDescriptor) -> GPUPipelineLayout {
+        let this = jsObject
+        return this[Strings.createPipelineLayout].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createBindGroup(descriptor: GPUBindGroupDescriptor) -> GPUBindGroup {
+        let this = jsObject
+        return this[Strings.createBindGroup].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createShaderModule(descriptor: GPUShaderModuleDescriptor) -> GPUShaderModule {
+        let this = jsObject
+        return this[Strings.createShaderModule].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createComputePipeline(descriptor: GPUComputePipelineDescriptor) -> GPUComputePipeline {
+        let this = jsObject
+        return this[Strings.createComputePipeline].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createRenderPipeline(descriptor: GPURenderPipelineDescriptor) -> GPURenderPipeline {
+        let this = jsObject
+        return this[Strings.createRenderPipeline].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createComputePipelineAsync(descriptor: GPUComputePipelineDescriptor) -> JSPromise {
+        let this = jsObject
+        return this[Strings.createComputePipelineAsync].function!(this: this, arguments: [descriptor.jsValue]).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: [descriptor.jsValue]).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: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func createRenderPipelineAsync(descriptor: GPURenderPipelineDescriptor) async throws -> GPURenderPipeline {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.createRenderPipelineAsync].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
+
+    @inlinable public func createCommandEncoder(descriptor: GPUCommandEncoderDescriptor? = nil) -> GPUCommandEncoder {
+        let this = jsObject
+        return this[Strings.createCommandEncoder].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func createRenderBundleEncoder(descriptor: GPURenderBundleEncoderDescriptor) -> GPURenderBundleEncoder {
+        let this = jsObject
+        return this[Strings.createRenderBundleEncoder].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @inlinable public func createQuerySet(descriptor: GPUQuerySetDescriptor) -> GPUQuerySet {
+        let this = jsObject
+        return this[Strings.createQuerySet].function!(this: this, arguments: [descriptor.jsValue]).fromJSValue()!
+    }
+
+    @ReadonlyAttribute
+    public var lost: JSPromise
+
+    @inlinable public func pushErrorScope(filter: GPUErrorFilter) {
+        let this = jsObject
+        _ = this[Strings.pushErrorScope].function!(this: this, arguments: [filter.jsValue])
+    }
+
+    @inlinable 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()!
+    }
+
+    @ReadWriteAttribute
+    public var onuncapturederror: EventHandler
+}
+
+public class GPUDeviceDescriptor: BridgedDictionary {
+    public convenience init(requiredFeatures: [GPUFeatureName], requiredLimits: [String: GPUSize64], defaultQueue: GPUQueueDescriptor) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.requiredFeatures] = requiredFeatures.jsValue
+        object[Strings.requiredLimits] = requiredLimits.jsValue
+        object[Strings.defaultQueue] = defaultQueue.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var requiredFeatures: [GPUFeatureName]
+
+    @ReadWriteAttribute
+    public var requiredLimits: [String: GPUSize64]
+
+    @ReadWriteAttribute
+    public var defaultQueue: GPUQueueDescriptor
+}
+
+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
+    }
+
+    @ReadonlyAttribute
+    public var reason: GPUDeviceLostReason?
+
+    @ReadonlyAttribute
+    public var message: String
+}
+
+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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public enum GPUErrorFilter: JSString, JSValueCompatible {
+    case outOfMemory = "out-of-memory"
+    case validation = "validation"
+
+    @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 GPUExtent3DDict: BridgedDictionary {
+    public convenience init(width: GPUIntegerCoordinate, height: GPUIntegerCoordinate, depthOrArrayLayers: GPUIntegerCoordinate) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.width] = width.jsValue
+        object[Strings.height] = height.jsValue
+        object[Strings.depthOrArrayLayers] = depthOrArrayLayers.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var width: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var height: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var depthOrArrayLayers: GPUIntegerCoordinate
+}
+
+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) {
+        _expired = ReadonlyAttribute(jsObject: jsObject, name: Strings.expired)
+        self.jsObject = jsObject
+    }
+
+    @ReadonlyAttribute
+    public var expired: Bool
+}
+
+public class GPUExternalTextureBindingLayout: 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 class GPUExternalTextureDescriptor: BridgedDictionary {
+    public convenience init(source: HTMLVideoElement, colorSpace: GPUPredefinedColorSpace) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.source] = source.jsValue
+        object[Strings.colorSpace] = colorSpace.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var source: HTMLVideoElement
+
+    @ReadWriteAttribute
+    public var colorSpace: GPUPredefinedColorSpace
+}
+
+public enum GPUFeatureName: JSString, JSValueCompatible {
+    case depthClipControl = "depth-clip-control"
+    case depth24unormStencil8 = "depth24unorm-stencil8"
+    case depth32floatStencil8 = "depth32float-stencil8"
+    case textureCompressionBc = "texture-compression-bc"
+    case textureCompressionEtc2 = "texture-compression-etc2"
+    case textureCompressionAstc = "texture-compression-astc"
+    case timestampQuery = "timestamp-query"
+    case indirectFirstInstance = "indirect-first-instance"
+
+    @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 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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public class GPUFragmentState: BridgedDictionary {
+    public convenience init(targets: [GPUColorTargetState?]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.targets] = targets.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _targets = ReadWriteAttribute(jsObject: object, name: Strings.targets)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var targets: [GPUColorTargetState?]
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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] = buffer.jsValue
+        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: HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas, origin: GPUOrigin2D, flipY: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.source] = source.jsValue
+        object[Strings.origin] = origin.jsValue
+        object[Strings.flipY] = flipY.jsValue
+        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: HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas
+
+    @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] = texture.jsValue
+        object[Strings.mipLevel] = mipLevel.jsValue
+        object[Strings.origin] = origin.jsValue
+        object[Strings.aspect] = aspect.jsValue
+        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: GPUPredefinedColorSpace, premultipliedAlpha: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.colorSpace] = colorSpace.jsValue
+        object[Strings.premultipliedAlpha] = premultipliedAlpha.jsValue
+        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: GPUPredefinedColorSpace
+
+    @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] = offset.jsValue
+        object[Strings.bytesPerRow] = bytesPerRow.jsValue
+        object[Strings.rowsPerImage] = rowsPerImage.jsValue
+        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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public enum GPULoadOp: JSString, JSValueCompatible {
+    case load = "load"
+    case clear = "clear"
+
+    @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 GPUMapMode {
+    @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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public class GPUMultisampleState: BridgedDictionary {
+    public convenience init(count: GPUSize32, mask: GPUSampleMask, alphaToCoverageEnabled: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.count] = count.jsValue
+        object[Strings.mask] = mask.jsValue
+        object[Strings.alphaToCoverageEnabled] = alphaToCoverageEnabled.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var count: GPUSize32
+
+    @ReadWriteAttribute
+    public var mask: GPUSampleMask
+
+    @ReadWriteAttribute
+    public var alphaToCoverageEnabled: Bool
+}
+
+public protocol GPUObjectBase: JSBridgedClass {}
+public extension GPUObjectBase {
+    @inlinable var label: String? {
+        get { jsObject[Strings.label].fromJSValue()! }
+        nonmutating set { jsObject[Strings.label] = newValue.jsValue }
+    }
+}
+
+public class GPUObjectDescriptorBase: BridgedDictionary {
+    public convenience init(label: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.label] = label.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _label = ReadWriteAttribute(jsObject: object, name: Strings.label)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var label: String
+}
+
+public class GPUOrigin2DDict: BridgedDictionary {
+    public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.x] = x.jsValue
+        object[Strings.y] = y.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var x: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var y: GPUIntegerCoordinate
+}
+
+public class GPUOrigin3DDict: BridgedDictionary {
+    public convenience init(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, z: GPUIntegerCoordinate) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.x] = x.jsValue
+        object[Strings.y] = y.jsValue
+        object[Strings.z] = z.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var x: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var y: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var z: GPUIntegerCoordinate
+}
+
+public class GPUOutOfMemoryError: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUOutOfMemoryError].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public convenience init() {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: []))
+    }
+}
+
+public protocol GPUPipelineBase: JSBridgedClass {}
+public extension GPUPipelineBase {
+    @inlinable func getBindGroupLayout(index: UInt32) -> GPUBindGroupLayout {
+        let this = jsObject
+        return this[Strings.getBindGroupLayout].function!(this: this, arguments: [index.jsValue]).fromJSValue()!
+    }
+}
+
+public class GPUPipelineDescriptorBase: BridgedDictionary {
+    public convenience init(layout: GPUPipelineLayout) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.layout] = layout.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var layout: GPUPipelineLayout
+}
+
+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 class GPUPipelineLayoutDescriptor: BridgedDictionary {
+    public convenience init(bindGroupLayouts: [GPUBindGroupLayout]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.bindGroupLayouts] = bindGroupLayouts.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _bindGroupLayouts = ReadWriteAttribute(jsObject: object, name: Strings.bindGroupLayouts)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var bindGroupLayouts: [GPUBindGroupLayout]
+}
+
+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)
+        }
+        return nil
+    }
+
+    @inlinable public init?(string: String) {
+        self.init(rawValue: JSString(string))
+    }
+
+    @inlinable public var jsValue: JSValue { rawValue.jsValue }
+}
+
+public enum GPUPredefinedColorSpace: JSString, JSValueCompatible {
+    case srgb = "srgb"
+
+    @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 GPUPrimitiveState: BridgedDictionary {
+    public convenience init(topology: GPUPrimitiveTopology, stripIndexFormat: GPUIndexFormat, frontFace: GPUFrontFace, cullMode: GPUCullMode, unclippedDepth: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.topology] = topology.jsValue
+        object[Strings.stripIndexFormat] = stripIndexFormat.jsValue
+        object[Strings.frontFace] = frontFace.jsValue
+        object[Strings.cullMode] = cullMode.jsValue
+        object[Strings.unclippedDepth] = unclippedDepth.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var topology: GPUPrimitiveTopology
+
+    @ReadWriteAttribute
+    public var stripIndexFormat: GPUIndexFormat
+
+    @ReadWriteAttribute
+    public var frontFace: GPUFrontFace
+
+    @ReadWriteAttribute
+    public var cullMode: GPUCullMode
+
+    @ReadWriteAttribute
+    public var unclippedDepth: Bool
+}
+
+public enum GPUPrimitiveTopology: JSString, JSValueCompatible {
+    case pointList = "point-list"
+    case lineList = "line-list"
+    case lineStrip = "line-strip"
+    case triangleList = "triangle-list"
+    case triangleStrip = "triangle-strip"
+
+    @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 GPUProgrammablePassEncoder: JSBridgedClass {}
+public extension GPUProgrammablePassEncoder {
+    @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsets: [GPUBufferDynamicOffset]? = nil) {
+        let this = jsObject
+        _ = this[Strings.setBindGroup].function!(this: this, arguments: [index.jsValue, bindGroup.jsValue, dynamicOffsets?.jsValue ?? .undefined])
+    }
+
+    @inlinable func setBindGroup(index: GPUIndex32, bindGroup: GPUBindGroup, dynamicOffsetsData: Uint32Array, dynamicOffsetsDataStart: GPUSize64, dynamicOffsetsDataLength: GPUSize32) {
+        let this = jsObject
+        _ = this[Strings.setBindGroup].function!(this: this, arguments: [index.jsValue, bindGroup.jsValue, dynamicOffsetsData.jsValue, dynamicOffsetsDataStart.jsValue, dynamicOffsetsDataLength.jsValue])
+    }
+}
+
+public class GPUProgrammableStage: BridgedDictionary {
+    public convenience init(module: GPUShaderModule, entryPoint: String, constants: [String: GPUPipelineConstantValue]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.module] = module.jsValue
+        object[Strings.entryPoint] = entryPoint.jsValue
+        object[Strings.constants] = constants.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var module: GPUShaderModule
+
+    @ReadWriteAttribute
+    public var entryPoint: String
+
+    @ReadWriteAttribute
+    public var constants: [String: GPUPipelineConstantValue]
+}
+
+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) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func destroy() {
+        let this = jsObject
+        _ = this[Strings.destroy].function!(this: this, arguments: [])
+    }
+}
+
+public class GPUQuerySetDescriptor: BridgedDictionary {
+    public convenience init(type: GPUQueryType, count: GPUSize32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        object[Strings.count] = count.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var type: GPUQueryType
+
+    @ReadWriteAttribute
+    public var count: GPUSize32
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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
+    }
+
+    @inlinable public func submit(commandBuffers: [GPUCommandBuffer]) {
+        let this = jsObject
+        _ = this[Strings.submit].function!(this: this, arguments: [commandBuffers.jsValue])
+    }
+
+    @inlinable 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: BufferSource, dataOffset: GPUSize64? = nil, size: GPUSize64? = nil) {
+        let this = jsObject
+        _ = this[Strings.writeBuffer].function!(this: this, arguments: [buffer.jsValue, bufferOffset.jsValue, data.jsValue, dataOffset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
+    }
+
+    @inlinable public func writeTexture(destination: GPUImageCopyTexture, data: BufferSource, dataLayout: GPUImageDataLayout, size: GPUExtent3D) {
+        let this = jsObject
+        _ = this[Strings.writeTexture].function!(this: this, arguments: [destination.jsValue, data.jsValue, dataLayout.jsValue, size.jsValue])
+    }
+
+    @inlinable public func copyExternalImageToTexture(source: GPUImageCopyExternalImage, destination: GPUImageCopyTextureTagged, copySize: GPUExtent3D) {
+        let this = jsObject
+        _ = this[Strings.copyExternalImageToTexture].function!(this: this, arguments: [source.jsValue, destination.jsValue, copySize.jsValue])
+    }
+}
+
+public class GPUQueueDescriptor: 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 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 class GPURenderBundleDescriptor: 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 class GPURenderBundleEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder, GPURenderEncoderBase {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderBundleEncoder].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func finish(descriptor: GPURenderBundleDescriptor? = nil) -> GPURenderBundle {
+        let this = jsObject
+        return this[Strings.finish].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+    }
+}
+
+public class GPURenderBundleEncoderDescriptor: BridgedDictionary {
+    public convenience init(depthReadOnly: Bool, stencilReadOnly: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.depthReadOnly] = depthReadOnly.jsValue
+        object[Strings.stencilReadOnly] = stencilReadOnly.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var depthReadOnly: Bool
+
+    @ReadWriteAttribute
+    public var stencilReadOnly: Bool
+}
+
+public protocol GPURenderEncoderBase: JSBridgedClass {}
+public extension GPURenderEncoderBase {
+    @inlinable func setPipeline(pipeline: GPURenderPipeline) {
+        let this = jsObject
+        _ = this[Strings.setPipeline].function!(this: this, arguments: [pipeline.jsValue])
+    }
+
+    @inlinable func setIndexBuffer(buffer: GPUBuffer, indexFormat: GPUIndexFormat, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
+        let this = jsObject
+        _ = this[Strings.setIndexBuffer].function!(this: this, arguments: [buffer.jsValue, indexFormat.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
+    }
+
+    @inlinable func setVertexBuffer(slot: GPUIndex32, buffer: GPUBuffer, offset: GPUSize64? = nil, size: GPUSize64? = nil) {
+        let this = jsObject
+        _ = this[Strings.setVertexBuffer].function!(this: this, arguments: [slot.jsValue, buffer.jsValue, offset?.jsValue ?? .undefined, size?.jsValue ?? .undefined])
+    }
+
+    @inlinable func draw(vertexCount: GPUSize32, instanceCount: GPUSize32? = nil, firstVertex: GPUSize32? = nil, firstInstance: GPUSize32? = nil) {
+        let this = jsObject
+        _ = this[Strings.draw].function!(this: this, arguments: [vertexCount.jsValue, instanceCount?.jsValue ?? .undefined, firstVertex?.jsValue ?? .undefined, firstInstance?.jsValue ?? .undefined])
+    }
+
+    @inlinable 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: [indexCount.jsValue, instanceCount?.jsValue ?? .undefined, firstIndex?.jsValue ?? .undefined, baseVertex?.jsValue ?? .undefined, firstInstance?.jsValue ?? .undefined])
+    }
+
+    @inlinable func drawIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
+        let this = jsObject
+        _ = this[Strings.drawIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
+    }
+
+    @inlinable func drawIndexedIndirect(indirectBuffer: GPUBuffer, indirectOffset: GPUSize64) {
+        let this = jsObject
+        _ = this[Strings.drawIndexedIndirect].function!(this: this, arguments: [indirectBuffer.jsValue, indirectOffset.jsValue])
+    }
+}
+
+public class GPURenderPassColorAttachment: BridgedDictionary {
+    public convenience init(view: GPUTextureView, resolveTarget: GPUTextureView, clearValue: GPUColor, loadOp: GPULoadOp, storeOp: GPUStoreOp) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.view] = view.jsValue
+        object[Strings.resolveTarget] = resolveTarget.jsValue
+        object[Strings.clearValue] = clearValue.jsValue
+        object[Strings.loadOp] = loadOp.jsValue
+        object[Strings.storeOp] = storeOp.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var view: GPUTextureView
+
+    @ReadWriteAttribute
+    public var resolveTarget: GPUTextureView
+
+    @ReadWriteAttribute
+    public var clearValue: GPUColor
+
+    @ReadWriteAttribute
+    public var loadOp: GPULoadOp
+
+    @ReadWriteAttribute
+    public var storeOp: GPUStoreOp
+}
+
+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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.view] = view.jsValue
+        object[Strings.depthClearValue] = depthClearValue.jsValue
+        object[Strings.depthLoadOp] = depthLoadOp.jsValue
+        object[Strings.depthStoreOp] = depthStoreOp.jsValue
+        object[Strings.depthReadOnly] = depthReadOnly.jsValue
+        object[Strings.stencilClearValue] = stencilClearValue.jsValue
+        object[Strings.stencilLoadOp] = stencilLoadOp.jsValue
+        object[Strings.stencilStoreOp] = stencilStoreOp.jsValue
+        object[Strings.stencilReadOnly] = stencilReadOnly.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var stencilClearValue: GPUStencilValue
+
+    @ReadWriteAttribute
+    public var stencilLoadOp: GPULoadOp
+
+    @ReadWriteAttribute
+    public var stencilStoreOp: GPUStoreOp
+
+    @ReadWriteAttribute
+    public var stencilReadOnly: Bool
+}
+
+public class GPURenderPassDescriptor: BridgedDictionary {
+    public convenience init(colorAttachments: [GPURenderPassColorAttachment?], depthStencilAttachment: GPURenderPassDepthStencilAttachment, occlusionQuerySet: GPUQuerySet, timestampWrites: GPURenderPassTimestampWrites) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.colorAttachments] = colorAttachments.jsValue
+        object[Strings.depthStencilAttachment] = depthStencilAttachment.jsValue
+        object[Strings.occlusionQuerySet] = occlusionQuerySet.jsValue
+        object[Strings.timestampWrites] = timestampWrites.jsValue
+        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)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var colorAttachments: [GPURenderPassColorAttachment?]
+
+    @ReadWriteAttribute
+    public var depthStencilAttachment: GPURenderPassDepthStencilAttachment
+
+    @ReadWriteAttribute
+    public var occlusionQuerySet: GPUQuerySet
+
+    @ReadWriteAttribute
+    public var timestampWrites: GPURenderPassTimestampWrites
+}
+
+public class GPURenderPassEncoder: JSBridgedClass, GPUObjectBase, GPUCommandsMixin, GPUDebugCommandsMixin, GPUProgrammablePassEncoder, GPURenderEncoderBase {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPURenderPassEncoder].function }
+
+    public let 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) {
+        let _arg0 = x.jsValue
+        let _arg1 = y.jsValue
+        let _arg2 = width.jsValue
+        let _arg3 = height.jsValue
+        let _arg4 = minDepth.jsValue
+        let _arg5 = maxDepth.jsValue
+        let this = jsObject
+        _ = this[Strings.setViewport].function!(this: this, arguments: [_arg0, _arg1, _arg2, _arg3, _arg4, _arg5])
+    }
+
+    @inlinable public func setScissorRect(x: GPUIntegerCoordinate, y: GPUIntegerCoordinate, width: GPUIntegerCoordinate, height: GPUIntegerCoordinate) {
+        let this = jsObject
+        _ = this[Strings.setScissorRect].function!(this: this, arguments: [x.jsValue, y.jsValue, width.jsValue, height.jsValue])
+    }
+
+    @inlinable public func setBlendConstant(color: GPUColor) {
+        let this = jsObject
+        _ = this[Strings.setBlendConstant].function!(this: this, arguments: [color.jsValue])
+    }
+
+    @inlinable public func setStencilReference(reference: GPUStencilValue) {
+        let this = jsObject
+        _ = this[Strings.setStencilReference].function!(this: this, arguments: [reference.jsValue])
+    }
+
+    @inlinable public func beginOcclusionQuery(queryIndex: GPUSize32) {
+        let this = jsObject
+        _ = this[Strings.beginOcclusionQuery].function!(this: this, arguments: [queryIndex.jsValue])
+    }
+
+    @inlinable public func endOcclusionQuery() {
+        let this = jsObject
+        _ = this[Strings.endOcclusionQuery].function!(this: this, arguments: [])
+    }
+
+    @inlinable public func executeBundles(bundles: [GPURenderBundle]) {
+        let this = jsObject
+        _ = this[Strings.executeBundles].function!(this: this, arguments: [bundles.jsValue])
+    }
+
+    @inlinable 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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.colorFormats] = colorFormats.jsValue
+        object[Strings.depthStencilFormat] = depthStencilFormat.jsValue
+        object[Strings.sampleCount] = sampleCount.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var colorFormats: [GPUTextureFormat?]
+
+    @ReadWriteAttribute
+    public var depthStencilFormat: GPUTextureFormat
+
+    @ReadWriteAttribute
+    public var sampleCount: GPUSize32
+}
+
+public enum GPURenderPassTimestampLocation: JSString, JSValueCompatible {
+    case beginning = "beginning"
+    case end = "end"
+
+    @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 GPURenderPassTimestampWrite: BridgedDictionary {
+    public convenience init(querySet: GPUQuerySet, queryIndex: GPUSize32, location: GPURenderPassTimestampLocation) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.querySet] = querySet.jsValue
+        object[Strings.queryIndex] = queryIndex.jsValue
+        object[Strings.location] = location.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _querySet = ReadWriteAttribute(jsObject: object, name: Strings.querySet)
+        _queryIndex = ReadWriteAttribute(jsObject: object, name: Strings.queryIndex)
+        _location = ReadWriteAttribute(jsObject: object, name: Strings.location)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var querySet: GPUQuerySet
+
+    @ReadWriteAttribute
+    public var queryIndex: GPUSize32
+
+    @ReadWriteAttribute
+    public var location: GPURenderPassTimestampLocation
+}
+
+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 class GPURenderPipelineDescriptor: BridgedDictionary {
+    public convenience init(vertex: GPUVertexState, primitive: GPUPrimitiveState, depthStencil: GPUDepthStencilState, multisample: GPUMultisampleState, fragment: GPUFragmentState) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.vertex] = vertex.jsValue
+        object[Strings.primitive] = primitive.jsValue
+        object[Strings.depthStencil] = depthStencil.jsValue
+        object[Strings.multisample] = multisample.jsValue
+        object[Strings.fragment] = fragment.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var vertex: GPUVertexState
+
+    @ReadWriteAttribute
+    public var primitive: GPUPrimitiveState
+
+    @ReadWriteAttribute
+    public var depthStencil: GPUDepthStencilState
+
+    @ReadWriteAttribute
+    public var multisample: GPUMultisampleState
+
+    @ReadWriteAttribute
+    public var fragment: GPUFragmentState
+}
+
+public class GPURequestAdapterOptions: BridgedDictionary {
+    public convenience init(powerPreference: GPUPowerPreference, forceFallbackAdapter: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.powerPreference] = powerPreference.jsValue
+        object[Strings.forceFallbackAdapter] = forceFallbackAdapter.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _powerPreference = ReadWriteAttribute(jsObject: object, name: Strings.powerPreference)
+        _forceFallbackAdapter = ReadWriteAttribute(jsObject: object, name: Strings.forceFallbackAdapter)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var powerPreference: GPUPowerPreference
+
+    @ReadWriteAttribute
+    public var forceFallbackAdapter: Bool
+}
+
+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 class GPUSamplerBindingLayout: BridgedDictionary {
+    public convenience init(type: GPUSamplerBindingType) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.type] = type.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _type = ReadWriteAttribute(jsObject: object, name: Strings.type)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var type: GPUSamplerBindingType
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.addressModeU] = addressModeU.jsValue
+        object[Strings.addressModeV] = addressModeV.jsValue
+        object[Strings.addressModeW] = addressModeW.jsValue
+        object[Strings.magFilter] = magFilter.jsValue
+        object[Strings.minFilter] = minFilter.jsValue
+        object[Strings.mipmapFilter] = mipmapFilter.jsValue
+        object[Strings.lodMinClamp] = lodMinClamp.jsValue
+        object[Strings.lodMaxClamp] = lodMaxClamp.jsValue
+        object[Strings.compare] = compare.jsValue
+        object[Strings.maxAnisotropy] = maxAnisotropy.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var lodMinClamp: Float
+
+    @ReadWriteAttribute
+    public var lodMaxClamp: Float
+
+    @ReadWriteAttribute
+    public var compare: GPUCompareFunction
+
+    @ReadWriteAttribute
+    public var maxAnisotropy: UInt16
+}
+
+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
+    }
+
+    @inlinable public func compilationInfo() -> JSPromise {
+        let this = jsObject
+        return this[Strings.compilationInfo].function!(this: this, arguments: []).fromJSValue()!
+    }
+
+    @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
+    @inlinable public func compilationInfo() async throws -> GPUCompilationInfo {
+        let this = jsObject
+        let _promise: JSPromise = this[Strings.compilationInfo].function!(this: this, arguments: []).fromJSValue()!
+        return try await _promise.value.fromJSValue()!
+    }
+}
+
+public class GPUShaderModuleCompilationHint: BridgedDictionary {
+    public convenience init(layout: GPUPipelineLayout) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.layout] = layout.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _layout = ReadWriteAttribute(jsObject: object, name: Strings.layout)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var layout: GPUPipelineLayout
+}
+
+public class GPUShaderModuleDescriptor: BridgedDictionary {
+    public convenience init(code: String, sourceMap: JSObject, hints: [String: GPUShaderModuleCompilationHint]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.code] = code.jsValue
+        object[Strings.sourceMap] = sourceMap.jsValue
+        object[Strings.hints] = hints.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    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)
+    }
+
+    @ReadWriteAttribute
+    public var code: String
+
+    @ReadWriteAttribute
+    public var sourceMap: JSObject
+
+    @ReadWriteAttribute
+    public var hints: [String: GPUShaderModuleCompilationHint]
+}
+
+public enum GPUShaderStage {
+    @inlinable public static var jsObject: JSObject {
+        JSObject.global[Strings.GPUShaderStage].object!
+    }
+
+    public static let VERTEX: GPUFlagsConstant = 0x1
+
+    public static let FRAGMENT: GPUFlagsConstant = 0x2
+
+    public static let COMPUTE: GPUFlagsConstant = 0x4
+}
+
+public class GPUStencilFaceState: BridgedDictionary {
+    public convenience init(compare: GPUCompareFunction, failOp: GPUStencilOperation, depthFailOp: GPUStencilOperation, passOp: GPUStencilOperation) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.compare] = compare.jsValue
+        object[Strings.failOp] = failOp.jsValue
+        object[Strings.depthFailOp] = depthFailOp.jsValue
+        object[Strings.passOp] = passOp.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var compare: GPUCompareFunction
+
+    @ReadWriteAttribute
+    public var failOp: GPUStencilOperation
+
+    @ReadWriteAttribute
+    public var depthFailOp: GPUStencilOperation
+
+    @ReadWriteAttribute
+    public var passOp: GPUStencilOperation
+}
+
+public enum GPUStencilOperation: JSString, JSValueCompatible {
+    case keep = "keep"
+    case zero = "zero"
+    case replace = "replace"
+    case invert = "invert"
+    case incrementClamp = "increment-clamp"
+    case decrementClamp = "decrement-clamp"
+    case incrementWrap = "increment-wrap"
+    case decrementWrap = "decrement-wrap"
+
+    @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 GPUStorageTextureAccess: JSString, JSValueCompatible {
+    case writeOnly = "write-only"
+
+    @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 GPUStorageTextureBindingLayout: BridgedDictionary {
+    public convenience init(access: GPUStorageTextureAccess, format: GPUTextureFormat, viewDimension: GPUTextureViewDimension) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.access] = access.jsValue
+        object[Strings.format] = format.jsValue
+        object[Strings.viewDimension] = viewDimension.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var access: GPUStorageTextureAccess
+
+    @ReadWriteAttribute
+    public var format: GPUTextureFormat
+
+    @ReadWriteAttribute
+    public var viewDimension: GPUTextureViewDimension
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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
+    }
+
+    // XXX: make me Set-like!
+}
+
+public class GPUSupportedLimits: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUSupportedLimits].function }
+
+    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)
+        _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)
+        _maxVertexAttributes = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexAttributes)
+        _maxVertexBufferArrayStride = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxVertexBufferArrayStride)
+        _maxInterStageShaderComponents = ReadonlyAttribute(jsObject: jsObject, name: Strings.maxInterStageShaderComponents)
+        _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
+    }
+
+    @ReadonlyAttribute
+    public var maxTextureDimension1D: UInt32
+
+    @ReadonlyAttribute
+    public var maxTextureDimension2D: UInt32
+
+    @ReadonlyAttribute
+    public var maxTextureDimension3D: UInt32
+
+    @ReadonlyAttribute
+    public var maxTextureArrayLayers: UInt32
+
+    @ReadonlyAttribute
+    public var maxBindGroups: UInt32
+
+    @ReadonlyAttribute
+    public var maxDynamicUniformBuffersPerPipelineLayout: UInt32
+
+    @ReadonlyAttribute
+    public var maxDynamicStorageBuffersPerPipelineLayout: UInt32
+
+    @ReadonlyAttribute
+    public var maxSampledTexturesPerShaderStage: UInt32
+
+    @ReadonlyAttribute
+    public var maxSamplersPerShaderStage: UInt32
+
+    @ReadonlyAttribute
+    public var maxStorageBuffersPerShaderStage: UInt32
+
+    @ReadonlyAttribute
+    public var maxStorageTexturesPerShaderStage: UInt32
+
+    @ReadonlyAttribute
+    public var maxUniformBuffersPerShaderStage: UInt32
+
+    @ReadonlyAttribute
+    public var maxUniformBufferBindingSize: UInt64
+
+    @ReadonlyAttribute
+    public var maxStorageBufferBindingSize: UInt64
+
+    @ReadonlyAttribute
+    public var minUniformBufferOffsetAlignment: UInt32
+
+    @ReadonlyAttribute
+    public var minStorageBufferOffsetAlignment: UInt32
+
+    @ReadonlyAttribute
+    public var maxVertexBuffers: UInt32
+
+    @ReadonlyAttribute
+    public var maxVertexAttributes: UInt32
+
+    @ReadonlyAttribute
+    public var maxVertexBufferArrayStride: UInt32
+
+    @ReadonlyAttribute
+    public var maxInterStageShaderComponents: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeWorkgroupStorageSize: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeInvocationsPerWorkgroup: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeWorkgroupSizeX: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeWorkgroupSizeY: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeWorkgroupSizeZ: UInt32
+
+    @ReadonlyAttribute
+    public var maxComputeWorkgroupsPerDimension: UInt32
+}
+
+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) {
+        self.jsObject = jsObject
+    }
+
+    @inlinable public func createView(descriptor: GPUTextureViewDescriptor? = nil) -> GPUTextureView {
+        let this = jsObject
+        return this[Strings.createView].function!(this: this, arguments: [descriptor?.jsValue ?? .undefined]).fromJSValue()!
+    }
+
+    @inlinable public func destroy() {
+        let this = jsObject
+        _ = this[Strings.destroy].function!(this: this, arguments: [])
+    }
+}
+
+public enum GPUTextureAspect: JSString, JSValueCompatible {
+    case all = "all"
+    case stencilOnly = "stencil-only"
+    case depthOnly = "depth-only"
+
+    @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 GPUTextureBindingLayout: BridgedDictionary {
+    public convenience init(sampleType: GPUTextureSampleType, viewDimension: GPUTextureViewDimension, multisampled: Bool) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.sampleType] = sampleType.jsValue
+        object[Strings.viewDimension] = viewDimension.jsValue
+        object[Strings.multisampled] = multisampled.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var sampleType: GPUTextureSampleType
+
+    @ReadWriteAttribute
+    public var viewDimension: GPUTextureViewDimension
+
+    @ReadWriteAttribute
+    public var multisampled: Bool
+}
+
+public class GPUTextureDescriptor: BridgedDictionary {
+    public convenience init(size: GPUExtent3D, mipLevelCount: GPUIntegerCoordinate, sampleCount: GPUSize32, dimension: GPUTextureDimension, format: GPUTextureFormat, usage: GPUTextureUsageFlags, viewFormats: [GPUTextureFormat]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.size] = size.jsValue
+        object[Strings.mipLevelCount] = mipLevelCount.jsValue
+        object[Strings.sampleCount] = sampleCount.jsValue
+        object[Strings.dimension] = dimension.jsValue
+        object[Strings.format] = format.jsValue
+        object[Strings.usage] = usage.jsValue
+        object[Strings.viewFormats] = viewFormats.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var usage: GPUTextureUsageFlags
+
+    @ReadWriteAttribute
+    public var viewFormats: [GPUTextureFormat]
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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"
+    case r8uint = "r8uint"
+    case r8sint = "r8sint"
+    case r16uint = "r16uint"
+    case r16sint = "r16sint"
+    case r16float = "r16float"
+    case rg8unorm = "rg8unorm"
+    case rg8snorm = "rg8snorm"
+    case rg8uint = "rg8uint"
+    case rg8sint = "rg8sint"
+    case r32uint = "r32uint"
+    case r32sint = "r32sint"
+    case r32float = "r32float"
+    case rg16uint = "rg16uint"
+    case rg16sint = "rg16sint"
+    case rg16float = "rg16float"
+    case rgba8unorm = "rgba8unorm"
+    case rgba8unormSrgb = "rgba8unorm-srgb"
+    case rgba8snorm = "rgba8snorm"
+    case rgba8uint = "rgba8uint"
+    case rgba8sint = "rgba8sint"
+    case bgra8unorm = "bgra8unorm"
+    case bgra8unormSrgb = "bgra8unorm-srgb"
+    case rgb9e5ufloat = "rgb9e5ufloat"
+    case rgb10a2unorm = "rgb10a2unorm"
+    case rg11b10ufloat = "rg11b10ufloat"
+    case rg32uint = "rg32uint"
+    case rg32sint = "rg32sint"
+    case rg32float = "rg32float"
+    case rgba16uint = "rgba16uint"
+    case rgba16sint = "rgba16sint"
+    case rgba16float = "rgba16float"
+    case rgba32uint = "rgba32uint"
+    case rgba32sint = "rgba32sint"
+    case rgba32float = "rgba32float"
+    case stencil8 = "stencil8"
+    case depth16unorm = "depth16unorm"
+    case depth24plus = "depth24plus"
+    case depth24plusStencil8 = "depth24plus-stencil8"
+    case depth32float = "depth32float"
+    case depth24unormStencil8 = "depth24unorm-stencil8"
+    case depth32floatStencil8 = "depth32float-stencil8"
+    case bc1RgbaUnorm = "bc1-rgba-unorm"
+    case bc1RgbaUnormSrgb = "bc1-rgba-unorm-srgb"
+    case bc2RgbaUnorm = "bc2-rgba-unorm"
+    case bc2RgbaUnormSrgb = "bc2-rgba-unorm-srgb"
+    case bc3RgbaUnorm = "bc3-rgba-unorm"
+    case bc3RgbaUnormSrgb = "bc3-rgba-unorm-srgb"
+    case bc4RUnorm = "bc4-r-unorm"
+    case bc4RSnorm = "bc4-r-snorm"
+    case bc5RgUnorm = "bc5-rg-unorm"
+    case bc5RgSnorm = "bc5-rg-snorm"
+    case bc6hRgbUfloat = "bc6h-rgb-ufloat"
+    case bc6hRgbFloat = "bc6h-rgb-float"
+    case bc7RgbaUnorm = "bc7-rgba-unorm"
+    case bc7RgbaUnormSrgb = "bc7-rgba-unorm-srgb"
+    case etc2Rgb8unorm = "etc2-rgb8unorm"
+    case etc2Rgb8unormSrgb = "etc2-rgb8unorm-srgb"
+    case etc2Rgb8a1unorm = "etc2-rgb8a1unorm"
+    case etc2Rgb8a1unormSrgb = "etc2-rgb8a1unorm-srgb"
+    case etc2Rgba8unorm = "etc2-rgba8unorm"
+    case etc2Rgba8unormSrgb = "etc2-rgba8unorm-srgb"
+    case eacR11unorm = "eac-r11unorm"
+    case eacR11snorm = "eac-r11snorm"
+    case eacRg11unorm = "eac-rg11unorm"
+    case eacRg11snorm = "eac-rg11snorm"
+    case astc4x4Unorm = "astc-4x4-unorm"
+    case astc4x4UnormSrgb = "astc-4x4-unorm-srgb"
+    case astc5x4Unorm = "astc-5x4-unorm"
+    case astc5x4UnormSrgb = "astc-5x4-unorm-srgb"
+    case astc5x5Unorm = "astc-5x5-unorm"
+    case astc5x5UnormSrgb = "astc-5x5-unorm-srgb"
+    case astc6x5Unorm = "astc-6x5-unorm"
+    case astc6x5UnormSrgb = "astc-6x5-unorm-srgb"
+    case astc6x6Unorm = "astc-6x6-unorm"
+    case astc6x6UnormSrgb = "astc-6x6-unorm-srgb"
+    case astc8x5Unorm = "astc-8x5-unorm"
+    case astc8x5UnormSrgb = "astc-8x5-unorm-srgb"
+    case astc8x6Unorm = "astc-8x6-unorm"
+    case astc8x6UnormSrgb = "astc-8x6-unorm-srgb"
+    case astc8x8Unorm = "astc-8x8-unorm"
+    case astc8x8UnormSrgb = "astc-8x8-unorm-srgb"
+    case astc10x5Unorm = "astc-10x5-unorm"
+    case astc10x5UnormSrgb = "astc-10x5-unorm-srgb"
+    case astc10x6Unorm = "astc-10x6-unorm"
+    case astc10x6UnormSrgb = "astc-10x6-unorm-srgb"
+    case astc10x8Unorm = "astc-10x8-unorm"
+    case astc10x8UnormSrgb = "astc-10x8-unorm-srgb"
+    case astc10x10Unorm = "astc-10x10-unorm"
+    case astc10x10UnormSrgb = "astc-10x10-unorm-srgb"
+    case astc12x10Unorm = "astc-12x10-unorm"
+    case astc12x10UnormSrgb = "astc-12x10-unorm-srgb"
+    case astc12x12Unorm = "astc-12x12-unorm"
+    case astc12x12UnormSrgb = "astc-12x12-unorm-srgb"
+
+    @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 GPUTextureSampleType: JSString, JSValueCompatible {
+    case float = "float"
+    case unfilterableFloat = "unfilterable-float"
+    case depth = "depth"
+    case sint = "sint"
+    case uint = "uint"
+
+    @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 GPUTextureUsage {
+    @inlinable public static var jsObject: JSObject {
+        JSObject.global[Strings.GPUTextureUsage].object!
+    }
+
+    public static let COPY_SRC: GPUFlagsConstant = 0x01
+
+    public static let COPY_DST: GPUFlagsConstant = 0x02
+
+    public static let TEXTURE_BINDING: GPUFlagsConstant = 0x04
+
+    public static let STORAGE_BINDING: GPUFlagsConstant = 0x08
+
+    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 class GPUTextureViewDescriptor: BridgedDictionary {
+    public convenience init(format: GPUTextureFormat, dimension: GPUTextureViewDimension, aspect: GPUTextureAspect, baseMipLevel: GPUIntegerCoordinate, mipLevelCount: GPUIntegerCoordinate, baseArrayLayer: GPUIntegerCoordinate, arrayLayerCount: GPUIntegerCoordinate) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.dimension] = dimension.jsValue
+        object[Strings.aspect] = aspect.jsValue
+        object[Strings.baseMipLevel] = baseMipLevel.jsValue
+        object[Strings.mipLevelCount] = mipLevelCount.jsValue
+        object[Strings.baseArrayLayer] = baseArrayLayer.jsValue
+        object[Strings.arrayLayerCount] = arrayLayerCount.jsValue
+        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)
+    }
+
+    @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
+
+    @ReadWriteAttribute
+    public var baseArrayLayer: GPUIntegerCoordinate
+
+    @ReadWriteAttribute
+    public var arrayLayerCount: GPUIntegerCoordinate
+}
+
+public enum GPUTextureViewDimension: JSString, JSValueCompatible {
+    case _1d = "1d"
+    case _2d = "2d"
+    case _2dArray = "2d-array"
+    case cube = "cube"
+    case cubeArray = "cube-array"
+    case _3d = "3d"
+
+    @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 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 convenience init(type: String, gpuUncapturedErrorEventInitDict: GPUUncapturedErrorEventInit) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, gpuUncapturedErrorEventInitDict.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var error: GPUError
+}
+
+public class GPUUncapturedErrorEventInit: BridgedDictionary {
+    public convenience init(error: GPUError) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.error] = error.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _error = ReadWriteAttribute(jsObject: object, name: Strings.error)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var error: GPUError
+}
+
+public class GPUValidationError: JSBridgedClass {
+    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.GPUValidationError].function }
+
+    public let jsObject: JSObject
+
+    public required init(unsafelyWrapping jsObject: JSObject) {
+        _message = ReadonlyAttribute(jsObject: jsObject, name: Strings.message)
+        self.jsObject = jsObject
+    }
+
+    @inlinable public convenience init(message: String) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [message.jsValue]))
+    }
+
+    @ReadonlyAttribute
+    public var message: String
+}
+
+public class GPUVertexAttribute: BridgedDictionary {
+    public convenience init(format: GPUVertexFormat, offset: GPUSize64, shaderLocation: GPUIndex32) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.format] = format.jsValue
+        object[Strings.offset] = offset.jsValue
+        object[Strings.shaderLocation] = shaderLocation.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var format: GPUVertexFormat
+
+    @ReadWriteAttribute
+    public var offset: GPUSize64
+
+    @ReadWriteAttribute
+    public var shaderLocation: GPUIndex32
+}
+
+public class GPUVertexBufferLayout: BridgedDictionary {
+    public convenience init(arrayStride: GPUSize64, stepMode: GPUVertexStepMode, attributes: [GPUVertexAttribute]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.arrayStride] = arrayStride.jsValue
+        object[Strings.stepMode] = stepMode.jsValue
+        object[Strings.attributes] = attributes.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var arrayStride: GPUSize64
+
+    @ReadWriteAttribute
+    public var stepMode: GPUVertexStepMode
+
+    @ReadWriteAttribute
+    public var attributes: [GPUVertexAttribute]
+}
+
+public enum GPUVertexFormat: JSString, JSValueCompatible {
+    case uint8x2 = "uint8x2"
+    case uint8x4 = "uint8x4"
+    case sint8x2 = "sint8x2"
+    case sint8x4 = "sint8x4"
+    case unorm8x2 = "unorm8x2"
+    case unorm8x4 = "unorm8x4"
+    case snorm8x2 = "snorm8x2"
+    case snorm8x4 = "snorm8x4"
+    case uint16x2 = "uint16x2"
+    case uint16x4 = "uint16x4"
+    case sint16x2 = "sint16x2"
+    case sint16x4 = "sint16x4"
+    case unorm16x2 = "unorm16x2"
+    case unorm16x4 = "unorm16x4"
+    case snorm16x2 = "snorm16x2"
+    case snorm16x4 = "snorm16x4"
+    case float16x2 = "float16x2"
+    case float16x4 = "float16x4"
+    case float32 = "float32"
+    case float32x2 = "float32x2"
+    case float32x3 = "float32x3"
+    case float32x4 = "float32x4"
+    case uint32 = "uint32"
+    case uint32x2 = "uint32x2"
+    case uint32x3 = "uint32x3"
+    case uint32x4 = "uint32x4"
+    case sint32 = "sint32"
+    case sint32x2 = "sint32x2"
+    case sint32x3 = "sint32x3"
+    case sint32x4 = "sint32x4"
+
+    @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 GPUVertexState: BridgedDictionary {
+    public convenience init(buffers: [GPUVertexBufferLayout?]) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.buffers] = buffers.jsValue
+        self.init(unsafelyWrapping: object)
+    }
+
+    public required init(unsafelyWrapping object: JSObject) {
+        _buffers = ReadWriteAttribute(jsObject: object, name: Strings.buffers)
+        super.init(unsafelyWrapping: object)
+    }
+
+    @ReadWriteAttribute
+    public var buffers: [GPUVertexBufferLayout?]
+}
+
+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)
+        }
+        return nil
+    }
+
+    @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()! }
+}
+
+public typealias GPUBufferUsageFlags = UInt32
+public typealias GPUMapModeFlags = UInt32
+public typealias GPUTextureUsageFlags = UInt32
+public typealias GPUShaderStageFlags = UInt32
+
+public typealias GPUPipelineConstantValue = Double
+public typealias GPUColorWriteFlags = UInt32
+public typealias GPUComputePassTimestampWrites = [GPUComputePassTimestampWrite]
+public typealias GPURenderPassTimestampWrites = [GPURenderPassTimestampWrite]
+
+public typealias GPUBufferDynamicOffset = UInt32
+public typealias GPUStencilValue = UInt32
+public typealias GPUSampleMask = UInt32
+public typealias GPUDepthBias = Int32
+public typealias GPUSize64 = UInt64
+public typealias GPUIntegerCoordinate = UInt32
+public typealias GPUIndex32 = UInt32
+public typealias GPUSize32 = UInt32
+public typealias GPUSignedOffset32 = Int32
+public typealias GPUFlagsConstant = UInt32
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 AnalyserNode: JSString = "AnalyserNode"
+    @usableFromInline static let Animation: JSString = "Animation"
+    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
+    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
+    @usableFromInline static let Attr: JSString = "Attr"
+    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
+    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
+    @usableFromInline static let AudioContext: JSString = "AudioContext"
+    @usableFromInline static let AudioData: JSString = "AudioData"
+    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
+    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
+    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
+    @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 AudioTrack: JSString = "AudioTrack"
+    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
+    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
+    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
+    @usableFromInline static let BarProp: JSString = "BarProp"
+    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
+    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
+    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
+    @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 CanvasFilter: JSString = "CanvasFilter"
+    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
+    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
+    @usableFromInline static let CharacterData: JSString = "CharacterData"
+    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
+    @usableFromInline static let Comment: JSString = "Comment"
+    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
+    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
+    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
+    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
+    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
+    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
+    @usableFromInline static let DOMException: JSString = "DOMException"
+    @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 DelayNode: JSString = "DelayNode"
+    @usableFromInline static let Document: JSString = "Document"
+    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
+    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
+    @usableFromInline static let DocumentType: JSString = "DocumentType"
+    @usableFromInline static let DragEvent: JSString = "DragEvent"
+    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
+    @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 GPU: JSString = "GPU"
+    @usableFromInline static let GPUAdapter: JSString = "GPUAdapter"
+    @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 GPUExternalTexture: JSString = "GPUExternalTexture"
+    @usableFromInline static let GPUMapMode: JSString = "GPUMapMode"
+    @usableFromInline static let GPUOutOfMemoryError: JSString = "GPUOutOfMemoryError"
+    @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 GainNode: JSString = "GainNode"
+    @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 IIRFilterNode: JSString = "IIRFilterNode"
+    @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 KeyframeEffect: JSString = "KeyframeEffect"
+    @usableFromInline static let Location: JSString = "Location"
+    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
+    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
+    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
+    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @usableFromInline static let MediaStream: JSString = "MediaStream"
+    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
+    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
+    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
+    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
+    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
+    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
+    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
+    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
+    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
+    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
+    @usableFromInline static let PannerNode: JSString = "PannerNode"
+    @usableFromInline static let Path2D: JSString = "Path2D"
+    @usableFromInline static let Performance: JSString = "Performance"
+    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
+    @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 Q: JSString = "Q"
+    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
+    @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 StaticRange: JSString = "StaticRange"
+    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
+    @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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WaveShaperNode: JSString = "WaveShaperNode"
+    @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext"
+    @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 WebGLQuery: JSString = "WebGLQuery"
+    @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer"
+    @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext"
+    @usableFromInline static let WebGLSampler: JSString = "WebGLSampler"
+    @usableFromInline static let WebGLShader: JSString = "WebGLShader"
+    @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
+    @usableFromInline static let WebGLSync: JSString = "WebGLSync"
+    @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
+    @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback"
+    @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
+    @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject"
+    @usableFromInline static let WebSocket: JSString = "WebSocket"
+    @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 access: JSString = "access"
+    @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 activeTexture: JSString = "activeTexture"
+    @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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @usableFromInline static let addTextTrack: JSString = "addTextTrack"
+    @usableFromInline static let addTrack: JSString = "addTrack"
+    @usableFromInline static let addedNodes: JSString = "addedNodes"
+    @usableFromInline static let addressModeU: JSString = "addressModeU"
+    @usableFromInline static let addressModeV: JSString = "addressModeV"
+    @usableFromInline static let addressModeW: JSString = "addressModeW"
+    @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 alphaToCoverageEnabled: JSString = "alphaToCoverageEnabled"
+    @usableFromInline static let alphabeticBaseline: JSString = "alphabeticBaseline"
+    @usableFromInline static let alt: JSString = "alt"
+    @usableFromInline static let altKey: JSString = "altKey"
+    @usableFromInline static let ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animate: JSString = "animate"
+    @usableFromInline static let animated: JSString = "animated"
+    @usableFromInline static let antialias: JSString = "antialias"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 arrayLayerCount: JSString = "arrayLayerCount"
+    @usableFromInline static let arrayStride: JSString = "arrayStride"
+    @usableFromInline static let `as`: JSString = "as"
+    @usableFromInline static let aspect: JSString = "aspect"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 attachShader: JSString = "attachShader"
+    @usableFromInline static let attachShadow: JSString = "attachShadow"
+    @usableFromInline static let attack: JSString = "attack"
+    @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 audioWorklet: JSString = "audioWorklet"
+    @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 automationRate: JSString = "automationRate"
+    @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 b: JSString = "b"
+    @usableFromInline static let back: JSString = "back"
+    @usableFromInline static let background: JSString = "background"
+    @usableFromInline static let badInput: JSString = "badInput"
+    @usableFromInline static let baseArrayLayer: JSString = "baseArrayLayer"
+    @usableFromInline static let baseLatency: JSString = "baseLatency"
+    @usableFromInline static let baseMipLevel: JSString = "baseMipLevel"
+    @usableFromInline static let baseURI: JSString = "baseURI"
+    @usableFromInline static let before: JSString = "before"
+    @usableFromInline static let beginComputePass: JSString = "beginComputePass"
+    @usableFromInline static let beginOcclusionQuery: JSString = "beginOcclusionQuery"
+    @usableFromInline static let beginPath: JSString = "beginPath"
+    @usableFromInline static let beginQuery: JSString = "beginQuery"
+    @usableFromInline static let beginRenderPass: JSString = "beginRenderPass"
+    @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback"
+    @usableFromInline static let behavior: JSString = "behavior"
+    @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
+    @usableFromInline static let bgColor: JSString = "bgColor"
+    @usableFromInline static let binaryType: JSString = "binaryType"
+    @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation"
+    @usableFromInline static let bindBuffer: JSString = "bindBuffer"
+    @usableFromInline static let bindBufferBase: JSString = "bindBufferBase"
+    @usableFromInline static let bindBufferRange: JSString = "bindBufferRange"
+    @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer"
+    @usableFromInline static let bindGroupLayouts: JSString = "bindGroupLayouts"
+    @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer"
+    @usableFromInline static let bindSampler: JSString = "bindSampler"
+    @usableFromInline static let bindTexture: JSString = "bindTexture"
+    @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback"
+    @usableFromInline static let bindVertexArray: JSString = "bindVertexArray"
+    @usableFromInline static let binding: JSString = "binding"
+    @usableFromInline static let bitrate: JSString = "bitrate"
+    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
+    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
+    @usableFromInline static let blend: JSString = "blend"
+    @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 blitFramebuffer: JSString = "blitFramebuffer"
+    @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 buffer: JSString = "buffer"
+    @usableFromInline static let bufferData: JSString = "bufferData"
+    @usableFromInline static let bufferSize: JSString = "bufferSize"
+    @usableFromInline static let bufferSubData: JSString = "bufferSubData"
+    @usableFromInline static let buffered: JSString = "buffered"
+    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
+    @usableFromInline static let buffers: JSString = "buffers"
+    @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 bytesPerRow: JSString = "bytesPerRow"
+    @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 canPlayType: JSString = "canPlayType"
+    @usableFromInline static let cancel: JSString = "cancel"
+    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
+    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
+    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
+    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
+    @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 channelCount: JSString = "channelCount"
+    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
+    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
+    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
+    @usableFromInline static let checkValidity: JSString = "checkValidity"
+    @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 clearBuffer: JSString = "clearBuffer"
+    @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 clearColor: JSString = "clearColor"
+    @usableFromInline static let clearData: JSString = "clearData"
+    @usableFromInline static let clearDepth: JSString = "clearDepth"
+    @usableFromInline static let clearInterval: JSString = "clearInterval"
+    @usableFromInline static let clearParameters: JSString = "clearParameters"
+    @usableFromInline static let clearRect: JSString = "clearRect"
+    @usableFromInline static let clearStencil: JSString = "clearStencil"
+    @usableFromInline static let clearTimeout: JSString = "clearTimeout"
+    @usableFromInline static let clearValue: JSString = "clearValue"
+    @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 clientWaitSync: JSString = "clientWaitSync"
+    @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 colorAttachments: JSString = "colorAttachments"
+    @usableFromInline static let colorDepth: JSString = "colorDepth"
+    @usableFromInline static let colorFormats: JSString = "colorFormats"
+    @usableFromInline static let colorMask: JSString = "colorMask"
+    @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 commitStyles: JSString = "commitStyles"
+    @usableFromInline static let commonAncestorContainer: JSString = "commonAncestorContainer"
+    @usableFromInline static let compact: JSString = "compact"
+    @usableFromInline static let compare: JSString = "compare"
+    @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 compilationInfo: JSString = "compilationInfo"
+    @usableFromInline static let compileShader: JSString = "compileShader"
+    @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 composite: JSString = "composite"
+    @usableFromInline static let compositingAlphaMode: JSString = "compositingAlphaMode"
+    @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 compute: JSString = "compute"
+    @usableFromInline static let computedOffset: JSString = "computedOffset"
+    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
+    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
+    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
+    @usableFromInline static let config: JSString = "config"
+    @usableFromInline static let configure: JSString = "configure"
+    @usableFromInline static let confirm: JSString = "confirm"
+    @usableFromInline static let connect: JSString = "connect"
+    @usableFromInline static let console: JSString = "console"
+    @usableFromInline static let constants: JSString = "constants"
+    @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 context: JSString = "context"
+    @usableFromInline static let contextTime: JSString = "contextTime"
+    @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 copyBufferSubData: JSString = "copyBufferSubData"
+    @usableFromInline static let copyBufferToBuffer: JSString = "copyBufferToBuffer"
+    @usableFromInline static let copyBufferToTexture: JSString = "copyBufferToTexture"
+    @usableFromInline static let copyExternalImageToTexture: JSString = "copyExternalImageToTexture"
+    @usableFromInline static let copyFromChannel: JSString = "copyFromChannel"
+    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
+    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
+    @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D"
+    @usableFromInline static let copyTextureToBuffer: JSString = "copyTextureToBuffer"
+    @usableFromInline static let copyTextureToTexture: JSString = "copyTextureToTexture"
+    @usableFromInline static let copyTo: JSString = "copyTo"
+    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
+    @usableFromInline static let count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
+    @usableFromInline static let createAttribute: JSString = "createAttribute"
+    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
+    @usableFromInline static let createBindGroup: JSString = "createBindGroup"
+    @usableFromInline static let createBindGroupLayout: JSString = "createBindGroupLayout"
+    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
+    @usableFromInline static let createBuffer: JSString = "createBuffer"
+    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
+    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
+    @usableFromInline static let createCaption: JSString = "createCaption"
+    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
+    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
+    @usableFromInline static let createCommandEncoder: JSString = "createCommandEncoder"
+    @usableFromInline static let createComment: JSString = "createComment"
+    @usableFromInline static let createComputePipeline: JSString = "createComputePipeline"
+    @usableFromInline static let createComputePipelineAsync: JSString = "createComputePipelineAsync"
+    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
+    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
+    @usableFromInline static let createConvolver: JSString = "createConvolver"
+    @usableFromInline static let createDelay: JSString = "createDelay"
+    @usableFromInline static let createDocument: JSString = "createDocument"
+    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
+    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
+    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
+    @usableFromInline static let createElement: JSString = "createElement"
+    @usableFromInline static let createElementNS: JSString = "createElementNS"
+    @usableFromInline static let createEvent: JSString = "createEvent"
+    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
+    @usableFromInline static let createGain: JSString = "createGain"
+    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
+    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
+    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
+    @usableFromInline static let createImageData: JSString = "createImageData"
+    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
+    @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 createObjectURL: JSString = "createObjectURL"
+    @usableFromInline static let createOscillator: JSString = "createOscillator"
+    @usableFromInline static let createPanner: JSString = "createPanner"
+    @usableFromInline static let createPattern: JSString = "createPattern"
+    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
+    @usableFromInline static let createPipelineLayout: JSString = "createPipelineLayout"
+    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
+    @usableFromInline static let createProgram: JSString = "createProgram"
+    @usableFromInline static let createQuery: JSString = "createQuery"
+    @usableFromInline static let createQuerySet: JSString = "createQuerySet"
+    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
+    @usableFromInline static let createRange: JSString = "createRange"
+    @usableFromInline static let createRenderBundleEncoder: JSString = "createRenderBundleEncoder"
+    @usableFromInline static let createRenderPipeline: JSString = "createRenderPipeline"
+    @usableFromInline static let createRenderPipelineAsync: JSString = "createRenderPipelineAsync"
+    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
+    @usableFromInline static let createSampler: JSString = "createSampler"
+    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
+    @usableFromInline static let createShader: JSString = "createShader"
+    @usableFromInline static let createShaderModule: JSString = "createShaderModule"
+    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
+    @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 createTexture: JSString = "createTexture"
+    @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback"
+    @usableFromInline static let createVertexArray: JSString = "createVertexArray"
+    @usableFromInline static let createView: JSString = "createView"
+    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
+    @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 cullFace: JSString = "cullFace"
+    @usableFromInline static let cullMode: JSString = "cullMode"
+    @usableFromInline static let currentIteration: JSString = "currentIteration"
+    @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 curve: JSString = "curve"
+    @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 debug: JSString = "debug"
+    @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 defaultQueue: JSString = "defaultQueue"
+    @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 delay: JSString = "delay"
+    @usableFromInline static let delayTime: JSString = "delayTime"
+    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
+    @usableFromInline static let delete: JSString = "delete"
+    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
+    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
+    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
+    @usableFromInline static let deleteQuery: JSString = "deleteQuery"
+    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
+    @usableFromInline static let deleteRow: JSString = "deleteRow"
+    @usableFromInline static let deleteSampler: JSString = "deleteSampler"
+    @usableFromInline static let deleteShader: JSString = "deleteShader"
+    @usableFromInline static let deleteSync: JSString = "deleteSync"
+    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
+    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
+    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
+    @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback"
+    @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray"
+    @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 depth: JSString = "depth"
+    @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 depthFunc: JSString = "depthFunc"
+    @usableFromInline static let depthLoadOp: JSString = "depthLoadOp"
+    @usableFromInline static let depthMask: JSString = "depthMask"
+    @usableFromInline static let depthOrArrayLayers: JSString = "depthOrArrayLayers"
+    @usableFromInline static let depthRange: JSString = "depthRange"
+    @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 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 detachShader: JSString = "detachShader"
+    @usableFromInline static let detail: JSString = "detail"
+    @usableFromInline static let detune: JSString = "detune"
+    @usableFromInline static let device: JSString = "device"
+    @usableFromInline static let deviceId: JSString = "deviceId"
+    @usableFromInline static let devicePixelRatio: JSString = "devicePixelRatio"
+    @usableFromInline static let dimension: JSString = "dimension"
+    @usableFromInline static let dir: JSString = "dir"
+    @usableFromInline static let dirName: JSString = "dirName"
+    @usableFromInline static let direction: JSString = "direction"
+    @usableFromInline static let dirxml: JSString = "dirxml"
+    @usableFromInline static let disable: JSString = "disable"
+    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
+    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
+    @usableFromInline static let disabled: JSString = "disabled"
+    @usableFromInline static let disconnect: JSString = "disconnect"
+    @usableFromInline static let dispatch: JSString = "dispatch"
+    @usableFromInline static let dispatchEvent: JSString = "dispatchEvent"
+    @usableFromInline static let dispatchIndirect: JSString = "dispatchIndirect"
+    @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 distanceModel: JSString = "distanceModel"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let draw: JSString = "draw"
+    @usableFromInline static let drawArrays: JSString = "drawArrays"
+    @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced"
+    @usableFromInline static let drawBuffers: JSString = "drawBuffers"
+    @usableFromInline static let drawElements: JSString = "drawElements"
+    @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let drawIndexed: JSString = "drawIndexed"
+    @usableFromInline static let drawIndexedIndirect: JSString = "drawIndexedIndirect"
+    @usableFromInline static let drawIndirect: JSString = "drawIndirect"
+    @usableFromInline static let drawRangeElements: JSString = "drawRangeElements"
+    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
+    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @usableFromInline static let dstFactor: JSString = "dstFactor"
+    @usableFromInline static let duration: JSString = "duration"
+    @usableFromInline static let e: JSString = "e"
+    @usableFromInline static let easing: JSString = "easing"
+    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
+    @usableFromInline static let effect: JSString = "effect"
+    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
+    @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 endDelay: JSString = "endDelay"
+    @usableFromInline static let endOcclusionQuery: JSString = "endOcclusionQuery"
+    @usableFromInline static let endOffset: JSString = "endOffset"
+    @usableFromInline static let endQuery: JSString = "endQuery"
+    @usableFromInline static let endTime: JSString = "endTime"
+    @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback"
+    @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 entryPoint: JSString = "entryPoint"
+    @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 executeBundles: JSString = "executeBundles"
+    @usableFromInline static let expired: JSString = "expired"
+    @usableFromInline static let exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
+    @usableFromInline static let extends: JSString = "extends"
+    @usableFromInline static let extensions: JSString = "extensions"
+    @usableFromInline static let external: JSString = "external"
+    @usableFromInline static let externalTexture: JSString = "externalTexture"
+    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
+    @usableFromInline static let failOp: JSString = "failOp"
+    @usableFromInline static let fastSeek: JSString = "fastSeek"
+    @usableFromInline static let features: JSString = "features"
+    @usableFromInline static let feedback: JSString = "feedback"
+    @usableFromInline static let feedforward: JSString = "feedforward"
+    @usableFromInline static let fenceSync: JSString = "fenceSync"
+    @usableFromInline static let fetch: JSString = "fetch"
+    @usableFromInline static let fftSize: JSString = "fftSize"
+    @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 finish: JSString = "finish"
+    @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 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 forceFallbackAdapter: JSString = "forceFallbackAdapter"
+    @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 forwardX: JSString = "forwardX"
+    @usableFromInline static let forwardY: JSString = "forwardY"
+    @usableFromInline static let forwardZ: JSString = "forwardZ"
+    @usableFromInline static let fragment: JSString = "fragment"
+    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
+    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
+    @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer"
+    @usableFromInline static let framerate: JSString = "framerate"
+    @usableFromInline static let frames: JSString = "frames"
+    @usableFromInline static let frequency: JSString = "frequency"
+    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
+    @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 frontFace: JSString = "frontFace"
+    @usableFromInline static let fullRange: JSString = "fullRange"
+    @usableFromInline static let g: JSString = "g"
+    @usableFromInline static let gain: JSString = "gain"
+    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
+    @usableFromInline static let get: JSString = "get"
+    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
+    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
+    @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName"
+    @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter"
+    @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms"
+    @usableFromInline static let getAll: JSString = "getAll"
+    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
+    @usableFromInline static let getAnimations: JSString = "getAnimations"
+    @usableFromInline static let getAsFile: JSString = "getAsFile"
+    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
+    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
+    @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 getBindGroupLayout: JSString = "getBindGroupLayout"
+    @usableFromInline static let getBoundingClientRect: JSString = "getBoundingClientRect"
+    @usableFromInline static let getBounds: JSString = "getBounds"
+    @usableFromInline static let getBoxQuads: JSString = "getBoxQuads"
+    @usableFromInline static let getBufferParameter: JSString = "getBufferParameter"
+    @usableFromInline static let getBufferSubData: JSString = "getBufferSubData"
+    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
+    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
+    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
+    @usableFromInline static let getChannelData: JSString = "getChannelData"
+    @usableFromInline static let getClientRect: JSString = "getClientRect"
+    @usableFromInline static let getClientRects: JSString = "getClientRects"
+    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
+    @usableFromInline static let getConstraints: JSString = "getConstraints"
+    @usableFromInline static let getContextAttributes: JSString = "getContextAttributes"
+    @usableFromInline static let getCueById: JSString = "getCueById"
+    @usableFromInline static let getCurrentTexture: JSString = "getCurrentTexture"
+    @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 getError: JSString = "getError"
+    @usableFromInline static let getExtension: JSString = "getExtension"
+    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
+    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
+    @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation"
+    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
+    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
+    @usableFromInline static let getImageData: JSString = "getImageData"
+    @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter"
+    @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter"
+    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getMappedRange: JSString = "getMappedRange"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
+    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
+    @usableFromInline static let getParameter: JSString = "getParameter"
+    @usableFromInline static let getPreferredFormat: JSString = "getPreferredFormat"
+    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
+    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
+    @usableFromInline static let getQuery: JSString = "getQuery"
+    @usableFromInline static let getQueryParameter: JSString = "getQueryParameter"
+    @usableFromInline static let getReader: JSString = "getReader"
+    @usableFromInline static let getRegistration: JSString = "getRegistration"
+    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
+    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
+    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
+    @usableFromInline static let getRootNode: JSString = "getRootNode"
+    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
+    @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter"
+    @usableFromInline static let getSettings: JSString = "getSettings"
+    @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 getStartDate: JSString = "getStartDate"
+    @usableFromInline static let getState: JSString = "getState"
+    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
+    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
+    @usableFromInline static let getSyncParameter: JSString = "getSyncParameter"
+    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
+    @usableFromInline static let getTiming: JSString = "getTiming"
+    @usableFromInline static let getTrackById: JSString = "getTrackById"
+    @usableFromInline static let getTracks: JSString = "getTracks"
+    @usableFromInline static let getTransform: JSString = "getTransform"
+    @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying"
+    @usableFromInline static let getUniform: JSString = "getUniform"
+    @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex"
+    @usableFromInline static let getUniformIndices: JSString = "getUniformIndices"
+    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
+    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
+    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
+    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
+    @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 gpu: JSString = "gpu"
+    @usableFromInline static let group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasDynamicOffset: JSString = "hasDynamicOffset"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 high: JSString = "high"
+    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
+    @usableFromInline static let hint: JSString = "hint"
+    @usableFromInline static let hints: JSString = "hints"
+    @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 ideographicBaseline: JSString = "ideographicBaseline"
+    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
+    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
+    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
+    @usableFromInline static let imag: JSString = "imag"
+    @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 importExternalTexture: JSString = "importExternalTexture"
+    @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 inputBuffer: JSString = "inputBuffer"
+    @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 insertDebugMarker: JSString = "insertDebugMarker"
+    @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 intersectsNode: JSString = "intersectsNode"
+    @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState"
+    @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer"
+    @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer"
+    @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 isBuffer: JSString = "isBuffer"
+    @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 isEnabled: JSString = "isEnabled"
+    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
+    @usableFromInline static let isFallbackAdapter: JSString = "isFallbackAdapter"
+    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
+    @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 isProgram: JSString = "isProgram"
+    @usableFromInline static let isQuery: JSString = "isQuery"
+    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
+    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
+    @usableFromInline static let isSameNode: JSString = "isSameNode"
+    @usableFromInline static let isSampler: JSString = "isSampler"
+    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
+    @usableFromInline static let isShader: JSString = "isShader"
+    @usableFromInline static let isSync: JSString = "isSync"
+    @usableFromInline static let isTexture: JSString = "isTexture"
+    @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback"
+    @usableFromInline static let isTrusted: JSString = "isTrusted"
+    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
+    @usableFromInline static let isVertexArray: JSString = "isVertexArray"
+    @usableFromInline static let isVisible: JSString = "isVisible"
+    @usableFromInline static let item: JSString = "item"
+    @usableFromInline static let items: JSString = "items"
+    @usableFromInline static let iterateNext: JSString = "iterateNext"
+    @usableFromInline static let iterationStart: JSString = "iterationStart"
+    @usableFromInline static let iterations: JSString = "iterations"
+    @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 knee: JSString = "knee"
+    @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 latencyHint: JSString = "latencyHint"
+    @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 limits: JSString = "limits"
+    @usableFromInline static let lineCap: JSString = "lineCap"
+    @usableFromInline static let lineDashOffset: JSString = "lineDashOffset"
+    @usableFromInline static let lineJoin: JSString = "lineJoin"
+    @usableFromInline static let lineNum: JSString = "lineNum"
+    @usableFromInline static let linePos: JSString = "linePos"
+    @usableFromInline static let lineTo: JSString = "lineTo"
+    @usableFromInline static let lineWidth: JSString = "lineWidth"
+    @usableFromInline static let linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
+    @usableFromInline static let lineno: JSString = "lineno"
+    @usableFromInline static let link: JSString = "link"
+    @usableFromInline static let linkColor: JSString = "linkColor"
+    @usableFromInline static let linkProgram: JSString = "linkProgram"
+    @usableFromInline static let links: JSString = "links"
+    @usableFromInline static let list: JSString = "list"
+    @usableFromInline static let listener: JSString = "listener"
+    @usableFromInline static let load: JSString = "load"
+    @usableFromInline static let loadOp: JSString = "loadOp"
+    @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 lodMaxClamp: JSString = "lodMaxClamp"
+    @usableFromInline static let lodMinClamp: JSString = "lodMinClamp"
+    @usableFromInline static let log: JSString = "log"
+    @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 loopEnd: JSString = "loopEnd"
+    @usableFromInline static let loopStart: JSString = "loopStart"
+    @usableFromInline static let lost: JSString = "lost"
+    @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 magFilter: JSString = "magFilter"
+    @usableFromInline static let mapAsync: JSString = "mapAsync"
+    @usableFromInline static let mappedAtCreation: JSString = "mappedAtCreation"
+    @usableFromInline static let marginHeight: JSString = "marginHeight"
+    @usableFromInline static let marginWidth: JSString = "marginWidth"
+    @usableFromInline static let mask: JSString = "mask"
+    @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 maxAnisotropy: JSString = "maxAnisotropy"
+    @usableFromInline static let maxBindGroups: JSString = "maxBindGroups"
+    @usableFromInline static let maxChannelCount: JSString = "maxChannelCount"
+    @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 maxDecibels: JSString = "maxDecibels"
+    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
+    @usableFromInline static let maxDistance: JSString = "maxDistance"
+    @usableFromInline static let maxDynamicStorageBuffersPerPipelineLayout: JSString = "maxDynamicStorageBuffersPerPipelineLayout"
+    @usableFromInline static let maxDynamicUniformBuffersPerPipelineLayout: JSString = "maxDynamicUniformBuffersPerPipelineLayout"
+    @usableFromInline static let maxInterStageShaderComponents: JSString = "maxInterStageShaderComponents"
+    @usableFromInline static let maxLength: JSString = "maxLength"
+    @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 maxValue: JSString = "maxValue"
+    @usableFromInline static let maxVertexAttributes: JSString = "maxVertexAttributes"
+    @usableFromInline static let maxVertexBufferArrayStride: JSString = "maxVertexBufferArrayStride"
+    @usableFromInline static let maxVertexBuffers: JSString = "maxVertexBuffers"
+    @usableFromInline static let measureText: JSString = "measureText"
+    @usableFromInline static let media: JSString = "media"
+    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
+    @usableFromInline static let mediaElement: JSString = "mediaElement"
+    @usableFromInline static let mediaStream: JSString = "mediaStream"
+    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
+    @usableFromInline static let menubar: JSString = "menubar"
+    @usableFromInline static let message: JSString = "message"
+    @usableFromInline static let messages: JSString = "messages"
+    @usableFromInline static let metaKey: JSString = "metaKey"
+    @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 minBindingSize: JSString = "minBindingSize"
+    @usableFromInline static let minDecibels: JSString = "minDecibels"
+    @usableFromInline static let minFilter: JSString = "minFilter"
+    @usableFromInline static let minLength: JSString = "minLength"
+    @usableFromInline static let minStorageBufferOffsetAlignment: JSString = "minStorageBufferOffsetAlignment"
+    @usableFromInline static let minUniformBufferOffsetAlignment: JSString = "minUniformBufferOffsetAlignment"
+    @usableFromInline static let minValue: JSString = "minValue"
+    @usableFromInline static let mipLevel: JSString = "mipLevel"
+    @usableFromInline static let mipLevelCount: JSString = "mipLevelCount"
+    @usableFromInline static let mipmapFilter: JSString = "mipmapFilter"
+    @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 module: JSString = "module"
+    @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 multisample: JSString = "multisample"
+    @usableFromInline static let multisampled: JSString = "multisampled"
+    @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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 numberOfInputs: JSString = "numberOfInputs"
+    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
+    @usableFromInline static let numberValue: JSString = "numberValue"
+    @usableFromInline static let observe: JSString = "observe"
+    @usableFromInline static let occlusionQuerySet: JSString = "occlusionQuerySet"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onSubmittedWorkDone: JSString = "onSubmittedWorkDone"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncomplete: JSString = "oncomplete"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 onfinish: JSString = "onfinish"
+    @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 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 onprocessorerror: JSString = "onprocessorerror"
+    @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 onremove: JSString = "onremove"
+    @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 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 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 onuncapturederror: JSString = "onuncapturederror"
+    @usableFromInline static let onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 operation: JSString = "operation"
+    @usableFromInline static let optimizeForLatency: JSString = "optimizeForLatency"
+    @usableFromInline static let optimum: JSString = "optimum"
+    @usableFromInline static let options: JSString = "options"
+    @usableFromInline static let orientationX: JSString = "orientationX"
+    @usableFromInline static let orientationY: JSString = "orientationY"
+    @usableFromInline static let orientationZ: JSString = "orientationZ"
+    @usableFromInline static let origin: JSString = "origin"
+    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
+    @usableFromInline static let originTime: JSString = "originTime"
+    @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 outputBuffer: JSString = "outputBuffer"
+    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
+    @usableFromInline static let outputLatency: JSString = "outputLatency"
+    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
+    @usableFromInline static let oversample: JSString = "oversample"
+    @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 pageX: JSString = "pageX"
+    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
+    @usableFromInline static let pageY: JSString = "pageY"
+    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
+    @usableFromInline static let pan: JSString = "pan"
+    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
+    @usableFromInline static let panningModel: JSString = "panningModel"
+    @usableFromInline static let parameterData: JSString = "parameterData"
+    @usableFromInline static let parameters: JSString = "parameters"
+    @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 passOp: JSString = "passOp"
+    @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 pauseTransformFeedback: JSString = "pauseTransformFeedback"
+    @usableFromInline static let paused: JSString = "paused"
+    @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled"
+    @usableFromInline static let pending: JSString = "pending"
+    @usableFromInline static let performance: JSString = "performance"
+    @usableFromInline static let performanceTime: JSString = "performanceTime"
+    @usableFromInline static let periodicWave: JSString = "periodicWave"
+    @usableFromInline static let persist: JSString = "persist"
+    @usableFromInline static let persisted: JSString = "persisted"
+    @usableFromInline static let personalbar: JSString = "personalbar"
+    @usableFromInline static let phase: JSString = "phase"
+    @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 pixelStorei: JSString = "pixelStorei"
+    @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 playState: JSString = "playState"
+    @usableFromInline static let playbackRate: JSString = "playbackRate"
+    @usableFromInline static let playbackTime: JSString = "playbackTime"
+    @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 polygonOffset: JSString = "polygonOffset"
+    @usableFromInline static let popDebugGroup: JSString = "popDebugGroup"
+    @usableFromInline static let popErrorScope: JSString = "popErrorScope"
+    @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 positionX: JSString = "positionX"
+    @usableFromInline static let positionY: JSString = "positionY"
+    @usableFromInline static let positionZ: JSString = "positionZ"
+    @usableFromInline static let postMessage: JSString = "postMessage"
+    @usableFromInline static let poster: JSString = "poster"
+    @usableFromInline static let powerPreference: JSString = "powerPreference"
+    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
+    @usableFromInline static let precision: JSString = "precision"
+    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
+    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
+    @usableFromInline static let prepend: JSString = "prepend"
+    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
+    @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 primitive: JSString = "primitive"
+    @usableFromInline static let print: JSString = "print"
+    @usableFromInline static let processorOptions: JSString = "processorOptions"
+    @usableFromInline static let product: JSString = "product"
+    @usableFromInline static let productSub: JSString = "productSub"
+    @usableFromInline static let progress: JSString = "progress"
+    @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 pseudoElement: JSString = "pseudoElement"
+    @usableFromInline static let publicId: JSString = "publicId"
+    @usableFromInline static let pull: JSString = "pull"
+    @usableFromInline static let pushDebugGroup: JSString = "pushDebugGroup"
+    @usableFromInline static let pushErrorScope: JSString = "pushErrorScope"
+    @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 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 queryIndex: JSString = "queryIndex"
+    @usableFromInline static let querySelector: JSString = "querySelector"
+    @usableFromInline static let querySelectorAll: JSString = "querySelectorAll"
+    @usableFromInline static let querySet: JSString = "querySet"
+    @usableFromInline static let queue: JSString = "queue"
+    @usableFromInline static let r: JSString = "r"
+    @usableFromInline static let rangeMax: JSString = "rangeMax"
+    @usableFromInline static let rangeMin: JSString = "rangeMin"
+    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
+    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
+    @usableFromInline static let ratio: JSString = "ratio"
+    @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 readBuffer: JSString = "readBuffer"
+    @usableFromInline static let readOnly: JSString = "readOnly"
+    @usableFromInline static let readPixels: JSString = "readPixels"
+    @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 real: JSString = "real"
+    @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 reduction: JSString = "reduction"
+    @usableFromInline static let refDistance: JSString = "refDistance"
+    @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 release: JSString = "release"
+    @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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
+    @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample"
+    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
+    @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 requestAdapter: JSString = "requestAdapter"
+    @usableFromInline static let requestData: JSString = "requestData"
+    @usableFromInline static let requestDevice: JSString = "requestDevice"
+    @usableFromInline static let requestSubmit: JSString = "requestSubmit"
+    @usableFromInline static let required: JSString = "required"
+    @usableFromInline static let requiredFeatures: JSString = "requiredFeatures"
+    @usableFromInline static let requiredLimits: JSString = "requiredLimits"
+    @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 resolveQuerySet: JSString = "resolveQuerySet"
+    @usableFromInline static let resolveTarget: JSString = "resolveTarget"
+    @usableFromInline static let resource: JSString = "resource"
+    @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 resumeTransformFeedback: JSString = "resumeTransformFeedback"
+    @usableFromInline static let returnValue: JSString = "returnValue"
+    @usableFromInline static let rev: JSString = "rev"
+    @usableFromInline static let reverse: JSString = "reverse"
+    @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 rolloffFactor: JSString = "rolloffFactor"
+    @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 roundRect: JSString = "roundRect"
+    @usableFromInline static let rowIndex: JSString = "rowIndex"
+    @usableFromInline static let rowSpan: JSString = "rowSpan"
+    @usableFromInline static let rows: JSString = "rows"
+    @usableFromInline static let rowsPerImage: JSString = "rowsPerImage"
+    @usableFromInline static let rules: JSString = "rules"
+    @usableFromInline static let sampleCount: JSString = "sampleCount"
+    @usableFromInline static let sampleCoverage: JSString = "sampleCoverage"
+    @usableFromInline static let sampleRate: JSString = "sampleRate"
+    @usableFromInline static let sampleSize: JSString = "sampleSize"
+    @usableFromInline static let sampleType: JSString = "sampleType"
+    @usableFromInline static let sampler: JSString = "sampler"
+    @usableFromInline static let samplerParameterf: JSString = "samplerParameterf"
+    @usableFromInline static let samplerParameteri: JSString = "samplerParameteri"
+    @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 scissor: JSString = "scissor"
+    @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 searchParams: JSString = "searchParams"
+    @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 setBindGroup: JSString = "setBindGroup"
+    @usableFromInline static let setBlendConstant: JSString = "setBlendConstant"
+    @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 setIndexBuffer: JSString = "setIndexBuffer"
+    @usableFromInline static let setInterval: JSString = "setInterval"
+    @usableFromInline static let setKeyframes: JSString = "setKeyframes"
+    @usableFromInline static let setLineDash: JSString = "setLineDash"
+    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
+    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
+    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
+    @usableFromInline static let setOrientation: JSString = "setOrientation"
+    @usableFromInline static let setParameter: JSString = "setParameter"
+    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
+    @usableFromInline static let setPipeline: JSString = "setPipeline"
+    @usableFromInline static let setPosition: JSString = "setPosition"
+    @usableFromInline static let setRangeText: JSString = "setRangeText"
+    @usableFromInline static let setRequestHeader: JSString = "setRequestHeader"
+    @usableFromInline static let setScissorRect: JSString = "setScissorRect"
+    @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 setStencilReference: JSString = "setStencilReference"
+    @usableFromInline static let setTargetAtTime: JSString = "setTargetAtTime"
+    @usableFromInline static let setTimeout: JSString = "setTimeout"
+    @usableFromInline static let setTransform: JSString = "setTransform"
+    @usableFromInline static let setValidity: JSString = "setValidity"
+    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
+    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
+    @usableFromInline static let setVertexBuffer: JSString = "setVertexBuffer"
+    @usableFromInline static let setViewport: JSString = "setViewport"
+    @usableFromInline static let shaderLocation: JSString = "shaderLocation"
+    @usableFromInline static let shaderSource: JSString = "shaderSource"
+    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
+    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
+    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
+    @usableFromInline static let sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @usableFromInline static let sourceMap: JSString = "sourceMap"
+    @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 srcFactor: JSString = "srcFactor"
+    @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 startRendering: JSString = "startRendering"
+    @usableFromInline static let startTime: JSString = "startTime"
+    @usableFromInline static let state: JSString = "state"
+    @usableFromInline static let status: JSString = "status"
+    @usableFromInline static let statusMessage: JSString = "statusMessage"
+    @usableFromInline static let statusText: JSString = "statusText"
+    @usableFromInline static let statusbar: JSString = "statusbar"
+    @usableFromInline static let stencil: JSString = "stencil"
+    @usableFromInline static let stencilBack: JSString = "stencilBack"
+    @usableFromInline static let stencilClearValue: JSString = "stencilClearValue"
+    @usableFromInline static let stencilFront: JSString = "stencilFront"
+    @usableFromInline static let stencilFunc: JSString = "stencilFunc"
+    @usableFromInline static let stencilFuncSeparate: JSString = "stencilFuncSeparate"
+    @usableFromInline static let stencilLoadOp: JSString = "stencilLoadOp"
+    @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 stencilReadMask: JSString = "stencilReadMask"
+    @usableFromInline static let stencilReadOnly: JSString = "stencilReadOnly"
+    @usableFromInline static let stencilStoreOp: JSString = "stencilStoreOp"
+    @usableFromInline static let stencilWriteMask: JSString = "stencilWriteMask"
+    @usableFromInline static let step: JSString = "step"
+    @usableFromInline static let stepDown: JSString = "stepDown"
+    @usableFromInline static let stepMismatch: JSString = "stepMismatch"
+    @usableFromInline static let stepMode: JSString = "stepMode"
+    @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 storageTexture: JSString = "storageTexture"
+    @usableFromInline static let storeOp: JSString = "storeOp"
+    @usableFromInline static let stream: JSString = "stream"
+    @usableFromInline static let stride: JSString = "stride"
+    @usableFromInline static let stringValue: JSString = "stringValue"
+    @usableFromInline static let stripIndexFormat: JSString = "stripIndexFormat"
+    @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 supports: JSString = "supports"
+    @usableFromInline static let surroundContents: JSString = "surroundContents"
+    @usableFromInline static let suspend: JSString = "suspend"
+    @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 table: JSString = "table"
+    @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 targets: JSString = "targets"
+    @usableFromInline static let tee: JSString = "tee"
+    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
+    @usableFromInline static let terminate: JSString = "terminate"
+    @usableFromInline static let texImage2D: JSString = "texImage2D"
+    @usableFromInline static let texImage3D: JSString = "texImage3D"
+    @usableFromInline static let texParameterf: JSString = "texParameterf"
+    @usableFromInline static let texParameteri: JSString = "texParameteri"
+    @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 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 texture: JSString = "texture"
+    @usableFromInline static let threshold: JSString = "threshold"
+    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
+    @usableFromInline static let time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
+    @usableFromInline static let timeStamp: JSString = "timeStamp"
+    @usableFromInline static let timecode: JSString = "timecode"
+    @usableFromInline static let timeline: JSString = "timeline"
+    @usableFromInline static let timeout: JSString = "timeout"
+    @usableFromInline static let timestamp: JSString = "timestamp"
+    @usableFromInline static let timestampWrites: JSString = "timestampWrites"
+    @usableFromInline static let title: JSString = "title"
+    @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 tooLong: JSString = "tooLong"
+    @usableFromInline static let tooShort: JSString = "tooShort"
+    @usableFromInline static let toolbar: JSString = "toolbar"
+    @usableFromInline static let top: JSString = "top"
+    @usableFromInline static let topology: JSString = "topology"
+    @usableFromInline static let total: JSString = "total"
+    @usableFromInline static let trace: JSString = "trace"
+    @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 transformFeedbackVaryings: JSString = "transformFeedbackVaryings"
+    @usableFromInline static let transformPoint: JSString = "transformPoint"
+    @usableFromInline static let transformToDocument: JSString = "transformToDocument"
+    @usableFromInline static let transformToFragment: JSString = "transformToFragment"
+    @usableFromInline static let translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 unclippedDepth: JSString = "unclippedDepth"
+    @usableFromInline static let unconfigure: JSString = "unconfigure"
+    @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 uniform1ui: JSString = "uniform1ui"
+    @usableFromInline static let uniform1uiv: JSString = "uniform1uiv"
+    @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 uniform2ui: JSString = "uniform2ui"
+    @usableFromInline static let uniform2uiv: JSString = "uniform2uiv"
+    @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 uniform3ui: JSString = "uniform3ui"
+    @usableFromInline static let uniform3uiv: JSString = "uniform3uiv"
+    @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 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 unmap: JSString = "unmap"
+    @usableFromInline static let unregister: JSString = "unregister"
+    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
+    @usableFromInline static let upX: JSString = "upX"
+    @usableFromInline static let upY: JSString = "upY"
+    @usableFromInline static let upZ: JSString = "upZ"
+    @usableFromInline static let update: JSString = "update"
+    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
+    @usableFromInline static let updateTiming: JSString = "updateTiming"
+    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
+    @usableFromInline static let upgrade: JSString = "upgrade"
+    @usableFromInline static let upload: JSString = "upload"
+    @usableFromInline static let url: JSString = "url"
+    @usableFromInline static let usage: JSString = "usage"
+    @usableFromInline static let useMap: JSString = "useMap"
+    @usableFromInline static let useProgram: JSString = "useProgram"
+    @usableFromInline static let userAgent: JSString = "userAgent"
+    @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 validateProgram: JSString = "validateProgram"
+    @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 vertex: JSString = "vertex"
+    @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 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 vertexAttribPointer: JSString = "vertexAttribPointer"
+    @usableFromInline static let video: JSString = "video"
+    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
+    @usableFromInline static let videoHeight: JSString = "videoHeight"
+    @usableFromInline static let videoTracks: JSString = "videoTracks"
+    @usableFromInline static let videoWidth: JSString = "videoWidth"
+    @usableFromInline static let view: JSString = "view"
+    @usableFromInline static let viewDimension: JSString = "viewDimension"
+    @usableFromInline static let viewFormats: JSString = "viewFormats"
+    @usableFromInline static let viewport: JSString = "viewport"
+    @usableFromInline static let visibility: JSString = "visibility"
+    @usableFromInline static let visibilityState: JSString = "visibilityState"
+    @usableFromInline static let visible: JSString = "visible"
+    @usableFromInline static let visibleRect: JSString = "visibleRect"
+    @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 waitSync: JSString = "waitSync"
+    @usableFromInline static let waiting: JSString = "waiting"
+    @usableFromInline static let warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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 writeBuffer: JSString = "writeBuffer"
+    @usableFromInline static let writeMask: JSString = "writeMask"
+    @usableFromInline static let writeTexture: JSString = "writeTexture"
+    @usableFromInline static let writeTimestamp: JSString = "writeTimestamp"
+    @usableFromInline static let writeln: JSString = "writeln"
+    @usableFromInline static let x: JSString = "x"
+    @usableFromInline static let y: JSString = "y"
+    @usableFromInline static let z: JSString = "z"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
+extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
+extension Double: Any_AudioContextLatencyCategory_or_Double {}
+
+public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
+    case audioContextLatencyCategory(AudioContextLatencyCategory)
+    case double(Double)
+
+    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+        switch self {
+        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
+            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+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 {}
+
+public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
+    case compositeOperationOrAuto(CompositeOperationOrAuto)
+    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
+
+    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
+        switch self {
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
+            return .compositeOperationOrAuto(compositeOperationOrAuto)
+        }
+        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
+            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .compositeOperationOrAuto(compositeOperationOrAuto):
+            return compositeOperationOrAuto.jsValue
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
+            return seq_of_CompositeOperationOrAuto.jsValue
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .document(document):
+            return document.jsValue
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
+            return xmlHttpRequestBodyInit.jsValue
+        }
+    }
+}
+
+public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeAnimationOptions {}
+extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
+
+public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
+    case double(Double)
+    case keyframeAnimationOptions(KeyframeAnimationOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
+        switch self {
+        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
+            return .keyframeAnimationOptions(keyframeAnimationOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
+    case double(Double)
+    case keyframeEffectOptions(KeyframeEffectOptions)
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public var keyframeEffectOptions: KeyframeEffectOptions? {
+        switch self {
+        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let double: Double = value.fromJSValue() {
+            return .double(double)
+        }
+        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
+            return .keyframeEffectOptions(keyframeEffectOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
+    case double(Double)
+    case string(String)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .double(double):
+            return double.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
+extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
+extension String: Any_ElementCreationOptions_or_String {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Float32List: ConvertibleToJSValue {}
+extension Float32Array: Any_Float32List {}
+extension Array: Any_Float32List where Element == GLfloat {}
+
+public enum Float32List: JSValueCompatible, Any_Float32List {
+    case float32Array(Float32Array)
+    case seq_of_GLfloat([GLfloat])
+
+    public var float32Array: Float32Array? {
+        switch self {
+        case let .float32Array(float32Array): return float32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLfloat: [GLfloat]? {
+        switch self {
+        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .file(file):
+            return file.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_GPUBindingResource: ConvertibleToJSValue {}
+extension GPUBufferBinding: Any_GPUBindingResource {}
+extension GPUExternalTexture: Any_GPUBindingResource {}
+extension GPUSampler: Any_GPUBindingResource {}
+extension GPUTextureView: Any_GPUBindingResource {}
+
+public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource {
+    case gpuBufferBinding(GPUBufferBinding)
+    case gpuExternalTexture(GPUExternalTexture)
+    case gpuSampler(GPUSampler)
+    case gpuTextureView(GPUTextureView)
+
+    public var gpuBufferBinding: GPUBufferBinding? {
+        switch self {
+        case let .gpuBufferBinding(gpuBufferBinding): return gpuBufferBinding
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_GPUColor: ConvertibleToJSValue {}
+extension GPUColorDict: Any_GPUColor {}
+extension Array: Any_GPUColor where Element == Double {}
+
+public enum GPUColor: JSValueCompatible, Any_GPUColor {
+    case gpuColorDict(GPUColorDict)
+    case seq_of_Double([Double])
+
+    public var gpuColorDict: GPUColorDict? {
+        switch self {
+        case let .gpuColorDict(gpuColorDict): return gpuColorDict
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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_GPUError: ConvertibleToJSValue {}
+extension GPUOutOfMemoryError: Any_GPUError {}
+extension GPUValidationError: Any_GPUError {}
+
+public enum GPUError: JSValueCompatible, Any_GPUError {
+    case gpuOutOfMemoryError(GPUOutOfMemoryError)
+    case gpuValidationError(GPUValidationError)
+
+    public var gpuOutOfMemoryError: GPUOutOfMemoryError? {
+        switch self {
+        case let .gpuOutOfMemoryError(gpuOutOfMemoryError): return gpuOutOfMemoryError
+        default: return nil
+        }
+    }
+
+    public var gpuValidationError: GPUValidationError? {
+        switch self {
+        case let .gpuValidationError(gpuValidationError): return gpuValidationError
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let gpuOutOfMemoryError: GPUOutOfMemoryError = value.fromJSValue() {
+            return .gpuOutOfMemoryError(gpuOutOfMemoryError)
+        }
+        if let gpuValidationError: GPUValidationError = value.fromJSValue() {
+            return .gpuValidationError(gpuValidationError)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .gpuOutOfMemoryError(gpuOutOfMemoryError):
+            return gpuOutOfMemoryError.jsValue
+        case let .gpuValidationError(gpuValidationError):
+            return gpuValidationError.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])
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_GPUOrigin2D: ConvertibleToJSValue {}
+extension GPUOrigin2DDict: Any_GPUOrigin2D {}
+extension Array: Any_GPUOrigin2D where Element == GPUIntegerCoordinate {}
+
+public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D {
+    case gpuOrigin2DDict(GPUOrigin2DDict)
+    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
+
+    public var gpuOrigin2DDict: GPUOrigin2DDict? {
+        switch self {
+        case let .gpuOrigin2DDict(gpuOrigin2DDict): return gpuOrigin2DDict
+        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 gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() {
+            return .gpuOrigin2DDict(gpuOrigin2DDict)
+        }
+        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 .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 {}
+
+public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D {
+    case gpuOrigin3DDict(GPUOrigin3DDict)
+    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
+
+    public var gpuOrigin3DDict: GPUOrigin3DDict? {
+        switch self {
+        case let .gpuOrigin3DDict(gpuOrigin3DDict): return gpuOrigin3DDict
+        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 gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() {
+            return .gpuOrigin3DDict(gpuOrigin3DDict)
+        }
+        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 .gpuOrigin3DDict(gpuOrigin3DDict):
+            return gpuOrigin3DDict.jsValue
+        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
+            return seq_of_GPUIntegerCoordinate.jsValue
+        }
+    }
+}
+
+public protocol Any_GeometryNode: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_GeometryNode {}
+extension Document: Any_GeometryNode {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
+extension ImageBitmap: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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 static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        if let imageBitmap: ImageBitmap = value.fromJSValue() {
+            return .imageBitmap(imageBitmap)
+        }
+        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 .imageBitmap(imageBitmap):
+            return imageBitmap.jsValue
+        case let .offscreenCanvas(offscreenCanvas):
+            return offscreenCanvas.jsValue
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_Int32List: ConvertibleToJSValue {}
+extension Int32Array: Any_Int32List {}
+extension Array: Any_Int32List where Element == GLint {}
+
+public enum Int32List: JSValueCompatible, Any_Int32List {
+    case int32Array(Int32Array)
+    case seq_of_GLint([GLint])
+
+    public var int32Array: Int32Array? {
+        switch self {
+        case let .int32Array(int32Array): return int32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLint: [GLint]? {
+        switch self {
+        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TexImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_TexImageSource {}
+extension HTMLImageElement: Any_TexImageSource {}
+extension HTMLVideoElement: Any_TexImageSource {}
+extension ImageBitmap: Any_TexImageSource {}
+extension ImageData: Any_TexImageSource {}
+extension OffscreenCanvas: Any_TexImageSource {}
+extension VideoFrame: Any_TexImageSource {}
+
+public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlImageElement(HTMLImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case imageData(ImageData)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_Uint32List: ConvertibleToJSValue {}
+extension Uint32Array: Any_Uint32List {}
+extension Array: Any_Uint32List where Element == GLuint {}
+
+public enum Uint32List: JSValueCompatible, Any_Uint32List {
+    case uint32Array(Uint32Array)
+    case seq_of_GLuint([GLuint])
+
+    public var uint32Array: Uint32Array? {
+        switch self {
+        case let .uint32Array(uint32Array): return uint32Array
+        default: return nil
+        }
+    }
+
+    public var seq_of_GLuint: [GLuint]? {
+        switch self {
+        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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 {
+    case nullable_Double(Double?)
+    case seq_of_nullable_Double([Double?])
+
+    public var nullable_Double: Double?? {
+        switch self {
+        case let .nullable_Double(nullable_Double): return nullable_Double
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
diff --git a/Sources/WebGPU/Support.swift b/Sources/WebGPU/Support.swift
new file mode 100644
index 00000000..bac5e45c
--- /dev/null
+++ b/Sources/WebGPU/Support.swift
@@ -0,0 +1,7 @@
+import DOM
+
+extension GPUCanvasContext: RenderingContext {
+  public static var contextID: JSString { "webgpu" }
+}
+
+extension GPUCanvasContext: OffscreenRenderingContext {}
diff --git a/Sources/WebIDLToSwift/FormatOutputFiles.swift b/Sources/WebIDLToSwift/FormatOutputFiles.swift
index 2bd9dc8f..6182d553 100644
--- a/Sources/WebIDLToSwift/FormatOutputFiles.swift
+++ b/Sources/WebIDLToSwift/FormatOutputFiles.swift
@@ -5,7 +5,7 @@ enum SwiftFormatter {
         print("Formatting generated Swift files...")
         let task = Process()
         task.standardError = FileHandle.standardError
-        task.arguments = ["-c", "swiftformat \(source)"]
+        task.arguments = ["-c", "swiftformat --swiftversion 5.5 \(source)"]
         task.launchPath = "/bin/zsh"
         task.launch()
         task.waitUntilExit()
diff --git a/Sources/WebIDLToSwift/IDLBuilder.swift b/Sources/WebIDLToSwift/IDLBuilder.swift
index 2d54b304..645bd50a 100644
--- a/Sources/WebIDLToSwift/IDLBuilder.swift
+++ b/Sources/WebIDLToSwift/IDLBuilder.swift
@@ -2,13 +2,12 @@ import Foundation
 import WebIDL
 
 enum IDLBuilder {
+    static let basicDependencies = ["ECMAScript", "JavaScriptKit"]
+
     static let preamble = """
     // This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
 
-    import JavaScriptKit
-    import JavaScriptEventLoop
-    import JavaScriptBigIntSupport
-    \n
+
     """
 
     static let ignoredNames: Set = [
@@ -30,11 +29,19 @@ enum IDLBuilder {
         "OffscreenRenderingContextId",
     ]
 
-    static func writeFile(path: String, content: String) throws {
+    static func writeFile(path: String, content: String, moduleDependencies: [String]) throws {
         if FileManager.default.fileExists(atPath: path) {
             try FileManager.default.removeItem(atPath: path)
         }
-        try (preamble + content).write(toFile: path, atomically: true, encoding: .utf8)
+
+        var dependencies = basicDependencies + moduleDependencies
+        if content.contains(" Int64") {
+            dependencies.append("JavaScriptBigIntSupport")
+        }
+
+        let formedPreamble = preamble + dependencies.map { "import \($0)" }.joined(separator: "\n")
+
+        try (formedPreamble + "\n\n" + content).write(toFile: path, atomically: true, encoding: .utf8)
     }
 
     static func generateIDLBindings(idl: [GenericCollection<IDLNode>]) throws -> SwiftSource {
diff --git a/Sources/WebIDLToSwift/IDLParser.swift b/Sources/WebIDLToSwift/IDLParser.swift
index aa409c7d..167e6352 100644
--- a/Sources/WebIDLToSwift/IDLParser.swift
+++ b/Sources/WebIDLToSwift/IDLParser.swift
@@ -2,23 +2,25 @@ import Foundation
 import WebIDL
 
 enum IDLParser {
-    private static func getJSONData() -> Data {
+    private static func getJSONData(_ modules: [String]) -> Data {
         print("Fetching parsed IDL files...")
         let task = Process()
         let pipe = Pipe()
         task.standardOutput = pipe
         task.standardError = FileHandle.standardError
-        task.arguments = ["-c", "npm start --silent"]
+        task.arguments = ["-c", "npm start --silent \(modules.joined(separator: " "))"]
         task.launchPath = "/bin/zsh"
-        task.currentDirectoryPath = FileManager.default.currentDirectoryPath + "/parse-idl"
+        task.currentDirectoryURL = URL(fileURLWithPath: #file)
+            .deletingLastPathComponent()
+            .appendingPathComponent("../../parse-idl")
         task.launch()
-
         return pipe.fileHandleForReading.readDataToEndOfFile()
     }
 
-    static func parseIDL() throws -> [GenericCollection<IDLNode>] {
-        let data = getJSONData()
-        print("Building IDL struct tree...")
+    static func parseIDL(modules: [String]) throws -> [GenericCollection<IDLNode>] {
+        let data = getJSONData(modules)
+        print("Building IDL struct tree from data of size \(data.count) bytes")
+
         return try JSONDecoder().decode([GenericCollection<IDLNode>].self, from: data)
     }
 }
diff --git a/Sources/WebIDLToSwift/Module.swift b/Sources/WebIDLToSwift/Module.swift
new file mode 100644
index 00000000..2e4f2c23
--- /dev/null
+++ b/Sources/WebIDLToSwift/Module.swift
@@ -0,0 +1,72 @@
+/// Represents a group of IDL modules from which a corresponding Swift module is generated.
+struct Module {
+    /// Name of the generated Swift module.
+    let swiftModule: String
+
+    /// Names of source IDL modules.
+    let idlModules: [String]
+
+    /// Names of Swift modules that this module should depend on.
+    let dependencies: [String]
+}
+
+let modules = [
+    Module(
+        swiftModule: "WebAPIBase",
+        idlModules: ["console", "webidl", "url"],
+        dependencies: []
+    ),
+    Module(
+        swiftModule: "DOM",
+        idlModules: [
+            "dom",
+            "html",
+            "wai-aria",
+            "uievents",
+            "css-pseudo",
+            "geometry",
+            "cssom-view",
+            "hr-time",
+            "FileAPI",
+            "xhr",
+            "referrer-policy",
+            "fetch",
+            "streams",
+            "mediacapture-streams",
+            "mediastream-recording",
+            "webcodecs",
+            "service-workers",
+        ],
+        dependencies: ["WebAPIBase"]
+    ),
+    Module(
+        swiftModule: "WebSockets",
+        idlModules: ["websockets"],
+        dependencies: ["DOM", "WebAPIBase"]
+    ),
+    Module(
+        swiftModule: "WebAudio",
+        idlModules: ["webaudio"],
+        dependencies: ["DOM", "WebAPIBase"]
+    ),
+    Module(
+        swiftModule: "WebAnimations",
+        idlModules: ["web-animations"],
+        dependencies: ["DOM", "WebAPIBase", "WebAudio"]
+    ),
+    Module(
+        swiftModule: "WebGL1",
+        idlModules: ["webgl1"],
+        dependencies: ["DOM", "WebAnimations"]
+    ),
+    Module(
+        swiftModule: "WebGL2",
+        idlModules: ["webgl2"],
+        dependencies: ["WebGL1"]
+    ),
+    Module(
+        swiftModule: "WebGPU",
+        idlModules: ["webgpu"],
+        dependencies: ["DOM", "WebAnimations", "WebGL1"]
+    ),
+]
diff --git a/Sources/WebIDLToSwift/PackageManifest.swift b/Sources/WebIDLToSwift/PackageManifest.swift
new file mode 100644
index 00000000..7558d392
--- /dev/null
+++ b/Sources/WebIDLToSwift/PackageManifest.swift
@@ -0,0 +1,68 @@
+// swiftlint:disable function_body_length
+func generateManifest(_ modules: [Module]) -> String {
+    #"""
+    // swift-tools-version:5.5
+    // 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)],
+        products: [
+            .executable(
+                name: "WebAPIKitDemo",
+                targets: ["WebAPIKitDemo"]
+            ),
+    \#(
+        modules.map {
+            #"""
+                    .library(
+                        name: "\#($0.swiftModule)",
+                        targets: ["\#($0.swiftModule)"]
+                    ),
+            """#
+        }.joined(separator: "\n")
+    )
+            .executable(name: "WebIDLToSwift", targets: ["WebIDLToSwift"]),
+        ],
+        dependencies: [
+            .package(
+                url: "https://github.com/swiftwasm/JavaScriptKit.git",
+                from: "0.15.0"
+            ),
+        ],
+        targets: [
+            .executableTarget(
+                name: "WebAPIKitDemo",
+                dependencies: ["DOM", "WebGL2"]
+            ),
+    \#(
+        modules.map {
+            #"""
+                    .target(
+                        name: "\#($0.swiftModule)",
+                        dependencies: \#($0.dependencies + ["ECMAScript"])
+                    ),
+            """#
+        }.joined(separator: "\n")
+    )
+            // This support library should be moved to JavaScriptKit
+            .target(name: "ECMAScript", dependencies: [
+                "JavaScriptKit",
+                .product(name: "JavaScriptEventLoop", package: "JavaScriptKit"),
+                .product(name: "JavaScriptBigIntSupport", package: "JavaScriptKit"),
+            ]),
+            .target(name: "WebIDL"),
+            .executableTarget(
+                name: "WebIDLToSwift",
+                dependencies: ["WebIDL"]
+            ),
+            .testTarget(
+                name: "WebAPIKitTests",
+                dependencies: ["DOM"]
+            ),
+        ]
+    )
+    """#
+}
diff --git a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
index a17bc850..169825c0 100644
--- a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
+++ b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
@@ -207,9 +207,11 @@ extension MergedInterface: SwiftRepresentable {
         }
 
         let inheritance = (parentClasses.isEmpty ? ["JSBridgedClass"] : parentClasses) + mixins
+        let access: SwiftSource = ["DOMException", "EventTarget", "Event", "Worklet"].contains(name) ? "open" : "public"
+
         return """
-        public class \(name): \(sequence: inheritance.map(SwiftSource.init(_:))) {
-            @inlinable public\(parentClasses.isEmpty ? "" : " override") class var constructor: JSFunction? { \(constructor) }
+        \(access) class \(name): \(sequence: inheritance.map(SwiftSource.init(_:))) {
+            @inlinable \(access)\(parentClasses.isEmpty ? "" : " override") class var constructor: JSFunction? { \(constructor) }
 
             \(parentClasses.isEmpty ? "public let jsObject: JSObject" : "")
 
diff --git a/Sources/WebIDLToSwift/main.swift b/Sources/WebIDLToSwift/main.swift
index 994d6d65..f1b67136 100644
--- a/Sources/WebIDLToSwift/main.swift
+++ b/Sources/WebIDLToSwift/main.swift
@@ -5,25 +5,45 @@ main()
 
 func main() {
     do {
-        let startTime = Date()
-        let idl = try IDLParser.parseIDL()
-        let outputPath = "Sources/WebAPIKit/Generated.swift"
-        var contents: [SwiftSource] = []
-        print("Generating bindings...")
-        contents.append(try IDLBuilder.generateIDLBindings(idl: idl))
-        print("Generating closure property wrappers...")
-        contents.append(try IDLBuilder.generateClosureTypes())
-        print("Generating JSString constants...")
-        contents.append(try IDLBuilder.generateStrings())
-        print("Generating union protocols...")
-        contents.append(try IDLBuilder.generateUnions())
-        try IDLBuilder.writeFile(
-            path: outputPath,
-            content: contents.joined(separator: "\n\n").source
-        )
-
-        SwiftFormatter.run(source: outputPath)
-        print("Done in \(Int(Date().timeIntervalSince(startTime) * 1000))ms.")
+        let packageDir = URL(fileURLWithPath: #file)
+            .deletingLastPathComponent()
+            .deletingLastPathComponent()
+            .deletingLastPathComponent()
+
+        for module in modules {
+            let startTime = Date()
+            let idl = try IDLParser.parseIDL(modules: module.idlModules)
+
+            let outputDir = packageDir
+                .appendingPathComponent("Sources")
+                .appendingPathComponent(module.swiftModule)
+
+            print("Making sure that directory exists: \(outputDir.path)")
+            try FileManager.default.createDirectory(at: outputDir, withIntermediateDirectories: true)
+
+            let outputPath = outputDir.appendingPathComponent("Generated.swift").path
+            var contents: [SwiftSource] = []
+            print("Generating bindings...")
+            contents.append(try IDLBuilder.generateIDLBindings(idl: idl))
+            print("Generating closure property wrappers...")
+            contents.append(try IDLBuilder.generateClosureTypes())
+            print("Generating JSString constants...")
+            contents.append(try IDLBuilder.generateStrings())
+            print("Generating union protocols...")
+            contents.append(try IDLBuilder.generateUnions())
+            try IDLBuilder.writeFile(
+                path: outputPath,
+                content: contents.joined(separator: "\n\n").source,
+                moduleDependencies: module.dependencies
+            )
+
+            SwiftFormatter.run(source: outputPath)
+            print("Module \(module.swiftModule) done in \(Int(Date().timeIntervalSince(startTime) * 1000))ms.")
+        }
+
+        try generateManifest(modules)
+            .write(toFile: packageDir.appendingPathComponent("Package.swift").path, atomically: true, encoding: .utf8)
+        print("Package.swift manifest successfully regenerated and updated on the filesystem.")
     } catch {
         handleDecodingError(error)
     }
diff --git a/Sources/WebSockets/Generated.swift b/Sources/WebSockets/Generated.swift
new file mode 100644
index 00000000..4bd89087
--- /dev/null
+++ b/Sources/WebSockets/Generated.swift
@@ -0,0 +1,4291 @@
+// This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
+
+import DOM
+import ECMAScript
+import JavaScriptKit
+import WebAPIBase
+
+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)
+        }
+        return nil
+    }
+
+    @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 }
+
+    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)
+    }
+
+    @inlinable public convenience init(type: String, eventInitDict: CloseEventInit? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [type.jsValue, eventInitDict?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var wasClean: Bool
+
+    @ReadonlyAttribute
+    public var code: UInt16
+
+    @ReadonlyAttribute
+    public var reason: String
+}
+
+public class CloseEventInit: BridgedDictionary {
+    public convenience init(wasClean: Bool, code: UInt16, reason: String) {
+        let object = JSObject.global[Strings.Object].function!.new()
+        object[Strings.wasClean] = wasClean.jsValue
+        object[Strings.code] = code.jsValue
+        object[Strings.reason] = reason.jsValue
+        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)
+    }
+
+    @ReadWriteAttribute
+    public var wasClean: Bool
+
+    @ReadWriteAttribute
+    public var code: UInt16
+
+    @ReadWriteAttribute
+    public var reason: String
+}
+
+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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onopen)
+        _onerror = ReadWriteAttribute(jsObject: jsObject, name: Strings.onerror)
+        _onclose = ReadWriteAttribute(jsObject: jsObject, name: Strings.onclose)
+        _extensions = ReadonlyAttribute(jsObject: jsObject, name: Strings.extensions)
+        _protocol = ReadonlyAttribute(jsObject: jsObject, name: Strings.protocol)
+        _onmessage = ReadWriteAttribute(jsObject: jsObject, name: Strings.onmessage)
+        _binaryType = ReadWriteAttribute(jsObject: jsObject, name: Strings.binaryType)
+        super.init(unsafelyWrapping: jsObject)
+    }
+
+    @inlinable public convenience init(url: String, protocols: String_or_seq_of_String? = nil) {
+        self.init(unsafelyWrapping: Self.constructor!.new(arguments: [url.jsValue, protocols?.jsValue ?? .undefined]))
+    }
+
+    @ReadonlyAttribute
+    public var url: String
+
+    public static let CONNECTING: UInt16 = 0
+
+    public static let OPEN: UInt16 = 1
+
+    public static let CLOSING: UInt16 = 2
+
+    public static let CLOSED: UInt16 = 3
+
+    @ReadonlyAttribute
+    public var readyState: UInt16
+
+    @ReadonlyAttribute
+    public var bufferedAmount: UInt64
+
+    @ReadWriteAttribute
+    public var onopen: EventHandler
+
+    @ReadWriteAttribute
+    public var onerror: EventHandler
+
+    @ReadWriteAttribute
+    public var onclose: EventHandler
+
+    @ReadonlyAttribute
+    public var extensions: String
+
+    @ReadonlyAttribute
+    public var `protocol`: String
+
+    @inlinable public func close(code: UInt16? = nil, reason: String? = nil) {
+        let this = jsObject
+        _ = this[Strings.close].function!(this: this, arguments: [code?.jsValue ?? .undefined, reason?.jsValue ?? .undefined])
+    }
+
+    @ReadWriteAttribute
+    public var onmessage: EventHandler
+
+    @ReadWriteAttribute
+    public var binaryType: BinaryType
+
+    @inlinable public func send(data: BlobPart) {
+        let this = jsObject
+        _ = this[Strings.send].function!(this: this, arguments: [data.jsValue])
+    }
+}
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@usableFromInline enum Strings {
+    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 CanvasFilter: JSString = "CanvasFilter"
+    @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 CloseEvent: JSString = "CloseEvent"
+    @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 DOMException: JSString = "DOMException"
+    @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 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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
+    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
+    @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 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 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 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 URLSearchParams: JSString = "URLSearchParams"
+    @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 WebSocket: JSString = "WebSocket"
+    @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 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 addModule: JSString = "addModule"
+    @usableFromInline static let addPath: JSString = "addPath"
+    @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 ancestorOrigins: JSString = "ancestorOrigins"
+    @usableFromInline static let anchors: JSString = "anchors"
+    @usableFromInline static let animated: JSString = "animated"
+    @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 appendChild: JSString = "appendChild"
+    @usableFromInline static let appendData: JSString = "appendData"
+    @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 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 ariaCurrent: JSString = "ariaCurrent"
+    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
+    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
+    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
+    @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 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 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 `as`: JSString = "as"
+    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
+    @usableFromInline static let assert: JSString = "assert"
+    @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 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 binaryType: JSString = "binaryType"
+    @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 bufferedAmount: JSString = "bufferedAmount"
+    @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 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 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 checkValidity: JSString = "checkValidity"
+    @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 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 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 console: JSString = "console"
+    @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 count: JSString = "count"
+    @usableFromInline static let countReset: JSString = "countReset"
+    @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 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 debug: JSString = "debug"
+    @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 `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 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 dirxml: JSString = "dirxml"
+    @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 draggable: JSString = "draggable"
+    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
+    @usableFromInline static let drawImage: JSString = "drawImage"
+    @usableFromInline static let dropEffect: JSString = "dropEffect"
+    @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 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 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 extensions: JSString = "extensions"
+    @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 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 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 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 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 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 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 getImageData: JSString = "getImageData"
+    @usableFromInline static let getLineDash: JSString = "getLineDash"
+    @usableFromInline static let getModifierState: JSString = "getModifierState"
+    @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 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 group: JSString = "group"
+    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
+    @usableFromInline static let groupEnd: JSString = "groupEnd"
+    @usableFromInline static let groupId: JSString = "groupId"
+    @usableFromInline static let handled: JSString = "handled"
+    @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 hasChildNodes: JSString = "hasChildNodes"
+    @usableFromInline static let hasFeature: JSString = "hasFeature"
+    @usableFromInline static let hasFocus: JSString = "hasFocus"
+    @usableFromInline static let hash: JSString = "hash"
+    @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 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 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 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 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 isVisible: JSString = "isVisible"
+    @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 log: JSString = "log"
+    @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 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 navigationPreload: JSString = "navigationPreload"
+    @usableFromInline static let navigator: JSString = "navigator"
+    @usableFromInline static let networkState: JSString = "networkState"
+    @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 oldURL: JSString = "oldURL"
+    @usableFromInline static let oldValue: JSString = "oldValue"
+    @usableFromInline static let onLine: JSString = "onLine"
+    @usableFromInline static let onabort: JSString = "onabort"
+    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
+    @usableFromInline static let onafterprint: JSString = "onafterprint"
+    @usableFromInline static let onauxclick: JSString = "onauxclick"
+    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
+    @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 oncut: JSString = "oncut"
+    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
+    @usableFromInline static let ondblclick: JSString = "ondblclick"
+    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
+    @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 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 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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
+    @usableFromInline static let onunload: JSString = "onunload"
+    @usableFromInline static let onunmute: JSString = "onunmute"
+    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
+    @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 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 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 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 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 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 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 removeNamedItem: JSString = "removeNamedItem"
+    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
+    @usableFromInline static let removeParameter: JSString = "removeParameter"
+    @usableFromInline static let removeTrack: JSString = "removeTrack"
+    @usableFromInline static let removedNodes: JSString = "removedNodes"
+    @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 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 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 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 searchParams: JSString = "searchParams"
+    @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 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 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 sort: JSString = "sort"
+    @usableFromInline static let source: JSString = "source"
+    @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 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 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 table: JSString = "table"
+    @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 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 time: JSString = "time"
+    @usableFromInline static let timeEnd: JSString = "timeEnd"
+    @usableFromInline static let timeLog: JSString = "timeLog"
+    @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 title: JSString = "title"
+    @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 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 trace: JSString = "trace"
+    @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 translate: JSString = "translate"
+    @usableFromInline static let translateSelf: JSString = "translateSelf"
+    @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 updateViaCache: JSString = "updateViaCache"
+    @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 userAgent: JSString = "userAgent"
+    @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 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 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 warn: JSString = "warn"
+    @usableFromInline static let wasClean: JSString = "wasClean"
+    @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"
+}
+
+public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_ArrayBuffer_or_String {}
+extension String: Any_ArrayBuffer_or_String {}
+
+public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
+    case arrayBuffer(ArrayBuffer)
+    case string(String)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
+
+public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
+    case audioTrack(AudioTrack)
+    case textTrack(TextTrack)
+    case videoTrack(VideoTrack)
+
+    public var audioTrack: AudioTrack? {
+        switch self {
+        case let .audioTrack(audioTrack): return audioTrack
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_BlobPart: ConvertibleToJSValue {}
+extension Blob: Any_BlobPart {}
+extension BufferSource: Any_BlobPart {}
+extension String: Any_BlobPart {}
+
+public enum BlobPart: JSValueCompatible, Any_BlobPart {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case string(String)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
+extension Bool: Any_Bool_or_MediaTrackConstraints {}
+extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
+
+public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
+    case bool(Bool)
+    case mediaTrackConstraints(MediaTrackConstraints)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var mediaTrackConstraints: MediaTrackConstraints? {
+        switch self {
+        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
+            return .mediaTrackConstraints(mediaTrackConstraints)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
+    case bool(Bool)
+    case scrollIntoViewOptions(ScrollIntoViewOptions)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+        switch self {
+        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
+            return .scrollIntoViewOptions(scrollIntoViewOptions)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bool(bool):
+            return bool.jsValue
+        case let .scrollIntoViewOptions(scrollIntoViewOptions):
+            return scrollIntoViewOptions.jsValue
+        }
+    }
+}
+
+public protocol Any_BufferSource: ConvertibleToJSValue {}
+extension ArrayBuffer: Any_BufferSource {}
+extension ArrayBufferView: Any_BufferSource {}
+
+public enum BufferSource: JSValueCompatible, Any_BufferSource {
+    case arrayBuffer(ArrayBuffer)
+    case arrayBufferView(ArrayBufferView)
+
+    public var arrayBuffer: ArrayBuffer? {
+        switch self {
+        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        default: return nil
+        }
+    }
+
+    public var arrayBufferView: ArrayBufferView? {
+        switch self {
+        case let .arrayBufferView(arrayBufferView): return arrayBufferView
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .arrayBuffer(arrayBuffer):
+            return arrayBuffer.jsValue
+        case let .arrayBufferView(arrayBufferView):
+            return arrayBufferView.jsValue
+        }
+    }
+}
+
+public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
+extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
+extension Element: Any_CSSPseudoElement_or_Element {}
+
+public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
+    case cssPseudoElement(CSSPseudoElement)
+    case element(Element)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        default: return nil
+        }
+    }
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement):
+            return cssPseudoElement.jsValue
+        case let .element(element):
+            return element.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
+extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
+extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
+
+public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
+    case canvasFilterInput(CanvasFilterInput)
+    case seq_of_CanvasFilterInput([CanvasFilterInput])
+
+    public var canvasFilterInput: CanvasFilterInput? {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
+        default: return nil
+        }
+    }
+
+    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
+        switch self {
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
+            return .canvasFilterInput(canvasFilterInput)
+        }
+        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
+            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilterInput(canvasFilterInput):
+            return canvasFilterInput.jsValue
+        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
+            return seq_of_CanvasFilterInput.jsValue
+        }
+    }
+}
+
+public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
+extension CanvasFilter: Any_CanvasFilter_or_String {}
+extension String: Any_CanvasFilter_or_String {}
+
+public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
+    case canvasFilter(CanvasFilter)
+    case string(String)
+
+    public var canvasFilter: CanvasFilter? {
+        switch self {
+        case let .canvasFilter(canvasFilter): return canvasFilter
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let canvasFilter: CanvasFilter = value.fromJSValue() {
+            return .canvasFilter(canvasFilter)
+        }
+        if let string: String = value.fromJSValue() {
+            return .string(string)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .canvasFilter(canvasFilter):
+            return canvasFilter.jsValue
+        case let .string(string):
+            return string.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 {
+    case canvasGradient(CanvasGradient)
+    case canvasPattern(CanvasPattern)
+    case string(String)
+
+    public var canvasGradient: CanvasGradient? {
+        switch self {
+        case let .canvasGradient(canvasGradient): return canvasGradient
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_CanvasImageSource {}
+extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
+extension HTMLVideoElement: Any_CanvasImageSource {}
+extension ImageBitmap: Any_CanvasImageSource {}
+extension OffscreenCanvas: Any_CanvasImageSource {}
+extension VideoFrame: Any_CanvasImageSource {}
+
+public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
+extension Bool: Any_ConstrainBoolean {}
+extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
+
+public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
+    case bool(Bool)
+    case constrainBooleanParameters(ConstrainBooleanParameters)
+
+    public var bool: Bool? {
+        switch self {
+        case let .bool(bool): return bool
+        default: return nil
+        }
+    }
+
+    public var constrainBooleanParameters: ConstrainBooleanParameters? {
+        switch self {
+        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let bool: Bool = value.fromJSValue() {
+            return .bool(bool)
+        }
+        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
+            return .constrainBooleanParameters(constrainBooleanParameters)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Array: Any_ConstrainDOMString where Element == String {}
+
+public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
+    case constrainDOMStringParameters(ConstrainDOMStringParameters)
+    case string(String)
+    case seq_of_String([String])
+
+    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
+        switch self {
+        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
+extension ConstrainDoubleRange: Any_ConstrainDouble {}
+extension Double: Any_ConstrainDouble {}
+
+public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
+    case constrainDoubleRange(ConstrainDoubleRange)
+    case double(Double)
+
+    public var constrainDoubleRange: ConstrainDoubleRange? {
+        switch self {
+        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
+            return .constrainDoubleRange(constrainDoubleRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ConstrainULong: ConvertibleToJSValue {}
+extension ConstrainULongRange: Any_ConstrainULong {}
+extension UInt32: Any_ConstrainULong {}
+
+public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
+    case constrainULongRange(ConstrainULongRange)
+    case uInt32(UInt32)
+
+    public var constrainULongRange: ConstrainULongRange? {
+        switch self {
+        case let .constrainULongRange(constrainULongRange): return constrainULongRange
+        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
+            return .constrainULongRange(constrainULongRange)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
+extension DOMPointInit: Any_DOMPointInit_or_Double {}
+extension Double: Any_DOMPointInit_or_Double {}
+
+public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        default: return nil
+        }
+    }
+
+    public var double: Double? {
+        switch self {
+        case let .double(double): return double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {
+    case domPointInit(DOMPointInit)
+    case double(Double)
+    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
+
+    public var domPointInit: DOMPointInit? {
+        switch self {
+        case let .domPointInit(domPointInit): return domPointInit
+        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
+        default: return nil
+        }
+    }
+
+    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
+            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
+
+public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
+    case document(Document)
+    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
+
+    public var document: Document? {
+        switch self {
+        case let .document(document): return document
+        default: return nil
+        }
+    }
+
+    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
+        switch self {
+        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let document: Document = value.fromJSValue() {
+            return .document(document)
+        }
+        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
+            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
+    case elementCreationOptions(ElementCreationOptions)
+    case string(String)
+
+    public var elementCreationOptions: ElementCreationOptions? {
+        switch self {
+        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
+            return .elementCreationOptions(elementCreationOptions)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
+extension Element: Any_Element_or_HTMLCollection {}
+extension HTMLCollection: Any_Element_or_HTMLCollection {}
+
+public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
+    case element(Element)
+    case htmlCollection(HTMLCollection)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var htmlCollection: HTMLCollection? {
+        switch self {
+        case let .htmlCollection(htmlCollection): return htmlCollection
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
+    case element(Element)
+    case radioNodeList(RadioNodeList)
+
+    public var element: Element? {
+        switch self {
+        case let .element(element): return element
+        default: return nil
+        }
+    }
+
+    public var radioNodeList: RadioNodeList? {
+        switch self {
+        case let .radioNodeList(radioNodeList): return radioNodeList
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
+    case element(Element)
+    case text(Text)
+
+    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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
+    case event(Event)
+    case string(String)
+
+    public var event: Event? {
+        switch self {
+        case let .event(event): return event
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension String: Any_File_or_FormData_or_String {}
+
+public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
+    case file(File)
+    case formData(FormData)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        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 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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
+extension File: Any_FormDataEntryValue {}
+extension String: Any_FormDataEntryValue {}
+
+public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
+    case file(File)
+    case string(String)
+
+    public var file: File? {
+        switch self {
+        case let .file(file): return file
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+extension Element: Any_GeometryNode {}
+extension Text: Any_GeometryNode {}
+
+public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
+    case cssPseudoElement(CSSPseudoElement)
+    case document(Document)
+    case element(Element)
+    case text(Text)
+
+    public var cssPseudoElement: CSSPseudoElement? {
+        switch self {
+        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
+
+    public var htmlCanvasElement: HTMLCanvasElement? {
+        switch self {
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
+        default: return nil
+        }
+    }
+
+    public var offscreenCanvas: OffscreenCanvas? {
+        switch self {
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
+extension HTMLElement: Any_HTMLElement_or_Int32 {}
+extension Int32: Any_HTMLElement_or_Int32 {}
+
+public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
+    case htmlElement(HTMLElement)
+    case int32(Int32)
+
+    public var htmlElement: HTMLElement? {
+        switch self {
+        case let .htmlElement(htmlElement): return htmlElement
+        default: return nil
+        }
+    }
+
+    public var int32: Int32? {
+        switch self {
+        case let .int32(int32): return int32
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
+    case htmlOptGroupElement(HTMLOptGroupElement)
+    case htmlOptionElement(HTMLOptionElement)
+
+    public var htmlOptGroupElement: HTMLOptGroupElement? {
+        switch self {
+        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
+        default: return nil
+        }
+    }
+
+    public var htmlOptionElement: HTMLOptionElement? {
+        switch self {
+        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
+            return .htmlOptGroupElement(htmlOptGroupElement)
+        }
+        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
+            return .htmlOptionElement(htmlOptionElement)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 Array: Any_HeadersInit where Element == [String] {}
+
+public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let record_String_to_String: [String: String] = value.fromJSValue() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
+extension Blob: Any_ImageBitmapSource {}
+extension CanvasImageSource: Any_ImageBitmapSource {}
+extension ImageData: Any_ImageBitmapSource {}
+
+public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
+    case blob(Blob)
+    case canvasImageSource(CanvasImageSource)
+    case imageData(ImageData)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
+extension BufferSource: Any_ImageBufferSource {}
+extension ReadableStream: Any_ImageBufferSource {}
+
+public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
+    case bufferSource(BufferSource)
+    case readableStream(ReadableStream)
+
+    public var bufferSource: BufferSource? {
+        switch self {
+        case let .bufferSource(bufferSource): return bufferSource
+        default: return nil
+        }
+    }
+
+    public var readableStream: ReadableStream? {
+        switch self {
+        case let .readableStream(readableStream): return readableStream
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .bufferSource(bufferSource):
+            return bufferSource.jsValue
+        case let .readableStream(readableStream):
+            return readableStream.jsValue
+        }
+    }
+}
+
+public protocol Any_MessageEventSource: ConvertibleToJSValue {}
+extension MessagePort: Any_MessageEventSource {}
+extension ServiceWorker: Any_MessageEventSource {}
+extension WindowProxy: Any_MessageEventSource {}
+
+public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
+    case messagePort(MessagePort)
+    case serviceWorker(ServiceWorker)
+    case windowProxy(WindowProxy)
+
+    public var messagePort: MessagePort? {
+        switch self {
+        case let .messagePort(messagePort): return messagePort
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+public protocol Any_Node_or_String: ConvertibleToJSValue {}
+extension Node: Any_Node_or_String {}
+extension String: Any_Node_or_String {}
+
+public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
+    case node(Node)
+    case string(String)
+
+    public var node: Node? {
+        switch self {
+        case let .node(node): return node
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
+    case path2D(Path2D)
+    case string(String)
+
+    public var path2D: Path2D? {
+        switch self {
+        case let .path2D(path2D): return path2D
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
+    case readableByteStreamController(ReadableByteStreamController)
+    case readableStreamDefaultController(ReadableStreamDefaultController)
+
+    public var readableByteStreamController: ReadableByteStreamController? {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultController: ReadableStreamDefaultController? {
+        switch self {
+        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
+            return .readableByteStreamController(readableByteStreamController)
+        }
+        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
+            return .readableStreamDefaultController(readableStreamDefaultController)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .readableByteStreamController(readableByteStreamController):
+            return readableByteStreamController.jsValue
+        case let .readableStreamDefaultController(readableStreamDefaultController):
+            return readableStreamDefaultController.jsValue
+        }
+    }
+}
+
+public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
+extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
+extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
+
+public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
+    case readableStreamBYOBReader(ReadableStreamBYOBReader)
+    case readableStreamDefaultReader(ReadableStreamDefaultReader)
+
+    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
+        switch self {
+        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
+        default: return nil
+        }
+    }
+
+    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
+        switch self {
+        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
+            return .readableStreamBYOBReader(readableStreamBYOBReader)
+        }
+        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
+            return .readableStreamDefaultReader(readableStreamDefaultReader)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        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 {}
+
+public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
+    case request(Request)
+    case string(String)
+
+    public var request: Request? {
+        switch self {
+        case let .request(request): return request
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public static func construct(from value: JSValue) -> Self? {
+        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_String_or_WorkerOptions: ConvertibleToJSValue {}
+extension String: Any_String_or_WorkerOptions {}
+extension WorkerOptions: Any_String_or_WorkerOptions {}
+
+public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
+    case string(String)
+    case workerOptions(WorkerOptions)
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var workerOptions: WorkerOptions? {
+        switch self {
+        case let .workerOptions(workerOptions): return workerOptions
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .string(string):
+            return string.jsValue
+        case let .workerOptions(workerOptions):
+            return workerOptions.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 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 {
+    case string(String)
+    case record_String_to_String([String: String])
+    case seq_of_seq_of_String([[String]])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var record_String_to_String: [String: String]? {
+        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
+        default: return nil
+        }
+    }
+
+    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() {
+            return .record_String_to_String(record_String_to_String)
+        }
+        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
+            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        }
+        return nil
+    }
+
+    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
+        }
+    }
+}
+
+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 {}
+
+public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
+    case string(String)
+    case seq_of_Double([Double])
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        default: return nil
+        }
+    }
+
+    public var seq_of_Double: [Double]? {
+        switch self {
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
+
+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])
+
+    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
+        }
+    }
+}
+
+public protocol Any_TimerHandler: ConvertibleToJSValue {}
+extension JSFunction: Any_TimerHandler {}
+extension String: Any_TimerHandler {}
+
+public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
+    case jsFunction(JSFunction)
+    case string(String)
+
+    public var jsFunction: JSFunction? {
+        switch self {
+        case let .jsFunction(jsFunction): return jsFunction
+        default: return nil
+        }
+    }
+
+    public var string: String? {
+        switch self {
+        case let .string(string): return string
+        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)
+        }
+        return nil
+    }
+
+    public var jsValue: JSValue {
+        switch self {
+        case let .jsFunction(jsFunction):
+            return jsFunction.jsValue
+        case let .string(string):
+            return string.jsValue
+        }
+    }
+}
+
+public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
+extension Blob: Any_XMLHttpRequestBodyInit {}
+extension BufferSource: Any_XMLHttpRequestBodyInit {}
+extension FormData: Any_XMLHttpRequestBodyInit {}
+extension String: Any_XMLHttpRequestBodyInit {}
+extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
+
+public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
+    case blob(Blob)
+    case bufferSource(BufferSource)
+    case formData(FormData)
+    case string(String)
+    case urlSearchParams(URLSearchParams)
+
+    public var blob: Blob? {
+        switch self {
+        case let .blob(blob): return blob
+        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
+        default: return nil
+        }
+    }
+
+    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)
+        }
+        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
+        }
+    }
+}
diff --git a/Tests/WebAPIKitTests/WebAPIKitTests.swift b/Tests/WebAPIKitTests/WebAPIKitTests.swift
index ec936d38..bee043df 100644
--- a/Tests/WebAPIKitTests/WebAPIKitTests.swift
+++ b/Tests/WebAPIKitTests/WebAPIKitTests.swift
@@ -1,6 +1,6 @@
+import DOM
 import Foundation
 import JavaScriptKit
-import WebAPIKit
 import XCTest
 
 final class WebAPIKitTests: XCTestCase {
diff --git a/parse-idl/parse-all.js b/parse-idl/parse-all.js
index fc813f1d..b8905907 100644
--- a/parse-idl/parse-all.js
+++ b/parse-idl/parse-all.js
@@ -1,39 +1,11 @@
 import { parseAll } from "@webref/idl";
-import fs from "node:fs/promises";
 
 const parsedFiles = await parseAll();
 // console.log(Object.keys(parsedFiles).join('\n'))
 // console.log(JSON.stringify(Object.values(parsedFiles), null, 2));
 console.log(
   JSON.stringify(
-    [
-      "console",
-      "dom",
-      "fetch",
-      "FileAPI",
-      "html",
-      "geometry",
-      "hr-time",
-      "referrer-policy",
-      "uievents",
-      "wai-aria",
-      "webidl",
-      "web-animations",
-      "xhr",
-      "service-workers",
-      "url",
-      "streams",
-      "websockets",
-      "css-pseudo",
-      "cssom-view",
-      "webaudio",
-      "mediacapture-streams",
-      "mediastream-recording",
-      "webcodecs",
-      "webgl1",
-      "webgl2",
-      "webgpu",
-    ].map((key) => parsedFiles[key]),
+    process.argv.slice(2).map((key) => parsedFiles[key]),
     null,
     2
   )

From ab99b228a5cf5e99bf989fbda9dac1e0b3c6ec78 Mon Sep 17 00:00:00 2001
From: Max Desiatov <max@desiatov.com>
Date: Fri, 26 Aug 2022 17:19:08 +0100
Subject: [PATCH 2/3] Fix dependencies and property wrappers

---
 Package.swift                                 |  6 +-
 Sources/WebAPIKitDemo/WebGLDemo.swift         |  3 +
 Sources/WebAPIKitDemo/main.swift              |  1 +
 Sources/WebAnimations/Generated.swift         | 12 ++--
 Sources/WebAudio/Generated.swift              | 20 +++---
 Sources/WebGL1/Generated.swift                |  6 +-
 Sources/WebGL1/Support.swift                  |  1 +
 Sources/WebGL2/Generated.swift                |  4 ++
 Sources/WebGL2/Support.swift                  |  1 +
 Sources/WebGPU/Generated.swift                |  6 +-
 Sources/WebGPU/Support.swift                  |  1 +
 Sources/WebIDLToSwift/Context.swift           |  6 ++
 Sources/WebIDLToSwift/IDLBuilder.swift        |  9 ++-
 Sources/WebIDLToSwift/MergeDeclarations.swift | 18 ++---
 Sources/WebIDLToSwift/Module.swift            | 69 ++++++++++---------
 .../WebIDL+SwiftRepresentation.swift          | 12 ++--
 Sources/WebIDLToSwift/main.swift              |  3 +
 Sources/WebSockets/Generated.swift            | 16 ++---
 18 files changed, 114 insertions(+), 80 deletions(-)

diff --git a/Package.swift b/Package.swift
index 08efb429..1af95dd3 100644
--- a/Package.swift
+++ b/Package.swift
@@ -78,15 +78,15 @@ let package = Package(
         ),
         .target(
             name: "WebGL1",
-            dependencies: ["DOM", "WebAnimations", "ECMAScript"]
+            dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations", "ECMAScript"]
         ),
         .target(
             name: "WebGL2",
-            dependencies: ["WebGL1", "ECMAScript"]
+            dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations", "WebGL1", "ECMAScript"]
         ),
         .target(
             name: "WebGPU",
-            dependencies: ["DOM", "WebAnimations", "WebGL1", "ECMAScript"]
+            dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations", "WebGL1", "ECMAScript"]
         ),
         // This support library should be moved to JavaScriptKit
         .target(name: "ECMAScript", dependencies: [
diff --git a/Sources/WebAPIKitDemo/WebGLDemo.swift b/Sources/WebAPIKitDemo/WebGLDemo.swift
index a10d0d5a..4768b778 100644
--- a/Sources/WebAPIKitDemo/WebGLDemo.swift
+++ b/Sources/WebAPIKitDemo/WebGLDemo.swift
@@ -27,6 +27,9 @@
 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+import DOM
+import WebAPIBase
+import WebGL1
 import WebGL2
 
 let vertexShaderSource =
diff --git a/Sources/WebAPIKitDemo/main.swift b/Sources/WebAPIKitDemo/main.swift
index 93df201e..b02e75c9 100644
--- a/Sources/WebAPIKitDemo/main.swift
+++ b/Sources/WebAPIKitDemo/main.swift
@@ -1,5 +1,6 @@
 import DOM
 import JavaScriptKit
+import WebAPIBase
 
 let document = globalThis.document
 
diff --git a/Sources/WebAnimations/Generated.swift b/Sources/WebAnimations/Generated.swift
index b71454a8..d8eea783 100644
--- a/Sources/WebAnimations/Generated.swift
+++ b/Sources/WebAnimations/Generated.swift
@@ -32,9 +32,9 @@ public class Animation: EventTarget {
         _pending = ReadonlyAttribute(jsObject: jsObject, name: Strings.pending)
         _ready = ReadonlyAttribute(jsObject: jsObject, name: Strings.ready)
         _finished = ReadonlyAttribute(jsObject: jsObject, name: Strings.finished)
-        _onfinish = ReadWriteAttribute(jsObject: jsObject, name: Strings.onfinish)
-        _oncancel = ReadWriteAttribute(jsObject: jsObject, name: Strings.oncancel)
-        _onremove = ReadWriteAttribute(jsObject: jsObject, name: Strings.onremove)
+        _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)
     }
 
@@ -69,13 +69,13 @@ public class Animation: EventTarget {
     @ReadonlyAttribute
     public var finished: JSPromise
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onfinish: EventHandler
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var oncancel: EventHandler
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onremove: EventHandler
 
     @inlinable public func cancel() {
diff --git a/Sources/WebAudio/Generated.swift b/Sources/WebAudio/Generated.swift
index 5f217680..713ddea6 100644
--- a/Sources/WebAudio/Generated.swift
+++ b/Sources/WebAudio/Generated.swift
@@ -722,11 +722,11 @@ public class AudioScheduledSourceNode: AudioNode {
     @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.AudioScheduledSourceNode].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _onended = ReadWriteAttribute(jsObject: jsObject, name: Strings.onended)
+        _onended = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onended)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onended: EventHandler
 
     @inlinable public func start(when: Double? = nil) {
@@ -775,7 +775,7 @@ public class AudioWorkletNode: AudioNode {
     public required init(unsafelyWrapping jsObject: JSObject) {
         _parameters = ReadonlyAttribute(jsObject: jsObject, name: Strings.parameters)
         _port = ReadonlyAttribute(jsObject: jsObject, name: Strings.port)
-        _onprocessorerror = ReadWriteAttribute(jsObject: jsObject, name: Strings.onprocessorerror)
+        _onprocessorerror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onprocessorerror)
         super.init(unsafelyWrapping: jsObject)
     }
 
@@ -789,7 +789,7 @@ public class AudioWorkletNode: AudioNode {
     @ReadonlyAttribute
     public var port: MessagePort
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onprocessorerror: EventHandler
 }
 
@@ -857,7 +857,7 @@ public class BaseAudioContext: EventTarget {
         _listener = ReadonlyAttribute(jsObject: jsObject, name: Strings.listener)
         _state = ReadonlyAttribute(jsObject: jsObject, name: Strings.state)
         _audioWorklet = ReadonlyAttribute(jsObject: jsObject, name: Strings.audioWorklet)
-        _onstatechange = ReadWriteAttribute(jsObject: jsObject, name: Strings.onstatechange)
+        _onstatechange = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onstatechange)
         super.init(unsafelyWrapping: jsObject)
     }
 
@@ -879,7 +879,7 @@ public class BaseAudioContext: EventTarget {
     @ReadonlyAttribute
     public var audioWorklet: AudioWorklet
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onstatechange: EventHandler
 
     @inlinable public func createAnalyser() -> AnalyserNode {
@@ -1583,7 +1583,7 @@ public class OfflineAudioContext: BaseAudioContext {
 
     public required init(unsafelyWrapping jsObject: JSObject) {
         _length = ReadonlyAttribute(jsObject: jsObject, name: Strings.length)
-        _oncomplete = ReadWriteAttribute(jsObject: jsObject, name: Strings.oncomplete)
+        _oncomplete = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.oncomplete)
         super.init(unsafelyWrapping: jsObject)
     }
 
@@ -1634,7 +1634,7 @@ public class OfflineAudioContext: BaseAudioContext {
     @ReadonlyAttribute
     public var length: UInt32
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var oncomplete: EventHandler
 }
 
@@ -1996,12 +1996,12 @@ public class ScriptProcessorNode: AudioNode {
     @inlinable override public class var constructor: JSFunction? { JSObject.global[Strings.ScriptProcessorNode].function }
 
     public required init(unsafelyWrapping jsObject: JSObject) {
-        _onaudioprocess = ReadWriteAttribute(jsObject: jsObject, name: Strings.onaudioprocess)
+        _onaudioprocess = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onaudioprocess)
         _bufferSize = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferSize)
         super.init(unsafelyWrapping: jsObject)
     }
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onaudioprocess: EventHandler
 
     @ReadonlyAttribute
diff --git a/Sources/WebGL1/Generated.swift b/Sources/WebGL1/Generated.swift
index 3cc2b5e0..47b2a2c3 100644
--- a/Sources/WebGL1/Generated.swift
+++ b/Sources/WebGL1/Generated.swift
@@ -5,6 +5,8 @@ import ECMAScript
 import JavaScriptBigIntSupport
 import JavaScriptKit
 import WebAnimations
+import WebAPIBase
+import WebAudio
 
 public typealias GLenum = UInt32
 public typealias GLboolean = Bool
@@ -146,8 +148,8 @@ public class WebGLFramebuffer: WebGLObject {
     }
 }
 
-public class WebGLObject: JSBridgedClass {
-    @inlinable public class var constructor: JSFunction? { JSObject.global[Strings.WebGLObject].function }
+open class WebGLObject: JSBridgedClass {
+    @inlinable open class var constructor: JSFunction? { JSObject.global[Strings.WebGLObject].function }
 
     public let jsObject: JSObject
 
diff --git a/Sources/WebGL1/Support.swift b/Sources/WebGL1/Support.swift
index b4bf7943..bb942252 100644
--- a/Sources/WebGL1/Support.swift
+++ b/Sources/WebGL1/Support.swift
@@ -1,4 +1,5 @@
 import DOM
+import JavaScriptKit
 
 public typealias GLintptr = Int32
 
diff --git a/Sources/WebGL2/Generated.swift b/Sources/WebGL2/Generated.swift
index ddcfcfaf..766435b5 100644
--- a/Sources/WebGL2/Generated.swift
+++ b/Sources/WebGL2/Generated.swift
@@ -1,8 +1,12 @@
 // This file was auto-generated by WebIDLToSwift. DO NOT EDIT!
 
+import DOM
 import ECMAScript
 import JavaScriptBigIntSupport
 import JavaScriptKit
+import WebAnimations
+import WebAPIBase
+import WebAudio
 import WebGL1
 
 public typealias GLint64 = Int64
diff --git a/Sources/WebGL2/Support.swift b/Sources/WebGL2/Support.swift
index f30fa785..7db1fce7 100644
--- a/Sources/WebGL2/Support.swift
+++ b/Sources/WebGL2/Support.swift
@@ -1,4 +1,5 @@
 import DOM
+import JavaScriptKit
 
 extension WebGL2RenderingContext: RenderingContext {
   public static var contextID: JSString { "webgl2" }
diff --git a/Sources/WebGPU/Generated.swift b/Sources/WebGPU/Generated.swift
index 1c3e210d..0df511db 100644
--- a/Sources/WebGPU/Generated.swift
+++ b/Sources/WebGPU/Generated.swift
@@ -4,6 +4,8 @@ import DOM
 import ECMAScript
 import JavaScriptKit
 import WebAnimations
+import WebAPIBase
+import WebAudio
 import WebGL1
 
 public class GPU: JSBridgedClass {
@@ -1047,7 +1049,7 @@ public class GPUDevice: EventTarget, GPUObjectBase {
         _limits = ReadonlyAttribute(jsObject: jsObject, name: Strings.limits)
         _queue = ReadonlyAttribute(jsObject: jsObject, name: Strings.queue)
         _lost = ReadonlyAttribute(jsObject: jsObject, name: Strings.lost)
-        _onuncapturederror = ReadWriteAttribute(jsObject: jsObject, name: Strings.onuncapturederror)
+        _onuncapturederror = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onuncapturederror)
         super.init(unsafelyWrapping: jsObject)
     }
 
@@ -1174,7 +1176,7 @@ public class GPUDevice: EventTarget, GPUObjectBase {
         return try await _promise.value.fromJSValue()!
     }
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onuncapturederror: EventHandler
 }
 
diff --git a/Sources/WebGPU/Support.swift b/Sources/WebGPU/Support.swift
index bac5e45c..e96b3a50 100644
--- a/Sources/WebGPU/Support.swift
+++ b/Sources/WebGPU/Support.swift
@@ -1,4 +1,5 @@
 import DOM
+import JavaScriptKit
 
 extension GPUCanvasContext: RenderingContext {
   public static var contextID: JSString { "webgpu" }
diff --git a/Sources/WebIDLToSwift/Context.swift b/Sources/WebIDLToSwift/Context.swift
index 495eb878..ac693d0c 100644
--- a/Sources/WebIDLToSwift/Context.swift
+++ b/Sources/WebIDLToSwift/Context.swift
@@ -86,5 +86,11 @@ enum Context {
             newState.types = types
             return newState
         }
+
+        mutating func add(types: [String: IDLTypealias]) {
+            for (name, type) in types {
+                self.types[name] = type
+            }
+        }
     }
 }
diff --git a/Sources/WebIDLToSwift/IDLBuilder.swift b/Sources/WebIDLToSwift/IDLBuilder.swift
index 645bd50a..59f34d4c 100644
--- a/Sources/WebIDLToSwift/IDLBuilder.swift
+++ b/Sources/WebIDLToSwift/IDLBuilder.swift
@@ -44,7 +44,7 @@ enum IDLBuilder {
         try (formedPreamble + "\n\n" + content).write(toFile: path, atomically: true, encoding: .utf8)
     }
 
-    static func generateIDLBindings(idl: [GenericCollection<IDLNode>]) throws -> SwiftSource {
+    static func generateIDLBindings(idl: [GenericCollection<IDLNode>], baseTypes: [String : IDLTypealias]) throws -> SwiftSource {
         let declarations = idl.flatMap(\.array)
         let merged = DeclarationMerger.merge(declarations: declarations)
         var contents: [SwiftSource] = []
@@ -53,7 +53,7 @@ enum IDLBuilder {
                 continue
             }
 
-            let nodeContent = Context.withState(.root(
+            var state = Context.State.root(
                 interfaces: merged.interfaces,
                 ignored: [
                     // functions as parameters are unsupported
@@ -110,7 +110,10 @@ enum IDLBuilder {
                     "OffscreenCanvas": ["getContext"],
                 ],
                 types: merged.types
-            )) {
+            )
+            state.add(types: baseTypes)
+
+            let nodeContent = Context.withState(state) {
                 toSwift(node)
             }
             contents.append(nodeContent)
diff --git a/Sources/WebIDLToSwift/MergeDeclarations.swift b/Sources/WebIDLToSwift/MergeDeclarations.swift
index 7902f6ed..da6b0faf 100644
--- a/Sources/WebIDLToSwift/MergeDeclarations.swift
+++ b/Sources/WebIDLToSwift/MergeDeclarations.swift
@@ -51,12 +51,12 @@ enum DeclarationMerger {
         // }
         // print(byName.filter { $0.value.count > 1 }.map { "\($0.key ?? "<nil>"): \($0.value.map { type(of: $0).type }))" }.joined(separator: "\n"))
 
-        func all<T: IDLNode>(_: T.Type) -> [T] {
+        func allNodes<T: IDLNode>(ofType: T.Type) -> [T] {
             byType[T.type]?.map { $0 as! T } ?? []
         }
 
         let mixins = Dictionary(
-            grouping: all(IDLInterfaceMixin.self).map {
+            grouping: allNodes(ofType: IDLInterfaceMixin.self).map {
                 MergedMixin(
                     name: $0.name,
                     members: addAsync($0.members.array) as! [IDLInterfaceMixinMember]
@@ -69,11 +69,11 @@ enum DeclarationMerger {
             }
         }
 
-        let includes = Dictionary(grouping: all(IDLIncludes.self)) { $0.target }
+        let includes = Dictionary(grouping: allNodes(ofType: IDLIncludes.self)) { $0.target }
             .mapValues { $0.map(\.includes).filter { !Self.ignoredParents.contains($0) } }
 
         let mergedInterfaces = Dictionary(
-            grouping: all(IDLInterface.self).map {
+            grouping: allNodes(ofType: IDLInterface.self).map {
                 MergedInterface(
                     name: $0.name,
                     parentClasses: [$0.inheritance]
@@ -104,7 +104,7 @@ enum DeclarationMerger {
         }.filter { $0.value.exposedToAll || $0.value.exposed.contains(where: validExposures.contains) }
 
         let mergedDictionaries = Dictionary(
-            grouping: all(IDLDictionary.self).map {
+            grouping: allNodes(ofType: IDLDictionary.self).map {
                 MergedDictionary(
                     name: $0.name,
                     inheritance: [$0.inheritance]
@@ -124,7 +124,7 @@ enum DeclarationMerger {
         }
 
         let mergedNamespaces = Dictionary(
-            grouping: all(IDLNamespace.self).map {
+            grouping: allNodes(ofType: IDLNamespace.self).map {
                 MergedNamespace(
                     name: $0.name,
                     members: addAsync($0.members.array) as! [IDLNamespaceMember]
@@ -137,9 +137,9 @@ enum DeclarationMerger {
             }
         }
 
-        print("unhandled callback interfaces", all(IDLCallbackInterface.self).map(\.name))
+        print("unhandled callback interfaces", allNodes(ofType: IDLCallbackInterface.self).map(\.name))
 
-        var allTypes: [IDLTypealias] = all(IDLTypedef.self) + all(IDLCallback.self)
+        var allTypes: [IDLTypealias] = allNodes(ofType: IDLTypedef.self) + allNodes(ofType: IDLCallback.self)
         allTypes.removeAll(where: { ignoredTypedefs.contains($0.name) })
         let mergedTypes = Dictionary(uniqueKeysWithValues: allTypes.map { ($0.name, $0) })
 
@@ -170,7 +170,7 @@ enum DeclarationMerger {
         return MergeResult(
             declarations: arrays
                 + [Typedefs(typedefs: allTypes)]
-                + all(IDLEnum.self),
+                + allNodes(ofType: IDLEnum.self),
             interfaces: mergedInterfaces,
             types: mergedTypes
             // unions: unions
diff --git a/Sources/WebIDLToSwift/Module.swift b/Sources/WebIDLToSwift/Module.swift
index 2e4f2c23..eebba5e5 100644
--- a/Sources/WebIDLToSwift/Module.swift
+++ b/Sources/WebIDLToSwift/Module.swift
@@ -6,39 +6,44 @@ struct Module {
     /// Names of source IDL modules.
     let idlModules: [String]
 
-    /// Names of Swift modules that this module should depend on.
+    /// Names of Swift modules that this module should depend on. This array should also include any transitive
+    /// dependencies, that are directly referenced in this module, as those aren't automatically inferred at the moment.
     let dependencies: [String]
 }
 
+let baseModule = Module(
+    swiftModule: "WebAPIBase",
+    idlModules: ["console", "webidl", "url"],
+    dependencies: []
+)
+
+let domModule = Module(
+    swiftModule: "DOM",
+    idlModules: [
+        "dom",
+        "html",
+        "wai-aria",
+        "uievents",
+        "css-pseudo",
+        "geometry",
+        "cssom-view",
+        "hr-time",
+        "FileAPI",
+        "xhr",
+        "referrer-policy",
+        "fetch",
+        "streams",
+        "mediacapture-streams",
+        "mediastream-recording",
+        "webcodecs",
+        "service-workers",
+    ],
+    dependencies: ["WebAPIBase"]
+)
+
 let modules = [
-    Module(
-        swiftModule: "WebAPIBase",
-        idlModules: ["console", "webidl", "url"],
-        dependencies: []
-    ),
-    Module(
-        swiftModule: "DOM",
-        idlModules: [
-            "dom",
-            "html",
-            "wai-aria",
-            "uievents",
-            "css-pseudo",
-            "geometry",
-            "cssom-view",
-            "hr-time",
-            "FileAPI",
-            "xhr",
-            "referrer-policy",
-            "fetch",
-            "streams",
-            "mediacapture-streams",
-            "mediastream-recording",
-            "webcodecs",
-            "service-workers",
-        ],
-        dependencies: ["WebAPIBase"]
-    ),
+    baseModule,
+    domModule,
     Module(
         swiftModule: "WebSockets",
         idlModules: ["websockets"],
@@ -57,16 +62,16 @@ let modules = [
     Module(
         swiftModule: "WebGL1",
         idlModules: ["webgl1"],
-        dependencies: ["DOM", "WebAnimations"]
+        dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations"]
     ),
     Module(
         swiftModule: "WebGL2",
         idlModules: ["webgl2"],
-        dependencies: ["WebGL1"]
+        dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations", "WebGL1"]
     ),
     Module(
         swiftModule: "WebGPU",
         idlModules: ["webgpu"],
-        dependencies: ["DOM", "WebAnimations", "WebGL1"]
+        dependencies: ["DOM", "WebAPIBase", "WebAudio", "WebAnimations", "WebGL1"]
     ),
 ]
diff --git a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
index 169825c0..4460c4f8 100644
--- a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
+++ b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
@@ -207,7 +207,9 @@ extension MergedInterface: SwiftRepresentable {
         }
 
         let inheritance = (parentClasses.isEmpty ? ["JSBridgedClass"] : parentClasses) + mixins
-        let access: SwiftSource = ["DOMException", "EventTarget", "Event", "Worklet"].contains(name) ? "open" : "public"
+        // Allow cross-module subclassing with `open` access modifier for classes that require this.
+        let openClasses = ["DOMException", "EventTarget", "Event", "Worklet", "WebGLObject"]
+        let access: SwiftSource = openClasses.contains(name) ? "open" : "public"
 
         return """
         \(access) class \(name): \(sequence: inheritance.map(SwiftSource.init(_:))) {
@@ -628,6 +630,7 @@ extension IDLType: SwiftRepresentable {
         // (should they be a JSFunction? or a closure? or something else?))
         if case let .single(name) = value {
             let readonlyComment: SwiftSource = readonly ? " /* XXX: should be readonly! */ " : ""
+            // print(Context.types)
             if let callback = Context.types[name] as? IDLCallback {
                 return "\(closureWrapper(callback, optional: false))\(readonlyComment)"
             }
@@ -648,10 +651,9 @@ extension IDLType: SwiftRepresentable {
     }
 
     private func closureWrapper(_ callback: IDLCallback, optional: Bool) -> SwiftSource {
-        let void: SwiftSource = callback.idlType.swiftRepresentation == "Void" ? "Void" : ""
-        let optional: SwiftSource = optional ? "Optional" : ""
-        let argCount = String(callback.arguments.count)
-        return "ClosureAttribute\(argCount)\(optional)\(void)"
+        let returnsVoid = callback.idlType.swiftRepresentation == "Void"
+        let argCount = callback.arguments.count
+        return ClosurePattern(nullable: optional, void: returnsVoid, argCount: argCount).name
     }
 }
 
diff --git a/Sources/WebIDLToSwift/main.swift b/Sources/WebIDLToSwift/main.swift
index f1b67136..a2085fa9 100644
--- a/Sources/WebIDLToSwift/main.swift
+++ b/Sources/WebIDLToSwift/main.swift
@@ -10,6 +10,9 @@ func main() {
             .deletingLastPathComponent()
             .deletingLastPathComponent()
 
+        let domIDL = try [baseModule, domModule].flatMap { try IDLParser.parseIDL(modules: $0.idlModules) }
+        let domTypes = DeclarationMerger.merge(declarations: domIDL.flatMap(\.array)).types
+
         for module in modules {
             let startTime = Date()
             let idl = try IDLParser.parseIDL(modules: module.idlModules)
diff --git a/Sources/WebSockets/Generated.swift b/Sources/WebSockets/Generated.swift
index 4bd89087..53deda1b 100644
--- a/Sources/WebSockets/Generated.swift
+++ b/Sources/WebSockets/Generated.swift
@@ -80,12 +80,12 @@ public class WebSocket: EventTarget {
         _url = ReadonlyAttribute(jsObject: jsObject, name: Strings.url)
         _readyState = ReadonlyAttribute(jsObject: jsObject, name: Strings.readyState)
         _bufferedAmount = ReadonlyAttribute(jsObject: jsObject, name: Strings.bufferedAmount)
-        _onopen = ReadWriteAttribute(jsObject: jsObject, name: Strings.onopen)
-        _onerror = ReadWriteAttribute(jsObject: jsObject, name: Strings.onerror)
-        _onclose = ReadWriteAttribute(jsObject: jsObject, name: Strings.onclose)
+        _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 = ReadWriteAttribute(jsObject: jsObject, name: Strings.onmessage)
+        _onmessage = ClosureAttribute1Optional(jsObject: jsObject, name: Strings.onmessage)
         _binaryType = ReadWriteAttribute(jsObject: jsObject, name: Strings.binaryType)
         super.init(unsafelyWrapping: jsObject)
     }
@@ -111,13 +111,13 @@ public class WebSocket: EventTarget {
     @ReadonlyAttribute
     public var bufferedAmount: UInt64
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onopen: EventHandler
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onerror: EventHandler
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onclose: EventHandler
 
     @ReadonlyAttribute
@@ -131,7 +131,7 @@ public class WebSocket: EventTarget {
         _ = this[Strings.close].function!(this: this, arguments: [code?.jsValue ?? .undefined, reason?.jsValue ?? .undefined])
     }
 
-    @ReadWriteAttribute
+    @ClosureAttribute1Optional
     public var onmessage: EventHandler
 
     @ReadWriteAttribute

From 08eeb1b16336dde31d4dc4bc73b32805a6f72f00 Mon Sep 17 00:00:00 2001
From: Max Desiatov <max@desiatov.com>
Date: Sat, 27 Aug 2022 10:55:02 +0100
Subject: [PATCH 3/3] Fix duplicated strings and unions

---
 Sources/DOM/Generated.swift                   |  570 --
 Sources/WebAPIBase/Generated.swift            |  578 +-
 Sources/WebAnimations/Generated.swift         | 4471 +-------------
 Sources/WebAudio/Generated.swift              | 4180 -------------
 Sources/WebGL1/Generated.swift                | 4744 +--------------
 Sources/WebGL2/Generated.swift                | 5010 +--------------
 Sources/WebGPU/Generated.swift                | 5370 +----------------
 Sources/WebIDLToSwift/Context.swift           |   96 -
 Sources/WebIDLToSwift/IDLBuilder.swift        |  149 +-
 Sources/WebIDLToSwift/Module.swift            |    1 -
 Sources/WebIDLToSwift/ModuleState.swift       |  108 +
 Sources/WebIDLToSwift/SwiftSource.swift       |    4 +-
 .../UnionType+SwiftRepresentable.swift        |    4 +-
 Sources/WebIDLToSwift/UnionType.swift         |    4 +-
 .../WebIDL+SwiftRepresentation.swift          |  108 +-
 Sources/WebIDLToSwift/main.swift              |   72 +-
 Sources/WebSockets/Generated.swift            | 4066 +------------
 17 files changed, 1132 insertions(+), 28403 deletions(-)
 delete mode 100644 Sources/WebIDLToSwift/Context.swift
 create mode 100644 Sources/WebIDLToSwift/ModuleState.swift

diff --git a/Sources/DOM/Generated.swift b/Sources/DOM/Generated.swift
index 61a23352..ccb62221 100644
--- a/Sources/DOM/Generated.swift
+++ b/Sources/DOM/Generated.swift
@@ -17330,457 +17330,6 @@ public class XSLTProcessor: JSBridgedClass {
     }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     static let _self: JSString = "self"
     @usableFromInline static let AbortController: JSString = "AbortController"
@@ -17814,7 +17363,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
     @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
     @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
     @usableFromInline static let DOMImplementation: JSString = "DOMImplementation"
     @usableFromInline static let DOMMatrix: JSString = "DOMMatrix"
     @usableFromInline static let DOMMatrixReadOnly: JSString = "DOMMatrixReadOnly"
@@ -18010,7 +17558,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let TreeWalker: JSString = "TreeWalker"
     @usableFromInline static let UIEvent: JSString = "UIEvent"
     @usableFromInline static let URL: JSString = "URL"
-    @usableFromInline static let URLSearchParams: JSString = "URLSearchParams"
     @usableFromInline static let ValidityState: JSString = "ValidityState"
     @usableFromInline static let VideoColorSpace: JSString = "VideoColorSpace"
     @usableFromInline static let VideoDecoder: JSString = "VideoDecoder"
@@ -18132,7 +17679,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let arrayBuffer: JSString = "arrayBuffer"
     @usableFromInline static let `as`: JSString = "as"
     @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
     @usableFromInline static let assign: JSString = "assign"
     @usableFromInline static let assignedElements: JSString = "assignedElements"
     @usableFromInline static let assignedNodes: JSString = "assignedNodes"
@@ -18281,7 +17827,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let config: JSString = "config"
     @usableFromInline static let configure: JSString = "configure"
     @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let console: JSString = "console"
     @usableFromInline static let constraint: JSString = "constraint"
     @usableFromInline static let contains: JSString = "contains"
     @usableFromInline static let content: JSString = "content"
@@ -18300,8 +17845,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let cookieEnabled: JSString = "cookieEnabled"
     @usableFromInline static let coords: JSString = "coords"
     @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
     @usableFromInline static let createAttribute: JSString = "createAttribute"
     @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
     @usableFromInline static let createCDATASection: JSString = "createCDATASection"
@@ -18344,7 +17887,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let dataTransfer: JSString = "dataTransfer"
     @usableFromInline static let dataset: JSString = "dataset"
     @usableFromInline static let dateTime: JSString = "dateTime"
-    @usableFromInline static let debug: JSString = "debug"
     @usableFromInline static let declare: JSString = "declare"
     @usableFromInline static let decode: JSString = "decode"
     @usableFromInline static let decodeQueueSize: JSString = "decodeQueueSize"
@@ -18387,7 +17929,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let dir: JSString = "dir"
     @usableFromInline static let dirName: JSString = "dirName"
     @usableFromInline static let direction: JSString = "direction"
-    @usableFromInline static let dirxml: JSString = "dirxml"
     @usableFromInline static let disable: JSString = "disable"
     @usableFromInline static let disabled: JSString = "disabled"
     @usableFromInline static let disconnect: JSString = "disconnect"
@@ -18546,9 +18087,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let globalAlpha: JSString = "globalAlpha"
     @usableFromInline static let globalCompositeOperation: JSString = "globalCompositeOperation"
     @usableFromInline static let go: JSString = "go"
-    @usableFromInline static let group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
     @usableFromInline static let groupId: JSString = "groupId"
     @usableFromInline static let handled: JSString = "handled"
     @usableFromInline static let hangingBaseline: JSString = "hangingBaseline"
@@ -18598,7 +18136,6 @@ public class XSLTProcessor: JSBridgedClass {
     @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"
@@ -18694,7 +18231,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let location: JSString = "location"
     @usableFromInline static let locationbar: JSString = "locationbar"
     @usableFromInline static let locked: JSString = "locked"
-    @usableFromInline static let log: JSString = "log"
     @usableFromInline static let longDesc: JSString = "longDesc"
     @usableFromInline static let lookupNamespaceURI: JSString = "lookupNamespaceURI"
     @usableFromInline static let lookupPrefix: JSString = "lookupPrefix"
@@ -19136,7 +18672,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let scrolling: JSString = "scrolling"
     @usableFromInline static let scrollingElement: JSString = "scrollingElement"
     @usableFromInline static let search: JSString = "search"
-    @usableFromInline static let searchParams: JSString = "searchParams"
     @usableFromInline static let sectionRowIndex: JSString = "sectionRowIndex"
     @usableFromInline static let seekable: JSString = "seekable"
     @usableFromInline static let seeking: JSString = "seeking"
@@ -19204,7 +18739,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let slotAssignment: JSString = "slotAssignment"
     @usableFromInline static let snapshotItem: JSString = "snapshotItem"
     @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
     @usableFromInline static let source: JSString = "source"
     @usableFromInline static let span: JSString = "span"
     @usableFromInline static let specified: JSString = "specified"
@@ -19256,7 +18790,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let tFoot: JSString = "tFoot"
     @usableFromInline static let tHead: JSString = "tHead"
     @usableFromInline static let tabIndex: JSString = "tabIndex"
-    @usableFromInline static let table: JSString = "table"
     @usableFromInline static let tagName: JSString = "tagName"
     @usableFromInline static let taintEnabled: JSString = "taintEnabled"
     @usableFromInline static let takeRecords: JSString = "takeRecords"
@@ -19273,9 +18806,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let textRendering: JSString = "textRendering"
     @usableFromInline static let textTracks: JSString = "textTracks"
     @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
     @usableFromInline static let timeOrigin: JSString = "timeOrigin"
     @usableFromInline static let timeStamp: JSString = "timeStamp"
     @usableFromInline static let timecode: JSString = "timecode"
@@ -19295,7 +18825,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let toolbar: JSString = "toolbar"
     @usableFromInline static let top: JSString = "top"
     @usableFromInline static let total: JSString = "total"
-    @usableFromInline static let trace: JSString = "trace"
     @usableFromInline static let track: JSString = "track"
     @usableFromInline static let tracks: JSString = "tracks"
     @usableFromInline static let transfer: JSString = "transfer"
@@ -19349,7 +18878,6 @@ public class XSLTProcessor: JSBridgedClass {
     @usableFromInline static let vspace: JSString = "vspace"
     @usableFromInline static let w: JSString = "w"
     @usableFromInline static let waiting: JSString = "waiting"
-    @usableFromInline static let warn: JSString = "warn"
     @usableFromInline static let webkitMatchesSelector: JSString = "webkitMatchesSelector"
     @usableFromInline static let whatToShow: JSString = "whatToShow"
     @usableFromInline static let whenDefined: JSString = "whenDefined"
@@ -19609,48 +19137,6 @@ public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_Scroll
     }
 }
 
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
 public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
 extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
 extension Element: Any_CSSPseudoElement_or_Element {}
@@ -21205,62 +20691,6 @@ public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOpti
     }
 }
 
-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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
 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 {}
diff --git a/Sources/WebAPIBase/Generated.swift b/Sources/WebAPIBase/Generated.swift
index ae719928..3b448b70 100644
--- a/Sources/WebAPIBase/Generated.swift
+++ b/Sources/WebAPIBase/Generated.swift
@@ -307,69 +307,6 @@ public enum console {
     }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     static let _self: JSString = "self"
     @usableFromInline static let DOMException: JSString = "DOMException"
@@ -518,3 +455,518 @@ public enum String_or_record_String_to_String_or_seq_of_seq_of_String: JSValueCo
         }
     }
 }
+
+/* variadic generics please */
+@propertyWrapper public final class ClosureAttribute0<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                newValue().jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
+    where ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+                    newValue().jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0OptionalVoid {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute0Void {
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
+    where A0: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute1Void<A0>
+    where A0: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                    return .undefined
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
+    where A0: JSValueCompatible, A1: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue) }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
+                return .undefined
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            jsObject[name] = JSClosure {
+                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+            }.jsValue
+        }
+    }
+}
+
+@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
+    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
+{
+    @usableFromInline let jsObject: JSObject
+    @usableFromInline let name: JSString
+
+    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
+        }
+        set {
+            if let newValue = newValue {
+                jsObject[name] = JSClosure {
+                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
+                }.jsValue
+            } else {
+                jsObject[name] = .null
+            }
+        }
+    }
+}
diff --git a/Sources/WebAnimations/Generated.swift b/Sources/WebAnimations/Generated.swift
index d8eea783..0fa54bba 100644
--- a/Sources/WebAnimations/Generated.swift
+++ b/Sources/WebAnimations/Generated.swift
@@ -634,2472 +634,200 @@ public enum TimelinePhase: JSString, JSValueCompatible {
     @inlinable public var jsValue: JSValue { rawValue.jsValue }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 AnalyserNode: JSString = "AnalyserNode"
     @usableFromInline static let Animation: JSString = "Animation"
     @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
     @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
-    @usableFromInline static let Attr: JSString = "Attr"
-    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
-    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
-    @usableFromInline static let AudioContext: JSString = "AudioContext"
-    @usableFromInline static let AudioData: JSString = "AudioData"
-    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
-    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
-    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
-    @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 AudioTrack: JSString = "AudioTrack"
-    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
-    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
-    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
-    @usableFromInline static let BarProp: JSString = "BarProp"
-    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
-    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
-    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
-    @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 CanvasFilter: JSString = "CanvasFilter"
-    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
-    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
-    @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
-    @usableFromInline static let Comment: JSString = "Comment"
-    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
-    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
-    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
-    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
-    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
-    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
-    @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 DelayNode: JSString = "DelayNode"
-    @usableFromInline static let Document: JSString = "Document"
-    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
     @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
-    @usableFromInline static let DocumentType: JSString = "DocumentType"
-    @usableFromInline static let DragEvent: JSString = "DragEvent"
-    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
-    @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 GainNode: JSString = "GainNode"
-    @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 IIRFilterNode: JSString = "IIRFilterNode"
-    @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 KeyframeEffect: JSString = "KeyframeEffect"
-    @usableFromInline static let Location: JSString = "Location"
-    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
-    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
-    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
-    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @usableFromInline static let MediaStream: JSString = "MediaStream"
-    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
-    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
-    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
-    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
-    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
-    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
-    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
-    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
-    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
-    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
-    @usableFromInline static let PannerNode: JSString = "PannerNode"
-    @usableFromInline static let Path2D: JSString = "Path2D"
-    @usableFromInline static let Performance: JSString = "Performance"
-    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
-    @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 Q: JSString = "Q"
-    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
-    @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 StaticRange: JSString = "StaticRange"
-    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
-    @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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WaveShaperNode: JSString = "WaveShaperNode"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
-    @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 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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @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 ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
     @usableFromInline static let animate: JSString = "animate"
-    @usableFromInline static let animated: JSString = "animated"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 `as`: JSString = "as"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 attack: JSString = "attack"
-    @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 audioWorklet: JSString = "audioWorklet"
-    @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 automationRate: JSString = "automationRate"
-    @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 b: JSString = "b"
-    @usableFromInline static let back: JSString = "back"
-    @usableFromInline static let background: JSString = "background"
-    @usableFromInline static let badInput: JSString = "badInput"
-    @usableFromInline static let baseLatency: JSString = "baseLatency"
-    @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 binaryType: JSString = "binaryType"
-    @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 buffer: JSString = "buffer"
-    @usableFromInline static let bufferSize: JSString = "bufferSize"
-    @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
-    @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 canPlayType: JSString = "canPlayType"
     @usableFromInline static let cancel: JSString = "cancel"
-    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
-    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
-    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
-    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
-    @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 channelCount: JSString = "channelCount"
-    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
-    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
-    @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 checkValidity: JSString = "checkValidity"
-    @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 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 commitStyles: JSString = "commitStyles"
-    @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 composite: JSString = "composite"
     @usableFromInline static let computedOffset: JSString = "computedOffset"
-    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
-    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
-    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
-    @usableFromInline static let config: JSString = "config"
-    @usableFromInline static let configure: JSString = "configure"
-    @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let connect: JSString = "connect"
-    @usableFromInline static let console: JSString = "console"
-    @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 context: JSString = "context"
-    @usableFromInline static let contextTime: JSString = "contextTime"
-    @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 copyFromChannel: JSString = "copyFromChannel"
-    @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
-    @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
-    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
-    @usableFromInline static let createAttribute: JSString = "createAttribute"
-    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
-    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
-    @usableFromInline static let createBuffer: JSString = "createBuffer"
-    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
-    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
-    @usableFromInline static let createCaption: JSString = "createCaption"
-    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
-    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
-    @usableFromInline static let createComment: JSString = "createComment"
-    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
-    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
-    @usableFromInline static let createConvolver: JSString = "createConvolver"
-    @usableFromInline static let createDelay: JSString = "createDelay"
-    @usableFromInline static let createDocument: JSString = "createDocument"
-    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
-    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
-    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
-    @usableFromInline static let createElement: JSString = "createElement"
-    @usableFromInline static let createElementNS: JSString = "createElementNS"
-    @usableFromInline static let createEvent: JSString = "createEvent"
-    @usableFromInline static let createGain: JSString = "createGain"
-    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
-    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
-    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
-    @usableFromInline static let createImageData: JSString = "createImageData"
-    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
-    @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 createObjectURL: JSString = "createObjectURL"
-    @usableFromInline static let createOscillator: JSString = "createOscillator"
-    @usableFromInline static let createPanner: JSString = "createPanner"
-    @usableFromInline static let createPattern: JSString = "createPattern"
-    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
-    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
-    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
-    @usableFromInline static let createRange: JSString = "createRange"
-    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
-    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
-    @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 createWaveShaper: JSString = "createWaveShaper"
-    @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 currentIteration: JSString = "currentIteration"
-    @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 curve: JSString = "curve"
-    @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 debug: JSString = "debug"
-    @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 `defer`: JSString = "defer"
-    @usableFromInline static let define: JSString = "define"
     @usableFromInline static let delay: JSString = "delay"
-    @usableFromInline static let delayTime: JSString = "delayTime"
-    @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 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 detune: JSString = "detune"
-    @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 dirxml: JSString = "dirxml"
-    @usableFromInline static let disable: JSString = "disable"
-    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
-    @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 distanceModel: JSString = "distanceModel"
-    @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 draggable: JSString = "draggable"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
     @usableFromInline static let duration: JSString = "duration"
-    @usableFromInline static let e: JSString = "e"
     @usableFromInline static let easing: JSString = "easing"
-    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
     @usableFromInline static let effect: JSString = "effect"
-    @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 endDelay: JSString = "endDelay"
-    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
-    @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
-    @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 feedback: JSString = "feedback"
-    @usableFromInline static let feedforward: JSString = "feedforward"
-    @usableFromInline static let fetch: JSString = "fetch"
-    @usableFromInline static let fftSize: JSString = "fftSize"
-    @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 finish: JSString = "finish"
     @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 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 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 forwardX: JSString = "forwardX"
-    @usableFromInline static let forwardY: JSString = "forwardY"
-    @usableFromInline static let forwardZ: JSString = "forwardZ"
-    @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 frequency: JSString = "frequency"
-    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
-    @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 gain: JSString = "gain"
-    @usableFromInline static let get: JSString = "get"
-    @usableFromInline static let getAll: JSString = "getAll"
-    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
     @usableFromInline static let getAnimations: JSString = "getAnimations"
-    @usableFromInline static let getAsFile: JSString = "getAsFile"
-    @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 getByteFrequencyData: JSString = "getByteFrequencyData"
-    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
-    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
-    @usableFromInline static let getChannelData: JSString = "getChannelData"
-    @usableFromInline static let getClientRect: JSString = "getClientRect"
-    @usableFromInline static let getClientRects: JSString = "getClientRects"
     @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
-    @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 getFloatFrequencyData: JSString = "getFloatFrequencyData"
-    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
-    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
-    @usableFromInline static let getImageData: JSString = "getImageData"
     @usableFromInline static let getKeyframes: JSString = "getKeyframes"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
-    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
-    @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 getSettings: JSString = "getSettings"
-    @usableFromInline static let getStartDate: JSString = "getStartDate"
-    @usableFromInline static let getState: JSString = "getState"
-    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
     @usableFromInline static let getTiming: JSString = "getTiming"
-    @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 group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 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 ideographicBaseline: JSString = "ideographicBaseline"
-    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
-    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
-    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
-    @usableFromInline static let imag: JSString = "imag"
-    @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 inputBuffer: JSString = "inputBuffer"
-    @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 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 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 isVisible: JSString = "isVisible"
-    @usableFromInline static let item: JSString = "item"
-    @usableFromInline static let items: JSString = "items"
-    @usableFromInline static let iterateNext: JSString = "iterateNext"
     @usableFromInline static let iterationStart: JSString = "iterationStart"
     @usableFromInline static let iterations: JSString = "iterations"
-    @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 knee: JSString = "knee"
-    @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 latencyHint: JSString = "latencyHint"
-    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
-    @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 listener: JSString = "listener"
-    @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 log: JSString = "log"
-    @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 loopEnd: JSString = "loopEnd"
-    @usableFromInline static let loopStart: JSString = "loopStart"
-    @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 maxChannelCount: JSString = "maxChannelCount"
-    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
-    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
-    @usableFromInline static let maxDistance: JSString = "maxDistance"
-    @usableFromInline static let maxLength: JSString = "maxLength"
-    @usableFromInline static let maxValue: JSString = "maxValue"
-    @usableFromInline static let measureText: JSString = "measureText"
-    @usableFromInline static let media: JSString = "media"
-    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
-    @usableFromInline static let mediaElement: JSString = "mediaElement"
-    @usableFromInline static let mediaStream: JSString = "mediaStream"
-    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
-    @usableFromInline static let menubar: JSString = "menubar"
-    @usableFromInline static let message: JSString = "message"
-    @usableFromInline static let metaKey: JSString = "metaKey"
-    @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 minDecibels: JSString = "minDecibels"
-    @usableFromInline static let minLength: JSString = "minLength"
-    @usableFromInline static let minValue: JSString = "minValue"
-    @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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 numberOfInputs: JSString = "numberOfInputs"
-    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
-    @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncomplete: JSString = "oncomplete"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 onfinish: JSString = "onfinish"
-    @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 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 onprocessorerror: JSString = "onprocessorerror"
-    @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 onremove: JSString = "onremove"
-    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 orientationX: JSString = "orientationX"
-    @usableFromInline static let orientationY: JSString = "orientationY"
-    @usableFromInline static let orientationZ: JSString = "orientationZ"
-    @usableFromInline static let origin: JSString = "origin"
-    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
     @usableFromInline static let originTime: JSString = "originTime"
-    @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 outputBuffer: JSString = "outputBuffer"
-    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
-    @usableFromInline static let outputLatency: JSString = "outputLatency"
-    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
-    @usableFromInline static let oversample: JSString = "oversample"
-    @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 pageX: JSString = "pageX"
-    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
-    @usableFromInline static let pageY: JSString = "pageY"
-    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
-    @usableFromInline static let pan: JSString = "pan"
-    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
-    @usableFromInline static let panningModel: JSString = "panningModel"
-    @usableFromInline static let parameterData: JSString = "parameterData"
-    @usableFromInline static let parameters: JSString = "parameters"
-    @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 pending: JSString = "pending"
-    @usableFromInline static let performance: JSString = "performance"
-    @usableFromInline static let performanceTime: JSString = "performanceTime"
-    @usableFromInline static let periodicWave: JSString = "periodicWave"
     @usableFromInline static let persist: JSString = "persist"
-    @usableFromInline static let persisted: JSString = "persisted"
-    @usableFromInline static let personalbar: JSString = "personalbar"
     @usableFromInline static let phase: JSString = "phase"
-    @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 playState: JSString = "playState"
     @usableFromInline static let playbackRate: JSString = "playbackRate"
-    @usableFromInline static let playbackTime: JSString = "playbackTime"
-    @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 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 positionX: JSString = "positionX"
-    @usableFromInline static let positionY: JSString = "positionY"
-    @usableFromInline static let positionZ: JSString = "positionZ"
-    @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 processorOptions: JSString = "processorOptions"
-    @usableFromInline static let product: JSString = "product"
-    @usableFromInline static let productSub: JSString = "productSub"
     @usableFromInline static let progress: JSString = "progress"
-    @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 pseudoElement: JSString = "pseudoElement"
-    @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 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 rangeOverflow: JSString = "rangeOverflow"
-    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
-    @usableFromInline static let ratio: JSString = "ratio"
-    @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 real: JSString = "real"
-    @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 reduction: JSString = "reduction"
-    @usableFromInline static let refDistance: JSString = "refDistance"
-    @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 release: JSString = "release"
-    @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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
-    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
-    @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 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 reverse: JSString = "reverse"
-    @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 rolloffFactor: JSString = "rolloffFactor"
-    @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 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 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 searchParams: JSString = "searchParams"
-    @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 setKeyframes: JSString = "setKeyframes"
-    @usableFromInline static let setLineDash: JSString = "setLineDash"
-    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
-    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
-    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
-    @usableFromInline static let setOrientation: JSString = "setOrientation"
-    @usableFromInline static let setParameter: JSString = "setParameter"
-    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
-    @usableFromInline static let setPosition: JSString = "setPosition"
-    @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 setTargetAtTime: JSString = "setTargetAtTime"
-    @usableFromInline static let setTimeout: JSString = "setTimeout"
-    @usableFromInline static let setTransform: JSString = "setTransform"
-    @usableFromInline static let setValidity: JSString = "setValidity"
-    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
-    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
-    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
-    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
-    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
-    @usableFromInline static let source: JSString = "source"
-    @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 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 startRendering: JSString = "startRendering"
-    @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 supports: JSString = "supports"
-    @usableFromInline static let surroundContents: JSString = "surroundContents"
-    @usableFromInline static let suspend: JSString = "suspend"
-    @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 table: JSString = "table"
-    @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 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 threshold: JSString = "threshold"
-    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
-    @usableFromInline static let timeStamp: JSString = "timeStamp"
-    @usableFromInline static let timecode: JSString = "timecode"
     @usableFromInline static let timeline: JSString = "timeline"
-    @usableFromInline static let timeout: JSString = "timeout"
-    @usableFromInline static let timestamp: JSString = "timestamp"
-    @usableFromInline static let title: JSString = "title"
-    @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 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 trace: JSString = "trace"
-    @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 translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 upX: JSString = "upX"
-    @usableFromInline static let upY: JSString = "upY"
-    @usableFromInline static let upZ: JSString = "upZ"
-    @usableFromInline static let update: JSString = "update"
     @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
     @usableFromInline static let updateTiming: JSString = "updateTiming"
-    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
-    @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 userAgent: JSString = "userAgent"
-    @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 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 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 warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
-    @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"
 }
 
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
+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 {}
 
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
+public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
+    case compositeOperationOrAuto(CompositeOperationOrAuto)
+    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
 
-    public var arrayBuffer: ArrayBuffer? {
+    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
         switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
         default: return nil
         }
     }
 
-    public var string: String? {
+    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
         switch self {
-        case let .string(string): return string
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let arrayBuffer: ArrayBuffer = value.fromJSValue() {
-            return .arrayBuffer(arrayBuffer)
+        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
+            return .compositeOperationOrAuto(compositeOperationOrAuto)
         }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
+        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
+            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
         }
         return nil
     }
 
     public var jsValue: JSValue {
         switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .string(string):
-            return string.jsValue
+        case let .compositeOperationOrAuto(compositeOperationOrAuto):
+            return compositeOperationOrAuto.jsValue
+        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
+            return seq_of_CompositeOperationOrAuto.jsValue
         }
     }
 }
 
-public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
-extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
-extension Double: Any_AudioContextLatencyCategory_or_Double {}
+public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeAnimationOptions {}
+extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
 
-public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
-    case audioContextLatencyCategory(AudioContextLatencyCategory)
+public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
     case double(Double)
+    case keyframeAnimationOptions(KeyframeAnimationOptions)
 
-    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+    public var double: Double? {
         switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        case let .double(double): return double
         default: return nil
         }
     }
 
-    public var double: Double? {
+    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
         switch self {
-        case let .double(double): return double
+        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
-            return .audioContextLatencyCategory(audioContextLatencyCategory)
-        }
         if let double: Double = value.fromJSValue() {
             return .double(double)
         }
+        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
+            return .keyframeAnimationOptions(keyframeAnimationOptions)
+        }
         return nil
     }
 
     public var jsValue: JSValue {
         switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory):
-            return audioContextLatencyCategory.jsValue
         case let .double(double):
             return double.jsValue
+        case let .keyframeAnimationOptions(keyframeAnimationOptions):
+            return keyframeAnimationOptions.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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
+public protocol Any_Double_or_KeyframeEffectOptions: ConvertibleToJSValue {}
+extension Double: Any_Double_or_KeyframeEffectOptions {}
+extension KeyframeEffectOptions: Any_Double_or_KeyframeEffectOptions {}
 
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        default: return nil
-        }
-    }
+public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
+    case double(Double)
+    case keyframeEffectOptions(KeyframeEffectOptions)
 
-    public var textTrack: TextTrack? {
+    public var double: Double? {
         switch self {
-        case let .textTrack(textTrack): return textTrack
+        case let .double(double): return double
         default: return nil
         }
     }
 
-    public var videoTrack: VideoTrack? {
+    public var keyframeEffectOptions: KeyframeEffectOptions? {
         switch self {
-        case let .videoTrack(videoTrack): return videoTrack
+        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
         default: return nil
         }
     }
 
     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 double: Double = value.fromJSValue() {
+            return .double(double)
         }
-        if let videoTrack: VideoTrack = value.fromJSValue() {
-            return .videoTrack(videoTrack)
+        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
+            return .keyframeEffectOptions(keyframeEffectOptions)
         }
         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 .double(double):
+            return double.jsValue
+        case let .keyframeEffectOptions(keyframeEffectOptions):
+            return keyframeEffectOptions.jsValue
         }
     }
 }
 
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
+public protocol Any_Double_or_String: ConvertibleToJSValue {}
+extension Double: Any_Double_or_String {}
+extension String: Any_Double_or_String {}
 
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
-    case blob(Blob)
-    case bufferSource(BufferSource)
+public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
+    case double(Double)
     case string(String)
 
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        default: return nil
-        }
-    }
-
-    public var bufferSource: BufferSource? {
+    public var double: Double? {
         switch self {
-        case let .bufferSource(bufferSource): return bufferSource
+        case let .double(double): return double
         default: return nil
         }
     }
@@ -3112,11 +840,8 @@ 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 double: Double = value.fromJSValue() {
+            return .double(double)
         }
         if let string: String = value.fromJSValue() {
             return .string(string)
@@ -3126,1958 +851,10 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart {
 
     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
-        }
-    }
-}
-
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
-        switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-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 {}
-
-public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
-    case compositeOperationOrAuto(CompositeOperationOrAuto)
-    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
-
-    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
-        switch self {
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
-            return .compositeOperationOrAuto(compositeOperationOrAuto)
-        }
-        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
-            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto):
-            return compositeOperationOrAuto.jsValue
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
-            return seq_of_CompositeOperationOrAuto.jsValue
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .document(document):
-            return document.jsValue
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
-            return xmlHttpRequestBodyInit.jsValue
-        }
-    }
-}
-
-public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
-extension Double: Any_Double_or_KeyframeAnimationOptions {}
-extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
-
-public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
-    case double(Double)
-    case keyframeAnimationOptions(KeyframeAnimationOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
-        switch self {
-        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
-            return .keyframeAnimationOptions(keyframeAnimationOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
-    case double(Double)
-    case keyframeEffectOptions(KeyframeEffectOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeEffectOptions: KeyframeEffectOptions? {
-        switch self {
-        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
-            return .keyframeEffectOptions(keyframeEffectOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
-    case double(Double)
-    case string(String)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .double(double):
-            return double.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
-extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
-extension String: Any_ElementCreationOptions_or_String {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-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 {}
-
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
+        case let .double(double):
+            return double.jsValue
         case let .string(string):
             return string.jsValue
-        case let .seq_of_Double(seq_of_Double):
-            return seq_of_Double.jsValue
         }
     }
 }
@@ -5124,132 +901,6 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str
     }
 }
 
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
 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? {}
diff --git a/Sources/WebAudio/Generated.swift b/Sources/WebAudio/Generated.swift
index 713ddea6..cb425265 100644
--- a/Sources/WebAudio/Generated.swift
+++ b/Sources/WebAudio/Generated.swift
@@ -2084,2316 +2084,194 @@ public class WaveShaperOptions: BridgedDictionary {
     public var oversample: OverSampleType
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 AnalyserNode: JSString = "AnalyserNode"
-    @usableFromInline static let Attr: JSString = "Attr"
     @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
     @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
     @usableFromInline static let AudioContext: JSString = "AudioContext"
-    @usableFromInline static let AudioData: JSString = "AudioData"
-    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
     @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
-    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
     @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 AudioTrack: JSString = "AudioTrack"
-    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
     @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
     @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
-    @usableFromInline static let BarProp: JSString = "BarProp"
     @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
-    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
     @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
-    @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 CanvasFilter: JSString = "CanvasFilter"
-    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
     @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
-    @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
-    @usableFromInline static let Comment: JSString = "Comment"
-    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
     @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
     @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
-    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
-    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
-    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
-    @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 DelayNode: JSString = "DelayNode"
-    @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 DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
-    @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 GainNode: JSString = "GainNode"
-    @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 IIRFilterNode: JSString = "IIRFilterNode"
-    @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 MediaDeviceInfo: JSString = "MediaDeviceInfo"
-    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
     @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
-    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @usableFromInline static let MediaStream: JSString = "MediaStream"
     @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
     @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
-    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
     @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
     @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
-    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
-    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
     @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
-    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
-    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
     @usableFromInline static let PannerNode: JSString = "PannerNode"
-    @usableFromInline static let Path2D: JSString = "Path2D"
-    @usableFromInline static let Performance: JSString = "Performance"
     @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
-    @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 Q: JSString = "Q"
-    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
-    @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 StaticRange: JSString = "StaticRange"
     @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
-    @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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WaveShaperNode: JSString = "WaveShaperNode"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
-    @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 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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @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 ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animated: JSString = "animated"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 `as`: JSString = "as"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 attack: JSString = "attack"
-    @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 audioWorklet: JSString = "audioWorklet"
-    @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 automationRate: JSString = "automationRate"
-    @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 b: JSString = "b"
-    @usableFromInline static let back: JSString = "back"
-    @usableFromInline static let background: JSString = "background"
-    @usableFromInline static let badInput: JSString = "badInput"
     @usableFromInline static let baseLatency: JSString = "baseLatency"
-    @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 binaryType: JSString = "binaryType"
-    @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 buffer: JSString = "buffer"
     @usableFromInline static let bufferSize: JSString = "bufferSize"
-    @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
-    @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 canPlayType: JSString = "canPlayType"
-    @usableFromInline static let cancel: JSString = "cancel"
     @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
-    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
-    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
     @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
-    @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 channelCount: JSString = "channelCount"
     @usableFromInline static let channelCountMode: JSString = "channelCountMode"
     @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
-    @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 checkValidity: JSString = "checkValidity"
-    @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 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 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 coneInnerAngle: JSString = "coneInnerAngle"
     @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
     @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
-    @usableFromInline static let config: JSString = "config"
-    @usableFromInline static let configure: JSString = "configure"
-    @usableFromInline static let confirm: JSString = "confirm"
     @usableFromInline static let connect: JSString = "connect"
-    @usableFromInline static let console: JSString = "console"
-    @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 context: JSString = "context"
     @usableFromInline static let contextTime: JSString = "contextTime"
-    @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 copyFromChannel: JSString = "copyFromChannel"
-    @usableFromInline static let copyTo: JSString = "copyTo"
     @usableFromInline static let copyToChannel: JSString = "copyToChannel"
-    @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
     @usableFromInline static let createAnalyser: JSString = "createAnalyser"
-    @usableFromInline static let createAttribute: JSString = "createAttribute"
-    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
     @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
     @usableFromInline static let createBuffer: JSString = "createBuffer"
     @usableFromInline static let createBufferSource: JSString = "createBufferSource"
-    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
-    @usableFromInline static let createCaption: JSString = "createCaption"
     @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
     @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
-    @usableFromInline static let createComment: JSString = "createComment"
-    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
     @usableFromInline static let createConstantSource: JSString = "createConstantSource"
     @usableFromInline static let createConvolver: JSString = "createConvolver"
     @usableFromInline static let createDelay: JSString = "createDelay"
-    @usableFromInline static let createDocument: JSString = "createDocument"
-    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
-    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
     @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
-    @usableFromInline static let createElement: JSString = "createElement"
-    @usableFromInline static let createElementNS: JSString = "createElementNS"
-    @usableFromInline static let createEvent: JSString = "createEvent"
     @usableFromInline static let createGain: JSString = "createGain"
-    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
     @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
-    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
-    @usableFromInline static let createImageData: JSString = "createImageData"
-    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
     @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 createObjectURL: JSString = "createObjectURL"
     @usableFromInline static let createOscillator: JSString = "createOscillator"
     @usableFromInline static let createPanner: JSString = "createPanner"
-    @usableFromInline static let createPattern: JSString = "createPattern"
     @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
-    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
-    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
-    @usableFromInline static let createRange: JSString = "createRange"
     @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
     @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
-    @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 createWaveShaper: JSString = "createWaveShaper"
-    @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 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 curve: JSString = "curve"
-    @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 debug: JSString = "debug"
-    @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 `defer`: JSString = "defer"
-    @usableFromInline static let define: JSString = "define"
     @usableFromInline static let delayTime: JSString = "delayTime"
-    @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 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 detune: JSString = "detune"
-    @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 dirxml: JSString = "dirxml"
-    @usableFromInline static let disable: JSString = "disable"
     @usableFromInline static let disableNormalization: JSString = "disableNormalization"
-    @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 distanceModel: JSString = "distanceModel"
-    @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 draggable: JSString = "draggable"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
     @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 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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
-    @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
-    @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 feedback: JSString = "feedback"
     @usableFromInline static let feedforward: JSString = "feedforward"
-    @usableFromInline static let fetch: JSString = "fetch"
     @usableFromInline static let fftSize: JSString = "fftSize"
-    @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 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 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 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 forwardX: JSString = "forwardX"
     @usableFromInline static let forwardY: JSString = "forwardY"
     @usableFromInline static let forwardZ: JSString = "forwardZ"
-    @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 frequency: JSString = "frequency"
     @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
-    @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 gain: JSString = "gain"
-    @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 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 getByteFrequencyData: JSString = "getByteFrequencyData"
     @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
-    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
     @usableFromInline static let getChannelData: JSString = "getChannelData"
-    @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 getFloatFrequencyData: JSString = "getFloatFrequencyData"
     @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
     @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
-    @usableFromInline static let getImageData: JSString = "getImageData"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
     @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
-    @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 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 group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 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 ideographicBaseline: JSString = "ideographicBaseline"
-    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
-    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
-    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
     @usableFromInline static let imag: JSString = "imag"
-    @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 inputBuffer: JSString = "inputBuffer"
-    @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 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 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 isVisible: JSString = "isVisible"
-    @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 knee: JSString = "knee"
-    @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 latencyHint: JSString = "latencyHint"
-    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
-    @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 listener: JSString = "listener"
-    @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 log: JSString = "log"
-    @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 loopEnd: JSString = "loopEnd"
     @usableFromInline static let loopStart: JSString = "loopStart"
-    @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 maxChannelCount: JSString = "maxChannelCount"
     @usableFromInline static let maxDecibels: JSString = "maxDecibels"
     @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
     @usableFromInline static let maxDistance: JSString = "maxDistance"
-    @usableFromInline static let maxLength: JSString = "maxLength"
     @usableFromInline static let maxValue: JSString = "maxValue"
-    @usableFromInline static let measureText: JSString = "measureText"
-    @usableFromInline static let media: JSString = "media"
-    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
     @usableFromInline static let mediaElement: JSString = "mediaElement"
     @usableFromInline static let mediaStream: JSString = "mediaStream"
     @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
-    @usableFromInline static let menubar: JSString = "menubar"
-    @usableFromInline static let message: JSString = "message"
-    @usableFromInline static let metaKey: JSString = "metaKey"
-    @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 minDecibels: JSString = "minDecibels"
-    @usableFromInline static let minLength: JSString = "minLength"
     @usableFromInline static let minValue: JSString = "minValue"
-    @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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 numberOfInputs: JSString = "numberOfInputs"
     @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
-    @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
     @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncomplete: JSString = "oncomplete"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 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 onprocessorerror: JSString = "onprocessorerror"
-    @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 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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 orientationX: JSString = "orientationX"
     @usableFromInline static let orientationY: JSString = "orientationY"
     @usableFromInline static let orientationZ: JSString = "orientationZ"
-    @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 outputBuffer: JSString = "outputBuffer"
     @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
     @usableFromInline static let outputLatency: JSString = "outputLatency"
-    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
     @usableFromInline static let oversample: JSString = "oversample"
-    @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 pageX: JSString = "pageX"
-    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
-    @usableFromInline static let pageY: JSString = "pageY"
-    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
     @usableFromInline static let pan: JSString = "pan"
-    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
     @usableFromInline static let panningModel: JSString = "panningModel"
     @usableFromInline static let parameterData: JSString = "parameterData"
     @usableFromInline static let parameters: JSString = "parameters"
-    @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 performanceTime: JSString = "performanceTime"
     @usableFromInline static let periodicWave: JSString = "periodicWave"
-    @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 playbackTime: JSString = "playbackTime"
-    @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 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 positionX: JSString = "positionX"
     @usableFromInline static let positionY: JSString = "positionY"
     @usableFromInline static let positionZ: JSString = "positionZ"
-    @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 processorOptions: JSString = "processorOptions"
-    @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 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 rangeOverflow: JSString = "rangeOverflow"
-    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
     @usableFromInline static let ratio: JSString = "ratio"
-    @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 real: JSString = "real"
-    @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 reduction: JSString = "reduction"
     @usableFromInline static let refDistance: JSString = "refDistance"
-    @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 release: JSString = "release"
-    @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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
     @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
-    @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 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 rolloffFactor: JSString = "rolloffFactor"
-    @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 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 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 searchParams: JSString = "searchParams"
-    @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 setMatrixValue: JSString = "setMatrixValue"
-    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
-    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
     @usableFromInline static let setOrientation: JSString = "setOrientation"
-    @usableFromInline static let setParameter: JSString = "setParameter"
     @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
     @usableFromInline static let setPosition: JSString = "setPosition"
-    @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 setTargetAtTime: JSString = "setTargetAtTime"
-    @usableFromInline static let setTimeout: JSString = "setTimeout"
-    @usableFromInline static let setTransform: JSString = "setTransform"
-    @usableFromInline static let setValidity: JSString = "setValidity"
     @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
     @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
-    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
-    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
-    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
-    @usableFromInline static let source: JSString = "source"
-    @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 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 startRendering: JSString = "startRendering"
-    @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 supports: JSString = "supports"
-    @usableFromInline static let surroundContents: JSString = "surroundContents"
     @usableFromInline static let suspend: JSString = "suspend"
-    @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 table: JSString = "table"
-    @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 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 threshold: JSString = "threshold"
-    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @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 title: JSString = "title"
-    @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 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 trace: JSString = "trace"
-    @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 translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 upX: JSString = "upX"
     @usableFromInline static let upY: JSString = "upY"
     @usableFromInline static let upZ: JSString = "upZ"
-    @usableFromInline static let update: JSString = "update"
-    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
-    @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 userAgent: JSString = "userAgent"
-    @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 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 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 warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
-    @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"
-}
-
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
-
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
 }
 
 public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
@@ -4437,2061 +2315,3 @@ public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioC
         }
     }
 }
-
-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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
-
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
-
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case string(String)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
-        switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-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 {}
-
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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])
-
-    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
-        }
-    }
-}
-
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
diff --git a/Sources/WebGL1/Generated.swift b/Sources/WebGL1/Generated.swift
index 47b2a2c3..6d61bbb0 100644
--- a/Sources/WebGL1/Generated.swift
+++ b/Sources/WebGL1/Generated.swift
@@ -1625,800 +1625,9 @@ public class WebGLUniformLocation: JSBridgedClass {
     }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 AnalyserNode: JSString = "AnalyserNode"
-    @usableFromInline static let Animation: JSString = "Animation"
-    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
-    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
-    @usableFromInline static let Attr: JSString = "Attr"
-    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
-    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
-    @usableFromInline static let AudioContext: JSString = "AudioContext"
-    @usableFromInline static let AudioData: JSString = "AudioData"
-    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
-    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
-    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
-    @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 AudioTrack: JSString = "AudioTrack"
-    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
-    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
-    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
-    @usableFromInline static let BarProp: JSString = "BarProp"
-    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
-    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
-    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
-    @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 CanvasFilter: JSString = "CanvasFilter"
-    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
-    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
-    @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
-    @usableFromInline static let Comment: JSString = "Comment"
-    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
-    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
-    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
-    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
-    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
-    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
-    @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 DelayNode: JSString = "DelayNode"
-    @usableFromInline static let Document: JSString = "Document"
-    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
-    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
-    @usableFromInline static let DocumentType: JSString = "DocumentType"
-    @usableFromInline static let DragEvent: JSString = "DragEvent"
-    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
-    @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 GainNode: JSString = "GainNode"
-    @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 IIRFilterNode: JSString = "IIRFilterNode"
-    @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 KeyframeEffect: JSString = "KeyframeEffect"
-    @usableFromInline static let Location: JSString = "Location"
-    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
-    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
-    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
-    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @usableFromInline static let MediaStream: JSString = "MediaStream"
-    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
-    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
-    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
-    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
-    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
-    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
-    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
-    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
-    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
-    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
-    @usableFromInline static let PannerNode: JSString = "PannerNode"
-    @usableFromInline static let Path2D: JSString = "Path2D"
-    @usableFromInline static let Performance: JSString = "Performance"
-    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
-    @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 Q: JSString = "Q"
-    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
-    @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 StaticRange: JSString = "StaticRange"
-    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
-    @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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WaveShaperNode: JSString = "WaveShaperNode"
     @usableFromInline static let WebGLActiveInfo: JSString = "WebGLActiveInfo"
     @usableFromInline static let WebGLBuffer: JSString = "WebGLBuffer"
     @usableFromInline static let WebGLContextEvent: JSString = "WebGLContextEvent"
@@ -2431,1460 +1640,118 @@ public class WebGLUniformLocation: JSBridgedClass {
     @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
     @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
     @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
-    @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 activeTexture: JSString = "activeTexture"
-    @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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @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 ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animate: JSString = "animate"
-    @usableFromInline static let animated: JSString = "animated"
     @usableFromInline static let antialias: JSString = "antialias"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 `as`: JSString = "as"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 attachShader: JSString = "attachShader"
-    @usableFromInline static let attachShadow: JSString = "attachShadow"
-    @usableFromInline static let attack: JSString = "attack"
-    @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 audioWorklet: JSString = "audioWorklet"
-    @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 automationRate: JSString = "automationRate"
-    @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 b: JSString = "b"
-    @usableFromInline static let back: JSString = "back"
-    @usableFromInline static let background: JSString = "background"
-    @usableFromInline static let badInput: JSString = "badInput"
-    @usableFromInline static let baseLatency: JSString = "baseLatency"
-    @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 binaryType: JSString = "binaryType"
     @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 bitrate: JSString = "bitrate"
-    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
-    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
     @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 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 buffer: JSString = "buffer"
     @usableFromInline static let bufferData: JSString = "bufferData"
-    @usableFromInline static let bufferSize: JSString = "bufferSize"
     @usableFromInline static let bufferSubData: JSString = "bufferSubData"
-    @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
-    @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 canPlayType: JSString = "canPlayType"
-    @usableFromInline static let cancel: JSString = "cancel"
-    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
-    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
-    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
-    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
-    @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 channelCount: JSString = "channelCount"
-    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
-    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
-    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
-    @usableFromInline static let checkValidity: JSString = "checkValidity"
-    @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 clearColor: JSString = "clearColor"
-    @usableFromInline static let clearData: JSString = "clearData"
     @usableFromInline static let clearDepth: JSString = "clearDepth"
-    @usableFromInline static let clearInterval: JSString = "clearInterval"
-    @usableFromInline static let clearParameters: JSString = "clearParameters"
-    @usableFromInline static let clearRect: JSString = "clearRect"
     @usableFromInline static let clearStencil: JSString = "clearStencil"
-    @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 colorMask: JSString = "colorMask"
-    @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 commitStyles: JSString = "commitStyles"
-    @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 compileShader: JSString = "compileShader"
-    @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 composite: JSString = "composite"
     @usableFromInline static let compressedTexImage2D: JSString = "compressedTexImage2D"
     @usableFromInline static let compressedTexSubImage2D: JSString = "compressedTexSubImage2D"
-    @usableFromInline static let computedOffset: JSString = "computedOffset"
-    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
-    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
-    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
-    @usableFromInline static let config: JSString = "config"
-    @usableFromInline static let configure: JSString = "configure"
-    @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let connect: JSString = "connect"
-    @usableFromInline static let console: JSString = "console"
-    @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 context: JSString = "context"
-    @usableFromInline static let contextTime: JSString = "contextTime"
-    @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 copyFromChannel: JSString = "copyFromChannel"
     @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
     @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
-    @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
-    @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
-    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
-    @usableFromInline static let createAttribute: JSString = "createAttribute"
-    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
-    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
     @usableFromInline static let createBuffer: JSString = "createBuffer"
-    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
-    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
-    @usableFromInline static let createCaption: JSString = "createCaption"
-    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
-    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
-    @usableFromInline static let createComment: JSString = "createComment"
-    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
-    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
-    @usableFromInline static let createConvolver: JSString = "createConvolver"
-    @usableFromInline static let createDelay: JSString = "createDelay"
-    @usableFromInline static let createDocument: JSString = "createDocument"
-    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
-    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
-    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
-    @usableFromInline static let createElement: JSString = "createElement"
-    @usableFromInline static let createElementNS: JSString = "createElementNS"
-    @usableFromInline static let createEvent: JSString = "createEvent"
     @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
-    @usableFromInline static let createGain: JSString = "createGain"
-    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
-    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
-    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
-    @usableFromInline static let createImageData: JSString = "createImageData"
-    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
-    @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 createObjectURL: JSString = "createObjectURL"
-    @usableFromInline static let createOscillator: JSString = "createOscillator"
-    @usableFromInline static let createPanner: JSString = "createPanner"
-    @usableFromInline static let createPattern: JSString = "createPattern"
-    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
-    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
     @usableFromInline static let createProgram: JSString = "createProgram"
-    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
-    @usableFromInline static let createRange: JSString = "createRange"
     @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
-    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
     @usableFromInline static let createShader: JSString = "createShader"
-    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
-    @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 createTexture: JSString = "createTexture"
-    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
-    @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 cullFace: JSString = "cullFace"
-    @usableFromInline static let currentIteration: JSString = "currentIteration"
-    @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 curve: JSString = "curve"
-    @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 debug: JSString = "debug"
-    @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 `defer`: JSString = "defer"
-    @usableFromInline static let define: JSString = "define"
-    @usableFromInline static let delay: JSString = "delay"
-    @usableFromInline static let delayTime: JSString = "delayTime"
-    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
-    @usableFromInline static let delete: JSString = "delete"
     @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
-    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
     @usableFromInline static let deleteProgram: JSString = "deleteProgram"
     @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
-    @usableFromInline static let deleteRow: JSString = "deleteRow"
     @usableFromInline static let deleteShader: JSString = "deleteShader"
-    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
-    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
     @usableFromInline static let deleteTexture: JSString = "deleteTexture"
-    @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 depth: JSString = "depth"
     @usableFromInline static let depthFunc: JSString = "depthFunc"
     @usableFromInline static let depthMask: JSString = "depthMask"
     @usableFromInline static let depthRange: JSString = "depthRange"
-    @usableFromInline static let description: JSString = "description"
-    @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 detachShader: JSString = "detachShader"
-    @usableFromInline static let detail: JSString = "detail"
-    @usableFromInline static let detune: JSString = "detune"
-    @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 dirxml: JSString = "dirxml"
     @usableFromInline static let disable: JSString = "disable"
-    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
     @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
-    @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 distanceModel: JSString = "distanceModel"
-    @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 draggable: JSString = "draggable"
     @usableFromInline static let drawArrays: JSString = "drawArrays"
     @usableFromInline static let drawElements: JSString = "drawElements"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
     @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
     @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
-    @usableFromInline static let duration: JSString = "duration"
-    @usableFromInline static let e: JSString = "e"
-    @usableFromInline static let easing: JSString = "easing"
-    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
-    @usableFromInline static let effect: JSString = "effect"
-    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
-    @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 endDelay: JSString = "endDelay"
-    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
-    @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
-    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
-    @usableFromInline static let fastSeek: JSString = "fastSeek"
-    @usableFromInline static let feedback: JSString = "feedback"
-    @usableFromInline static let feedforward: JSString = "feedforward"
-    @usableFromInline static let fetch: JSString = "fetch"
-    @usableFromInline static let fftSize: JSString = "fftSize"
-    @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 finish: JSString = "finish"
-    @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 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 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 forwardX: JSString = "forwardX"
-    @usableFromInline static let forwardY: JSString = "forwardY"
-    @usableFromInline static let forwardZ: JSString = "forwardZ"
-    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
     @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
-    @usableFromInline static let framerate: JSString = "framerate"
-    @usableFromInline static let frames: JSString = "frames"
-    @usableFromInline static let frequency: JSString = "frequency"
-    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
-    @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 frontFace: JSString = "frontFace"
-    @usableFromInline static let fullRange: JSString = "fullRange"
-    @usableFromInline static let gain: JSString = "gain"
     @usableFromInline static let generateMipmap: JSString = "generateMipmap"
-    @usableFromInline static let get: JSString = "get"
     @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
     @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
-    @usableFromInline static let getAll: JSString = "getAll"
-    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
-    @usableFromInline static let getAnimations: JSString = "getAnimations"
-    @usableFromInline static let getAsFile: JSString = "getAsFile"
     @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
     @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
-    @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 getBufferParameter: JSString = "getBufferParameter"
-    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
-    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
-    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
-    @usableFromInline static let getChannelData: JSString = "getChannelData"
-    @usableFromInline static let getClientRect: JSString = "getClientRect"
-    @usableFromInline static let getClientRects: JSString = "getClientRects"
-    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
-    @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 getError: JSString = "getError"
     @usableFromInline static let getExtension: JSString = "getExtension"
-    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
-    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
     @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
-    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
-    @usableFromInline static let getImageData: JSString = "getImageData"
-    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
-    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
     @usableFromInline static let getParameter: JSString = "getParameter"
     @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
     @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
-    @usableFromInline static let getReader: JSString = "getReader"
-    @usableFromInline static let getRegistration: JSString = "getRegistration"
-    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
     @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
-    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
-    @usableFromInline static let getRootNode: JSString = "getRootNode"
-    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
-    @usableFromInline static let getSettings: JSString = "getSettings"
     @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 getStartDate: JSString = "getStartDate"
-    @usableFromInline static let getState: JSString = "getState"
-    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
     @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
     @usableFromInline static let getTexParameter: JSString = "getTexParameter"
-    @usableFromInline static let getTiming: JSString = "getTiming"
-    @usableFromInline static let getTrackById: JSString = "getTrackById"
-    @usableFromInline static let getTracks: JSString = "getTracks"
-    @usableFromInline static let getTransform: JSString = "getTransform"
     @usableFromInline static let getUniform: JSString = "getUniform"
     @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
-    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
     @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
     @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
-    @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 group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 high: JSString = "high"
-    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
     @usableFromInline static let hint: JSString = "hint"
-    @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 ideographicBaseline: JSString = "ideographicBaseline"
-    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
-    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
-    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
-    @usableFromInline static let imag: JSString = "imag"
-    @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 inputBuffer: JSString = "inputBuffer"
-    @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 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 isBuffer: JSString = "isBuffer"
-    @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 isEnabled: JSString = "isEnabled"
-    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
     @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
-    @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 isProgram: JSString = "isProgram"
-    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
     @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
-    @usableFromInline static let isSameNode: JSString = "isSameNode"
-    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
     @usableFromInline static let isShader: JSString = "isShader"
     @usableFromInline static let isTexture: JSString = "isTexture"
-    @usableFromInline static let isTrusted: JSString = "isTrusted"
-    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
-    @usableFromInline static let isVisible: JSString = "isVisible"
-    @usableFromInline static let item: JSString = "item"
-    @usableFromInline static let items: JSString = "items"
-    @usableFromInline static let iterateNext: JSString = "iterateNext"
-    @usableFromInline static let iterationStart: JSString = "iterationStart"
-    @usableFromInline static let iterations: JSString = "iterations"
-    @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 knee: JSString = "knee"
-    @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 latencyHint: JSString = "latencyHint"
-    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
-    @usableFromInline static let lineno: JSString = "lineno"
-    @usableFromInline static let link: JSString = "link"
-    @usableFromInline static let linkColor: JSString = "linkColor"
     @usableFromInline static let linkProgram: JSString = "linkProgram"
-    @usableFromInline static let links: JSString = "links"
-    @usableFromInline static let list: JSString = "list"
-    @usableFromInline static let listener: JSString = "listener"
-    @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 log: JSString = "log"
-    @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 loopEnd: JSString = "loopEnd"
-    @usableFromInline static let loopStart: JSString = "loopStart"
-    @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 maxChannelCount: JSString = "maxChannelCount"
-    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
-    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
-    @usableFromInline static let maxDistance: JSString = "maxDistance"
-    @usableFromInline static let maxLength: JSString = "maxLength"
-    @usableFromInline static let maxValue: JSString = "maxValue"
-    @usableFromInline static let measureText: JSString = "measureText"
-    @usableFromInline static let media: JSString = "media"
-    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
-    @usableFromInline static let mediaElement: JSString = "mediaElement"
-    @usableFromInline static let mediaStream: JSString = "mediaStream"
-    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
-    @usableFromInline static let menubar: JSString = "menubar"
-    @usableFromInline static let message: JSString = "message"
-    @usableFromInline static let metaKey: JSString = "metaKey"
-    @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 minDecibels: JSString = "minDecibels"
-    @usableFromInline static let minLength: JSString = "minLength"
-    @usableFromInline static let minValue: JSString = "minValue"
-    @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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 numberOfInputs: JSString = "numberOfInputs"
-    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
-    @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncomplete: JSString = "oncomplete"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 onfinish: JSString = "onfinish"
-    @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 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 onprocessorerror: JSString = "onprocessorerror"
-    @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 onremove: JSString = "onremove"
-    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 orientationX: JSString = "orientationX"
-    @usableFromInline static let orientationY: JSString = "orientationY"
-    @usableFromInline static let orientationZ: JSString = "orientationZ"
-    @usableFromInline static let origin: JSString = "origin"
-    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
-    @usableFromInline static let originTime: JSString = "originTime"
-    @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 outputBuffer: JSString = "outputBuffer"
-    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
-    @usableFromInline static let outputLatency: JSString = "outputLatency"
-    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
-    @usableFromInline static let oversample: JSString = "oversample"
-    @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 pageX: JSString = "pageX"
-    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
-    @usableFromInline static let pageY: JSString = "pageY"
-    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
-    @usableFromInline static let pan: JSString = "pan"
-    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
-    @usableFromInline static let panningModel: JSString = "panningModel"
-    @usableFromInline static let parameterData: JSString = "parameterData"
-    @usableFromInline static let parameters: JSString = "parameters"
-    @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 pending: JSString = "pending"
-    @usableFromInline static let performance: JSString = "performance"
-    @usableFromInline static let performanceTime: JSString = "performanceTime"
-    @usableFromInline static let periodicWave: JSString = "periodicWave"
-    @usableFromInline static let persist: JSString = "persist"
-    @usableFromInline static let persisted: JSString = "persisted"
-    @usableFromInline static let personalbar: JSString = "personalbar"
-    @usableFromInline static let phase: JSString = "phase"
-    @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 pixelStorei: JSString = "pixelStorei"
-    @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 playState: JSString = "playState"
-    @usableFromInline static let playbackRate: JSString = "playbackRate"
-    @usableFromInline static let playbackTime: JSString = "playbackTime"
-    @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 polygonOffset: JSString = "polygonOffset"
-    @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 positionX: JSString = "positionX"
-    @usableFromInline static let positionY: JSString = "positionY"
-    @usableFromInline static let positionZ: JSString = "positionZ"
-    @usableFromInline static let postMessage: JSString = "postMessage"
-    @usableFromInline static let poster: JSString = "poster"
     @usableFromInline static let powerPreference: JSString = "powerPreference"
-    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
     @usableFromInline static let precision: JSString = "precision"
-    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
-    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
-    @usableFromInline static let prepend: JSString = "prepend"
     @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
-    @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 processorOptions: JSString = "processorOptions"
-    @usableFromInline static let product: JSString = "product"
-    @usableFromInline static let productSub: JSString = "productSub"
-    @usableFromInline static let progress: JSString = "progress"
-    @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 pseudoElement: JSString = "pseudoElement"
-    @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 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 rangeMax: JSString = "rangeMax"
     @usableFromInline static let rangeMin: JSString = "rangeMin"
-    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
-    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
-    @usableFromInline static let ratio: JSString = "ratio"
-    @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 readPixels: JSString = "readPixels"
-    @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 real: JSString = "real"
-    @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 reduction: JSString = "reduction"
-    @usableFromInline static let refDistance: JSString = "refDistance"
-    @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 release: JSString = "release"
-    @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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
     @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
-    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
-    @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 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 reverse: JSString = "reverse"
-    @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 rolloffFactor: JSString = "rolloffFactor"
-    @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 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 sampleCoverage: JSString = "sampleCoverage"
-    @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 scissor: JSString = "scissor"
-    @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 searchParams: JSString = "searchParams"
-    @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 setKeyframes: JSString = "setKeyframes"
-    @usableFromInline static let setLineDash: JSString = "setLineDash"
-    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
-    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
-    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
-    @usableFromInline static let setOrientation: JSString = "setOrientation"
-    @usableFromInline static let setParameter: JSString = "setParameter"
-    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
-    @usableFromInline static let setPosition: JSString = "setPosition"
-    @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 setTargetAtTime: JSString = "setTargetAtTime"
-    @usableFromInline static let setTimeout: JSString = "setTimeout"
-    @usableFromInline static let setTransform: JSString = "setTransform"
-    @usableFromInline static let setValidity: JSString = "setValidity"
-    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
-    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
     @usableFromInline static let shaderSource: JSString = "shaderSource"
-    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
-    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
-    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
-    @usableFromInline static let source: JSString = "source"
-    @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 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 startRendering: JSString = "startRendering"
-    @usableFromInline static let startTime: JSString = "startTime"
-    @usableFromInline static let state: JSString = "state"
-    @usableFromInline static let status: JSString = "status"
     @usableFromInline static let statusMessage: JSString = "statusMessage"
-    @usableFromInline static let statusText: JSString = "statusText"
-    @usableFromInline static let statusbar: JSString = "statusbar"
     @usableFromInline static let stencil: JSString = "stencil"
     @usableFromInline static let stencilFunc: JSString = "stencilFunc"
     @usableFromInline static let stencilFuncSeparate: JSString = "stencilFuncSeparate"
@@ -3892,100 +1759,12 @@ public class WebGLUniformLocation: JSBridgedClass {
     @usableFromInline static let stencilMaskSeparate: JSString = "stencilMaskSeparate"
     @usableFromInline static let stencilOp: JSString = "stencilOp"
     @usableFromInline static let stencilOpSeparate: JSString = "stencilOpSeparate"
-    @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 supports: JSString = "supports"
-    @usableFromInline static let surroundContents: JSString = "surroundContents"
-    @usableFromInline static let suspend: JSString = "suspend"
-    @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 table: JSString = "table"
-    @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 tee: JSString = "tee"
-    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
-    @usableFromInline static let terminate: JSString = "terminate"
     @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 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 threshold: JSString = "threshold"
-    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
-    @usableFromInline static let timeStamp: JSString = "timeStamp"
-    @usableFromInline static let timecode: JSString = "timecode"
-    @usableFromInline static let timeline: JSString = "timeline"
-    @usableFromInline static let timeout: JSString = "timeout"
-    @usableFromInline static let timestamp: JSString = "timestamp"
-    @usableFromInline static let title: JSString = "title"
-    @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 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 trace: JSString = "trace"
-    @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 translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 uniform1f: JSString = "uniform1f"
     @usableFromInline static let uniform1fv: JSString = "uniform1fv"
     @usableFromInline static let uniform1i: JSString = "uniform1i"
@@ -4005,36 +1784,8 @@ public class WebGLUniformLocation: JSBridgedClass {
     @usableFromInline static let uniformMatrix2fv: JSString = "uniformMatrix2fv"
     @usableFromInline static let uniformMatrix3fv: JSString = "uniformMatrix3fv"
     @usableFromInline static let uniformMatrix4fv: JSString = "uniformMatrix4fv"
-    @usableFromInline static let unregister: JSString = "unregister"
-    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
-    @usableFromInline static let upX: JSString = "upX"
-    @usableFromInline static let upY: JSString = "upY"
-    @usableFromInline static let upZ: JSString = "upZ"
-    @usableFromInline static let update: JSString = "update"
-    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
-    @usableFromInline static let updateTiming: JSString = "updateTiming"
-    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
-    @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 useProgram: JSString = "useProgram"
-    @usableFromInline static let userAgent: JSString = "userAgent"
-    @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 validateProgram: JSString = "validateProgram"
-    @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 vertexAttrib1f: JSString = "vertexAttrib1f"
     @usableFromInline static let vertexAttrib1fv: JSString = "vertexAttrib1fv"
     @usableFromInline static let vertexAttrib2f: JSString = "vertexAttrib2f"
@@ -4044,2345 +1795,168 @@ public class WebGLUniformLocation: JSBridgedClass {
     @usableFromInline static let vertexAttrib4f: JSString = "vertexAttrib4f"
     @usableFromInline static let vertexAttrib4fv: JSString = "vertexAttrib4fv"
     @usableFromInline static let vertexAttribPointer: JSString = "vertexAttribPointer"
-    @usableFromInline static let video: JSString = "video"
-    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
-    @usableFromInline static let videoHeight: JSString = "videoHeight"
-    @usableFromInline static let videoTracks: JSString = "videoTracks"
-    @usableFromInline static let videoWidth: JSString = "videoWidth"
-    @usableFromInline static let view: JSString = "view"
     @usableFromInline static let viewport: JSString = "viewport"
-    @usableFromInline static let visibilityState: JSString = "visibilityState"
-    @usableFromInline static let visible: JSString = "visible"
-    @usableFromInline static let visibleRect: JSString = "visibleRect"
-    @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 warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
-    @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"
 }
 
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
+public protocol Any_Float32List: ConvertibleToJSValue {}
+extension Float32Array: Any_Float32List {}
+extension Array: Any_Float32List where Element == GLfloat {}
 
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
+public enum Float32List: JSValueCompatible, Any_Float32List {
+    case float32Array(Float32Array)
+    case seq_of_GLfloat([GLfloat])
 
-    public var arrayBuffer: ArrayBuffer? {
+    public var float32Array: Float32Array? {
         switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        case let .float32Array(float32Array): return float32Array
         default: return nil
         }
     }
 
-    public var string: String? {
+    public var seq_of_GLfloat: [GLfloat]? {
         switch self {
-        case let .string(string): return string
+        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let arrayBuffer: ArrayBuffer = value.fromJSValue() {
-            return .arrayBuffer(arrayBuffer)
+        if let float32Array: Float32Array = value.fromJSValue() {
+            return .float32Array(float32Array)
         }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
+        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 .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .string(string):
-            return string.jsValue
+        case let .float32Array(float32Array):
+            return float32Array.jsValue
+        case let .seq_of_GLfloat(seq_of_GLfloat):
+            return seq_of_GLfloat.jsValue
         }
     }
 }
 
-public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
-extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
-extension Double: Any_AudioContextLatencyCategory_or_Double {}
+public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
 
-public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
-    case audioContextLatencyCategory(AudioContextLatencyCategory)
-    case double(Double)
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
 
-    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+    public var htmlCanvasElement: HTMLCanvasElement? {
         switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
         default: return nil
         }
     }
 
-    public var double: Double? {
+    public var offscreenCanvas: OffscreenCanvas? {
         switch self {
-        case let .double(double): return double
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
-            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
         }
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
+        if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() {
+            return .offscreenCanvas(offscreenCanvas)
         }
         return nil
     }
 
     public var jsValue: JSValue {
         switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory):
-            return audioContextLatencyCategory.jsValue
-        case let .double(double):
-            return double.jsValue
+        case let .htmlCanvasElement(htmlCanvasElement):
+            return htmlCanvasElement.jsValue
+        case let .offscreenCanvas(offscreenCanvas):
+            return offscreenCanvas.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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
+public protocol Any_Int32List: ConvertibleToJSValue {}
+extension Int32Array: Any_Int32List {}
+extension Array: Any_Int32List where Element == GLint {}
 
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        default: return nil
-        }
-    }
+public enum Int32List: JSValueCompatible, Any_Int32List {
+    case int32Array(Int32Array)
+    case seq_of_GLint([GLint])
 
-    public var textTrack: TextTrack? {
+    public var int32Array: Int32Array? {
         switch self {
-        case let .textTrack(textTrack): return textTrack
+        case let .int32Array(int32Array): return int32Array
         default: return nil
         }
     }
 
-    public var videoTrack: VideoTrack? {
+    public var seq_of_GLint: [GLint]? {
         switch self {
-        case let .videoTrack(videoTrack): return videoTrack
+        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
         default: return nil
         }
     }
 
     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 int32Array: Int32Array = value.fromJSValue() {
+            return .int32Array(int32Array)
         }
-        if let videoTrack: VideoTrack = value.fromJSValue() {
-            return .videoTrack(videoTrack)
+        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 .audioTrack(audioTrack):
-            return audioTrack.jsValue
-        case let .textTrack(textTrack):
-            return textTrack.jsValue
-        case let .videoTrack(videoTrack):
-            return videoTrack.jsValue
+        case let .int32Array(int32Array):
+            return int32Array.jsValue
+        case let .seq_of_GLint(seq_of_GLint):
+            return seq_of_GLint.jsValue
         }
     }
 }
 
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
+public protocol Any_TexImageSource: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_TexImageSource {}
+extension HTMLImageElement: Any_TexImageSource {}
+extension HTMLVideoElement: Any_TexImageSource {}
+extension ImageBitmap: Any_TexImageSource {}
+extension ImageData: Any_TexImageSource {}
+extension OffscreenCanvas: Any_TexImageSource {}
+extension VideoFrame: Any_TexImageSource {}
 
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case string(String)
+public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case htmlImageElement(HTMLImageElement)
+    case htmlVideoElement(HTMLVideoElement)
+    case imageBitmap(ImageBitmap)
+    case imageData(ImageData)
+    case offscreenCanvas(OffscreenCanvas)
+    case videoFrame(VideoFrame)
 
-    public var blob: Blob? {
+    public var htmlCanvasElement: HTMLCanvasElement? {
         switch self {
-        case let .blob(blob): return blob
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
         default: return nil
         }
     }
 
-    public var bufferSource: BufferSource? {
+    public var htmlImageElement: HTMLImageElement? {
         switch self {
-        case let .bufferSource(bufferSource): return bufferSource
+        case let .htmlImageElement(htmlImageElement): return htmlImageElement
         default: return nil
         }
     }
 
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
-        switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-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 {}
-
-public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
-    case compositeOperationOrAuto(CompositeOperationOrAuto)
-    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
-
-    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
-        switch self {
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
-            return .compositeOperationOrAuto(compositeOperationOrAuto)
-        }
-        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
-            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto):
-            return compositeOperationOrAuto.jsValue
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
-            return seq_of_CompositeOperationOrAuto.jsValue
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .document(document):
-            return document.jsValue
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
-            return xmlHttpRequestBodyInit.jsValue
-        }
-    }
-}
-
-public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
-extension Double: Any_Double_or_KeyframeAnimationOptions {}
-extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
-
-public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
-    case double(Double)
-    case keyframeAnimationOptions(KeyframeAnimationOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
-        switch self {
-        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
-            return .keyframeAnimationOptions(keyframeAnimationOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
-    case double(Double)
-    case keyframeEffectOptions(KeyframeEffectOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeEffectOptions: KeyframeEffectOptions? {
-        switch self {
-        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
-            return .keyframeEffectOptions(keyframeEffectOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
-    case double(Double)
-    case string(String)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .double(double):
-            return double.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
-extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
-extension String: Any_ElementCreationOptions_or_String {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Float32List: ConvertibleToJSValue {}
-extension Float32Array: Any_Float32List {}
-extension Array: Any_Float32List where Element == GLfloat {}
-
-public enum Float32List: JSValueCompatible, Any_Float32List {
-    case float32Array(Float32Array)
-    case seq_of_GLfloat([GLfloat])
-
-    public var float32Array: Float32Array? {
-        switch self {
-        case let .float32Array(float32Array): return float32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLfloat: [GLfloat]? {
-        switch self {
-        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_Int32List: ConvertibleToJSValue {}
-extension Int32Array: Any_Int32List {}
-extension Array: Any_Int32List where Element == GLint {}
-
-public enum Int32List: JSValueCompatible, Any_Int32List {
-    case int32Array(Int32Array)
-    case seq_of_GLint([GLint])
-
-    public var int32Array: Int32Array? {
-        switch self {
-        case let .int32Array(int32Array): return int32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLint: [GLint]? {
-        switch self {
-        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-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 {}
-
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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])
-
-    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
-        }
-    }
-}
-
-public protocol Any_TexImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_TexImageSource {}
-extension HTMLImageElement: Any_TexImageSource {}
-extension HTMLVideoElement: Any_TexImageSource {}
-extension ImageBitmap: Any_TexImageSource {}
-extension ImageData: Any_TexImageSource {}
-extension OffscreenCanvas: Any_TexImageSource {}
-extension VideoFrame: Any_TexImageSource {}
-
-public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlImageElement(HTMLImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case imageData(ImageData)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var htmlImageElement: HTMLImageElement? {
-        switch self {
-        case let .htmlImageElement(htmlImageElement): return htmlImageElement
-        default: return nil
-        }
-    }
-
-    public var htmlVideoElement: HTMLVideoElement? {
+    public var htmlVideoElement: HTMLVideoElement? {
         switch self {
         case let .htmlVideoElement(htmlVideoElement): return htmlVideoElement
         default: return nil
@@ -6461,171 +2035,3 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
         }
     }
 }
-
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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 {
-    case nullable_Double(Double?)
-    case seq_of_nullable_Double([Double?])
-
-    public var nullable_Double: Double?? {
-        switch self {
-        case let .nullable_Double(nullable_Double): return nullable_Double
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
diff --git a/Sources/WebGL2/Generated.swift b/Sources/WebGL2/Generated.swift
index 766435b5..de5be818 100644
--- a/Sources/WebGL2/Generated.swift
+++ b/Sources/WebGL2/Generated.swift
@@ -1533,2460 +1533,101 @@ public class WebGLVertexArrayObject: WebGLObject {
     }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 AnalyserNode: JSString = "AnalyserNode"
-    @usableFromInline static let Animation: JSString = "Animation"
-    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
-    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
-    @usableFromInline static let Attr: JSString = "Attr"
-    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
-    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
-    @usableFromInline static let AudioContext: JSString = "AudioContext"
-    @usableFromInline static let AudioData: JSString = "AudioData"
-    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
-    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
-    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
-    @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 AudioTrack: JSString = "AudioTrack"
-    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
-    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
-    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
-    @usableFromInline static let BarProp: JSString = "BarProp"
-    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
-    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
-    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
-    @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 CanvasFilter: JSString = "CanvasFilter"
-    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
-    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
-    @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
-    @usableFromInline static let Comment: JSString = "Comment"
-    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
-    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
-    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
-    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
-    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
-    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
-    @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 DelayNode: JSString = "DelayNode"
-    @usableFromInline static let Document: JSString = "Document"
-    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
-    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
-    @usableFromInline static let DocumentType: JSString = "DocumentType"
-    @usableFromInline static let DragEvent: JSString = "DragEvent"
-    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
-    @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 GainNode: JSString = "GainNode"
-    @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 IIRFilterNode: JSString = "IIRFilterNode"
-    @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 KeyframeEffect: JSString = "KeyframeEffect"
-    @usableFromInline static let Location: JSString = "Location"
-    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
-    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
-    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
-    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @usableFromInline static let MediaStream: JSString = "MediaStream"
-    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
-    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
-    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
-    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
-    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
-    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
-    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
-    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
-    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
-    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
-    @usableFromInline static let PannerNode: JSString = "PannerNode"
-    @usableFromInline static let Path2D: JSString = "Path2D"
-    @usableFromInline static let Performance: JSString = "Performance"
-    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
-    @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 Q: JSString = "Q"
-    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
-    @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 StaticRange: JSString = "StaticRange"
-    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
-    @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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WaveShaperNode: JSString = "WaveShaperNode"
     @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext"
-    @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 WebGLQuery: JSString = "WebGLQuery"
-    @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer"
-    @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext"
     @usableFromInline static let WebGLSampler: JSString = "WebGLSampler"
-    @usableFromInline static let WebGLShader: JSString = "WebGLShader"
-    @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
     @usableFromInline static let WebGLSync: JSString = "WebGLSync"
-    @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
     @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback"
-    @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
     @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
-    @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 activeTexture: JSString = "activeTexture"
-    @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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @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 ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animate: JSString = "animate"
-    @usableFromInline static let animated: JSString = "animated"
-    @usableFromInline static let antialias: JSString = "antialias"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 `as`: JSString = "as"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 attachShader: JSString = "attachShader"
-    @usableFromInline static let attachShadow: JSString = "attachShadow"
-    @usableFromInline static let attack: JSString = "attack"
-    @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 audioWorklet: JSString = "audioWorklet"
-    @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 automationRate: JSString = "automationRate"
-    @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 b: JSString = "b"
-    @usableFromInline static let back: JSString = "back"
-    @usableFromInline static let background: JSString = "background"
-    @usableFromInline static let badInput: JSString = "badInput"
-    @usableFromInline static let baseLatency: JSString = "baseLatency"
-    @usableFromInline static let baseURI: JSString = "baseURI"
-    @usableFromInline static let before: JSString = "before"
-    @usableFromInline static let beginPath: JSString = "beginPath"
     @usableFromInline static let beginQuery: JSString = "beginQuery"
     @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback"
-    @usableFromInline static let behavior: JSString = "behavior"
-    @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
-    @usableFromInline static let bgColor: JSString = "bgColor"
-    @usableFromInline static let binaryType: JSString = "binaryType"
-    @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation"
-    @usableFromInline static let bindBuffer: JSString = "bindBuffer"
     @usableFromInline static let bindBufferBase: JSString = "bindBufferBase"
     @usableFromInline static let bindBufferRange: JSString = "bindBufferRange"
-    @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer"
-    @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer"
     @usableFromInline static let bindSampler: JSString = "bindSampler"
-    @usableFromInline static let bindTexture: JSString = "bindTexture"
     @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback"
     @usableFromInline static let bindVertexArray: JSString = "bindVertexArray"
-    @usableFromInline static let bitrate: JSString = "bitrate"
-    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
-    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
-    @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 blitFramebuffer: JSString = "blitFramebuffer"
-    @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 buffer: JSString = "buffer"
     @usableFromInline static let bufferData: JSString = "bufferData"
-    @usableFromInline static let bufferSize: JSString = "bufferSize"
     @usableFromInline static let bufferSubData: JSString = "bufferSubData"
-    @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
-    @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 canPlayType: JSString = "canPlayType"
-    @usableFromInline static let cancel: JSString = "cancel"
-    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
-    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
-    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
-    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
-    @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 channelCount: JSString = "channelCount"
-    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
-    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
-    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
-    @usableFromInline static let checkValidity: JSString = "checkValidity"
-    @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 clearBufferfi: JSString = "clearBufferfi"
     @usableFromInline static let clearBufferfv: JSString = "clearBufferfv"
     @usableFromInline static let clearBufferiv: JSString = "clearBufferiv"
     @usableFromInline static let clearBufferuiv: JSString = "clearBufferuiv"
-    @usableFromInline static let clearColor: JSString = "clearColor"
-    @usableFromInline static let clearData: JSString = "clearData"
-    @usableFromInline static let clearDepth: JSString = "clearDepth"
-    @usableFromInline static let clearInterval: JSString = "clearInterval"
-    @usableFromInline static let clearParameters: JSString = "clearParameters"
-    @usableFromInline static let clearRect: JSString = "clearRect"
-    @usableFromInline static let clearStencil: JSString = "clearStencil"
-    @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 clientWaitSync: JSString = "clientWaitSync"
-    @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 colorMask: JSString = "colorMask"
-    @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 commitStyles: JSString = "commitStyles"
-    @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 compileShader: JSString = "compileShader"
-    @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 composite: JSString = "composite"
     @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 computedOffset: JSString = "computedOffset"
-    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
-    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
-    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
-    @usableFromInline static let config: JSString = "config"
-    @usableFromInline static let configure: JSString = "configure"
-    @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let connect: JSString = "connect"
-    @usableFromInline static let console: JSString = "console"
-    @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 context: JSString = "context"
-    @usableFromInline static let contextTime: JSString = "contextTime"
-    @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 copyBufferSubData: JSString = "copyBufferSubData"
-    @usableFromInline static let copyFromChannel: JSString = "copyFromChannel"
-    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
-    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
     @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D"
-    @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
-    @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
-    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
-    @usableFromInline static let createAttribute: JSString = "createAttribute"
-    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
-    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
-    @usableFromInline static let createBuffer: JSString = "createBuffer"
-    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
-    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
-    @usableFromInline static let createCaption: JSString = "createCaption"
-    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
-    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
-    @usableFromInline static let createComment: JSString = "createComment"
-    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
-    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
-    @usableFromInline static let createConvolver: JSString = "createConvolver"
-    @usableFromInline static let createDelay: JSString = "createDelay"
-    @usableFromInline static let createDocument: JSString = "createDocument"
-    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
-    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
-    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
-    @usableFromInline static let createElement: JSString = "createElement"
-    @usableFromInline static let createElementNS: JSString = "createElementNS"
-    @usableFromInline static let createEvent: JSString = "createEvent"
-    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
-    @usableFromInline static let createGain: JSString = "createGain"
-    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
-    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
-    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
-    @usableFromInline static let createImageData: JSString = "createImageData"
-    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
-    @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 createObjectURL: JSString = "createObjectURL"
-    @usableFromInline static let createOscillator: JSString = "createOscillator"
-    @usableFromInline static let createPanner: JSString = "createPanner"
-    @usableFromInline static let createPattern: JSString = "createPattern"
-    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
-    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
-    @usableFromInline static let createProgram: JSString = "createProgram"
     @usableFromInline static let createQuery: JSString = "createQuery"
-    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
-    @usableFromInline static let createRange: JSString = "createRange"
-    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
     @usableFromInline static let createSampler: JSString = "createSampler"
-    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
-    @usableFromInline static let createShader: JSString = "createShader"
-    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
-    @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 createTexture: JSString = "createTexture"
     @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback"
     @usableFromInline static let createVertexArray: JSString = "createVertexArray"
-    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
-    @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 cullFace: JSString = "cullFace"
-    @usableFromInline static let currentIteration: JSString = "currentIteration"
-    @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 curve: JSString = "curve"
-    @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 debug: JSString = "debug"
-    @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 `defer`: JSString = "defer"
-    @usableFromInline static let define: JSString = "define"
-    @usableFromInline static let delay: JSString = "delay"
-    @usableFromInline static let delayTime: JSString = "delayTime"
-    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
-    @usableFromInline static let delete: JSString = "delete"
-    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
-    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
-    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
     @usableFromInline static let deleteQuery: JSString = "deleteQuery"
-    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
-    @usableFromInline static let deleteRow: JSString = "deleteRow"
     @usableFromInline static let deleteSampler: JSString = "deleteSampler"
-    @usableFromInline static let deleteShader: JSString = "deleteShader"
     @usableFromInline static let deleteSync: JSString = "deleteSync"
-    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
-    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
-    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
     @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback"
     @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray"
-    @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 depth: JSString = "depth"
-    @usableFromInline static let depthFunc: JSString = "depthFunc"
-    @usableFromInline static let depthMask: JSString = "depthMask"
-    @usableFromInline static let depthRange: JSString = "depthRange"
-    @usableFromInline static let description: JSString = "description"
-    @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 detachShader: JSString = "detachShader"
-    @usableFromInline static let detail: JSString = "detail"
-    @usableFromInline static let detune: JSString = "detune"
-    @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 dirxml: JSString = "dirxml"
-    @usableFromInline static let disable: JSString = "disable"
-    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
-    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
-    @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 distanceModel: JSString = "distanceModel"
-    @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 draggable: JSString = "draggable"
-    @usableFromInline static let drawArrays: JSString = "drawArrays"
     @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced"
     @usableFromInline static let drawBuffers: JSString = "drawBuffers"
-    @usableFromInline static let drawElements: JSString = "drawElements"
     @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
     @usableFromInline static let drawRangeElements: JSString = "drawRangeElements"
-    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
-    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
-    @usableFromInline static let duration: JSString = "duration"
-    @usableFromInline static let e: JSString = "e"
-    @usableFromInline static let easing: JSString = "easing"
-    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
-    @usableFromInline static let effect: JSString = "effect"
-    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
-    @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 endDelay: JSString = "endDelay"
-    @usableFromInline static let endOffset: JSString = "endOffset"
     @usableFromInline static let endQuery: JSString = "endQuery"
-    @usableFromInline static let endTime: JSString = "endTime"
     @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback"
-    @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 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 exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
-    @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
-    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
-    @usableFromInline static let fastSeek: JSString = "fastSeek"
-    @usableFromInline static let feedback: JSString = "feedback"
-    @usableFromInline static let feedforward: JSString = "feedforward"
     @usableFromInline static let fenceSync: JSString = "fenceSync"
-    @usableFromInline static let fetch: JSString = "fetch"
-    @usableFromInline static let fftSize: JSString = "fftSize"
-    @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 finish: JSString = "finish"
-    @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 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 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 forwardX: JSString = "forwardX"
-    @usableFromInline static let forwardY: JSString = "forwardY"
-    @usableFromInline static let forwardZ: JSString = "forwardZ"
-    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
-    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
     @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer"
-    @usableFromInline static let framerate: JSString = "framerate"
-    @usableFromInline static let frames: JSString = "frames"
-    @usableFromInline static let frequency: JSString = "frequency"
-    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
-    @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 frontFace: JSString = "frontFace"
-    @usableFromInline static let fullRange: JSString = "fullRange"
-    @usableFromInline static let gain: JSString = "gain"
-    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
-    @usableFromInline static let get: JSString = "get"
-    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
-    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
     @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName"
     @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter"
     @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms"
-    @usableFromInline static let getAll: JSString = "getAll"
-    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
-    @usableFromInline static let getAnimations: JSString = "getAnimations"
-    @usableFromInline static let getAsFile: JSString = "getAsFile"
-    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
-    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
-    @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 getBufferParameter: JSString = "getBufferParameter"
     @usableFromInline static let getBufferSubData: JSString = "getBufferSubData"
-    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
-    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
-    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
-    @usableFromInline static let getChannelData: JSString = "getChannelData"
-    @usableFromInline static let getClientRect: JSString = "getClientRect"
-    @usableFromInline static let getClientRects: JSString = "getClientRects"
-    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
-    @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 getError: JSString = "getError"
-    @usableFromInline static let getExtension: JSString = "getExtension"
-    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
-    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
     @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation"
-    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
-    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
-    @usableFromInline static let getImageData: JSString = "getImageData"
     @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter"
     @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter"
-    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
-    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
-    @usableFromInline static let getParameter: JSString = "getParameter"
-    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
-    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
     @usableFromInline static let getQuery: JSString = "getQuery"
     @usableFromInline static let getQueryParameter: JSString = "getQueryParameter"
-    @usableFromInline static let getReader: JSString = "getReader"
-    @usableFromInline static let getRegistration: JSString = "getRegistration"
-    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
-    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
-    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
-    @usableFromInline static let getRootNode: JSString = "getRootNode"
-    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
     @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter"
-    @usableFromInline static let getSettings: JSString = "getSettings"
-    @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 getStartDate: JSString = "getStartDate"
-    @usableFromInline static let getState: JSString = "getState"
-    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
-    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
     @usableFromInline static let getSyncParameter: JSString = "getSyncParameter"
-    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
-    @usableFromInline static let getTiming: JSString = "getTiming"
-    @usableFromInline static let getTrackById: JSString = "getTrackById"
-    @usableFromInline static let getTracks: JSString = "getTracks"
-    @usableFromInline static let getTransform: JSString = "getTransform"
     @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying"
-    @usableFromInline static let getUniform: JSString = "getUniform"
     @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex"
     @usableFromInline static let getUniformIndices: JSString = "getUniformIndices"
-    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
-    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
-    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
-    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
-    @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 group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 high: JSString = "high"
-    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
-    @usableFromInline static let hint: JSString = "hint"
-    @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 ideographicBaseline: JSString = "ideographicBaseline"
-    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
-    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
-    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
-    @usableFromInline static let imag: JSString = "imag"
-    @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 inputBuffer: JSString = "inputBuffer"
-    @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 intersectsNode: JSString = "intersectsNode"
-    @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState"
     @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer"
     @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer"
-    @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 isBuffer: JSString = "isBuffer"
-    @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 isEnabled: JSString = "isEnabled"
-    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
-    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
-    @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 isProgram: JSString = "isProgram"
     @usableFromInline static let isQuery: JSString = "isQuery"
-    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
-    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
-    @usableFromInline static let isSameNode: JSString = "isSameNode"
     @usableFromInline static let isSampler: JSString = "isSampler"
-    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
-    @usableFromInline static let isShader: JSString = "isShader"
     @usableFromInline static let isSync: JSString = "isSync"
-    @usableFromInline static let isTexture: JSString = "isTexture"
     @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback"
-    @usableFromInline static let isTrusted: JSString = "isTrusted"
-    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
     @usableFromInline static let isVertexArray: JSString = "isVertexArray"
-    @usableFromInline static let isVisible: JSString = "isVisible"
-    @usableFromInline static let item: JSString = "item"
-    @usableFromInline static let items: JSString = "items"
-    @usableFromInline static let iterateNext: JSString = "iterateNext"
-    @usableFromInline static let iterationStart: JSString = "iterationStart"
-    @usableFromInline static let iterations: JSString = "iterations"
-    @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 knee: JSString = "knee"
-    @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 latencyHint: JSString = "latencyHint"
-    @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 linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
-    @usableFromInline static let lineno: JSString = "lineno"
-    @usableFromInline static let link: JSString = "link"
-    @usableFromInline static let linkColor: JSString = "linkColor"
-    @usableFromInline static let linkProgram: JSString = "linkProgram"
-    @usableFromInline static let links: JSString = "links"
-    @usableFromInline static let list: JSString = "list"
-    @usableFromInline static let listener: JSString = "listener"
-    @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 log: JSString = "log"
-    @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 loopEnd: JSString = "loopEnd"
-    @usableFromInline static let loopStart: JSString = "loopStart"
-    @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 maxChannelCount: JSString = "maxChannelCount"
-    @usableFromInline static let maxDecibels: JSString = "maxDecibels"
-    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
-    @usableFromInline static let maxDistance: JSString = "maxDistance"
-    @usableFromInline static let maxLength: JSString = "maxLength"
-    @usableFromInline static let maxValue: JSString = "maxValue"
-    @usableFromInline static let measureText: JSString = "measureText"
-    @usableFromInline static let media: JSString = "media"
-    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
-    @usableFromInline static let mediaElement: JSString = "mediaElement"
-    @usableFromInline static let mediaStream: JSString = "mediaStream"
-    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
-    @usableFromInline static let menubar: JSString = "menubar"
-    @usableFromInline static let message: JSString = "message"
-    @usableFromInline static let metaKey: JSString = "metaKey"
-    @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 minDecibels: JSString = "minDecibels"
-    @usableFromInline static let minLength: JSString = "minLength"
-    @usableFromInline static let minValue: JSString = "minValue"
-    @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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 numberOfInputs: JSString = "numberOfInputs"
-    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
-    @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncomplete: JSString = "oncomplete"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 onfinish: JSString = "onfinish"
-    @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 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 onprocessorerror: JSString = "onprocessorerror"
-    @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 onremove: JSString = "onremove"
-    @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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 orientationX: JSString = "orientationX"
-    @usableFromInline static let orientationY: JSString = "orientationY"
-    @usableFromInline static let orientationZ: JSString = "orientationZ"
-    @usableFromInline static let origin: JSString = "origin"
-    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
-    @usableFromInline static let originTime: JSString = "originTime"
-    @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 outputBuffer: JSString = "outputBuffer"
-    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
-    @usableFromInline static let outputLatency: JSString = "outputLatency"
-    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
-    @usableFromInline static let oversample: JSString = "oversample"
-    @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 pageX: JSString = "pageX"
-    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
-    @usableFromInline static let pageY: JSString = "pageY"
-    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
-    @usableFromInline static let pan: JSString = "pan"
-    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
-    @usableFromInline static let panningModel: JSString = "panningModel"
-    @usableFromInline static let parameterData: JSString = "parameterData"
-    @usableFromInline static let parameters: JSString = "parameters"
-    @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 pauseTransformFeedback: JSString = "pauseTransformFeedback"
-    @usableFromInline static let paused: JSString = "paused"
-    @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled"
-    @usableFromInline static let pending: JSString = "pending"
-    @usableFromInline static let performance: JSString = "performance"
-    @usableFromInline static let performanceTime: JSString = "performanceTime"
-    @usableFromInline static let periodicWave: JSString = "periodicWave"
-    @usableFromInline static let persist: JSString = "persist"
-    @usableFromInline static let persisted: JSString = "persisted"
-    @usableFromInline static let personalbar: JSString = "personalbar"
-    @usableFromInline static let phase: JSString = "phase"
-    @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 pixelStorei: JSString = "pixelStorei"
-    @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 playState: JSString = "playState"
-    @usableFromInline static let playbackRate: JSString = "playbackRate"
-    @usableFromInline static let playbackTime: JSString = "playbackTime"
-    @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 polygonOffset: JSString = "polygonOffset"
-    @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 positionX: JSString = "positionX"
-    @usableFromInline static let positionY: JSString = "positionY"
-    @usableFromInline static let positionZ: JSString = "positionZ"
-    @usableFromInline static let postMessage: JSString = "postMessage"
-    @usableFromInline static let poster: JSString = "poster"
-    @usableFromInline static let powerPreference: JSString = "powerPreference"
-    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
-    @usableFromInline static let precision: JSString = "precision"
-    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
-    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
-    @usableFromInline static let prepend: JSString = "prepend"
-    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
-    @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 processorOptions: JSString = "processorOptions"
-    @usableFromInline static let product: JSString = "product"
-    @usableFromInline static let productSub: JSString = "productSub"
-    @usableFromInline static let progress: JSString = "progress"
-    @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 pseudoElement: JSString = "pseudoElement"
-    @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 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 rangeMax: JSString = "rangeMax"
-    @usableFromInline static let rangeMin: JSString = "rangeMin"
-    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
-    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
-    @usableFromInline static let ratio: JSString = "ratio"
-    @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 readBuffer: JSString = "readBuffer"
-    @usableFromInline static let readOnly: JSString = "readOnly"
     @usableFromInline static let readPixels: JSString = "readPixels"
-    @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 real: JSString = "real"
-    @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 reduction: JSString = "reduction"
-    @usableFromInline static let refDistance: JSString = "refDistance"
-    @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 release: JSString = "release"
-    @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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
-    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
     @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample"
-    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
-    @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 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 resumeTransformFeedback: JSString = "resumeTransformFeedback"
-    @usableFromInline static let returnValue: JSString = "returnValue"
-    @usableFromInline static let rev: JSString = "rev"
-    @usableFromInline static let reverse: JSString = "reverse"
-    @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 rolloffFactor: JSString = "rolloffFactor"
-    @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 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 sampleCoverage: JSString = "sampleCoverage"
-    @usableFromInline static let sampleRate: JSString = "sampleRate"
-    @usableFromInline static let sampleSize: JSString = "sampleSize"
     @usableFromInline static let samplerParameterf: JSString = "samplerParameterf"
     @usableFromInline static let samplerParameteri: JSString = "samplerParameteri"
-    @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 scissor: JSString = "scissor"
-    @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 searchParams: JSString = "searchParams"
-    @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 setKeyframes: JSString = "setKeyframes"
-    @usableFromInline static let setLineDash: JSString = "setLineDash"
-    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
-    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
-    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
-    @usableFromInline static let setOrientation: JSString = "setOrientation"
-    @usableFromInline static let setParameter: JSString = "setParameter"
-    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
-    @usableFromInline static let setPosition: JSString = "setPosition"
-    @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 setTargetAtTime: JSString = "setTargetAtTime"
-    @usableFromInline static let setTimeout: JSString = "setTimeout"
-    @usableFromInline static let setTransform: JSString = "setTransform"
-    @usableFromInline static let setValidity: JSString = "setValidity"
-    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
-    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
-    @usableFromInline static let shaderSource: JSString = "shaderSource"
-    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
-    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
-    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
-    @usableFromInline static let source: JSString = "source"
-    @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 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 startRendering: JSString = "startRendering"
-    @usableFromInline static let startTime: JSString = "startTime"
-    @usableFromInline static let state: JSString = "state"
-    @usableFromInline static let status: JSString = "status"
-    @usableFromInline static let statusMessage: JSString = "statusMessage"
-    @usableFromInline static let statusText: JSString = "statusText"
-    @usableFromInline static let statusbar: JSString = "statusbar"
-    @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 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 supports: JSString = "supports"
-    @usableFromInline static let surroundContents: JSString = "surroundContents"
-    @usableFromInline static let suspend: JSString = "suspend"
-    @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 table: JSString = "table"
-    @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 tee: JSString = "tee"
-    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
-    @usableFromInline static let terminate: JSString = "terminate"
     @usableFromInline static let texImage2D: JSString = "texImage2D"
     @usableFromInline static let texImage3D: JSString = "texImage3D"
-    @usableFromInline static let texParameterf: JSString = "texParameterf"
-    @usableFromInline static let texParameteri: JSString = "texParameteri"
     @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 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 threshold: JSString = "threshold"
-    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
-    @usableFromInline static let timeStamp: JSString = "timeStamp"
-    @usableFromInline static let timecode: JSString = "timecode"
-    @usableFromInline static let timeline: JSString = "timeline"
-    @usableFromInline static let timeout: JSString = "timeout"
-    @usableFromInline static let timestamp: JSString = "timestamp"
-    @usableFromInline static let title: JSString = "title"
-    @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 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 trace: JSString = "trace"
-    @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 transformFeedbackVaryings: JSString = "transformFeedbackVaryings"
-    @usableFromInline static let transformPoint: JSString = "transformPoint"
-    @usableFromInline static let transformToDocument: JSString = "transformToDocument"
-    @usableFromInline static let transformToFragment: JSString = "transformToFragment"
-    @usableFromInline static let translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 uniform1f: JSString = "uniform1f"
     @usableFromInline static let uniform1fv: JSString = "uniform1fv"
-    @usableFromInline static let uniform1i: JSString = "uniform1i"
     @usableFromInline static let uniform1iv: JSString = "uniform1iv"
     @usableFromInline static let uniform1ui: JSString = "uniform1ui"
     @usableFromInline static let uniform1uiv: JSString = "uniform1uiv"
-    @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 uniform2ui: JSString = "uniform2ui"
     @usableFromInline static let uniform2uiv: JSString = "uniform2uiv"
-    @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 uniform3ui: JSString = "uniform3ui"
     @usableFromInline static let uniform3uiv: JSString = "uniform3uiv"
-    @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 uniform4ui: JSString = "uniform4ui"
     @usableFromInline static let uniform4uiv: JSString = "uniform4uiv"
@@ -4000,2540 +1641,43 @@ public class WebGLVertexArrayObject: WebGLObject {
     @usableFromInline static let uniformMatrix4fv: JSString = "uniformMatrix4fv"
     @usableFromInline static let uniformMatrix4x2fv: JSString = "uniformMatrix4x2fv"
     @usableFromInline static let uniformMatrix4x3fv: JSString = "uniformMatrix4x3fv"
-    @usableFromInline static let unregister: JSString = "unregister"
-    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
-    @usableFromInline static let upX: JSString = "upX"
-    @usableFromInline static let upY: JSString = "upY"
-    @usableFromInline static let upZ: JSString = "upZ"
-    @usableFromInline static let update: JSString = "update"
-    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
-    @usableFromInline static let updateTiming: JSString = "updateTiming"
-    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
-    @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 useProgram: JSString = "useProgram"
-    @usableFromInline static let userAgent: JSString = "userAgent"
-    @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 validateProgram: JSString = "validateProgram"
-    @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 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 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 vertexAttribPointer: JSString = "vertexAttribPointer"
-    @usableFromInline static let video: JSString = "video"
-    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
-    @usableFromInline static let videoHeight: JSString = "videoHeight"
-    @usableFromInline static let videoTracks: JSString = "videoTracks"
-    @usableFromInline static let videoWidth: JSString = "videoWidth"
-    @usableFromInline static let view: JSString = "view"
-    @usableFromInline static let viewport: JSString = "viewport"
-    @usableFromInline static let visibilityState: JSString = "visibilityState"
-    @usableFromInline static let visible: JSString = "visible"
-    @usableFromInline static let visibleRect: JSString = "visibleRect"
-    @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 waitSync: JSString = "waitSync"
-    @usableFromInline static let waiting: JSString = "waiting"
-    @usableFromInline static let warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
-    @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"
-}
-
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
-
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
-extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
-extension Double: Any_AudioContextLatencyCategory_or_Double {}
-
-public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
-    case audioContextLatencyCategory(AudioContextLatencyCategory)
-    case double(Double)
-
-    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
-        switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
-            return .audioContextLatencyCategory(audioContextLatencyCategory)
-        }
-        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
-        }
-    }
 }
 
-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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
+public protocol Any_Uint32List: ConvertibleToJSValue {}
+extension Uint32Array: Any_Uint32List {}
+extension Array: Any_Uint32List where Element == GLuint {}
 
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        default: return nil
-        }
-    }
+public enum Uint32List: JSValueCompatible, Any_Uint32List {
+    case uint32Array(Uint32Array)
+    case seq_of_GLuint([GLuint])
 
-    public var textTrack: TextTrack? {
+    public var uint32Array: Uint32Array? {
         switch self {
-        case let .textTrack(textTrack): return textTrack
+        case let .uint32Array(uint32Array): return uint32Array
         default: return nil
         }
     }
 
-    public var videoTrack: VideoTrack? {
+    public var seq_of_GLuint: [GLuint]? {
         switch self {
-        case let .videoTrack(videoTrack): return videoTrack
+        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
         default: return nil
         }
     }
 
     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 uint32Array: Uint32Array = value.fromJSValue() {
+            return .uint32Array(uint32Array)
         }
-        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
-        }
-    }
-}
-
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
-
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case string(String)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
-        switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-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 {}
-
-public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
-    case compositeOperationOrAuto(CompositeOperationOrAuto)
-    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
-
-    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
-        switch self {
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
-            return .compositeOperationOrAuto(compositeOperationOrAuto)
-        }
-        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
-            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto):
-            return compositeOperationOrAuto.jsValue
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
-            return seq_of_CompositeOperationOrAuto.jsValue
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .document(document):
-            return document.jsValue
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
-            return xmlHttpRequestBodyInit.jsValue
-        }
-    }
-}
-
-public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
-extension Double: Any_Double_or_KeyframeAnimationOptions {}
-extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
-
-public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
-    case double(Double)
-    case keyframeAnimationOptions(KeyframeAnimationOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
-        switch self {
-        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
-            return .keyframeAnimationOptions(keyframeAnimationOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
-    case double(Double)
-    case keyframeEffectOptions(KeyframeEffectOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeEffectOptions: KeyframeEffectOptions? {
-        switch self {
-        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
-            return .keyframeEffectOptions(keyframeEffectOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
-    case double(Double)
-    case string(String)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .double(double):
-            return double.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
-extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
-extension String: Any_ElementCreationOptions_or_String {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Float32List: ConvertibleToJSValue {}
-extension Float32Array: Any_Float32List {}
-extension Array: Any_Float32List where Element == GLfloat {}
-
-public enum Float32List: JSValueCompatible, Any_Float32List {
-    case float32Array(Float32Array)
-    case seq_of_GLfloat([GLfloat])
-
-    public var float32Array: Float32Array? {
-        switch self {
-        case let .float32Array(float32Array): return float32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLfloat: [GLfloat]? {
-        switch self {
-        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_Int32List: ConvertibleToJSValue {}
-extension Int32Array: Any_Int32List {}
-extension Array: Any_Int32List where Element == GLint {}
-
-public enum Int32List: JSValueCompatible, Any_Int32List {
-    case int32Array(Int32Array)
-    case seq_of_GLint([GLint])
-
-    public var int32Array: Int32Array? {
-        switch self {
-        case let .int32Array(int32Array): return int32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLint: [GLint]? {
-        switch self {
-        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-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 {}
-
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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])
-
-    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
-        }
-    }
-}
-
-public protocol Any_TexImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_TexImageSource {}
-extension HTMLImageElement: Any_TexImageSource {}
-extension HTMLVideoElement: Any_TexImageSource {}
-extension ImageBitmap: Any_TexImageSource {}
-extension ImageData: Any_TexImageSource {}
-extension OffscreenCanvas: Any_TexImageSource {}
-extension VideoFrame: Any_TexImageSource {}
-
-public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlImageElement(HTMLImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case imageData(ImageData)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_Uint32List: ConvertibleToJSValue {}
-extension Uint32Array: Any_Uint32List {}
-extension Array: Any_Uint32List where Element == GLuint {}
-
-public enum Uint32List: JSValueCompatible, Any_Uint32List {
-    case uint32Array(Uint32Array)
-    case seq_of_GLuint([GLuint])
-
-    public var uint32Array: Uint32Array? {
-        switch self {
-        case let .uint32Array(uint32Array): return uint32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLuint: [GLuint]? {
-        switch self {
-        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
-        default: return nil
-        }
-    }
-
-    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 seq_of_GLuint: [GLuint] = value.fromJSValue() {
+            return .seq_of_GLuint(seq_of_GLuint)
         }
         return nil
     }
@@ -6547,129 +1691,3 @@ public enum Uint32List: JSValueCompatible, Any_Uint32List {
         }
     }
 }
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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 {
-    case nullable_Double(Double?)
-    case seq_of_nullable_Double([Double?])
-
-    public var nullable_Double: Double?? {
-        switch self {
-        case let .nullable_Double(nullable_Double): return nullable_Double
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
diff --git a/Sources/WebGPU/Generated.swift b/Sources/WebGPU/Generated.swift
index 0df511db..bc26d489 100644
--- a/Sources/WebGPU/Generated.swift
+++ b/Sources/WebGPU/Generated.swift
@@ -3392,616 +3392,8 @@ public typealias GPUSize32 = UInt32
 public typealias GPUSignedOffset32 = Int32
 public typealias GPUFlagsConstant = UInt32
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute3Optional<A0, A1, A2, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 AnalyserNode: JSString = "AnalyserNode"
-    @usableFromInline static let Animation: JSString = "Animation"
-    @usableFromInline static let AnimationEffect: JSString = "AnimationEffect"
-    @usableFromInline static let AnimationTimeline: JSString = "AnimationTimeline"
-    @usableFromInline static let Attr: JSString = "Attr"
-    @usableFromInline static let AudioBuffer: JSString = "AudioBuffer"
-    @usableFromInline static let AudioBufferSourceNode: JSString = "AudioBufferSourceNode"
-    @usableFromInline static let AudioContext: JSString = "AudioContext"
-    @usableFromInline static let AudioData: JSString = "AudioData"
-    @usableFromInline static let AudioDecoder: JSString = "AudioDecoder"
-    @usableFromInline static let AudioDestinationNode: JSString = "AudioDestinationNode"
-    @usableFromInline static let AudioEncoder: JSString = "AudioEncoder"
-    @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 AudioTrack: JSString = "AudioTrack"
-    @usableFromInline static let AudioTrackList: JSString = "AudioTrackList"
-    @usableFromInline static let AudioWorklet: JSString = "AudioWorklet"
-    @usableFromInline static let AudioWorkletNode: JSString = "AudioWorkletNode"
-    @usableFromInline static let BarProp: JSString = "BarProp"
-    @usableFromInline static let BaseAudioContext: JSString = "BaseAudioContext"
-    @usableFromInline static let BeforeUnloadEvent: JSString = "BeforeUnloadEvent"
-    @usableFromInline static let BiquadFilterNode: JSString = "BiquadFilterNode"
-    @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 CanvasFilter: JSString = "CanvasFilter"
-    @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 ChannelMergerNode: JSString = "ChannelMergerNode"
-    @usableFromInline static let ChannelSplitterNode: JSString = "ChannelSplitterNode"
-    @usableFromInline static let CharacterData: JSString = "CharacterData"
-    @usableFromInline static let CloseEvent: JSString = "CloseEvent"
-    @usableFromInline static let Comment: JSString = "Comment"
-    @usableFromInline static let CompositionEvent: JSString = "CompositionEvent"
-    @usableFromInline static let ConstantSourceNode: JSString = "ConstantSourceNode"
-    @usableFromInline static let ConvolverNode: JSString = "ConvolverNode"
-    @usableFromInline static let CountQueuingStrategy: JSString = "CountQueuingStrategy"
-    @usableFromInline static let CustomElementRegistry: JSString = "CustomElementRegistry"
-    @usableFromInline static let CustomEvent: JSString = "CustomEvent"
-    @usableFromInline static let DOMException: JSString = "DOMException"
-    @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 DelayNode: JSString = "DelayNode"
-    @usableFromInline static let Document: JSString = "Document"
-    @usableFromInline static let DocumentFragment: JSString = "DocumentFragment"
-    @usableFromInline static let DocumentTimeline: JSString = "DocumentTimeline"
-    @usableFromInline static let DocumentType: JSString = "DocumentType"
-    @usableFromInline static let DragEvent: JSString = "DragEvent"
-    @usableFromInline static let DynamicsCompressorNode: JSString = "DynamicsCompressorNode"
-    @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 GPU: JSString = "GPU"
     @usableFromInline static let GPUAdapter: JSString = "GPUAdapter"
     @usableFromInline static let GPUBindGroup: JSString = "GPUBindGroup"
@@ -4038,1263 +3430,145 @@ public typealias GPUFlagsConstant = UInt32
     @usableFromInline static let GPUTextureView: JSString = "GPUTextureView"
     @usableFromInline static let GPUUncapturedErrorEvent: JSString = "GPUUncapturedErrorEvent"
     @usableFromInline static let GPUValidationError: JSString = "GPUValidationError"
-    @usableFromInline static let GainNode: JSString = "GainNode"
-    @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 IIRFilterNode: JSString = "IIRFilterNode"
-    @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 KeyframeEffect: JSString = "KeyframeEffect"
-    @usableFromInline static let Location: JSString = "Location"
-    @usableFromInline static let MediaDeviceInfo: JSString = "MediaDeviceInfo"
-    @usableFromInline static let MediaDevices: JSString = "MediaDevices"
-    @usableFromInline static let MediaElementAudioSourceNode: JSString = "MediaElementAudioSourceNode"
-    @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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @usableFromInline static let MediaStream: JSString = "MediaStream"
-    @usableFromInline static let MediaStreamAudioDestinationNode: JSString = "MediaStreamAudioDestinationNode"
-    @usableFromInline static let MediaStreamAudioSourceNode: JSString = "MediaStreamAudioSourceNode"
-    @usableFromInline static let MediaStreamTrack: JSString = "MediaStreamTrack"
-    @usableFromInline static let MediaStreamTrackAudioSourceNode: JSString = "MediaStreamTrackAudioSourceNode"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 OfflineAudioCompletionEvent: JSString = "OfflineAudioCompletionEvent"
-    @usableFromInline static let OfflineAudioContext: JSString = "OfflineAudioContext"
-    @usableFromInline static let OffscreenCanvas: JSString = "OffscreenCanvas"
-    @usableFromInline static let OffscreenCanvasRenderingContext2D: JSString = "OffscreenCanvasRenderingContext2D"
-    @usableFromInline static let OscillatorNode: JSString = "OscillatorNode"
-    @usableFromInline static let OverconstrainedError: JSString = "OverconstrainedError"
-    @usableFromInline static let PageTransitionEvent: JSString = "PageTransitionEvent"
-    @usableFromInline static let PannerNode: JSString = "PannerNode"
-    @usableFromInline static let Path2D: JSString = "Path2D"
-    @usableFromInline static let Performance: JSString = "Performance"
-    @usableFromInline static let PeriodicWave: JSString = "PeriodicWave"
-    @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 Q: JSString = "Q"
-    @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 ScriptProcessorNode: JSString = "ScriptProcessorNode"
-    @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 StaticRange: JSString = "StaticRange"
-    @usableFromInline static let StereoPannerNode: JSString = "StereoPannerNode"
-    @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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WaveShaperNode: JSString = "WaveShaperNode"
-    @usableFromInline static let WebGL2RenderingContext: JSString = "WebGL2RenderingContext"
-    @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 WebGLQuery: JSString = "WebGLQuery"
-    @usableFromInline static let WebGLRenderbuffer: JSString = "WebGLRenderbuffer"
-    @usableFromInline static let WebGLRenderingContext: JSString = "WebGLRenderingContext"
-    @usableFromInline static let WebGLSampler: JSString = "WebGLSampler"
-    @usableFromInline static let WebGLShader: JSString = "WebGLShader"
-    @usableFromInline static let WebGLShaderPrecisionFormat: JSString = "WebGLShaderPrecisionFormat"
-    @usableFromInline static let WebGLSync: JSString = "WebGLSync"
-    @usableFromInline static let WebGLTexture: JSString = "WebGLTexture"
-    @usableFromInline static let WebGLTransformFeedback: JSString = "WebGLTransformFeedback"
-    @usableFromInline static let WebGLUniformLocation: JSString = "WebGLUniformLocation"
-    @usableFromInline static let WebGLVertexArrayObject: JSString = "WebGLVertexArrayObject"
-    @usableFromInline static let WebSocket: JSString = "WebSocket"
-    @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 access: JSString = "access"
-    @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 activeTexture: JSString = "activeTexture"
-    @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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @usableFromInline static let addTextTrack: JSString = "addTextTrack"
-    @usableFromInline static let addTrack: JSString = "addTrack"
-    @usableFromInline static let addedNodes: JSString = "addedNodes"
     @usableFromInline static let addressModeU: JSString = "addressModeU"
     @usableFromInline static let addressModeV: JSString = "addressModeV"
     @usableFromInline static let addressModeW: JSString = "addressModeW"
-    @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 alphaToCoverageEnabled: JSString = "alphaToCoverageEnabled"
-    @usableFromInline static let alphabeticBaseline: JSString = "alphabeticBaseline"
-    @usableFromInline static let alt: JSString = "alt"
-    @usableFromInline static let altKey: JSString = "altKey"
-    @usableFromInline static let ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animate: JSString = "animate"
-    @usableFromInline static let animated: JSString = "animated"
-    @usableFromInline static let antialias: JSString = "antialias"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 arrayLayerCount: JSString = "arrayLayerCount"
     @usableFromInline static let arrayStride: JSString = "arrayStride"
-    @usableFromInline static let `as`: JSString = "as"
     @usableFromInline static let aspect: JSString = "aspect"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 attachShader: JSString = "attachShader"
-    @usableFromInline static let attachShadow: JSString = "attachShadow"
-    @usableFromInline static let attack: JSString = "attack"
-    @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 audioWorklet: JSString = "audioWorklet"
-    @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 automationRate: JSString = "automationRate"
-    @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 b: JSString = "b"
-    @usableFromInline static let back: JSString = "back"
-    @usableFromInline static let background: JSString = "background"
-    @usableFromInline static let badInput: JSString = "badInput"
     @usableFromInline static let baseArrayLayer: JSString = "baseArrayLayer"
-    @usableFromInline static let baseLatency: JSString = "baseLatency"
     @usableFromInline static let baseMipLevel: JSString = "baseMipLevel"
-    @usableFromInline static let baseURI: JSString = "baseURI"
-    @usableFromInline static let before: JSString = "before"
     @usableFromInline static let beginComputePass: JSString = "beginComputePass"
     @usableFromInline static let beginOcclusionQuery: JSString = "beginOcclusionQuery"
-    @usableFromInline static let beginPath: JSString = "beginPath"
-    @usableFromInline static let beginQuery: JSString = "beginQuery"
     @usableFromInline static let beginRenderPass: JSString = "beginRenderPass"
-    @usableFromInline static let beginTransformFeedback: JSString = "beginTransformFeedback"
-    @usableFromInline static let behavior: JSString = "behavior"
-    @usableFromInline static let bezierCurveTo: JSString = "bezierCurveTo"
-    @usableFromInline static let bgColor: JSString = "bgColor"
-    @usableFromInline static let binaryType: JSString = "binaryType"
-    @usableFromInline static let bindAttribLocation: JSString = "bindAttribLocation"
-    @usableFromInline static let bindBuffer: JSString = "bindBuffer"
-    @usableFromInline static let bindBufferBase: JSString = "bindBufferBase"
-    @usableFromInline static let bindBufferRange: JSString = "bindBufferRange"
-    @usableFromInline static let bindFramebuffer: JSString = "bindFramebuffer"
     @usableFromInline static let bindGroupLayouts: JSString = "bindGroupLayouts"
-    @usableFromInline static let bindRenderbuffer: JSString = "bindRenderbuffer"
-    @usableFromInline static let bindSampler: JSString = "bindSampler"
-    @usableFromInline static let bindTexture: JSString = "bindTexture"
-    @usableFromInline static let bindTransformFeedback: JSString = "bindTransformFeedback"
-    @usableFromInline static let bindVertexArray: JSString = "bindVertexArray"
     @usableFromInline static let binding: JSString = "binding"
-    @usableFromInline static let bitrate: JSString = "bitrate"
-    @usableFromInline static let bitrateMode: JSString = "bitrateMode"
-    @usableFromInline static let bitsPerSecond: JSString = "bitsPerSecond"
     @usableFromInline static let blend: JSString = "blend"
-    @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 blitFramebuffer: JSString = "blitFramebuffer"
-    @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 buffer: JSString = "buffer"
-    @usableFromInline static let bufferData: JSString = "bufferData"
-    @usableFromInline static let bufferSize: JSString = "bufferSize"
-    @usableFromInline static let bufferSubData: JSString = "bufferSubData"
-    @usableFromInline static let buffered: JSString = "buffered"
-    @usableFromInline static let bufferedAmount: JSString = "bufferedAmount"
     @usableFromInline static let buffers: JSString = "buffers"
-    @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 bytesPerRow: JSString = "bytesPerRow"
-    @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 canPlayType: JSString = "canPlayType"
-    @usableFromInline static let cancel: JSString = "cancel"
-    @usableFromInline static let cancelAndHoldAtTime: JSString = "cancelAndHoldAtTime"
-    @usableFromInline static let cancelAnimationFrame: JSString = "cancelAnimationFrame"
-    @usableFromInline static let cancelBubble: JSString = "cancelBubble"
-    @usableFromInline static let cancelScheduledValues: JSString = "cancelScheduledValues"
-    @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 channelCount: JSString = "channelCount"
-    @usableFromInline static let channelCountMode: JSString = "channelCountMode"
-    @usableFromInline static let channelInterpretation: JSString = "channelInterpretation"
-    @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 checkFramebufferStatus: JSString = "checkFramebufferStatus"
-    @usableFromInline static let checkValidity: JSString = "checkValidity"
-    @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 clearBuffer: JSString = "clearBuffer"
-    @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 clearColor: JSString = "clearColor"
-    @usableFromInline static let clearData: JSString = "clearData"
-    @usableFromInline static let clearDepth: JSString = "clearDepth"
-    @usableFromInline static let clearInterval: JSString = "clearInterval"
-    @usableFromInline static let clearParameters: JSString = "clearParameters"
-    @usableFromInline static let clearRect: JSString = "clearRect"
-    @usableFromInline static let clearStencil: JSString = "clearStencil"
-    @usableFromInline static let clearTimeout: JSString = "clearTimeout"
     @usableFromInline static let clearValue: JSString = "clearValue"
-    @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 clientWaitSync: JSString = "clientWaitSync"
-    @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 colorAttachments: JSString = "colorAttachments"
-    @usableFromInline static let colorDepth: JSString = "colorDepth"
     @usableFromInline static let colorFormats: JSString = "colorFormats"
-    @usableFromInline static let colorMask: JSString = "colorMask"
     @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 commitStyles: JSString = "commitStyles"
-    @usableFromInline static let commonAncestorContainer: JSString = "commonAncestorContainer"
-    @usableFromInline static let compact: JSString = "compact"
     @usableFromInline static let compare: JSString = "compare"
-    @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 compilationInfo: JSString = "compilationInfo"
-    @usableFromInline static let compileShader: JSString = "compileShader"
-    @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 composite: JSString = "composite"
     @usableFromInline static let compositingAlphaMode: JSString = "compositingAlphaMode"
-    @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 compute: JSString = "compute"
-    @usableFromInline static let computedOffset: JSString = "computedOffset"
-    @usableFromInline static let coneInnerAngle: JSString = "coneInnerAngle"
-    @usableFromInline static let coneOuterAngle: JSString = "coneOuterAngle"
-    @usableFromInline static let coneOuterGain: JSString = "coneOuterGain"
-    @usableFromInline static let config: JSString = "config"
     @usableFromInline static let configure: JSString = "configure"
-    @usableFromInline static let confirm: JSString = "confirm"
-    @usableFromInline static let connect: JSString = "connect"
-    @usableFromInline static let console: JSString = "console"
     @usableFromInline static let constants: JSString = "constants"
-    @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 context: JSString = "context"
-    @usableFromInline static let contextTime: JSString = "contextTime"
-    @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 copyBufferSubData: JSString = "copyBufferSubData"
     @usableFromInline static let copyBufferToBuffer: JSString = "copyBufferToBuffer"
     @usableFromInline static let copyBufferToTexture: JSString = "copyBufferToTexture"
     @usableFromInline static let copyExternalImageToTexture: JSString = "copyExternalImageToTexture"
-    @usableFromInline static let copyFromChannel: JSString = "copyFromChannel"
-    @usableFromInline static let copyTexImage2D: JSString = "copyTexImage2D"
-    @usableFromInline static let copyTexSubImage2D: JSString = "copyTexSubImage2D"
-    @usableFromInline static let copyTexSubImage3D: JSString = "copyTexSubImage3D"
     @usableFromInline static let copyTextureToBuffer: JSString = "copyTextureToBuffer"
     @usableFromInline static let copyTextureToTexture: JSString = "copyTextureToTexture"
-    @usableFromInline static let copyTo: JSString = "copyTo"
-    @usableFromInline static let copyToChannel: JSString = "copyToChannel"
     @usableFromInline static let count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
-    @usableFromInline static let createAnalyser: JSString = "createAnalyser"
-    @usableFromInline static let createAttribute: JSString = "createAttribute"
-    @usableFromInline static let createAttributeNS: JSString = "createAttributeNS"
     @usableFromInline static let createBindGroup: JSString = "createBindGroup"
     @usableFromInline static let createBindGroupLayout: JSString = "createBindGroupLayout"
-    @usableFromInline static let createBiquadFilter: JSString = "createBiquadFilter"
     @usableFromInline static let createBuffer: JSString = "createBuffer"
-    @usableFromInline static let createBufferSource: JSString = "createBufferSource"
-    @usableFromInline static let createCDATASection: JSString = "createCDATASection"
-    @usableFromInline static let createCaption: JSString = "createCaption"
-    @usableFromInline static let createChannelMerger: JSString = "createChannelMerger"
-    @usableFromInline static let createChannelSplitter: JSString = "createChannelSplitter"
     @usableFromInline static let createCommandEncoder: JSString = "createCommandEncoder"
-    @usableFromInline static let createComment: JSString = "createComment"
     @usableFromInline static let createComputePipeline: JSString = "createComputePipeline"
     @usableFromInline static let createComputePipelineAsync: JSString = "createComputePipelineAsync"
-    @usableFromInline static let createConicGradient: JSString = "createConicGradient"
-    @usableFromInline static let createConstantSource: JSString = "createConstantSource"
-    @usableFromInline static let createConvolver: JSString = "createConvolver"
-    @usableFromInline static let createDelay: JSString = "createDelay"
-    @usableFromInline static let createDocument: JSString = "createDocument"
-    @usableFromInline static let createDocumentFragment: JSString = "createDocumentFragment"
-    @usableFromInline static let createDocumentType: JSString = "createDocumentType"
-    @usableFromInline static let createDynamicsCompressor: JSString = "createDynamicsCompressor"
-    @usableFromInline static let createElement: JSString = "createElement"
-    @usableFromInline static let createElementNS: JSString = "createElementNS"
-    @usableFromInline static let createEvent: JSString = "createEvent"
-    @usableFromInline static let createFramebuffer: JSString = "createFramebuffer"
-    @usableFromInline static let createGain: JSString = "createGain"
-    @usableFromInline static let createHTMLDocument: JSString = "createHTMLDocument"
-    @usableFromInline static let createIIRFilter: JSString = "createIIRFilter"
-    @usableFromInline static let createImageBitmap: JSString = "createImageBitmap"
-    @usableFromInline static let createImageData: JSString = "createImageData"
-    @usableFromInline static let createLinearGradient: JSString = "createLinearGradient"
-    @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 createObjectURL: JSString = "createObjectURL"
-    @usableFromInline static let createOscillator: JSString = "createOscillator"
-    @usableFromInline static let createPanner: JSString = "createPanner"
-    @usableFromInline static let createPattern: JSString = "createPattern"
-    @usableFromInline static let createPeriodicWave: JSString = "createPeriodicWave"
     @usableFromInline static let createPipelineLayout: JSString = "createPipelineLayout"
-    @usableFromInline static let createProcessingInstruction: JSString = "createProcessingInstruction"
-    @usableFromInline static let createProgram: JSString = "createProgram"
-    @usableFromInline static let createQuery: JSString = "createQuery"
     @usableFromInline static let createQuerySet: JSString = "createQuerySet"
-    @usableFromInline static let createRadialGradient: JSString = "createRadialGradient"
-    @usableFromInline static let createRange: JSString = "createRange"
     @usableFromInline static let createRenderBundleEncoder: JSString = "createRenderBundleEncoder"
     @usableFromInline static let createRenderPipeline: JSString = "createRenderPipeline"
     @usableFromInline static let createRenderPipelineAsync: JSString = "createRenderPipelineAsync"
-    @usableFromInline static let createRenderbuffer: JSString = "createRenderbuffer"
     @usableFromInline static let createSampler: JSString = "createSampler"
-    @usableFromInline static let createScriptProcessor: JSString = "createScriptProcessor"
-    @usableFromInline static let createShader: JSString = "createShader"
     @usableFromInline static let createShaderModule: JSString = "createShaderModule"
-    @usableFromInline static let createStereoPanner: JSString = "createStereoPanner"
-    @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 createTexture: JSString = "createTexture"
-    @usableFromInline static let createTransformFeedback: JSString = "createTransformFeedback"
-    @usableFromInline static let createVertexArray: JSString = "createVertexArray"
     @usableFromInline static let createView: JSString = "createView"
-    @usableFromInline static let createWaveShaper: JSString = "createWaveShaper"
-    @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 cullFace: JSString = "cullFace"
     @usableFromInline static let cullMode: JSString = "cullMode"
-    @usableFromInline static let currentIteration: JSString = "currentIteration"
-    @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 curve: JSString = "curve"
-    @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 debug: JSString = "debug"
-    @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 defaultQueue: JSString = "defaultQueue"
-    @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 delay: JSString = "delay"
-    @usableFromInline static let delayTime: JSString = "delayTime"
-    @usableFromInline static let delegatesFocus: JSString = "delegatesFocus"
-    @usableFromInline static let delete: JSString = "delete"
-    @usableFromInline static let deleteBuffer: JSString = "deleteBuffer"
-    @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 deleteFramebuffer: JSString = "deleteFramebuffer"
-    @usableFromInline static let deleteProgram: JSString = "deleteProgram"
-    @usableFromInline static let deleteQuery: JSString = "deleteQuery"
-    @usableFromInline static let deleteRenderbuffer: JSString = "deleteRenderbuffer"
-    @usableFromInline static let deleteRow: JSString = "deleteRow"
-    @usableFromInline static let deleteSampler: JSString = "deleteSampler"
-    @usableFromInline static let deleteShader: JSString = "deleteShader"
-    @usableFromInline static let deleteSync: JSString = "deleteSync"
-    @usableFromInline static let deleteTFoot: JSString = "deleteTFoot"
-    @usableFromInline static let deleteTHead: JSString = "deleteTHead"
-    @usableFromInline static let deleteTexture: JSString = "deleteTexture"
-    @usableFromInline static let deleteTransformFeedback: JSString = "deleteTransformFeedback"
-    @usableFromInline static let deleteVertexArray: JSString = "deleteVertexArray"
-    @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 depth: JSString = "depth"
     @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 depthFunc: JSString = "depthFunc"
     @usableFromInline static let depthLoadOp: JSString = "depthLoadOp"
-    @usableFromInline static let depthMask: JSString = "depthMask"
     @usableFromInline static let depthOrArrayLayers: JSString = "depthOrArrayLayers"
-    @usableFromInline static let depthRange: JSString = "depthRange"
     @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 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 detachShader: JSString = "detachShader"
-    @usableFromInline static let detail: JSString = "detail"
-    @usableFromInline static let detune: JSString = "detune"
     @usableFromInline static let device: JSString = "device"
-    @usableFromInline static let deviceId: JSString = "deviceId"
-    @usableFromInline static let devicePixelRatio: JSString = "devicePixelRatio"
     @usableFromInline static let dimension: JSString = "dimension"
-    @usableFromInline static let dir: JSString = "dir"
-    @usableFromInline static let dirName: JSString = "dirName"
-    @usableFromInline static let direction: JSString = "direction"
-    @usableFromInline static let dirxml: JSString = "dirxml"
-    @usableFromInline static let disable: JSString = "disable"
-    @usableFromInline static let disableNormalization: JSString = "disableNormalization"
-    @usableFromInline static let disableVertexAttribArray: JSString = "disableVertexAttribArray"
-    @usableFromInline static let disabled: JSString = "disabled"
-    @usableFromInline static let disconnect: JSString = "disconnect"
     @usableFromInline static let dispatch: JSString = "dispatch"
-    @usableFromInline static let dispatchEvent: JSString = "dispatchEvent"
     @usableFromInline static let dispatchIndirect: JSString = "dispatchIndirect"
-    @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 distanceModel: JSString = "distanceModel"
-    @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 draggable: JSString = "draggable"
     @usableFromInline static let draw: JSString = "draw"
-    @usableFromInline static let drawArrays: JSString = "drawArrays"
-    @usableFromInline static let drawArraysInstanced: JSString = "drawArraysInstanced"
-    @usableFromInline static let drawBuffers: JSString = "drawBuffers"
-    @usableFromInline static let drawElements: JSString = "drawElements"
-    @usableFromInline static let drawElementsInstanced: JSString = "drawElementsInstanced"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
     @usableFromInline static let drawIndexed: JSString = "drawIndexed"
     @usableFromInline static let drawIndexedIndirect: JSString = "drawIndexedIndirect"
     @usableFromInline static let drawIndirect: JSString = "drawIndirect"
-    @usableFromInline static let drawRangeElements: JSString = "drawRangeElements"
-    @usableFromInline static let drawingBufferHeight: JSString = "drawingBufferHeight"
-    @usableFromInline static let drawingBufferWidth: JSString = "drawingBufferWidth"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
     @usableFromInline static let dstFactor: JSString = "dstFactor"
-    @usableFromInline static let duration: JSString = "duration"
-    @usableFromInline static let e: JSString = "e"
-    @usableFromInline static let easing: JSString = "easing"
-    @usableFromInline static let echoCancellation: JSString = "echoCancellation"
-    @usableFromInline static let effect: JSString = "effect"
-    @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 enableVertexAttribArray: JSString = "enableVertexAttribArray"
-    @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 endDelay: JSString = "endDelay"
     @usableFromInline static let endOcclusionQuery: JSString = "endOcclusionQuery"
-    @usableFromInline static let endOffset: JSString = "endOffset"
-    @usableFromInline static let endQuery: JSString = "endQuery"
-    @usableFromInline static let endTime: JSString = "endTime"
-    @usableFromInline static let endTransformFeedback: JSString = "endTransformFeedback"
-    @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 entryPoint: JSString = "entryPoint"
-    @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 executeBundles: JSString = "executeBundles"
     @usableFromInline static let expired: JSString = "expired"
-    @usableFromInline static let exponentialRampToValueAtTime: JSString = "exponentialRampToValueAtTime"
-    @usableFromInline static let extends: JSString = "extends"
-    @usableFromInline static let extensions: JSString = "extensions"
-    @usableFromInline static let external: JSString = "external"
     @usableFromInline static let externalTexture: JSString = "externalTexture"
-    @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 failIfMajorPerformanceCaveat: JSString = "failIfMajorPerformanceCaveat"
     @usableFromInline static let failOp: JSString = "failOp"
-    @usableFromInline static let fastSeek: JSString = "fastSeek"
     @usableFromInline static let features: JSString = "features"
-    @usableFromInline static let feedback: JSString = "feedback"
-    @usableFromInline static let feedforward: JSString = "feedforward"
-    @usableFromInline static let fenceSync: JSString = "fenceSync"
-    @usableFromInline static let fetch: JSString = "fetch"
-    @usableFromInline static let fftSize: JSString = "fftSize"
-    @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 finish: JSString = "finish"
-    @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 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 forceFallbackAdapter: JSString = "forceFallbackAdapter"
-    @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 forwardX: JSString = "forwardX"
-    @usableFromInline static let forwardY: JSString = "forwardY"
-    @usableFromInline static let forwardZ: JSString = "forwardZ"
     @usableFromInline static let fragment: JSString = "fragment"
-    @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 framebufferRenderbuffer: JSString = "framebufferRenderbuffer"
-    @usableFromInline static let framebufferTexture2D: JSString = "framebufferTexture2D"
-    @usableFromInline static let framebufferTextureLayer: JSString = "framebufferTextureLayer"
-    @usableFromInline static let framerate: JSString = "framerate"
-    @usableFromInline static let frames: JSString = "frames"
-    @usableFromInline static let frequency: JSString = "frequency"
-    @usableFromInline static let frequencyBinCount: JSString = "frequencyBinCount"
-    @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 frontFace: JSString = "frontFace"
-    @usableFromInline static let fullRange: JSString = "fullRange"
     @usableFromInline static let g: JSString = "g"
-    @usableFromInline static let gain: JSString = "gain"
-    @usableFromInline static let generateMipmap: JSString = "generateMipmap"
-    @usableFromInline static let get: JSString = "get"
-    @usableFromInline static let getActiveAttrib: JSString = "getActiveAttrib"
-    @usableFromInline static let getActiveUniform: JSString = "getActiveUniform"
-    @usableFromInline static let getActiveUniformBlockName: JSString = "getActiveUniformBlockName"
-    @usableFromInline static let getActiveUniformBlockParameter: JSString = "getActiveUniformBlockParameter"
-    @usableFromInline static let getActiveUniforms: JSString = "getActiveUniforms"
-    @usableFromInline static let getAll: JSString = "getAll"
-    @usableFromInline static let getAllResponseHeaders: JSString = "getAllResponseHeaders"
-    @usableFromInline static let getAnimations: JSString = "getAnimations"
-    @usableFromInline static let getAsFile: JSString = "getAsFile"
-    @usableFromInline static let getAttachedShaders: JSString = "getAttachedShaders"
-    @usableFromInline static let getAttribLocation: JSString = "getAttribLocation"
-    @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 getBindGroupLayout: JSString = "getBindGroupLayout"
-    @usableFromInline static let getBoundingClientRect: JSString = "getBoundingClientRect"
-    @usableFromInline static let getBounds: JSString = "getBounds"
-    @usableFromInline static let getBoxQuads: JSString = "getBoxQuads"
-    @usableFromInline static let getBufferParameter: JSString = "getBufferParameter"
-    @usableFromInline static let getBufferSubData: JSString = "getBufferSubData"
-    @usableFromInline static let getByteFrequencyData: JSString = "getByteFrequencyData"
-    @usableFromInline static let getByteTimeDomainData: JSString = "getByteTimeDomainData"
-    @usableFromInline static let getCapabilities: JSString = "getCapabilities"
-    @usableFromInline static let getChannelData: JSString = "getChannelData"
-    @usableFromInline static let getClientRect: JSString = "getClientRect"
-    @usableFromInline static let getClientRects: JSString = "getClientRects"
-    @usableFromInline static let getComputedTiming: JSString = "getComputedTiming"
-    @usableFromInline static let getConstraints: JSString = "getConstraints"
-    @usableFromInline static let getContextAttributes: JSString = "getContextAttributes"
-    @usableFromInline static let getCueById: JSString = "getCueById"
     @usableFromInline static let getCurrentTexture: JSString = "getCurrentTexture"
-    @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 getError: JSString = "getError"
-    @usableFromInline static let getExtension: JSString = "getExtension"
-    @usableFromInline static let getFloatFrequencyData: JSString = "getFloatFrequencyData"
-    @usableFromInline static let getFloatTimeDomainData: JSString = "getFloatTimeDomainData"
-    @usableFromInline static let getFragDataLocation: JSString = "getFragDataLocation"
-    @usableFromInline static let getFramebufferAttachmentParameter: JSString = "getFramebufferAttachmentParameter"
-    @usableFromInline static let getFrequencyResponse: JSString = "getFrequencyResponse"
-    @usableFromInline static let getImageData: JSString = "getImageData"
-    @usableFromInline static let getIndexedParameter: JSString = "getIndexedParameter"
-    @usableFromInline static let getInternalformatParameter: JSString = "getInternalformatParameter"
-    @usableFromInline static let getKeyframes: JSString = "getKeyframes"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
     @usableFromInline static let getMappedRange: JSString = "getMappedRange"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @usableFromInline static let getNamedItemNS: JSString = "getNamedItemNS"
-    @usableFromInline static let getOutputTimestamp: JSString = "getOutputTimestamp"
-    @usableFromInline static let getParameter: JSString = "getParameter"
     @usableFromInline static let getPreferredFormat: JSString = "getPreferredFormat"
-    @usableFromInline static let getProgramInfoLog: JSString = "getProgramInfoLog"
-    @usableFromInline static let getProgramParameter: JSString = "getProgramParameter"
-    @usableFromInline static let getQuery: JSString = "getQuery"
-    @usableFromInline static let getQueryParameter: JSString = "getQueryParameter"
-    @usableFromInline static let getReader: JSString = "getReader"
-    @usableFromInline static let getRegistration: JSString = "getRegistration"
-    @usableFromInline static let getRegistrations: JSString = "getRegistrations"
-    @usableFromInline static let getRenderbufferParameter: JSString = "getRenderbufferParameter"
-    @usableFromInline static let getResponseHeader: JSString = "getResponseHeader"
-    @usableFromInline static let getRootNode: JSString = "getRootNode"
-    @usableFromInline static let getSVGDocument: JSString = "getSVGDocument"
-    @usableFromInline static let getSamplerParameter: JSString = "getSamplerParameter"
-    @usableFromInline static let getSettings: JSString = "getSettings"
-    @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 getStartDate: JSString = "getStartDate"
-    @usableFromInline static let getState: JSString = "getState"
-    @usableFromInline static let getSupportedConstraints: JSString = "getSupportedConstraints"
-    @usableFromInline static let getSupportedExtensions: JSString = "getSupportedExtensions"
-    @usableFromInline static let getSyncParameter: JSString = "getSyncParameter"
-    @usableFromInline static let getTexParameter: JSString = "getTexParameter"
-    @usableFromInline static let getTiming: JSString = "getTiming"
-    @usableFromInline static let getTrackById: JSString = "getTrackById"
-    @usableFromInline static let getTracks: JSString = "getTracks"
-    @usableFromInline static let getTransform: JSString = "getTransform"
-    @usableFromInline static let getTransformFeedbackVarying: JSString = "getTransformFeedbackVarying"
-    @usableFromInline static let getUniform: JSString = "getUniform"
-    @usableFromInline static let getUniformBlockIndex: JSString = "getUniformBlockIndex"
-    @usableFromInline static let getUniformIndices: JSString = "getUniformIndices"
-    @usableFromInline static let getUniformLocation: JSString = "getUniformLocation"
-    @usableFromInline static let getUserMedia: JSString = "getUserMedia"
-    @usableFromInline static let getVertexAttrib: JSString = "getVertexAttrib"
-    @usableFromInline static let getVertexAttribOffset: JSString = "getVertexAttribOffset"
-    @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 gpu: JSString = "gpu"
-    @usableFromInline static let group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
     @usableFromInline static let hasDynamicOffset: JSString = "hasDynamicOffset"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 high: JSString = "high"
-    @usableFromInline static let highWaterMark: JSString = "highWaterMark"
-    @usableFromInline static let hint: JSString = "hint"
     @usableFromInline static let hints: JSString = "hints"
-    @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 ideographicBaseline: JSString = "ideographicBaseline"
-    @usableFromInline static let ignoreMethod: JSString = "ignoreMethod"
-    @usableFromInline static let ignoreSearch: JSString = "ignoreSearch"
-    @usableFromInline static let ignoreVary: JSString = "ignoreVary"
-    @usableFromInline static let imag: JSString = "imag"
-    @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 importExternalTexture: JSString = "importExternalTexture"
-    @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 inputBuffer: JSString = "inputBuffer"
-    @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 insertDebugMarker: JSString = "insertDebugMarker"
-    @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 intersectsNode: JSString = "intersectsNode"
-    @usableFromInline static let invalidIteratorState: JSString = "invalidIteratorState"
-    @usableFromInline static let invalidateFramebuffer: JSString = "invalidateFramebuffer"
-    @usableFromInline static let invalidateSubFramebuffer: JSString = "invalidateSubFramebuffer"
-    @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 isBuffer: JSString = "isBuffer"
-    @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 isEnabled: JSString = "isEnabled"
-    @usableFromInline static let isEqualNode: JSString = "isEqualNode"
     @usableFromInline static let isFallbackAdapter: JSString = "isFallbackAdapter"
-    @usableFromInline static let isFramebuffer: JSString = "isFramebuffer"
-    @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 isProgram: JSString = "isProgram"
-    @usableFromInline static let isQuery: JSString = "isQuery"
-    @usableFromInline static let isReloadNavigation: JSString = "isReloadNavigation"
-    @usableFromInline static let isRenderbuffer: JSString = "isRenderbuffer"
-    @usableFromInline static let isSameNode: JSString = "isSameNode"
-    @usableFromInline static let isSampler: JSString = "isSampler"
-    @usableFromInline static let isSecureContext: JSString = "isSecureContext"
-    @usableFromInline static let isShader: JSString = "isShader"
-    @usableFromInline static let isSync: JSString = "isSync"
-    @usableFromInline static let isTexture: JSString = "isTexture"
-    @usableFromInline static let isTransformFeedback: JSString = "isTransformFeedback"
-    @usableFromInline static let isTrusted: JSString = "isTrusted"
-    @usableFromInline static let isTypeSupported: JSString = "isTypeSupported"
-    @usableFromInline static let isVertexArray: JSString = "isVertexArray"
-    @usableFromInline static let isVisible: JSString = "isVisible"
-    @usableFromInline static let item: JSString = "item"
-    @usableFromInline static let items: JSString = "items"
-    @usableFromInline static let iterateNext: JSString = "iterateNext"
-    @usableFromInline static let iterationStart: JSString = "iterationStart"
-    @usableFromInline static let iterations: JSString = "iterations"
-    @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 knee: JSString = "knee"
     @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 latencyHint: JSString = "latencyHint"
-    @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 limits: JSString = "limits"
-    @usableFromInline static let lineCap: JSString = "lineCap"
-    @usableFromInline static let lineDashOffset: JSString = "lineDashOffset"
-    @usableFromInline static let lineJoin: JSString = "lineJoin"
     @usableFromInline static let lineNum: JSString = "lineNum"
     @usableFromInline static let linePos: JSString = "linePos"
-    @usableFromInline static let lineTo: JSString = "lineTo"
-    @usableFromInline static let lineWidth: JSString = "lineWidth"
-    @usableFromInline static let linearRampToValueAtTime: JSString = "linearRampToValueAtTime"
-    @usableFromInline static let lineno: JSString = "lineno"
-    @usableFromInline static let link: JSString = "link"
-    @usableFromInline static let linkColor: JSString = "linkColor"
-    @usableFromInline static let linkProgram: JSString = "linkProgram"
-    @usableFromInline static let links: JSString = "links"
-    @usableFromInline static let list: JSString = "list"
-    @usableFromInline static let listener: JSString = "listener"
-    @usableFromInline static let load: JSString = "load"
     @usableFromInline static let loadOp: JSString = "loadOp"
-    @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 lodMaxClamp: JSString = "lodMaxClamp"
     @usableFromInline static let lodMinClamp: JSString = "lodMinClamp"
-    @usableFromInline static let log: JSString = "log"
-    @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 loopEnd: JSString = "loopEnd"
-    @usableFromInline static let loopStart: JSString = "loopStart"
     @usableFromInline static let lost: JSString = "lost"
-    @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 magFilter: JSString = "magFilter"
     @usableFromInline static let mapAsync: JSString = "mapAsync"
     @usableFromInline static let mappedAtCreation: JSString = "mappedAtCreation"
-    @usableFromInline static let marginHeight: JSString = "marginHeight"
-    @usableFromInline static let marginWidth: JSString = "marginWidth"
     @usableFromInline static let mask: JSString = "mask"
-    @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 maxAnisotropy: JSString = "maxAnisotropy"
     @usableFromInline static let maxBindGroups: JSString = "maxBindGroups"
-    @usableFromInline static let maxChannelCount: JSString = "maxChannelCount"
     @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 maxDecibels: JSString = "maxDecibels"
-    @usableFromInline static let maxDelayTime: JSString = "maxDelayTime"
-    @usableFromInline static let maxDistance: JSString = "maxDistance"
     @usableFromInline static let maxDynamicStorageBuffersPerPipelineLayout: JSString = "maxDynamicStorageBuffersPerPipelineLayout"
     @usableFromInline static let maxDynamicUniformBuffersPerPipelineLayout: JSString = "maxDynamicUniformBuffersPerPipelineLayout"
     @usableFromInline static let maxInterStageShaderComponents: JSString = "maxInterStageShaderComponents"
-    @usableFromInline static let maxLength: JSString = "maxLength"
     @usableFromInline static let maxSampledTexturesPerShaderStage: JSString = "maxSampledTexturesPerShaderStage"
     @usableFromInline static let maxSamplersPerShaderStage: JSString = "maxSamplersPerShaderStage"
     @usableFromInline static let maxStorageBufferBindingSize: JSString = "maxStorageBufferBindingSize"
@@ -5306,3502 +3580,392 @@ public typealias GPUFlagsConstant = UInt32
     @usableFromInline static let maxTextureDimension3D: JSString = "maxTextureDimension3D"
     @usableFromInline static let maxUniformBufferBindingSize: JSString = "maxUniformBufferBindingSize"
     @usableFromInline static let maxUniformBuffersPerShaderStage: JSString = "maxUniformBuffersPerShaderStage"
-    @usableFromInline static let maxValue: JSString = "maxValue"
     @usableFromInline static let maxVertexAttributes: JSString = "maxVertexAttributes"
     @usableFromInline static let maxVertexBufferArrayStride: JSString = "maxVertexBufferArrayStride"
     @usableFromInline static let maxVertexBuffers: JSString = "maxVertexBuffers"
-    @usableFromInline static let measureText: JSString = "measureText"
-    @usableFromInline static let media: JSString = "media"
-    @usableFromInline static let mediaDevices: JSString = "mediaDevices"
-    @usableFromInline static let mediaElement: JSString = "mediaElement"
-    @usableFromInline static let mediaStream: JSString = "mediaStream"
-    @usableFromInline static let mediaStreamTrack: JSString = "mediaStreamTrack"
-    @usableFromInline static let menubar: JSString = "menubar"
     @usableFromInline static let message: JSString = "message"
     @usableFromInline static let messages: JSString = "messages"
-    @usableFromInline static let metaKey: JSString = "metaKey"
-    @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 minBindingSize: JSString = "minBindingSize"
-    @usableFromInline static let minDecibels: JSString = "minDecibels"
     @usableFromInline static let minFilter: JSString = "minFilter"
-    @usableFromInline static let minLength: JSString = "minLength"
     @usableFromInline static let minStorageBufferOffsetAlignment: JSString = "minStorageBufferOffsetAlignment"
     @usableFromInline static let minUniformBufferOffsetAlignment: JSString = "minUniformBufferOffsetAlignment"
-    @usableFromInline static let minValue: JSString = "minValue"
     @usableFromInline static let mipLevel: JSString = "mipLevel"
     @usableFromInline static let mipLevelCount: JSString = "mipLevelCount"
     @usableFromInline static let mipmapFilter: JSString = "mipmapFilter"
-    @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 module: JSString = "module"
-    @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 multisample: JSString = "multisample"
     @usableFromInline static let multisampled: JSString = "multisampled"
-    @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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 numberOfInputs: JSString = "numberOfInputs"
-    @usableFromInline static let numberOfOutputs: JSString = "numberOfOutputs"
-    @usableFromInline static let numberValue: JSString = "numberValue"
-    @usableFromInline static let observe: JSString = "observe"
     @usableFromInline static let occlusionQuerySet: JSString = "occlusionQuerySet"
     @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
     @usableFromInline static let onSubmittedWorkDone: JSString = "onSubmittedWorkDone"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onaudioprocess: JSString = "onaudioprocess"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncomplete: JSString = "oncomplete"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 onfinish: JSString = "onfinish"
-    @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 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 onprocessorerror: JSString = "onprocessorerror"
-    @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 onremove: JSString = "onremove"
-    @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 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 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 onuncapturederror: JSString = "onuncapturederror"
-    @usableFromInline static let onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 operation: JSString = "operation"
-    @usableFromInline static let optimizeForLatency: JSString = "optimizeForLatency"
-    @usableFromInline static let optimum: JSString = "optimum"
-    @usableFromInline static let options: JSString = "options"
-    @usableFromInline static let orientationX: JSString = "orientationX"
-    @usableFromInline static let orientationY: JSString = "orientationY"
-    @usableFromInline static let orientationZ: JSString = "orientationZ"
     @usableFromInline static let origin: JSString = "origin"
-    @usableFromInline static let originAgentCluster: JSString = "originAgentCluster"
-    @usableFromInline static let originTime: JSString = "originTime"
-    @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 outputBuffer: JSString = "outputBuffer"
-    @usableFromInline static let outputChannelCount: JSString = "outputChannelCount"
-    @usableFromInline static let outputLatency: JSString = "outputLatency"
-    @usableFromInline static let overrideMimeType: JSString = "overrideMimeType"
-    @usableFromInline static let oversample: JSString = "oversample"
-    @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 pageX: JSString = "pageX"
-    @usableFromInline static let pageXOffset: JSString = "pageXOffset"
-    @usableFromInline static let pageY: JSString = "pageY"
-    @usableFromInline static let pageYOffset: JSString = "pageYOffset"
-    @usableFromInline static let pan: JSString = "pan"
-    @usableFromInline static let panTiltZoom: JSString = "panTiltZoom"
-    @usableFromInline static let panningModel: JSString = "panningModel"
-    @usableFromInline static let parameterData: JSString = "parameterData"
-    @usableFromInline static let parameters: JSString = "parameters"
-    @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 passOp: JSString = "passOp"
-    @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 pauseTransformFeedback: JSString = "pauseTransformFeedback"
-    @usableFromInline static let paused: JSString = "paused"
-    @usableFromInline static let pdfViewerEnabled: JSString = "pdfViewerEnabled"
-    @usableFromInline static let pending: JSString = "pending"
-    @usableFromInline static let performance: JSString = "performance"
-    @usableFromInline static let performanceTime: JSString = "performanceTime"
-    @usableFromInline static let periodicWave: JSString = "periodicWave"
-    @usableFromInline static let persist: JSString = "persist"
-    @usableFromInline static let persisted: JSString = "persisted"
-    @usableFromInline static let personalbar: JSString = "personalbar"
-    @usableFromInline static let phase: JSString = "phase"
-    @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 pixelStorei: JSString = "pixelStorei"
-    @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 playState: JSString = "playState"
-    @usableFromInline static let playbackRate: JSString = "playbackRate"
-    @usableFromInline static let playbackTime: JSString = "playbackTime"
-    @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 polygonOffset: JSString = "polygonOffset"
     @usableFromInline static let popDebugGroup: JSString = "popDebugGroup"
     @usableFromInline static let popErrorScope: JSString = "popErrorScope"
-    @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 positionX: JSString = "positionX"
-    @usableFromInline static let positionY: JSString = "positionY"
-    @usableFromInline static let positionZ: JSString = "positionZ"
-    @usableFromInline static let postMessage: JSString = "postMessage"
-    @usableFromInline static let poster: JSString = "poster"
     @usableFromInline static let powerPreference: JSString = "powerPreference"
-    @usableFromInline static let preMultiplySelf: JSString = "preMultiplySelf"
-    @usableFromInline static let precision: JSString = "precision"
-    @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 premultipliedAlpha: JSString = "premultipliedAlpha"
-    @usableFromInline static let premultiplyAlpha: JSString = "premultiplyAlpha"
-    @usableFromInline static let prepend: JSString = "prepend"
-    @usableFromInline static let preserveDrawingBuffer: JSString = "preserveDrawingBuffer"
-    @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 primitive: JSString = "primitive"
-    @usableFromInline static let print: JSString = "print"
-    @usableFromInline static let processorOptions: JSString = "processorOptions"
-    @usableFromInline static let product: JSString = "product"
-    @usableFromInline static let productSub: JSString = "productSub"
-    @usableFromInline static let progress: JSString = "progress"
-    @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 pseudoElement: JSString = "pseudoElement"
-    @usableFromInline static let publicId: JSString = "publicId"
-    @usableFromInline static let pull: JSString = "pull"
     @usableFromInline static let pushDebugGroup: JSString = "pushDebugGroup"
     @usableFromInline static let pushErrorScope: JSString = "pushErrorScope"
-    @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 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 queryIndex: JSString = "queryIndex"
-    @usableFromInline static let querySelector: JSString = "querySelector"
-    @usableFromInline static let querySelectorAll: JSString = "querySelectorAll"
     @usableFromInline static let querySet: JSString = "querySet"
     @usableFromInline static let queue: JSString = "queue"
     @usableFromInline static let r: JSString = "r"
-    @usableFromInline static let rangeMax: JSString = "rangeMax"
-    @usableFromInline static let rangeMin: JSString = "rangeMin"
-    @usableFromInline static let rangeOverflow: JSString = "rangeOverflow"
-    @usableFromInline static let rangeUnderflow: JSString = "rangeUnderflow"
-    @usableFromInline static let ratio: JSString = "ratio"
-    @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 readBuffer: JSString = "readBuffer"
-    @usableFromInline static let readOnly: JSString = "readOnly"
-    @usableFromInline static let readPixels: JSString = "readPixels"
-    @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 real: JSString = "real"
     @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 reduction: JSString = "reduction"
-    @usableFromInline static let refDistance: JSString = "refDistance"
-    @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 release: JSString = "release"
-    @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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
-    @usableFromInline static let renderbufferStorage: JSString = "renderbufferStorage"
-    @usableFromInline static let renderbufferStorageMultisample: JSString = "renderbufferStorageMultisample"
-    @usableFromInline static let renderedBuffer: JSString = "renderedBuffer"
-    @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 requestAdapter: JSString = "requestAdapter"
-    @usableFromInline static let requestData: JSString = "requestData"
     @usableFromInline static let requestDevice: JSString = "requestDevice"
-    @usableFromInline static let requestSubmit: JSString = "requestSubmit"
-    @usableFromInline static let required: JSString = "required"
     @usableFromInline static let requiredFeatures: JSString = "requiredFeatures"
     @usableFromInline static let requiredLimits: JSString = "requiredLimits"
-    @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 resolveQuerySet: JSString = "resolveQuerySet"
     @usableFromInline static let resolveTarget: JSString = "resolveTarget"
     @usableFromInline static let resource: JSString = "resource"
-    @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 resumeTransformFeedback: JSString = "resumeTransformFeedback"
-    @usableFromInline static let returnValue: JSString = "returnValue"
-    @usableFromInline static let rev: JSString = "rev"
-    @usableFromInline static let reverse: JSString = "reverse"
-    @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 rolloffFactor: JSString = "rolloffFactor"
-    @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 roundRect: JSString = "roundRect"
-    @usableFromInline static let rowIndex: JSString = "rowIndex"
-    @usableFromInline static let rowSpan: JSString = "rowSpan"
-    @usableFromInline static let rows: JSString = "rows"
     @usableFromInline static let rowsPerImage: JSString = "rowsPerImage"
-    @usableFromInline static let rules: JSString = "rules"
     @usableFromInline static let sampleCount: JSString = "sampleCount"
-    @usableFromInline static let sampleCoverage: JSString = "sampleCoverage"
-    @usableFromInline static let sampleRate: JSString = "sampleRate"
-    @usableFromInline static let sampleSize: JSString = "sampleSize"
     @usableFromInline static let sampleType: JSString = "sampleType"
     @usableFromInline static let sampler: JSString = "sampler"
-    @usableFromInline static let samplerParameterf: JSString = "samplerParameterf"
-    @usableFromInline static let samplerParameteri: JSString = "samplerParameteri"
-    @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 scissor: JSString = "scissor"
-    @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 searchParams: JSString = "searchParams"
-    @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 setBindGroup: JSString = "setBindGroup"
     @usableFromInline static let setBlendConstant: JSString = "setBlendConstant"
-    @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 setIndexBuffer: JSString = "setIndexBuffer"
-    @usableFromInline static let setInterval: JSString = "setInterval"
-    @usableFromInline static let setKeyframes: JSString = "setKeyframes"
-    @usableFromInline static let setLineDash: JSString = "setLineDash"
-    @usableFromInline static let setMatrixValue: JSString = "setMatrixValue"
-    @usableFromInline static let setNamedItem: JSString = "setNamedItem"
-    @usableFromInline static let setNamedItemNS: JSString = "setNamedItemNS"
-    @usableFromInline static let setOrientation: JSString = "setOrientation"
-    @usableFromInline static let setParameter: JSString = "setParameter"
-    @usableFromInline static let setPeriodicWave: JSString = "setPeriodicWave"
     @usableFromInline static let setPipeline: JSString = "setPipeline"
-    @usableFromInline static let setPosition: JSString = "setPosition"
-    @usableFromInline static let setRangeText: JSString = "setRangeText"
-    @usableFromInline static let setRequestHeader: JSString = "setRequestHeader"
     @usableFromInline static let setScissorRect: JSString = "setScissorRect"
-    @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 setStencilReference: JSString = "setStencilReference"
-    @usableFromInline static let setTargetAtTime: JSString = "setTargetAtTime"
-    @usableFromInline static let setTimeout: JSString = "setTimeout"
-    @usableFromInline static let setTransform: JSString = "setTransform"
-    @usableFromInline static let setValidity: JSString = "setValidity"
-    @usableFromInline static let setValueAtTime: JSString = "setValueAtTime"
-    @usableFromInline static let setValueCurveAtTime: JSString = "setValueCurveAtTime"
     @usableFromInline static let setVertexBuffer: JSString = "setVertexBuffer"
     @usableFromInline static let setViewport: JSString = "setViewport"
     @usableFromInline static let shaderLocation: JSString = "shaderLocation"
-    @usableFromInline static let shaderSource: JSString = "shaderSource"
-    @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 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 smoothingTimeConstant: JSString = "smoothingTimeConstant"
-    @usableFromInline static let snapshotItem: JSString = "snapshotItem"
-    @usableFromInline static let snapshotLength: JSString = "snapshotLength"
-    @usableFromInline static let sort: JSString = "sort"
     @usableFromInline static let source: JSString = "source"
     @usableFromInline static let sourceMap: JSString = "sourceMap"
-    @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 srcFactor: JSString = "srcFactor"
-    @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 startRendering: JSString = "startRendering"
-    @usableFromInline static let startTime: JSString = "startTime"
-    @usableFromInline static let state: JSString = "state"
-    @usableFromInline static let status: JSString = "status"
-    @usableFromInline static let statusMessage: JSString = "statusMessage"
-    @usableFromInline static let statusText: JSString = "statusText"
-    @usableFromInline static let statusbar: JSString = "statusbar"
-    @usableFromInline static let stencil: JSString = "stencil"
     @usableFromInline static let stencilBack: JSString = "stencilBack"
     @usableFromInline static let stencilClearValue: JSString = "stencilClearValue"
     @usableFromInline static let stencilFront: JSString = "stencilFront"
-    @usableFromInline static let stencilFunc: JSString = "stencilFunc"
-    @usableFromInline static let stencilFuncSeparate: JSString = "stencilFuncSeparate"
     @usableFromInline static let stencilLoadOp: JSString = "stencilLoadOp"
-    @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 stencilReadMask: JSString = "stencilReadMask"
     @usableFromInline static let stencilReadOnly: JSString = "stencilReadOnly"
     @usableFromInline static let stencilStoreOp: JSString = "stencilStoreOp"
     @usableFromInline static let stencilWriteMask: JSString = "stencilWriteMask"
-    @usableFromInline static let step: JSString = "step"
-    @usableFromInline static let stepDown: JSString = "stepDown"
-    @usableFromInline static let stepMismatch: JSString = "stepMismatch"
     @usableFromInline static let stepMode: JSString = "stepMode"
-    @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 storageTexture: JSString = "storageTexture"
     @usableFromInline static let storeOp: JSString = "storeOp"
-    @usableFromInline static let stream: JSString = "stream"
-    @usableFromInline static let stride: JSString = "stride"
-    @usableFromInline static let stringValue: JSString = "stringValue"
     @usableFromInline static let stripIndexFormat: JSString = "stripIndexFormat"
-    @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 supports: JSString = "supports"
-    @usableFromInline static let surroundContents: JSString = "surroundContents"
-    @usableFromInline static let suspend: JSString = "suspend"
-    @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 table: JSString = "table"
-    @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 targets: JSString = "targets"
-    @usableFromInline static let tee: JSString = "tee"
-    @usableFromInline static let temporalLayerId: JSString = "temporalLayerId"
-    @usableFromInline static let terminate: JSString = "terminate"
-    @usableFromInline static let texImage2D: JSString = "texImage2D"
-    @usableFromInline static let texImage3D: JSString = "texImage3D"
-    @usableFromInline static let texParameterf: JSString = "texParameterf"
-    @usableFromInline static let texParameteri: JSString = "texParameteri"
-    @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 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 texture: JSString = "texture"
-    @usableFromInline static let threshold: JSString = "threshold"
-    @usableFromInline static let throwIfAborted: JSString = "throwIfAborted"
-    @usableFromInline static let time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @usableFromInline static let timeOrigin: JSString = "timeOrigin"
-    @usableFromInline static let timeStamp: JSString = "timeStamp"
-    @usableFromInline static let timecode: JSString = "timecode"
-    @usableFromInline static let timeline: JSString = "timeline"
-    @usableFromInline static let timeout: JSString = "timeout"
-    @usableFromInline static let timestamp: JSString = "timestamp"
     @usableFromInline static let timestampWrites: JSString = "timestampWrites"
-    @usableFromInline static let title: JSString = "title"
-    @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 tooLong: JSString = "tooLong"
-    @usableFromInline static let tooShort: JSString = "tooShort"
-    @usableFromInline static let toolbar: JSString = "toolbar"
-    @usableFromInline static let top: JSString = "top"
     @usableFromInline static let topology: JSString = "topology"
-    @usableFromInline static let total: JSString = "total"
-    @usableFromInline static let trace: JSString = "trace"
-    @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 transformFeedbackVaryings: JSString = "transformFeedbackVaryings"
-    @usableFromInline static let transformPoint: JSString = "transformPoint"
-    @usableFromInline static let transformToDocument: JSString = "transformToDocument"
-    @usableFromInline static let transformToFragment: JSString = "transformToFragment"
-    @usableFromInline static let translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 unclippedDepth: JSString = "unclippedDepth"
     @usableFromInline static let unconfigure: JSString = "unconfigure"
-    @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 uniform1ui: JSString = "uniform1ui"
-    @usableFromInline static let uniform1uiv: JSString = "uniform1uiv"
-    @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 uniform2ui: JSString = "uniform2ui"
-    @usableFromInline static let uniform2uiv: JSString = "uniform2uiv"
-    @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 uniform3ui: JSString = "uniform3ui"
-    @usableFromInline static let uniform3uiv: JSString = "uniform3uiv"
-    @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 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 unmap: JSString = "unmap"
-    @usableFromInline static let unregister: JSString = "unregister"
-    @usableFromInline static let unregisterProtocolHandler: JSString = "unregisterProtocolHandler"
-    @usableFromInline static let upX: JSString = "upX"
-    @usableFromInline static let upY: JSString = "upY"
-    @usableFromInline static let upZ: JSString = "upZ"
-    @usableFromInline static let update: JSString = "update"
-    @usableFromInline static let updatePlaybackRate: JSString = "updatePlaybackRate"
-    @usableFromInline static let updateTiming: JSString = "updateTiming"
-    @usableFromInline static let updateViaCache: JSString = "updateViaCache"
-    @usableFromInline static let upgrade: JSString = "upgrade"
-    @usableFromInline static let upload: JSString = "upload"
-    @usableFromInline static let url: JSString = "url"
     @usableFromInline static let usage: JSString = "usage"
-    @usableFromInline static let useMap: JSString = "useMap"
-    @usableFromInline static let useProgram: JSString = "useProgram"
-    @usableFromInline static let userAgent: JSString = "userAgent"
-    @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 validateProgram: JSString = "validateProgram"
-    @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 vertex: JSString = "vertex"
-    @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 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 vertexAttribPointer: JSString = "vertexAttribPointer"
-    @usableFromInline static let video: JSString = "video"
-    @usableFromInline static let videoBitsPerSecond: JSString = "videoBitsPerSecond"
-    @usableFromInline static let videoHeight: JSString = "videoHeight"
-    @usableFromInline static let videoTracks: JSString = "videoTracks"
-    @usableFromInline static let videoWidth: JSString = "videoWidth"
     @usableFromInline static let view: JSString = "view"
     @usableFromInline static let viewDimension: JSString = "viewDimension"
     @usableFromInline static let viewFormats: JSString = "viewFormats"
-    @usableFromInline static let viewport: JSString = "viewport"
     @usableFromInline static let visibility: JSString = "visibility"
-    @usableFromInline static let visibilityState: JSString = "visibilityState"
-    @usableFromInline static let visible: JSString = "visible"
-    @usableFromInline static let visibleRect: JSString = "visibleRect"
-    @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 waitSync: JSString = "waitSync"
-    @usableFromInline static let waiting: JSString = "waiting"
-    @usableFromInline static let warn: JSString = "warn"
-    @usableFromInline static let wasClean: JSString = "wasClean"
-    @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 writeBuffer: JSString = "writeBuffer"
     @usableFromInline static let writeMask: JSString = "writeMask"
     @usableFromInline static let writeTexture: JSString = "writeTexture"
     @usableFromInline static let writeTimestamp: JSString = "writeTimestamp"
-    @usableFromInline static let writeln: JSString = "writeln"
     @usableFromInline static let x: JSString = "x"
     @usableFromInline static let y: JSString = "y"
     @usableFromInline static let z: JSString = "z"
 }
 
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
+public protocol Any_GPUBindingResource: ConvertibleToJSValue {}
+extension GPUBufferBinding: Any_GPUBindingResource {}
+extension GPUExternalTexture: Any_GPUBindingResource {}
+extension GPUSampler: Any_GPUBindingResource {}
+extension GPUTextureView: Any_GPUBindingResource {}
+
+public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource {
+    case gpuBufferBinding(GPUBufferBinding)
+    case gpuExternalTexture(GPUExternalTexture)
+    case gpuSampler(GPUSampler)
+    case gpuTextureView(GPUTextureView)
+
+    public var gpuBufferBinding: GPUBufferBinding? {
+        switch self {
+        case let .gpuBufferBinding(gpuBufferBinding): return gpuBufferBinding
+        default: return nil
+        }
+    }
 
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
+    public var gpuExternalTexture: GPUExternalTexture? {
+        switch self {
+        case let .gpuExternalTexture(gpuExternalTexture): return gpuExternalTexture
+        default: return nil
+        }
+    }
 
-    public var arrayBuffer: ArrayBuffer? {
+    public var gpuSampler: GPUSampler? {
         switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
+        case let .gpuSampler(gpuSampler): return gpuSampler
         default: return nil
         }
     }
 
-    public var string: String? {
+    public var gpuTextureView: GPUTextureView? {
         switch self {
-        case let .string(string): return string
+        case let .gpuTextureView(gpuTextureView): return gpuTextureView
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let arrayBuffer: ArrayBuffer = value.fromJSValue() {
-            return .arrayBuffer(arrayBuffer)
+        if let gpuBufferBinding: GPUBufferBinding = value.fromJSValue() {
+            return .gpuBufferBinding(gpuBufferBinding)
+        }
+        if let gpuExternalTexture: GPUExternalTexture = value.fromJSValue() {
+            return .gpuExternalTexture(gpuExternalTexture)
         }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
+        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 .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .string(string):
-            return string.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_AudioContextLatencyCategory_or_Double: ConvertibleToJSValue {}
-extension AudioContextLatencyCategory: Any_AudioContextLatencyCategory_or_Double {}
-extension Double: Any_AudioContextLatencyCategory_or_Double {}
+public protocol Any_GPUColor: ConvertibleToJSValue {}
+extension GPUColorDict: Any_GPUColor {}
+extension Array: Any_GPUColor where Element == Double {}
 
-public enum AudioContextLatencyCategory_or_Double: JSValueCompatible, Any_AudioContextLatencyCategory_or_Double {
-    case audioContextLatencyCategory(AudioContextLatencyCategory)
-    case double(Double)
+public enum GPUColor: JSValueCompatible, Any_GPUColor {
+    case gpuColorDict(GPUColorDict)
+    case seq_of_Double([Double])
 
-    public var audioContextLatencyCategory: AudioContextLatencyCategory? {
+    public var gpuColorDict: GPUColorDict? {
         switch self {
-        case let .audioContextLatencyCategory(audioContextLatencyCategory): return audioContextLatencyCategory
+        case let .gpuColorDict(gpuColorDict): return gpuColorDict
         default: return nil
         }
     }
 
-    public var double: Double? {
+    public var seq_of_Double: [Double]? {
         switch self {
-        case let .double(double): return double
+        case let .seq_of_Double(seq_of_Double): return seq_of_Double
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let audioContextLatencyCategory: AudioContextLatencyCategory = value.fromJSValue() {
-            return .audioContextLatencyCategory(audioContextLatencyCategory)
+        if let gpuColorDict: GPUColorDict = value.fromJSValue() {
+            return .gpuColorDict(gpuColorDict)
         }
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
+        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 .audioContextLatencyCategory(audioContextLatencyCategory):
-            return audioContextLatencyCategory.jsValue
-        case let .double(double):
-            return double.jsValue
+        case let .gpuColorDict(gpuColorDict):
+            return gpuColorDict.jsValue
+        case let .seq_of_Double(seq_of_Double):
+            return seq_of_Double.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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
+public protocol Any_GPUError: ConvertibleToJSValue {}
+extension GPUOutOfMemoryError: Any_GPUError {}
+extension GPUValidationError: Any_GPUError {}
 
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        default: return nil
-        }
-    }
+public enum GPUError: JSValueCompatible, Any_GPUError {
+    case gpuOutOfMemoryError(GPUOutOfMemoryError)
+    case gpuValidationError(GPUValidationError)
 
-    public var textTrack: TextTrack? {
+    public var gpuOutOfMemoryError: GPUOutOfMemoryError? {
         switch self {
-        case let .textTrack(textTrack): return textTrack
+        case let .gpuOutOfMemoryError(gpuOutOfMemoryError): return gpuOutOfMemoryError
         default: return nil
         }
     }
 
-    public var videoTrack: VideoTrack? {
+    public var gpuValidationError: GPUValidationError? {
         switch self {
-        case let .videoTrack(videoTrack): return videoTrack
+        case let .gpuValidationError(gpuValidationError): return gpuValidationError
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let audioTrack: AudioTrack = value.fromJSValue() {
-            return .audioTrack(audioTrack)
+        if let gpuOutOfMemoryError: GPUOutOfMemoryError = value.fromJSValue() {
+            return .gpuOutOfMemoryError(gpuOutOfMemoryError)
         }
-        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
-        }
-    }
-}
-
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
-
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case string(String)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
-        switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-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 {}
-
-public enum CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto: JSValueCompatible, Any_CompositeOperationOrAuto_or_seq_of_CompositeOperationOrAuto {
-    case compositeOperationOrAuto(CompositeOperationOrAuto)
-    case seq_of_CompositeOperationOrAuto([CompositeOperationOrAuto])
-
-    public var compositeOperationOrAuto: CompositeOperationOrAuto? {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto): return compositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public var seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto]? {
-        switch self {
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto): return seq_of_CompositeOperationOrAuto
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let compositeOperationOrAuto: CompositeOperationOrAuto = value.fromJSValue() {
-            return .compositeOperationOrAuto(compositeOperationOrAuto)
-        }
-        if let seq_of_CompositeOperationOrAuto: [CompositeOperationOrAuto] = value.fromJSValue() {
-            return .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .compositeOperationOrAuto(compositeOperationOrAuto):
-            return compositeOperationOrAuto.jsValue
-        case let .seq_of_CompositeOperationOrAuto(seq_of_CompositeOperationOrAuto):
-            return seq_of_CompositeOperationOrAuto.jsValue
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .document(document):
-            return document.jsValue
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit):
-            return xmlHttpRequestBodyInit.jsValue
-        }
-    }
-}
-
-public protocol Any_Double_or_KeyframeAnimationOptions: ConvertibleToJSValue {}
-extension Double: Any_Double_or_KeyframeAnimationOptions {}
-extension KeyframeAnimationOptions: Any_Double_or_KeyframeAnimationOptions {}
-
-public enum Double_or_KeyframeAnimationOptions: JSValueCompatible, Any_Double_or_KeyframeAnimationOptions {
-    case double(Double)
-    case keyframeAnimationOptions(KeyframeAnimationOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeAnimationOptions: KeyframeAnimationOptions? {
-        switch self {
-        case let .keyframeAnimationOptions(keyframeAnimationOptions): return keyframeAnimationOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeAnimationOptions: KeyframeAnimationOptions = value.fromJSValue() {
-            return .keyframeAnimationOptions(keyframeAnimationOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_KeyframeEffectOptions: JSValueCompatible, Any_Double_or_KeyframeEffectOptions {
-    case double(Double)
-    case keyframeEffectOptions(KeyframeEffectOptions)
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public var keyframeEffectOptions: KeyframeEffectOptions? {
-        switch self {
-        case let .keyframeEffectOptions(keyframeEffectOptions): return keyframeEffectOptions
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let double: Double = value.fromJSValue() {
-            return .double(double)
-        }
-        if let keyframeEffectOptions: KeyframeEffectOptions = value.fromJSValue() {
-            return .keyframeEffectOptions(keyframeEffectOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Double_or_String: JSValueCompatible, Any_Double_or_String {
-    case double(Double)
-    case string(String)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .double(double):
-            return double.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_ElementCreationOptions_or_String: ConvertibleToJSValue {}
-extension ElementCreationOptions: Any_ElementCreationOptions_or_String {}
-extension String: Any_ElementCreationOptions_or_String {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Float32List: ConvertibleToJSValue {}
-extension Float32Array: Any_Float32List {}
-extension Array: Any_Float32List where Element == GLfloat {}
-
-public enum Float32List: JSValueCompatible, Any_Float32List {
-    case float32Array(Float32Array)
-    case seq_of_GLfloat([GLfloat])
-
-    public var float32Array: Float32Array? {
-        switch self {
-        case let .float32Array(float32Array): return float32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLfloat: [GLfloat]? {
-        switch self {
-        case let .seq_of_GLfloat(seq_of_GLfloat): return seq_of_GLfloat
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .file(file):
-            return file.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_GPUBindingResource: ConvertibleToJSValue {}
-extension GPUBufferBinding: Any_GPUBindingResource {}
-extension GPUExternalTexture: Any_GPUBindingResource {}
-extension GPUSampler: Any_GPUBindingResource {}
-extension GPUTextureView: Any_GPUBindingResource {}
-
-public enum GPUBindingResource: JSValueCompatible, Any_GPUBindingResource {
-    case gpuBufferBinding(GPUBufferBinding)
-    case gpuExternalTexture(GPUExternalTexture)
-    case gpuSampler(GPUSampler)
-    case gpuTextureView(GPUTextureView)
-
-    public var gpuBufferBinding: GPUBufferBinding? {
-        switch self {
-        case let .gpuBufferBinding(gpuBufferBinding): return gpuBufferBinding
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_GPUColor: ConvertibleToJSValue {}
-extension GPUColorDict: Any_GPUColor {}
-extension Array: Any_GPUColor where Element == Double {}
-
-public enum GPUColor: JSValueCompatible, Any_GPUColor {
-    case gpuColorDict(GPUColorDict)
-    case seq_of_Double([Double])
-
-    public var gpuColorDict: GPUColorDict? {
-        switch self {
-        case let .gpuColorDict(gpuColorDict): return gpuColorDict
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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_GPUError: ConvertibleToJSValue {}
-extension GPUOutOfMemoryError: Any_GPUError {}
-extension GPUValidationError: Any_GPUError {}
-
-public enum GPUError: JSValueCompatible, Any_GPUError {
-    case gpuOutOfMemoryError(GPUOutOfMemoryError)
-    case gpuValidationError(GPUValidationError)
-
-    public var gpuOutOfMemoryError: GPUOutOfMemoryError? {
-        switch self {
-        case let .gpuOutOfMemoryError(gpuOutOfMemoryError): return gpuOutOfMemoryError
-        default: return nil
-        }
-    }
-
-    public var gpuValidationError: GPUValidationError? {
-        switch self {
-        case let .gpuValidationError(gpuValidationError): return gpuValidationError
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let gpuOutOfMemoryError: GPUOutOfMemoryError = value.fromJSValue() {
-            return .gpuOutOfMemoryError(gpuOutOfMemoryError)
-        }
-        if let gpuValidationError: GPUValidationError = value.fromJSValue() {
-            return .gpuValidationError(gpuValidationError)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .gpuOutOfMemoryError(gpuOutOfMemoryError):
-            return gpuOutOfMemoryError.jsValue
-        case let .gpuValidationError(gpuValidationError):
-            return gpuValidationError.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])
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_GPUOrigin2D: ConvertibleToJSValue {}
-extension GPUOrigin2DDict: Any_GPUOrigin2D {}
-extension Array: Any_GPUOrigin2D where Element == GPUIntegerCoordinate {}
-
-public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D {
-    case gpuOrigin2DDict(GPUOrigin2DDict)
-    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
-
-    public var gpuOrigin2DDict: GPUOrigin2DDict? {
-        switch self {
-        case let .gpuOrigin2DDict(gpuOrigin2DDict): return gpuOrigin2DDict
-        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 gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() {
-            return .gpuOrigin2DDict(gpuOrigin2DDict)
-        }
-        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 .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 {}
-
-public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D {
-    case gpuOrigin3DDict(GPUOrigin3DDict)
-    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
-
-    public var gpuOrigin3DDict: GPUOrigin3DDict? {
-        switch self {
-        case let .gpuOrigin3DDict(gpuOrigin3DDict): return gpuOrigin3DDict
-        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 gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() {
-            return .gpuOrigin3DDict(gpuOrigin3DDict)
-        }
-        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 .gpuOrigin3DDict(gpuOrigin3DDict):
-            return gpuOrigin3DDict.jsValue
-        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
-            return seq_of_GPUIntegerCoordinate.jsValue
-        }
-    }
-}
-
-public protocol Any_GeometryNode: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_GeometryNode {}
-extension Document: Any_GeometryNode {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-extension ImageBitmap: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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 static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        if let imageBitmap: ImageBitmap = value.fromJSValue() {
-            return .imageBitmap(imageBitmap)
-        }
-        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 .imageBitmap(imageBitmap):
-            return imageBitmap.jsValue
-        case let .offscreenCanvas(offscreenCanvas):
-            return offscreenCanvas.jsValue
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_Int32List: ConvertibleToJSValue {}
-extension Int32Array: Any_Int32List {}
-extension Array: Any_Int32List where Element == GLint {}
-
-public enum Int32List: JSValueCompatible, Any_Int32List {
-    case int32Array(Int32Array)
-    case seq_of_GLint([GLint])
-
-    public var int32Array: Int32Array? {
-        switch self {
-        case let .int32Array(int32Array): return int32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLint: [GLint]? {
-        switch self {
-        case let .seq_of_GLint(seq_of_GLint): return seq_of_GLint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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 gpuValidationError: GPUValidationError = value.fromJSValue() {
+            return .gpuValidationError(gpuValidationError)
         }
         return nil
     }
 
     public var jsValue: JSValue {
         switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.jsValue
+        case let .gpuOutOfMemoryError(gpuOutOfMemoryError):
+            return gpuOutOfMemoryError.jsValue
+        case let .gpuValidationError(gpuValidationError):
+            return gpuValidationError.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
+public protocol Any_GPUExtent3D: ConvertibleToJSValue {}
+extension GPUExtent3DDict: Any_GPUExtent3D {}
+extension Array: Any_GPUExtent3D where Element == GPUIntegerCoordinate {}
 
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
+public enum GPUExtent3D: JSValueCompatible, Any_GPUExtent3D {
+    case gpuExtent3DDict(GPUExtent3DDict)
+    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
 
-    public var record_String_to_String: [String: String]? {
+    public var gpuExtent3DDict: GPUExtent3DDict? {
         switch self {
-        case let .record_String_to_String(record_String_to_String): return record_String_to_String
+        case let .gpuExtent3DDict(gpuExtent3DDict): return gpuExtent3DDict
         default: return nil
         }
     }
 
-    public var seq_of_seq_of_String: [[String]]? {
+    public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? {
         switch self {
-        case let .seq_of_seq_of_String(seq_of_seq_of_String): return seq_of_seq_of_String
+        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 string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
+        if let gpuExtent3DDict: GPUExtent3DDict = value.fromJSValue() {
+            return .gpuExtent3DDict(gpuExtent3DDict)
         }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
+        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 .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
+        case let .gpuExtent3DDict(gpuExtent3DDict):
+            return gpuExtent3DDict.jsValue
+        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
+            return seq_of_GPUIntegerCoordinate.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 {}
+public protocol Any_GPUOrigin2D: ConvertibleToJSValue {}
+extension GPUOrigin2DDict: Any_GPUOrigin2D {}
+extension Array: Any_GPUOrigin2D where Element == GPUIntegerCoordinate {}
 
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
+public enum GPUOrigin2D: JSValueCompatible, Any_GPUOrigin2D {
+    case gpuOrigin2DDict(GPUOrigin2DDict)
+    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
 
-    public var string: String? {
+    public var gpuOrigin2DDict: GPUOrigin2DDict? {
         switch self {
-        case let .string(string): return string
+        case let .gpuOrigin2DDict(gpuOrigin2DDict): return gpuOrigin2DDict
         default: return nil
         }
     }
 
-    public var seq_of_Double: [Double]? {
+    public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? {
         switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
+        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 string: String = value.fromJSValue() {
-            return .string(string)
+        if let gpuOrigin2DDict: GPUOrigin2DDict = value.fromJSValue() {
+            return .gpuOrigin2DDict(gpuOrigin2DDict)
         }
-        if let seq_of_Double: [Double] = value.fromJSValue() {
-            return .seq_of_Double(seq_of_Double)
+        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 .string(string):
-            return string.jsValue
-        case let .seq_of_Double(seq_of_Double):
-            return seq_of_Double.jsValue
+        case let .gpuOrigin2DDict(gpuOrigin2DDict):
+            return gpuOrigin2DDict.jsValue
+        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
+            return seq_of_GPUIntegerCoordinate.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 protocol Any_GPUOrigin3D: ConvertibleToJSValue {}
+extension GPUOrigin3DDict: Any_GPUOrigin3D {}
+extension Array: Any_GPUOrigin3D where Element == GPUIntegerCoordinate {}
 
-public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_String {
-    case string(String)
-    case seq_of_String([String])
+public enum GPUOrigin3D: JSValueCompatible, Any_GPUOrigin3D {
+    case gpuOrigin3DDict(GPUOrigin3DDict)
+    case seq_of_GPUIntegerCoordinate([GPUIntegerCoordinate])
 
-    public var string: String? {
+    public var gpuOrigin3DDict: GPUOrigin3DDict? {
         switch self {
-        case let .string(string): return string
+        case let .gpuOrigin3DDict(gpuOrigin3DDict): return gpuOrigin3DDict
         default: return nil
         }
     }
 
-    public var seq_of_String: [String]? {
+    public var seq_of_GPUIntegerCoordinate: [GPUIntegerCoordinate]? {
         switch self {
-        case let .seq_of_String(seq_of_String): return seq_of_String
+        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 string: String = value.fromJSValue() {
-            return .string(string)
+        if let gpuOrigin3DDict: GPUOrigin3DDict = value.fromJSValue() {
+            return .gpuOrigin3DDict(gpuOrigin3DDict)
         }
-        if let seq_of_String: [String] = value.fromJSValue() {
-            return .seq_of_String(seq_of_String)
+        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 .string(string):
-            return string.jsValue
-        case let .seq_of_String(seq_of_String):
-            return seq_of_String.jsValue
+        case let .gpuOrigin3DDict(gpuOrigin3DDict):
+            return gpuOrigin3DDict.jsValue
+        case let .seq_of_GPUIntegerCoordinate(seq_of_GPUIntegerCoordinate):
+            return seq_of_GPUIntegerCoordinate.jsValue
         }
     }
 }
 
-public protocol Any_TexImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_TexImageSource {}
-extension HTMLImageElement: Any_TexImageSource {}
-extension HTMLVideoElement: Any_TexImageSource {}
-extension ImageBitmap: Any_TexImageSource {}
-extension ImageData: Any_TexImageSource {}
-extension OffscreenCanvas: Any_TexImageSource {}
-extension VideoFrame: Any_TexImageSource {}
+public protocol Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
+extension ImageBitmap: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {}
 
-public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
+public enum HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_ImageBitmap_or_OffscreenCanvas {
     case htmlCanvasElement(HTMLCanvasElement)
-    case htmlImageElement(HTMLImageElement)
-    case htmlVideoElement(HTMLVideoElement)
     case imageBitmap(ImageBitmap)
-    case imageData(ImageData)
     case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
 
     public var htmlCanvasElement: HTMLCanvasElement? {
         switch self {
@@ -8810,20 +3974,6 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
         }
     }
 
-    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
@@ -8831,13 +3981,6 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
         }
     }
 
-    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
@@ -8845,35 +3988,16 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
         }
     }
 
-    public var videoFrame: VideoFrame? {
-        switch self {
-        case let .videoFrame(videoFrame): return videoFrame
-        default: return nil
-        }
-    }
-
     public static func construct(from value: JSValue) -> Self? {
         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)
-        }
         return nil
     }
 
@@ -8881,228 +4005,52 @@ public enum TexImageSource: JSValueCompatible, Any_TexImageSource {
         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
-        }
-    }
-}
-
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_Uint32List: ConvertibleToJSValue {}
-extension Uint32Array: Any_Uint32List {}
-extension Array: Any_Uint32List where Element == GLuint {}
-
-public enum Uint32List: JSValueCompatible, Any_Uint32List {
-    case uint32Array(Uint32Array)
-    case seq_of_GLuint([GLuint])
-
-    public var uint32Array: Uint32Array? {
-        switch self {
-        case let .uint32Array(uint32Array): return uint32Array
-        default: return nil
-        }
-    }
-
-    public var seq_of_GLuint: [GLuint]? {
-        switch self {
-        case let .seq_of_GLuint(seq_of_GLuint): return seq_of_GLuint
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
         }
     }
 }
 
-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 protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
+extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
+extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
 
-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?])
+public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
+    case htmlCanvasElement(HTMLCanvasElement)
+    case offscreenCanvas(OffscreenCanvas)
 
-    public var nullable_Double: Double?? {
+    public var htmlCanvasElement: HTMLCanvasElement? {
         switch self {
-        case let .nullable_Double(nullable_Double): return nullable_Double
+        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
         default: return nil
         }
     }
 
-    public var seq_of_nullable_Double: [Double?]? {
+    public var offscreenCanvas: OffscreenCanvas? {
         switch self {
-        case let .seq_of_nullable_Double(seq_of_nullable_Double): return seq_of_nullable_Double
+        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
         default: return nil
         }
     }
 
     public static func construct(from value: JSValue) -> Self? {
-        if let nullable_Double: Double? = value.fromJSValue() {
-            return .nullable_Double(nullable_Double)
+        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
+            return .htmlCanvasElement(htmlCanvasElement)
         }
-        if let seq_of_nullable_Double: [Double?] = value.fromJSValue() {
-            return .seq_of_nullable_Double(seq_of_nullable_Double)
+        if let offscreenCanvas: OffscreenCanvas = value.fromJSValue() {
+            return .offscreenCanvas(offscreenCanvas)
         }
         return nil
     }
 
     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 .htmlCanvasElement(htmlCanvasElement):
+            return htmlCanvasElement.jsValue
+        case let .offscreenCanvas(offscreenCanvas):
+            return offscreenCanvas.jsValue
         }
     }
 }
diff --git a/Sources/WebIDLToSwift/Context.swift b/Sources/WebIDLToSwift/Context.swift
deleted file mode 100644
index ac693d0c..00000000
--- a/Sources/WebIDLToSwift/Context.swift
+++ /dev/null
@@ -1,96 +0,0 @@
-import WebIDL
-
-@dynamicMemberLookup
-enum Context {
-    private(set) static var current = State()
-
-    static var closurePatterns: Set<ClosurePattern> = []
-    private(set) static var strings: Set<String> = ["toString"]
-    static var unions: Set<UnionType> = []
-
-    static func source(for name: String) -> SwiftSource {
-        assert(!name.isEmpty)
-        if name == "self" {
-            return "Strings._self"
-        }
-        strings.insert(name)
-        return "Strings.\(name)"
-    }
-
-    private static var stack: [State] = []
-    static func withState<T>(_ new: State, body: () throws -> T) rethrows -> T {
-        stack.append(current)
-        current = new
-        defer { current = stack.removeLast() }
-        return try body()
-    }
-
-    static subscript<T>(dynamicMember member: KeyPath<State, T?>) -> T {
-        current[keyPath: member]!
-    }
-
-    static subscript<T>(dynamicMember member: KeyPath<State, T>) -> T {
-        current[keyPath: member]
-    }
-
-    struct State {
-        private(set) var `static` = false
-        private(set) var inClass = false
-        private(set) var constructor: SwiftSource?
-        private(set) var this: SwiftSource!
-        private(set) var className: SwiftSource!
-        private(set) var interfaces: [String: MergedInterface]!
-        private(set) var ignored: [String: Set<String>]!
-        private(set) var types: [String: IDLTypealias]!
-        private(set) var override = false
-        private(set) var inProtocol = false
-
-        static func `static`(this: SwiftSource, inClass: Bool = Context.inClass, className: SwiftSource) -> Self {
-            var newState = Context.current
-            newState.static = true
-            newState.this = this
-            newState.inClass = inClass
-            newState.className = className
-            return newState
-        }
-
-        static func instance(
-            constructor: SwiftSource?,
-            this: SwiftSource,
-            className: SwiftSource,
-            inProtocol: Bool = Context.inProtocol
-        ) -> Self {
-            var newState = Context.current
-            newState.static = false
-            newState.constructor = constructor
-            newState.this = this
-            newState.inProtocol = inProtocol
-            newState.className = className
-            return newState
-        }
-
-        static func override(_ isOverride: Bool) -> Self {
-            var newState = Context.current
-            newState.override = isOverride
-            return newState
-        }
-
-        static func root(
-            interfaces: [String: MergedInterface],
-            ignored: [String: Set<String>],
-            types: [String: IDLTypealias]
-        ) -> Self {
-            var newState = Context.current
-            newState.interfaces = interfaces
-            newState.ignored = ignored
-            newState.types = types
-            return newState
-        }
-
-        mutating func add(types: [String: IDLTypealias]) {
-            for (name, type) in types {
-                self.types[name] = type
-            }
-        }
-    }
-}
diff --git a/Sources/WebIDLToSwift/IDLBuilder.swift b/Sources/WebIDLToSwift/IDLBuilder.swift
index 59f34d4c..0eede560 100644
--- a/Sources/WebIDLToSwift/IDLBuilder.swift
+++ b/Sources/WebIDLToSwift/IDLBuilder.swift
@@ -44,92 +44,98 @@ enum IDLBuilder {
         try (formedPreamble + "\n\n" + content).write(toFile: path, atomically: true, encoding: .utf8)
     }
 
-    static func generateIDLBindings(idl: [GenericCollection<IDLNode>], baseTypes: [String : IDLTypealias]) throws -> SwiftSource {
+    static func generateIDLBindings(idl: [GenericCollection<IDLNode>], baseTypes: [String: IDLTypealias]) throws -> SwiftSource {
+        print("Generating bindings...")
         let declarations = idl.flatMap(\.array)
         let merged = DeclarationMerger.merge(declarations: declarations)
         var contents: [SwiftSource] = []
-        for node in merged.declarations.sorted(by: { $0.name < $1.name }) {
-            if ignoredNames.contains(node.name) {
-                continue
-            }
 
-            var state = Context.State.root(
-                interfaces: merged.interfaces,
-                ignored: [
-                    // functions as parameters are unsupported
-                    "AnimationFrameProvider": ["requestAnimationFrame"],
-                    "AnimationWorkletGlobalScope": ["registerAnimator"],
-                    "AudioWorkletGlobalScope": ["registerProcessor"],
-                    "BaseAudioContext": ["decodeAudioData"],
-                    "ComputePressureObserver": ["<constructor>"],
-                    "DataTransferItem": ["getAsString"],
-                    "FileSystemDirectoryEntry": ["getFile", "getDirectory"],
-                    "FileSystemDirectoryReader": ["readEntries"],
-                    "FileSystemEntry": ["getParent"],
-                    "FileSystemFileEntry": ["file"],
-                    "Geolocation": ["getCurrentPosition", "watchPosition"],
-                    "HTMLCanvasElement": ["toBlob", "getContext"],
-                    "HTMLVideoElement": ["requestVideoFrameCallback"],
-                    "IntersectionObserver": ["<constructor>"],
-                    "LayoutWorkletGlobalScope": ["registerLayout"],
-                    "LockManager": ["request"],
-                    "MediaSession": ["setActionHandler"],
-                    "MutationObserver": ["<constructor>"],
-                    "Navigator": ["getUserMedia"],
-                    "Notification": ["requestPermission"],
-                    "PaintWorkletGlobalScope": ["registerPaint"],
-                    "PerformanceObserver": ["<constructor>"],
-                    "RemotePlayback": ["watchAvailability"],
-                    "ReportingObserver": ["<constructor>"],
-                    "ResizeObserver": ["<constructor>"],
-                    "RTCPeerConnection": ["createOffer", "setLocalDescription", "createAnswer", "setRemoteDescription", "addIceCandidate"],
-                    "Scheduler": ["postTask"],
-                    "Window": ["requestIdleCallback"],
-                    "WindowOrWorkerGlobalScope": ["queueMicrotask"],
-                    "XRSession": ["requestAnimationFrame"],
-                    // variadic callbacks are unsupported
-                    "TrustedTypePolicyFactory": ["createPolicy"],
-                    // NodeFilter
-                    "Document": ["createNodeIterator", "createTreeWalker"],
-                    "NodeIterator": ["filter"],
-                    "TreeWalker": ["filter"],
-                    // EventListener
-                    "EventTarget": ["addEventListener", "removeEventListener"],
-                    "MediaQueryList": ["addListener", "removeListener"],
-                    // invalid override in Swift
-                    "BeforeUnloadEvent": ["returnValue"],
-                    "CSSColor": ["colorSpace"],
-                    "SVGElement": ["className"],
-                    "AudioBufferSourceNode": ["start"],
-                    // XPathNSResolver
-                    "XPathEvaluatorBase": ["createExpression", "createNSResolver", "evaluate"],
-                    // disabled pending addition of more specs
-                    "HTMLMediaElement": ["srcObject"],
-                    "Blob": ["stream"],
-                    "Body": ["body"],
-                    "OffscreenCanvas": ["getContext"],
-                ],
-                types: merged.types
-            )
-            state.add(types: baseTypes)
-
-            let nodeContent = Context.withState(state) {
-                toSwift(node)
+        var state = ScopedState.root(
+            interfaces: merged.interfaces,
+            ignored: [
+                // functions as parameters are unsupported
+                "AnimationFrameProvider": ["requestAnimationFrame"],
+                "AnimationWorkletGlobalScope": ["registerAnimator"],
+                "AudioWorkletGlobalScope": ["registerProcessor"],
+                "BaseAudioContext": ["decodeAudioData"],
+                "ComputePressureObserver": ["<constructor>"],
+                "DataTransferItem": ["getAsString"],
+                "FileSystemDirectoryEntry": ["getFile", "getDirectory"],
+                "FileSystemDirectoryReader": ["readEntries"],
+                "FileSystemEntry": ["getParent"],
+                "FileSystemFileEntry": ["file"],
+                "Geolocation": ["getCurrentPosition", "watchPosition"],
+                "HTMLCanvasElement": ["toBlob", "getContext"],
+                "HTMLVideoElement": ["requestVideoFrameCallback"],
+                "IntersectionObserver": ["<constructor>"],
+                "LayoutWorkletGlobalScope": ["registerLayout"],
+                "LockManager": ["request"],
+                "MediaSession": ["setActionHandler"],
+                "MutationObserver": ["<constructor>"],
+                "Navigator": ["getUserMedia"],
+                "Notification": ["requestPermission"],
+                "PaintWorkletGlobalScope": ["registerPaint"],
+                "PerformanceObserver": ["<constructor>"],
+                "RemotePlayback": ["watchAvailability"],
+                "ReportingObserver": ["<constructor>"],
+                "ResizeObserver": ["<constructor>"],
+                "RTCPeerConnection": ["createOffer", "setLocalDescription", "createAnswer", "setRemoteDescription", "addIceCandidate"],
+                "Scheduler": ["postTask"],
+                "Window": ["requestIdleCallback"],
+                "WindowOrWorkerGlobalScope": ["queueMicrotask"],
+                "XRSession": ["requestAnimationFrame"],
+                // variadic callbacks are unsupported
+                "TrustedTypePolicyFactory": ["createPolicy"],
+                // NodeFilter
+                "Document": ["createNodeIterator", "createTreeWalker"],
+                "NodeIterator": ["filter"],
+                "TreeWalker": ["filter"],
+                // EventListener
+                "EventTarget": ["addEventListener", "removeEventListener"],
+                "MediaQueryList": ["addListener", "removeListener"],
+                // invalid override in Swift
+                "BeforeUnloadEvent": ["returnValue"],
+                "CSSColor": ["colorSpace"],
+                "SVGElement": ["className"],
+                "AudioBufferSourceNode": ["start"],
+                // XPathNSResolver
+                "XPathEvaluatorBase": ["createExpression", "createNSResolver", "evaluate"],
+                // disabled pending addition of more specs
+                "HTMLMediaElement": ["srcObject"],
+                "Blob": ["stream"],
+                "Body": ["body"],
+                "OffscreenCanvas": ["getContext"],
+            ],
+            types: merged.types
+        )
+        state.add(types: baseTypes)
+
+        try ModuleState.withScope(state) {
+            for node in merged.declarations.sorted(by: { $0.name < $1.name }) {
+                if ignoredNames.contains(node.name) {
+                    continue
+                }
+
+                contents.append(toSwift(node))
             }
-            contents.append(nodeContent)
+            try contents.append(IDLBuilder.generateStrings())
+            try contents.append(IDLBuilder.generateUnions())
         }
         return "\(lines: contents)"
     }
 
     static func generateClosureTypes() throws -> SwiftSource {
+        print("Generating closure property wrappers...")
         return """
         /* variadic generics please */
-        \(lines: Context.closurePatterns.sorted().map(\.swiftRepresentation))
+        \(lines: ModuleState.closurePatterns.sorted().map(\.swiftRepresentation))
         """
     }
 
     static func generateStrings() throws -> SwiftSource {
-        let strings = Context.strings.sorted()
+        print("Generating JSString constants...")
+
+        let strings = ModuleState.strings.sorted()
         return """
             @usableFromInline enum Strings {
                 static let _self: JSString = "self"
@@ -139,8 +145,9 @@ enum IDLBuilder {
     }
 
     static func generateUnions() throws -> SwiftSource {
+        print("Generating union protocols...")
         var contents: [SwiftSource] = []
-        for union in Context.unions.sorted(by: { $0.name < $1.name }) {
+        for union in ModuleState.unions.sorted(by: { $0.name < $1.name }) {
             guard !ignoredNames.contains(union.name) else { continue }
             contents.append(union.swiftRepresentation)
         }
diff --git a/Sources/WebIDLToSwift/Module.swift b/Sources/WebIDLToSwift/Module.swift
index eebba5e5..65256eff 100644
--- a/Sources/WebIDLToSwift/Module.swift
+++ b/Sources/WebIDLToSwift/Module.swift
@@ -42,7 +42,6 @@ let domModule = Module(
 )
 
 let modules = [
-    baseModule,
     domModule,
     Module(
         swiftModule: "WebSockets",
diff --git a/Sources/WebIDLToSwift/ModuleState.swift b/Sources/WebIDLToSwift/ModuleState.swift
new file mode 100644
index 00000000..b7d7e181
--- /dev/null
+++ b/Sources/WebIDLToSwift/ModuleState.swift
@@ -0,0 +1,108 @@
+import WebIDL
+
+@dynamicMemberLookup
+enum ModuleState {
+    private(set) static var current = ScopedState()
+    private(set) static var unions: Set<UnionType> = []
+    private(set) static var strings: Set<String> = ["toString"]
+    private(set) static var closurePatterns: Set<ClosurePattern> = []
+
+    static func source(for name: String) -> SwiftSource {
+        assert(!name.isEmpty)
+        if name == "self" {
+            return "Strings._self"
+        }
+        strings.insert(name)
+        return "Strings.\(name)"
+    }
+
+    private static var stack: [ScopedState] = []
+    static func withScope<T>(_ new: ScopedState, body: () throws -> T) rethrows -> T {
+        stack.append(current)
+        current = new
+        defer { current = stack.removeLast() }
+        return try body()
+    }
+
+    static subscript<T>(dynamicMember member: KeyPath<ScopedState, T?>) -> T {
+        current[keyPath: member]!
+    }
+
+    static subscript<T>(dynamicMember member: KeyPath<ScopedState, T>) -> T {
+        current[keyPath: member]
+    }
+
+    static func add(union: UnionType) {
+        unions.insert(union)
+    }
+
+    static func add(closurePattern: ClosurePattern) {
+        closurePatterns.insert(closurePattern)
+    }
+
+    static func reset() {
+        unions = []
+        strings = ["toString"]
+    }
+}
+
+struct ScopedState {
+    private(set) var `static` = false
+    private(set) var inClass = false
+    private(set) var constructor: SwiftSource?
+    private(set) var this: SwiftSource!
+    private(set) var className: SwiftSource!
+    private(set) var interfaces: [String: MergedInterface]!
+    private(set) var ignored: [String: Set<String>]!
+    private(set) var types: [String: IDLTypealias]!
+    private(set) var override = false
+    private(set) var inProtocol = false
+
+    mutating func add(types: [String: IDLTypealias]) {
+        for (name, type) in types {
+            self.types[name] = type
+        }
+    }
+
+    static func `static`(this: SwiftSource, inClass: Bool = ModuleState.inClass, className: SwiftSource) -> Self {
+        var newState = ModuleState.current
+        newState.static = true
+        newState.this = this
+        newState.inClass = inClass
+        newState.className = className
+        return newState
+    }
+
+    static func instance(
+        constructor: SwiftSource?,
+        this: SwiftSource,
+        className: SwiftSource,
+        inProtocol: Bool = ModuleState.inProtocol
+    ) -> Self {
+        var newState = ModuleState.current
+        newState.static = false
+        newState.constructor = constructor
+        newState.this = this
+        newState.inProtocol = inProtocol
+        newState.className = className
+        return newState
+    }
+
+    static func override(_ isOverride: Bool) -> Self {
+        var newState = ModuleState.current
+        newState.override = isOverride
+        return newState
+    }
+
+    static func root(
+        interfaces: [String: MergedInterface],
+        ignored: [String: Set<String>],
+        types: [String: IDLTypealias]
+    ) -> Self {
+        var newState = ModuleState.current
+        newState.interfaces = interfaces
+        newState.ignored = ignored
+        newState.types = types
+        return newState
+    }
+}
diff --git a/Sources/WebIDLToSwift/SwiftSource.swift b/Sources/WebIDLToSwift/SwiftSource.swift
index cf1ff95c..ab15db56 100644
--- a/Sources/WebIDLToSwift/SwiftSource.swift
+++ b/Sources/WebIDLToSwift/SwiftSource.swift
@@ -59,8 +59,8 @@ struct SwiftSource: CustomStringConvertible, ExpressibleByStringInterpolation, E
             output += values.map(\.source).joined(separator: "\n")
         }
 
-        mutating func appendInterpolation<T>(state: Context.State, _ value: T) {
-            Context.withState(state) {
+        mutating func appendInterpolation<T>(state: ScopedState, _ value: T) {
+            ModuleState.withScope(state) {
                 output += toSwift(value).source
             }
         }
diff --git a/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift b/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift
index a0db3bc0..544cdd7d 100644
--- a/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift
+++ b/Sources/WebIDLToSwift/UnionType+SwiftRepresentable.swift
@@ -207,7 +207,7 @@ extension SlimIDLType.TypeValue: SwiftRepresentable {
 }
 
 func unionName(types: Set<SlimIDLType>) -> String {
-    let union = Context.unions.first(where: { $0.types == types }) ?? UnionType(types: types)
-    Context.unions.insert(union)
+    let union = ModuleState.unions.first(where: { $0.types == types }) ?? UnionType(types: types)
+    ModuleState.add(union: union)
     return union.name
 }
diff --git a/Sources/WebIDLToSwift/UnionType.swift b/Sources/WebIDLToSwift/UnionType.swift
index 430dd7db..25e72051 100644
--- a/Sources/WebIDLToSwift/UnionType.swift
+++ b/Sources/WebIDLToSwift/UnionType.swift
@@ -37,7 +37,7 @@ struct SlimIDLType: Hashable, Encodable {
         let value = TypeValue(type.value)
         self.value = value
         nullable = type.nullable
-        
+
         if type.nullable {
             inlineTypeName = "nullable_\(value.inlineTypeName)"
         } else {
@@ -59,7 +59,7 @@ struct SlimIDLType: Hashable, Encodable {
             case let .union(types):
                 let slimmed = Set(types.map(SlimIDLType.init))
                 self = .union(slimmed)
-                Context.unions.insert(UnionType(types: slimmed))
+                ModuleState.add(union: UnionType(types: slimmed))
             }
         }
     }
diff --git a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
index 4460c4f8..8da8e2d3 100644
--- a/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
+++ b/Sources/WebIDLToSwift/WebIDL+SwiftRepresentation.swift
@@ -21,13 +21,13 @@ extension IDLAttribute: SwiftRepresentable, Initializable {
     }
 
     var swiftRepresentation: SwiftSource {
-        if Context.ignored[Context.className.source]?.contains(name) ?? false {
+        if ModuleState.ignored[ModuleState.className.source]?.contains(name) ?? false {
             return """
             // XXX: attribute '\(name)' is ignored
             """
         }
-        if Context.override {
-            assert(!Context.static)
+        if ModuleState.override {
+            assert(!ModuleState.static)
             // can't do property wrappers on override declarations
             return """
             @usableFromInline let \(wrapperName): \(idlType.propertyWrapper(readonly: readonly))<\(idlType)>
@@ -36,30 +36,30 @@ extension IDLAttribute: SwiftRepresentable, Initializable {
                 \(readonly ? "" : "set { \(wrapperName).wrappedValue = newValue }")
             }
             """
-        } else if Context.constructor == nil || Context.static {
+        } 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[\(Context.source(for: name))] = newValue.jsValue }
+                nonmutating set { jsObject[\(ModuleState.source(for: name))] = newValue.jsValue }
                 """
 
                 return """
-                @inlinable public\(raw: Context.static ? " static" : "") var \(name): \(idlType) {
-                    get { jsObject[\(Context.source(for: name))].fromJSValue()! }
+                @inlinable public\(raw: ModuleState.static ? " static" : "") var \(name): \(idlType) {
+                    get { jsObject[\(ModuleState.source(for: name))].fromJSValue()! }
                     \(readonly ? "" : setter)
                 }
                 """
             } else {
                 let setter: SwiftSource = """
                 nonmutating set { \(
-                    idlType.propertyWrapper(readonly: readonly))[\(Context.source(for: name)
+                    idlType.propertyWrapper(readonly: readonly))[\(ModuleState.source(for: name)
                 ), in: jsObject] = newValue }
                 """
 
                 return """
-                @inlinable public\(raw: Context.static ? " static" : "") var \(name): \(idlType) {
-                    get { \(idlType.propertyWrapper(readonly: readonly))[\(Context.source(for: name)), in: jsObject] }
+                @inlinable public\(raw: ModuleState.static ? " static" : "") var \(name): \(idlType) {
+                    get { \(idlType.propertyWrapper(readonly: readonly))[\(ModuleState.source(for: name)), in: jsObject] }
                     \(readonly ? "" : setter)
                 }
                 """
@@ -73,9 +73,9 @@ extension IDLAttribute: SwiftRepresentable, Initializable {
     }
 
     var initializer: SwiftSource? {
-        assert(!Context.static)
+        assert(!ModuleState.static)
         return """
-        \(wrapperName) = \(idlType.propertyWrapper(readonly: readonly))(jsObject: jsObject, name: \(Context.source(for: name)))
+        \(wrapperName) = \(idlType.propertyWrapper(readonly: readonly))(jsObject: jsObject, name: \(ModuleState.source(for: name)))
         """
     }
 }
@@ -102,15 +102,15 @@ extension MergedDictionary: SwiftRepresentable {
         }
         return """
         public convenience init(\(sequence: params)) {
-            let object = JSObject.global[\(Context.source(for: "Object"))].function!.new()
+            let object = JSObject.global[\(ModuleState.source(for: "Object"))].function!.new()
             \(lines: membersWithPropertyWrapper.map { member, wrapper in
                 if member.idlType.isFunction {
                     return """
-                    \(wrapper)[\(Context.source(for: member.name)), in: object] = \(member.name)
+                    \(wrapper)[\(ModuleState.source(for: member.name)), in: object] = \(member.name)
                     """
                 } else {
                     return """
-                    object[\(Context.source(for: member.name))] = \(member.name).jsValue
+                    object[\(ModuleState.source(for: member.name))] = \(member.name).jsValue
                     """
                 }
             })
@@ -119,7 +119,7 @@ extension MergedDictionary: SwiftRepresentable {
 
         public required init(unsafelyWrapping object: JSObject) {
             \(lines: membersWithPropertyWrapper.map { member, wrapper in
-                "_\(raw: member.name) = \(wrapper)(jsObject: object, name: \(Context.source(for: member.name)))"
+                "_\(raw: member.name) = \(wrapper)(jsObject: object, name: \(ModuleState.source(for: member.name)))"
             })
             super.init(unsafelyWrapping: object)
         }
@@ -162,8 +162,8 @@ extension IDLEnum: SwiftRepresentable {
 extension IDLCallback: SwiftRepresentable {
     var swiftRepresentation: SwiftSource {
         let isVoid = idlType.swiftRepresentation == "Void"
-        Context.closurePatterns.insert(ClosurePattern(nullable: false, void: isVoid, argCount: arguments.count))
-        Context.closurePatterns.insert(ClosurePattern(nullable: true, void: isVoid, argCount: arguments.count))
+        ModuleState.add(closurePattern: ClosurePattern(nullable: false, void: isVoid, argCount: arguments.count))
+        ModuleState.add(closurePattern: ClosurePattern(nullable: true, void: isVoid, argCount: arguments.count))
         return """
         public typealias \(name) = (\(sequence: arguments.map {
             "\($0.idlType)\($0.variadic ? "..." : "")"
@@ -184,23 +184,23 @@ protocol Initializable {
 
 extension MergedInterface: SwiftRepresentable {
     var swiftRepresentation: SwiftSource {
-        let constructor: SwiftSource = "JSObject.global[\(Context.source(for: name))].function"
-        let body = Context.withState(.instance(constructor: constructor, this: "jsObject", className: "\(name)")) {
+        let constructor: SwiftSource = "JSObject.global[\(ModuleState.source(for: name))].function"
+        let body = ModuleState.withScope(.instance(constructor: constructor, this: "jsObject", className: "\(name)")) {
             members.map { member in
                 let isOverride: Bool
                 if let memberName = (member as? IDLNamed)?.name {
-                    if Context.ignored[name]?.contains(memberName) ?? false {
+                    if ModuleState.ignored[name]?.contains(memberName) ?? false {
                         return "// XXX: member '\(memberName)' is ignored"
                     }
                     isOverride = parentClasses.flatMap {
-                        Context.interfaces[$0]?.members ?? []
+                        ModuleState.interfaces[$0]?.members ?? []
                     }.contains {
                         memberName == ($0 as? IDLNamed)?.name
                     }
                 } else {
                     isOverride = false
                 }
-                return Context.withState(.override(isOverride)) {
+                return ModuleState.withScope(.override(isOverride)) {
                     toSwift(member)
                 }
             }.joined(separator: "\n\n")
@@ -229,7 +229,7 @@ extension MergedInterface: SwiftRepresentable {
 
     var memberInits: [SwiftSource] {
         members.filter { member in
-            if let ignored = Context.ignored[name],
+            if let ignored = ModuleState.ignored[name],
                let memberName = (member as? IDLNamed)?.name
             {
                 return !ignored.contains(memberName)
@@ -264,7 +264,7 @@ extension IDLSetLikeDeclaration: SwiftRepresentable, Initializable {
 
 extension MergedMixin: SwiftRepresentable {
     var swiftRepresentation: SwiftSource {
-        Context.withState(.instance(constructor: nil, this: "jsObject", className: "\(name)", inProtocol: true)) {
+        ModuleState.withScope(.instance(constructor: nil, this: "jsObject", className: "\(name)", inProtocol: true)) {
             """
             public protocol \(name): JSBridgedClass {}
             public extension \(name) {
@@ -277,7 +277,7 @@ extension MergedMixin: SwiftRepresentable {
 
 extension IDLConstant: SwiftRepresentable, Initializable {
     var swiftRepresentation: SwiftSource {
-        if Context.inProtocol {
+        if ModuleState.inProtocol {
             // Static stored properties not supported in protocol extensions
             return """
             @inlinable public static var \(name): \(idlType) { \(value) }
@@ -294,9 +294,9 @@ extension IDLConstant: SwiftRepresentable, Initializable {
 
 extension IDLConstructor: SwiftRepresentable, Initializable {
     var swiftRepresentation: SwiftSource {
-        assert(!Context.static)
+        assert(!ModuleState.static)
         assert(arguments.dropLast().allSatisfy { !$0.variadic })
-        if Context.ignored[Context.className.source]?.contains("<constructor>") ?? false {
+        if ModuleState.ignored[ModuleState.className.source]?.contains("<constructor>") ?? false {
             return "// XXX: constructor is ignored"
         }
         let args: [SwiftSource] = arguments.map {
@@ -330,14 +330,14 @@ extension IDLIterableDeclaration: SwiftRepresentable, Initializable {
             return """
             public typealias Element = \(idlType[0])
             @available(macOS 10.15, iOS 13.0, watchOS 6.0, tvOS 13.0, *)
-            public func makeAsyncIterator() -> ValueIterableAsyncIterator<\(Context.className)> {
+            public func makeAsyncIterator() -> ValueIterableAsyncIterator<\(ModuleState.className)> {
                 ValueIterableAsyncIterator(sequence: self)
             }
             """
         } else {
             return """
             public typealias Element = \(idlType[0])
-            public func makeIterator() -> ValueIterableIterator<\(Context.className)> {
+            public func makeIterator() -> ValueIterableIterator<\(ModuleState.className)> {
                 ValueIterableIterator(sequence: self)
             }
             """
@@ -349,8 +349,8 @@ extension IDLIterableDeclaration: SwiftRepresentable, Initializable {
 
 extension MergedNamespace: SwiftRepresentable {
     var swiftRepresentation: SwiftSource {
-        let this: SwiftSource = "JSObject.global[\(Context.source(for: name))].object!"
-        let body = Context.withState(.static(this: this, inClass: false, className: "\(name)")) {
+        let this: SwiftSource = "JSObject.global[\(ModuleState.source(for: name))].object!"
+        let body = ModuleState.withScope(.static(this: this, inClass: false, className: "\(name)")) {
             members.map(toSwift).joined(separator: "\n\n")
         }
         return """
@@ -367,7 +367,7 @@ extension MergedNamespace: SwiftRepresentable {
 
 extension IDLOperation: SwiftRepresentable, Initializable {
     var swiftRepresentation: SwiftSource {
-        if Context.ignored[Context.className.source]?.contains(name) ?? false {
+        if ModuleState.ignored[ModuleState.className.source]?.contains(name) ?? false {
             return """
             // XXX: method '\(name)' is ignored
             """
@@ -375,16 +375,16 @@ extension IDLOperation: SwiftRepresentable, Initializable {
         if special.isEmpty {
             return defaultRepresentation
         } else {
-            assert(!Context.static)
+            assert(!ModuleState.static)
             switch special {
             case "stringifier":
                 return """
                 @inlinable public var description: String {
-                    \(Context.this)[Strings.toString]!().fromJSValue()!
+                    \(ModuleState.this)[Strings.toString]!().fromJSValue()!
                 }
                 """
             case "static":
-                return Context.withState(.static(this: "constructor!", className: Context.className)) {
+                return ModuleState.withScope(.static(this: "constructor!", className: ModuleState.className)) {
                     defaultRepresentation
                 }
             case "getter":
@@ -444,19 +444,19 @@ extension IDLOperation: SwiftRepresentable, Initializable {
             argsArray = "[\(sequence: args)]"
         }
 
-        let function: SwiftSource = "this[\(Context.source(for: name))].function!"
+        let function: SwiftSource = "this[\(ModuleState.source(for: name))].function!"
         return (
             prep: """
             \(lines: prep)
-            let this = \(Context.this)
+            let this = \(ModuleState.this)
             """,
             call: "\(function)(this: this, arguments: \(argsArray))"
         )
     }
 
     fileprivate var nameAndParams: SwiftSource {
-        let accessModifier: SwiftSource = Context.static ? (Context.inClass ? " class" : " static") : ""
-        let overrideModifier: SwiftSource = Context.override ? "override " : ""
+        let accessModifier: SwiftSource = ModuleState.static ? (ModuleState.inClass ? " class" : " static") : ""
+        let overrideModifier: SwiftSource = ModuleState.override ? "override " : ""
         return """
         \(overrideModifier)public\(accessModifier) func \(name)(\(sequence: arguments.map(\.swiftRepresentation)))
         """
@@ -464,10 +464,10 @@ extension IDLOperation: SwiftRepresentable, Initializable {
 
     private var defaultRepresentation: SwiftSource {
         var returnType = idlType!.swiftRepresentation
-        if returnType == Context.className {
+        if returnType == ModuleState.className {
             returnType = "Self"
         }
-        if Context.override, Context.static {
+        if ModuleState.override, ModuleState.static {
             return """
             // XXX: illegal static override
             // \(nameAndParams) -> \(returnType)
@@ -496,13 +496,13 @@ extension IDLOperation: SwiftRepresentable, Initializable {
 
 extension AsyncOperation: SwiftRepresentable, Initializable {
     var swiftRepresentation: SwiftSource {
-        if Context.ignored[Context.className.source]?.contains(name) ?? false {
+        if ModuleState.ignored[ModuleState.className.source]?.contains(name) ?? false {
             // covered by non-async operation
             return ""
         }
         switch operation.special {
         case "static":
-            return Context.withState(.static(this: "constructor!", className: Context.className)) {
+            return ModuleState.withScope(.static(this: "constructor!", className: ModuleState.className)) {
                 defaultRepresentation
             }
         case "":
@@ -513,7 +513,7 @@ extension AsyncOperation: SwiftRepresentable, Initializable {
     }
 
     var defaultRepresentation: SwiftSource {
-        if Context.override, Context.static || operation.special == "static" {
+        if ModuleState.override, ModuleState.static || operation.special == "static" {
             return """
             // XXX: illegal static override
             // \(operation.nameAndParams) async -> \(returnType)
@@ -611,12 +611,12 @@ extension IDLType: SwiftRepresentable {
 
     var isFunction: Bool {
         if case let .single(name) = value {
-            if Context.types[name] is IDLCallback {
+            if ModuleState.types[name] is IDLCallback {
                 return true
             }
-            if let ref = Context.types[name] as? IDLTypedef,
+            if let ref = ModuleState.types[name] as? IDLTypedef,
                case let .single(name) = ref.idlType.value,
-               Context.types[name] is IDLCallback
+               ModuleState.types[name] is IDLCallback
             {
                 assert(ref.idlType.nullable)
                 return true
@@ -630,13 +630,13 @@ extension IDLType: SwiftRepresentable {
         // (should they be a JSFunction? or a closure? or something else?))
         if case let .single(name) = value {
             let readonlyComment: SwiftSource = readonly ? " /* XXX: should be readonly! */ " : ""
-            // print(Context.types)
-            if let callback = Context.types[name] as? IDLCallback {
+            // print(ModuleState.types)
+            if let callback = ModuleState.types[name] as? IDLCallback {
                 return "\(closureWrapper(callback, optional: false))\(readonlyComment)"
             }
-            if let ref = Context.types[name] as? IDLTypedef,
+            if let ref = ModuleState.types[name] as? IDLTypedef,
                case let .single(name) = ref.idlType.value,
-               let callback = Context.types[name] as? IDLCallback
+               let callback = ModuleState.types[name] as? IDLCallback
             {
                 assert(ref.idlType.nullable)
                 return "\(closureWrapper(callback, optional: true))\(readonlyComment)"
@@ -661,7 +661,7 @@ extension IDLTypedef: SwiftRepresentable {
     var swiftRepresentation: SwiftSource {
         if case let .union(types) = idlType.value {
             let typeSet = Set(types.map(SlimIDLType.init))
-            if let existing = Context.unions.first(where: { $0.types == typeSet }) {
+            if let existing = ModuleState.unions.first(where: { $0.types == typeSet }) {
                 if let existingName = existing.friendlyName {
                     return "public typealias \(name) = \(existingName)"
                 } else {
@@ -669,7 +669,7 @@ extension IDLTypedef: SwiftRepresentable {
                     return ""
                 }
             } else {
-                Context.unions.insert(UnionType(types: typeSet, friendlyName: name))
+                ModuleState.add(union: UnionType(types: typeSet, friendlyName: name))
                 return ""
             }
         }
diff --git a/Sources/WebIDLToSwift/main.swift b/Sources/WebIDLToSwift/main.swift
index a2085fa9..bb6d8bd9 100644
--- a/Sources/WebIDLToSwift/main.swift
+++ b/Sources/WebIDLToSwift/main.swift
@@ -9,42 +9,20 @@ func main() {
             .deletingLastPathComponent()
             .deletingLastPathComponent()
             .deletingLastPathComponent()
-
         let domIDL = try [baseModule, domModule].flatMap { try IDLParser.parseIDL(modules: $0.idlModules) }
         let domTypes = DeclarationMerger.merge(declarations: domIDL.flatMap(\.array)).types
 
-        for module in modules {
-            let startTime = Date()
-            let idl = try IDLParser.parseIDL(modules: module.idlModules)
-
-            let outputDir = packageDir
-                .appendingPathComponent("Sources")
-                .appendingPathComponent(module.swiftModule)
-
-            print("Making sure that directory exists: \(outputDir.path)")
-            try FileManager.default.createDirectory(at: outputDir, withIntermediateDirectories: true)
+        // Collect closure patterns from all modules to subsequently write them together with `baseModule`.
+        var closurePatterns = Set<ClosurePattern>()
 
-            let outputPath = outputDir.appendingPathComponent("Generated.swift").path
-            var contents: [SwiftSource] = []
-            print("Generating bindings...")
-            contents.append(try IDLBuilder.generateIDLBindings(idl: idl))
-            print("Generating closure property wrappers...")
-            contents.append(try IDLBuilder.generateClosureTypes())
-            print("Generating JSString constants...")
-            contents.append(try IDLBuilder.generateStrings())
-            print("Generating union protocols...")
-            contents.append(try IDLBuilder.generateUnions())
-            try IDLBuilder.writeFile(
-                path: outputPath,
-                content: contents.joined(separator: "\n\n").source,
-                moduleDependencies: module.dependencies
-            )
-
-            SwiftFormatter.run(source: outputPath)
-            print("Module \(module.swiftModule) done in \(Int(Date().timeIntervalSince(startTime) * 1000))ms.")
+        for module in modules {
+            try generate(module, packageDir: packageDir, domTypes: domTypes)
+            closurePatterns.formUnion(ModuleState.closurePatterns)
         }
 
-        try generateManifest(modules)
+        try generate(baseModule, packageDir: packageDir, shouldGenerateClosurePatterns: true)
+
+        try generateManifest([baseModule] + modules)
             .write(toFile: packageDir.appendingPathComponent("Package.swift").path, atomically: true, encoding: .utf8)
         print("Package.swift manifest successfully regenerated and updated on the filesystem.")
     } catch {
@@ -52,6 +30,40 @@ func main() {
     }
 }
 
+private func generate(
+    _ module: Module,
+    packageDir: URL,
+    domTypes: [String: IDLTypealias] = [:],
+    shouldGenerateClosurePatterns: Bool = false
+) throws {
+    let startTime = Date()
+    let idl = try IDLParser.parseIDL(modules: module.idlModules)
+
+    let outputDir = packageDir
+        .appendingPathComponent("Sources")
+        .appendingPathComponent(module.swiftModule)
+
+    print("Making sure that directory exists: \(outputDir.path)")
+    try FileManager.default.createDirectory(at: outputDir, withIntermediateDirectories: true)
+
+    let outputPath = outputDir.appendingPathComponent("Generated.swift").path
+    var contents: [SwiftSource] = []
+    contents.append(try IDLBuilder.generateIDLBindings(idl: idl, baseTypes: domTypes))
+    if shouldGenerateClosurePatterns {
+        contents.append(try IDLBuilder.generateClosureTypes())
+    }
+    try IDLBuilder.writeFile(
+        path: outputPath,
+        content: contents.joined(separator: "\n\n").source,
+        moduleDependencies: module.dependencies
+    )
+
+    ModuleState.reset()
+
+    SwiftFormatter.run(source: outputPath)
+    print("Module \(module.swiftModule) done in \(Int(Date().timeIntervalSince(startTime) * 1000))ms.")
+}
+
 private func handleDecodingError(_ error: Error) {
     switch error as? DecodingError {
     case let .dataCorrupted(ctx), let .typeMismatch(_, ctx):
diff --git a/Sources/WebSockets/Generated.swift b/Sources/WebSockets/Generated.swift
index 53deda1b..f476279a 100644
--- a/Sources/WebSockets/Generated.swift
+++ b/Sources/WebSockets/Generated.swift
@@ -137,2163 +137,41 @@ public class WebSocket: EventTarget {
     @ReadWriteAttribute
     public var binaryType: BinaryType
 
-    @inlinable public func send(data: BlobPart) {
+    @inlinable public func send(data: Blob_or_BufferSource_or_String) {
         let this = jsObject
         _ = this[Strings.send].function!(this: this, arguments: [data.jsValue])
     }
 }
 
-/* variadic generics please */
-@propertyWrapper public final class ClosureAttribute0<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                newValue().jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Optional<ReturnType>
-    where ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-                    newValue().jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0OptionalVoid {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute0Void {
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Optional<A0, ReturnType>
-    where A0: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1OptionalVoid<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute1Void<A0>
-    where A0: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Optional<A0, A1, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2OptionalVoid<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                    return .undefined
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute2Void<A0, A1>
-    where A0: JSValueCompatible, A1: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue) }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!)
-                return .undefined
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            jsObject[name] = JSClosure {
-                newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-            }.jsValue
-        }
-    }
-}
-
-@propertyWrapper public final class ClosureAttribute5Optional<A0, A1, A2, A3, A4, ReturnType>
-    where A0: JSValueCompatible, A1: JSValueCompatible, A2: JSValueCompatible, A3: JSValueCompatible, A4: JSValueCompatible, ReturnType: JSValueCompatible
-{
-    @usableFromInline let jsObject: JSObject
-    @usableFromInline let name: JSString
-
-    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($0.jsValue, $1.jsValue, $2.jsValue, $3.jsValue, $4.jsValue).fromJSValue()! }
-        }
-        set {
-            if let newValue = newValue {
-                jsObject[name] = JSClosure {
-                    newValue($0[0].fromJSValue()!, $0[1].fromJSValue()!, $0[2].fromJSValue()!, $0[3].fromJSValue()!, $0[4].fromJSValue()!).jsValue
-                }.jsValue
-            } else {
-                jsObject[name] = .null
-            }
-        }
-    }
-}
-
 @usableFromInline enum Strings {
     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 CanvasFilter: JSString = "CanvasFilter"
-    @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 CloseEvent: JSString = "CloseEvent"
-    @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 DOMException: JSString = "DOMException"
-    @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 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 MediaRecorderErrorEvent: JSString = "MediaRecorderErrorEvent"
-    @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 NavigationPreloadManager: JSString = "NavigationPreloadManager"
-    @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 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 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 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 URLSearchParams: JSString = "URLSearchParams"
-    @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 WebSocket: JSString = "WebSocket"
-    @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 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 addModule: JSString = "addModule"
-    @usableFromInline static let addPath: JSString = "addPath"
-    @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 ancestorOrigins: JSString = "ancestorOrigins"
-    @usableFromInline static let anchors: JSString = "anchors"
-    @usableFromInline static let animated: JSString = "animated"
-    @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 appendChild: JSString = "appendChild"
-    @usableFromInline static let appendData: JSString = "appendData"
-    @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 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 ariaCurrent: JSString = "ariaCurrent"
-    @usableFromInline static let ariaDescription: JSString = "ariaDescription"
-    @usableFromInline static let ariaDisabled: JSString = "ariaDisabled"
-    @usableFromInline static let ariaExpanded: JSString = "ariaExpanded"
-    @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 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 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 `as`: JSString = "as"
-    @usableFromInline static let aspectRatio: JSString = "aspectRatio"
-    @usableFromInline static let assert: JSString = "assert"
-    @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 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 binaryType: JSString = "binaryType"
-    @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 bufferedAmount: JSString = "bufferedAmount"
-    @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 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 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 checkValidity: JSString = "checkValidity"
-    @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 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 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 console: JSString = "console"
-    @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 count: JSString = "count"
-    @usableFromInline static let countReset: JSString = "countReset"
-    @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 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 debug: JSString = "debug"
-    @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 `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 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 dirxml: JSString = "dirxml"
-    @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 draggable: JSString = "draggable"
-    @usableFromInline static let drawFocusIfNeeded: JSString = "drawFocusIfNeeded"
-    @usableFromInline static let drawImage: JSString = "drawImage"
-    @usableFromInline static let dropEffect: JSString = "dropEffect"
-    @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 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 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 extensions: JSString = "extensions"
-    @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 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 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 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 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 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 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 getImageData: JSString = "getImageData"
-    @usableFromInline static let getLineDash: JSString = "getLineDash"
-    @usableFromInline static let getModifierState: JSString = "getModifierState"
-    @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 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 group: JSString = "group"
-    @usableFromInline static let groupCollapsed: JSString = "groupCollapsed"
-    @usableFromInline static let groupEnd: JSString = "groupEnd"
-    @usableFromInline static let groupId: JSString = "groupId"
-    @usableFromInline static let handled: JSString = "handled"
-    @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 hasChildNodes: JSString = "hasChildNodes"
-    @usableFromInline static let hasFeature: JSString = "hasFeature"
-    @usableFromInline static let hasFocus: JSString = "hasFocus"
-    @usableFromInline static let hash: JSString = "hash"
-    @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 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 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 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 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 isVisible: JSString = "isVisible"
-    @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 log: JSString = "log"
-    @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 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 navigationPreload: JSString = "navigationPreload"
-    @usableFromInline static let navigator: JSString = "navigator"
-    @usableFromInline static let networkState: JSString = "networkState"
-    @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 oldURL: JSString = "oldURL"
-    @usableFromInline static let oldValue: JSString = "oldValue"
-    @usableFromInline static let onLine: JSString = "onLine"
-    @usableFromInline static let onabort: JSString = "onabort"
-    @usableFromInline static let onaddtrack: JSString = "onaddtrack"
-    @usableFromInline static let onafterprint: JSString = "onafterprint"
-    @usableFromInline static let onauxclick: JSString = "onauxclick"
-    @usableFromInline static let onbeforeprint: JSString = "onbeforeprint"
-    @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 oncut: JSString = "oncut"
-    @usableFromInline static let ondataavailable: JSString = "ondataavailable"
-    @usableFromInline static let ondblclick: JSString = "ondblclick"
-    @usableFromInline static let ondevicechange: JSString = "ondevicechange"
-    @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 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 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 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 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 onunhandledrejection: JSString = "onunhandledrejection"
-    @usableFromInline static let onunload: JSString = "onunload"
-    @usableFromInline static let onunmute: JSString = "onunmute"
-    @usableFromInline static let onupdatefound: JSString = "onupdatefound"
-    @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 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 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 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 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 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 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 removeNamedItem: JSString = "removeNamedItem"
-    @usableFromInline static let removeNamedItemNS: JSString = "removeNamedItemNS"
-    @usableFromInline static let removeParameter: JSString = "removeParameter"
-    @usableFromInline static let removeTrack: JSString = "removeTrack"
-    @usableFromInline static let removedNodes: JSString = "removedNodes"
-    @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 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 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 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 searchParams: JSString = "searchParams"
-    @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 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 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 sort: JSString = "sort"
-    @usableFromInline static let source: JSString = "source"
-    @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 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 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 table: JSString = "table"
-    @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 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 time: JSString = "time"
-    @usableFromInline static let timeEnd: JSString = "timeEnd"
-    @usableFromInline static let timeLog: JSString = "timeLog"
-    @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 title: JSString = "title"
-    @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 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 trace: JSString = "trace"
-    @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 translate: JSString = "translate"
-    @usableFromInline static let translateSelf: JSString = "translateSelf"
-    @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 updateViaCache: JSString = "updateViaCache"
-    @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 userAgent: JSString = "userAgent"
-    @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 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 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 warn: JSString = "warn"
     @usableFromInline static let wasClean: JSString = "wasClean"
-    @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"
-}
-
-public protocol Any_ArrayBuffer_or_String: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_ArrayBuffer_or_String {}
-extension String: Any_ArrayBuffer_or_String {}
-
-public enum ArrayBuffer_or_String: JSValueCompatible, Any_ArrayBuffer_or_String {
-    case arrayBuffer(ArrayBuffer)
-    case string(String)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension VideoTrack: Any_AudioTrack_or_TextTrack_or_VideoTrack {}
-
-public enum AudioTrack_or_TextTrack_or_VideoTrack: JSValueCompatible, Any_AudioTrack_or_TextTrack_or_VideoTrack {
-    case audioTrack(AudioTrack)
-    case textTrack(TextTrack)
-    case videoTrack(VideoTrack)
-
-    public var audioTrack: AudioTrack? {
-        switch self {
-        case let .audioTrack(audioTrack): return audioTrack
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
 }
 
-public protocol Any_BlobPart: ConvertibleToJSValue {}
-extension Blob: Any_BlobPart {}
-extension BufferSource: Any_BlobPart {}
-extension String: Any_BlobPart {}
+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 {}
+extension String: Any_Blob_or_BufferSource_or_String {}
 
-public enum BlobPart: JSValueCompatible, Any_BlobPart {
+public enum Blob_or_BufferSource_or_String: JSValueCompatible, Any_Blob_or_BufferSource_or_String {
     case blob(Blob)
     case bufferSource(BufferSource)
     case string(String)
@@ -2344,1812 +222,34 @@ public enum BlobPart: JSValueCompatible, Any_BlobPart {
     }
 }
 
-public protocol Any_Bool_or_MediaTrackConstraints: ConvertibleToJSValue {}
-extension Bool: Any_Bool_or_MediaTrackConstraints {}
-extension MediaTrackConstraints: Any_Bool_or_MediaTrackConstraints {}
-
-public enum Bool_or_MediaTrackConstraints: JSValueCompatible, Any_Bool_or_MediaTrackConstraints {
-    case bool(Bool)
-    case mediaTrackConstraints(MediaTrackConstraints)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var mediaTrackConstraints: MediaTrackConstraints? {
-        switch self {
-        case let .mediaTrackConstraints(mediaTrackConstraints): return mediaTrackConstraints
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let mediaTrackConstraints: MediaTrackConstraints = value.fromJSValue() {
-            return .mediaTrackConstraints(mediaTrackConstraints)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
+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 Bool_or_ScrollIntoViewOptions: JSValueCompatible, Any_Bool_or_ScrollIntoViewOptions {
-    case bool(Bool)
-    case scrollIntoViewOptions(ScrollIntoViewOptions)
+public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_String {
+    case string(String)
+    case seq_of_String([String])
 
-    public var bool: Bool? {
+    public var string: String? {
         switch self {
-        case let .bool(bool): return bool
+        case let .string(string): return string
         default: return nil
         }
     }
 
-    public var scrollIntoViewOptions: ScrollIntoViewOptions? {
+    public var seq_of_String: [String]? {
         switch self {
-        case let .scrollIntoViewOptions(scrollIntoViewOptions): return scrollIntoViewOptions
+        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 bool: Bool = value.fromJSValue() {
-            return .bool(bool)
+        if let string: String = value.fromJSValue() {
+            return .string(string)
         }
-        if let scrollIntoViewOptions: ScrollIntoViewOptions = value.fromJSValue() {
-            return .scrollIntoViewOptions(scrollIntoViewOptions)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bool(bool):
-            return bool.jsValue
-        case let .scrollIntoViewOptions(scrollIntoViewOptions):
-            return scrollIntoViewOptions.jsValue
-        }
-    }
-}
-
-public protocol Any_BufferSource: ConvertibleToJSValue {}
-extension ArrayBuffer: Any_BufferSource {}
-extension ArrayBufferView: Any_BufferSource {}
-
-public enum BufferSource: JSValueCompatible, Any_BufferSource {
-    case arrayBuffer(ArrayBuffer)
-    case arrayBufferView(ArrayBufferView)
-
-    public var arrayBuffer: ArrayBuffer? {
-        switch self {
-        case let .arrayBuffer(arrayBuffer): return arrayBuffer
-        default: return nil
-        }
-    }
-
-    public var arrayBufferView: ArrayBufferView? {
-        switch self {
-        case let .arrayBufferView(arrayBufferView): return arrayBufferView
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .arrayBuffer(arrayBuffer):
-            return arrayBuffer.jsValue
-        case let .arrayBufferView(arrayBufferView):
-            return arrayBufferView.jsValue
-        }
-    }
-}
-
-public protocol Any_CSSPseudoElement_or_Element: ConvertibleToJSValue {}
-extension CSSPseudoElement: Any_CSSPseudoElement_or_Element {}
-extension Element: Any_CSSPseudoElement_or_Element {}
-
-public enum CSSPseudoElement_or_Element: JSValueCompatible, Any_CSSPseudoElement_or_Element {
-    case cssPseudoElement(CSSPseudoElement)
-    case element(Element)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        default: return nil
-        }
-    }
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement):
-            return cssPseudoElement.jsValue
-        case let .element(element):
-            return element.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilterInput_or_seq_of_CanvasFilterInput: ConvertibleToJSValue {}
-extension CanvasFilterInput: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {}
-extension Array: Any_CanvasFilterInput_or_seq_of_CanvasFilterInput where Element == CanvasFilterInput {}
-
-public enum CanvasFilterInput_or_seq_of_CanvasFilterInput: JSValueCompatible, Any_CanvasFilterInput_or_seq_of_CanvasFilterInput {
-    case canvasFilterInput(CanvasFilterInput)
-    case seq_of_CanvasFilterInput([CanvasFilterInput])
-
-    public var canvasFilterInput: CanvasFilterInput? {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput): return canvasFilterInput
-        default: return nil
-        }
-    }
-
-    public var seq_of_CanvasFilterInput: [CanvasFilterInput]? {
-        switch self {
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput): return seq_of_CanvasFilterInput
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilterInput: CanvasFilterInput = value.fromJSValue() {
-            return .canvasFilterInput(canvasFilterInput)
-        }
-        if let seq_of_CanvasFilterInput: [CanvasFilterInput] = value.fromJSValue() {
-            return .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilterInput(canvasFilterInput):
-            return canvasFilterInput.jsValue
-        case let .seq_of_CanvasFilterInput(seq_of_CanvasFilterInput):
-            return seq_of_CanvasFilterInput.jsValue
-        }
-    }
-}
-
-public protocol Any_CanvasFilter_or_String: ConvertibleToJSValue {}
-extension CanvasFilter: Any_CanvasFilter_or_String {}
-extension String: Any_CanvasFilter_or_String {}
-
-public enum CanvasFilter_or_String: JSValueCompatible, Any_CanvasFilter_or_String {
-    case canvasFilter(CanvasFilter)
-    case string(String)
-
-    public var canvasFilter: CanvasFilter? {
-        switch self {
-        case let .canvasFilter(canvasFilter): return canvasFilter
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let canvasFilter: CanvasFilter = value.fromJSValue() {
-            return .canvasFilter(canvasFilter)
-        }
-        if let string: String = value.fromJSValue() {
-            return .string(string)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .canvasFilter(canvasFilter):
-            return canvasFilter.jsValue
-        case let .string(string):
-            return string.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 {
-    case canvasGradient(CanvasGradient)
-    case canvasPattern(CanvasPattern)
-    case string(String)
-
-    public var canvasGradient: CanvasGradient? {
-        switch self {
-        case let .canvasGradient(canvasGradient): return canvasGradient
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_CanvasImageSource: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_CanvasImageSource {}
-extension HTMLOrSVGImageElement: Any_CanvasImageSource {}
-extension HTMLVideoElement: Any_CanvasImageSource {}
-extension ImageBitmap: Any_CanvasImageSource {}
-extension OffscreenCanvas: Any_CanvasImageSource {}
-extension VideoFrame: Any_CanvasImageSource {}
-
-public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case htmlOrSVGImageElement(HTMLOrSVGImageElement)
-    case htmlVideoElement(HTMLVideoElement)
-    case imageBitmap(ImageBitmap)
-    case offscreenCanvas(OffscreenCanvas)
-    case videoFrame(VideoFrame)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainBoolean: ConvertibleToJSValue {}
-extension Bool: Any_ConstrainBoolean {}
-extension ConstrainBooleanParameters: Any_ConstrainBoolean {}
-
-public enum ConstrainBoolean: JSValueCompatible, Any_ConstrainBoolean {
-    case bool(Bool)
-    case constrainBooleanParameters(ConstrainBooleanParameters)
-
-    public var bool: Bool? {
-        switch self {
-        case let .bool(bool): return bool
-        default: return nil
-        }
-    }
-
-    public var constrainBooleanParameters: ConstrainBooleanParameters? {
-        switch self {
-        case let .constrainBooleanParameters(constrainBooleanParameters): return constrainBooleanParameters
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let bool: Bool = value.fromJSValue() {
-            return .bool(bool)
-        }
-        if let constrainBooleanParameters: ConstrainBooleanParameters = value.fromJSValue() {
-            return .constrainBooleanParameters(constrainBooleanParameters)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Array: Any_ConstrainDOMString where Element == String {}
-
-public enum ConstrainDOMString: JSValueCompatible, Any_ConstrainDOMString {
-    case constrainDOMStringParameters(ConstrainDOMStringParameters)
-    case string(String)
-    case seq_of_String([String])
-
-    public var constrainDOMStringParameters: ConstrainDOMStringParameters? {
-        switch self {
-        case let .constrainDOMStringParameters(constrainDOMStringParameters): return constrainDOMStringParameters
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainDouble: ConvertibleToJSValue {}
-extension ConstrainDoubleRange: Any_ConstrainDouble {}
-extension Double: Any_ConstrainDouble {}
-
-public enum ConstrainDouble: JSValueCompatible, Any_ConstrainDouble {
-    case constrainDoubleRange(ConstrainDoubleRange)
-    case double(Double)
-
-    public var constrainDoubleRange: ConstrainDoubleRange? {
-        switch self {
-        case let .constrainDoubleRange(constrainDoubleRange): return constrainDoubleRange
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let constrainDoubleRange: ConstrainDoubleRange = value.fromJSValue() {
-            return .constrainDoubleRange(constrainDoubleRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ConstrainULong: ConvertibleToJSValue {}
-extension ConstrainULongRange: Any_ConstrainULong {}
-extension UInt32: Any_ConstrainULong {}
-
-public enum ConstrainULong: JSValueCompatible, Any_ConstrainULong {
-    case constrainULongRange(ConstrainULongRange)
-    case uInt32(UInt32)
-
-    public var constrainULongRange: ConstrainULongRange? {
-        switch self {
-        case let .constrainULongRange(constrainULongRange): return constrainULongRange
-        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 constrainULongRange: ConstrainULongRange = value.fromJSValue() {
-            return .constrainULongRange(constrainULongRange)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_DOMPointInit_or_Double: ConvertibleToJSValue {}
-extension DOMPointInit: Any_DOMPointInit_or_Double {}
-extension Double: Any_DOMPointInit_or_Double {}
-
-public enum DOMPointInit_or_Double: JSValueCompatible, Any_DOMPointInit_or_Double {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        default: return nil
-        }
-    }
-
-    public var double: Double? {
-        switch self {
-        case let .double(double): return double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {
-    case domPointInit(DOMPointInit)
-    case double(Double)
-    case seq_of_DOMPointInit_or_Double([DOMPointInit_or_Double])
-
-    public var domPointInit: DOMPointInit? {
-        switch self {
-        case let .domPointInit(domPointInit): return domPointInit
-        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
-        default: return nil
-        }
-    }
-
-    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 seq_of_DOMPointInit_or_Double: [DOMPointInit_or_Double] = value.fromJSValue() {
-            return .seq_of_DOMPointInit_or_Double(seq_of_DOMPointInit_or_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 .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 {}
-
-public enum Document_or_XMLHttpRequestBodyInit: JSValueCompatible, Any_Document_or_XMLHttpRequestBodyInit {
-    case document(Document)
-    case xmlHttpRequestBodyInit(XMLHttpRequestBodyInit)
-
-    public var document: Document? {
-        switch self {
-        case let .document(document): return document
-        default: return nil
-        }
-    }
-
-    public var xmlHttpRequestBodyInit: XMLHttpRequestBodyInit? {
-        switch self {
-        case let .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit): return xmlHttpRequestBodyInit
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let document: Document = value.fromJSValue() {
-            return .document(document)
-        }
-        if let xmlHttpRequestBodyInit: XMLHttpRequestBodyInit = value.fromJSValue() {
-            return .xmlHttpRequestBodyInit(xmlHttpRequestBodyInit)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ElementCreationOptions_or_String: JSValueCompatible, Any_ElementCreationOptions_or_String {
-    case elementCreationOptions(ElementCreationOptions)
-    case string(String)
-
-    public var elementCreationOptions: ElementCreationOptions? {
-        switch self {
-        case let .elementCreationOptions(elementCreationOptions): return elementCreationOptions
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let elementCreationOptions: ElementCreationOptions = value.fromJSValue() {
-            return .elementCreationOptions(elementCreationOptions)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Element_or_HTMLCollection: ConvertibleToJSValue {}
-extension Element: Any_Element_or_HTMLCollection {}
-extension HTMLCollection: Any_Element_or_HTMLCollection {}
-
-public enum Element_or_HTMLCollection: JSValueCompatible, Any_Element_or_HTMLCollection {
-    case element(Element)
-    case htmlCollection(HTMLCollection)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var htmlCollection: HTMLCollection? {
-        switch self {
-        case let .htmlCollection(htmlCollection): return htmlCollection
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_RadioNodeList: JSValueCompatible, Any_Element_or_RadioNodeList {
-    case element(Element)
-    case radioNodeList(RadioNodeList)
-
-    public var element: Element? {
-        switch self {
-        case let .element(element): return element
-        default: return nil
-        }
-    }
-
-    public var radioNodeList: RadioNodeList? {
-        switch self {
-        case let .radioNodeList(radioNodeList): return radioNodeList
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Element_or_Text: JSValueCompatible, Any_Element_or_Text {
-    case element(Element)
-    case text(Text)
-
-    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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Event_or_String: JSValueCompatible, Any_Event_or_String {
-    case event(Event)
-    case string(String)
-
-    public var event: Event? {
-        switch self {
-        case let .event(event): return event
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension String: Any_File_or_FormData_or_String {}
-
-public enum File_or_FormData_or_String: JSValueCompatible, Any_File_or_FormData_or_String {
-    case file(File)
-    case formData(FormData)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        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 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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_FormDataEntryValue: ConvertibleToJSValue {}
-extension File: Any_FormDataEntryValue {}
-extension String: Any_FormDataEntryValue {}
-
-public enum FormDataEntryValue: JSValueCompatible, Any_FormDataEntryValue {
-    case file(File)
-    case string(String)
-
-    public var file: File? {
-        switch self {
-        case let .file(file): return file
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-extension Element: Any_GeometryNode {}
-extension Text: Any_GeometryNode {}
-
-public enum GeometryNode: JSValueCompatible, Any_GeometryNode {
-    case cssPseudoElement(CSSPseudoElement)
-    case document(Document)
-    case element(Element)
-    case text(Text)
-
-    public var cssPseudoElement: CSSPseudoElement? {
-        switch self {
-        case let .cssPseudoElement(cssPseudoElement): return cssPseudoElement
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLCanvasElement_or_OffscreenCanvas: ConvertibleToJSValue {}
-extension HTMLCanvasElement: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-extension OffscreenCanvas: Any_HTMLCanvasElement_or_OffscreenCanvas {}
-
-public enum HTMLCanvasElement_or_OffscreenCanvas: JSValueCompatible, Any_HTMLCanvasElement_or_OffscreenCanvas {
-    case htmlCanvasElement(HTMLCanvasElement)
-    case offscreenCanvas(OffscreenCanvas)
-
-    public var htmlCanvasElement: HTMLCanvasElement? {
-        switch self {
-        case let .htmlCanvasElement(htmlCanvasElement): return htmlCanvasElement
-        default: return nil
-        }
-    }
-
-    public var offscreenCanvas: OffscreenCanvas? {
-        switch self {
-        case let .offscreenCanvas(offscreenCanvas): return offscreenCanvas
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlCanvasElement: HTMLCanvasElement = value.fromJSValue() {
-            return .htmlCanvasElement(htmlCanvasElement)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_HTMLElement_or_Int32: ConvertibleToJSValue {}
-extension HTMLElement: Any_HTMLElement_or_Int32 {}
-extension Int32: Any_HTMLElement_or_Int32 {}
-
-public enum HTMLElement_or_Int32: JSValueCompatible, Any_HTMLElement_or_Int32 {
-    case htmlElement(HTMLElement)
-    case int32(Int32)
-
-    public var htmlElement: HTMLElement? {
-        switch self {
-        case let .htmlElement(htmlElement): return htmlElement
-        default: return nil
-        }
-    }
-
-    public var int32: Int32? {
-        switch self {
-        case let .int32(int32): return int32
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum HTMLOptGroupElement_or_HTMLOptionElement: JSValueCompatible, Any_HTMLOptGroupElement_or_HTMLOptionElement {
-    case htmlOptGroupElement(HTMLOptGroupElement)
-    case htmlOptionElement(HTMLOptionElement)
-
-    public var htmlOptGroupElement: HTMLOptGroupElement? {
-        switch self {
-        case let .htmlOptGroupElement(htmlOptGroupElement): return htmlOptGroupElement
-        default: return nil
-        }
-    }
-
-    public var htmlOptionElement: HTMLOptionElement? {
-        switch self {
-        case let .htmlOptionElement(htmlOptionElement): return htmlOptionElement
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let htmlOptGroupElement: HTMLOptGroupElement = value.fromJSValue() {
-            return .htmlOptGroupElement(htmlOptGroupElement)
-        }
-        if let htmlOptionElement: HTMLOptionElement = value.fromJSValue() {
-            return .htmlOptionElement(htmlOptionElement)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 Array: Any_HeadersInit where Element == [String] {}
-
-public enum HeadersInit: JSValueCompatible, Any_HeadersInit {
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let record_String_to_String: [String: String] = value.fromJSValue() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-public protocol Any_ImageBitmapSource: ConvertibleToJSValue {}
-extension Blob: Any_ImageBitmapSource {}
-extension CanvasImageSource: Any_ImageBitmapSource {}
-extension ImageData: Any_ImageBitmapSource {}
-
-public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
-    case blob(Blob)
-    case canvasImageSource(CanvasImageSource)
-    case imageData(ImageData)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_ImageBufferSource: ConvertibleToJSValue {}
-extension BufferSource: Any_ImageBufferSource {}
-extension ReadableStream: Any_ImageBufferSource {}
-
-public enum ImageBufferSource: JSValueCompatible, Any_ImageBufferSource {
-    case bufferSource(BufferSource)
-    case readableStream(ReadableStream)
-
-    public var bufferSource: BufferSource? {
-        switch self {
-        case let .bufferSource(bufferSource): return bufferSource
-        default: return nil
-        }
-    }
-
-    public var readableStream: ReadableStream? {
-        switch self {
-        case let .readableStream(readableStream): return readableStream
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .bufferSource(bufferSource):
-            return bufferSource.jsValue
-        case let .readableStream(readableStream):
-            return readableStream.jsValue
-        }
-    }
-}
-
-public protocol Any_MessageEventSource: ConvertibleToJSValue {}
-extension MessagePort: Any_MessageEventSource {}
-extension ServiceWorker: Any_MessageEventSource {}
-extension WindowProxy: Any_MessageEventSource {}
-
-public enum MessageEventSource: JSValueCompatible, Any_MessageEventSource {
-    case messagePort(MessagePort)
-    case serviceWorker(ServiceWorker)
-    case windowProxy(WindowProxy)
-
-    public var messagePort: MessagePort? {
-        switch self {
-        case let .messagePort(messagePort): return messagePort
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-public protocol Any_Node_or_String: ConvertibleToJSValue {}
-extension Node: Any_Node_or_String {}
-extension String: Any_Node_or_String {}
-
-public enum Node_or_String: JSValueCompatible, Any_Node_or_String {
-    case node(Node)
-    case string(String)
-
-    public var node: Node? {
-        switch self {
-        case let .node(node): return node
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum Path2D_or_String: JSValueCompatible, Any_Path2D_or_String {
-    case path2D(Path2D)
-    case string(String)
-
-    public var path2D: Path2D? {
-        switch self {
-        case let .path2D(path2D): return path2D
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum ReadableStreamController: JSValueCompatible, Any_ReadableStreamController {
-    case readableByteStreamController(ReadableByteStreamController)
-    case readableStreamDefaultController(ReadableStreamDefaultController)
-
-    public var readableByteStreamController: ReadableByteStreamController? {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController): return readableByteStreamController
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultController: ReadableStreamDefaultController? {
-        switch self {
-        case let .readableStreamDefaultController(readableStreamDefaultController): return readableStreamDefaultController
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableByteStreamController: ReadableByteStreamController = value.fromJSValue() {
-            return .readableByteStreamController(readableByteStreamController)
-        }
-        if let readableStreamDefaultController: ReadableStreamDefaultController = value.fromJSValue() {
-            return .readableStreamDefaultController(readableStreamDefaultController)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .readableByteStreamController(readableByteStreamController):
-            return readableByteStreamController.jsValue
-        case let .readableStreamDefaultController(readableStreamDefaultController):
-            return readableStreamDefaultController.jsValue
-        }
-    }
-}
-
-public protocol Any_ReadableStreamReader: ConvertibleToJSValue {}
-extension ReadableStreamBYOBReader: Any_ReadableStreamReader {}
-extension ReadableStreamDefaultReader: Any_ReadableStreamReader {}
-
-public enum ReadableStreamReader: JSValueCompatible, Any_ReadableStreamReader {
-    case readableStreamBYOBReader(ReadableStreamBYOBReader)
-    case readableStreamDefaultReader(ReadableStreamDefaultReader)
-
-    public var readableStreamBYOBReader: ReadableStreamBYOBReader? {
-        switch self {
-        case let .readableStreamBYOBReader(readableStreamBYOBReader): return readableStreamBYOBReader
-        default: return nil
-        }
-    }
-
-    public var readableStreamDefaultReader: ReadableStreamDefaultReader? {
-        switch self {
-        case let .readableStreamDefaultReader(readableStreamDefaultReader): return readableStreamDefaultReader
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        if let readableStreamBYOBReader: ReadableStreamBYOBReader = value.fromJSValue() {
-            return .readableStreamBYOBReader(readableStreamBYOBReader)
-        }
-        if let readableStreamDefaultReader: ReadableStreamDefaultReader = value.fromJSValue() {
-            return .readableStreamDefaultReader(readableStreamDefaultReader)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        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 {}
-
-public enum RequestInfo: JSValueCompatible, Any_RequestInfo {
-    case request(Request)
-    case string(String)
-
-    public var request: Request? {
-        switch self {
-        case let .request(request): return request
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public static func construct(from value: JSValue) -> Self? {
-        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_String_or_WorkerOptions: ConvertibleToJSValue {}
-extension String: Any_String_or_WorkerOptions {}
-extension WorkerOptions: Any_String_or_WorkerOptions {}
-
-public enum String_or_WorkerOptions: JSValueCompatible, Any_String_or_WorkerOptions {
-    case string(String)
-    case workerOptions(WorkerOptions)
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var workerOptions: WorkerOptions? {
-        switch self {
-        case let .workerOptions(workerOptions): return workerOptions
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .string(string):
-            return string.jsValue
-        case let .workerOptions(workerOptions):
-            return workerOptions.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 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 {
-    case string(String)
-    case record_String_to_String([String: String])
-    case seq_of_seq_of_String([[String]])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var record_String_to_String: [String: String]? {
-        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
-        default: return nil
-        }
-    }
-
-    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() {
-            return .record_String_to_String(record_String_to_String)
-        }
-        if let seq_of_seq_of_String: [[String]] = value.fromJSValue() {
-            return .seq_of_seq_of_String(seq_of_seq_of_String)
-        }
-        return nil
-    }
-
-    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
-        }
-    }
-}
-
-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 {}
-
-public enum String_or_seq_of_Double: JSValueCompatible, Any_String_or_seq_of_Double {
-    case string(String)
-    case seq_of_Double([Double])
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        default: return nil
-        }
-    }
-
-    public var seq_of_Double: [Double]? {
-        switch self {
-        case let .seq_of_Double(seq_of_Double): return seq_of_Double
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}
-
-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])
-
-    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)
+        if let seq_of_String: [String] = value.fromJSValue() {
+            return .seq_of_String(seq_of_String)
         }
         return nil
     }
@@ -4163,129 +263,3 @@ public enum String_or_seq_of_String: JSValueCompatible, Any_String_or_seq_of_Str
         }
     }
 }
-
-public protocol Any_TimerHandler: ConvertibleToJSValue {}
-extension JSFunction: Any_TimerHandler {}
-extension String: Any_TimerHandler {}
-
-public enum TimerHandler: JSValueCompatible, Any_TimerHandler {
-    case jsFunction(JSFunction)
-    case string(String)
-
-    public var jsFunction: JSFunction? {
-        switch self {
-        case let .jsFunction(jsFunction): return jsFunction
-        default: return nil
-        }
-    }
-
-    public var string: String? {
-        switch self {
-        case let .string(string): return string
-        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)
-        }
-        return nil
-    }
-
-    public var jsValue: JSValue {
-        switch self {
-        case let .jsFunction(jsFunction):
-            return jsFunction.jsValue
-        case let .string(string):
-            return string.jsValue
-        }
-    }
-}
-
-public protocol Any_XMLHttpRequestBodyInit: ConvertibleToJSValue {}
-extension Blob: Any_XMLHttpRequestBodyInit {}
-extension BufferSource: Any_XMLHttpRequestBodyInit {}
-extension FormData: Any_XMLHttpRequestBodyInit {}
-extension String: Any_XMLHttpRequestBodyInit {}
-extension URLSearchParams: Any_XMLHttpRequestBodyInit {}
-
-public enum XMLHttpRequestBodyInit: JSValueCompatible, Any_XMLHttpRequestBodyInit {
-    case blob(Blob)
-    case bufferSource(BufferSource)
-    case formData(FormData)
-    case string(String)
-    case urlSearchParams(URLSearchParams)
-
-    public var blob: Blob? {
-        switch self {
-        case let .blob(blob): return blob
-        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
-        default: return nil
-        }
-    }
-
-    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)
-        }
-        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
-        }
-    }
-}