Skip to content

Commit 7bb5907

Browse files
committed
Fix DOM.patch for compatibility with Embedded Swift
1. Use of a property wrapper replaced with direct accessors use; 2. Use of `override` is avoided in computed properties and functions; 3. Initializers made `public` for adoption in library clients
1 parent 6a3c164 commit 7bb5907

File tree

1 file changed

+26
-64
lines changed

1 file changed

+26
-64
lines changed

Patches/DOM.patch

Lines changed: 26 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,52 @@
1+
diff --git a/Sources/DOM/Generated.swift b/Sources/DOM/Generated.swift
2+
index 9fa75ba..0339568 100644
13
--- a/Sources/DOM/Generated.swift
24
+++ b/Sources/DOM/Generated.swift
3-
@@ -1007,8 +1007,15 @@ public class BeforeUnloadEvent: Event {
4-
super.init(unsafelyWrapping: jsObject)
5-
}
5+
@@ -1094,6 +1094,17 @@ public class BeforeUnloadEvent: Event {
6+
7+
public required init(unsafelyWrapping jsObject: JSObject) { super.init(unsafelyWrapping: jsObject) }
68

79
+ @available(*, unavailable)
810
+ override public var returnValue: Bool {
9-
+ get { !_returnValue.wrappedValue.isEmpty }
11+
+ get { !self.returnValueAsString.isEmpty }
1012
+ set {}
1113
+ }
1214
+
13-
@usableFromInline let _returnValue: ReadWriteAttribute<String>
14-
- @inlinable override public var returnValue: String {
1515
+ // renamed because `String` is not compatible with `Bool`
1616
+ @inlinable public var returnValueAsString: String {
17-
get { _returnValue.wrappedValue }
18-
set { _returnValue.wrappedValue = newValue }
19-
}
20-
@@ -7095,7 +7102,8 @@ public class HTMLFormControlsCollection: HTMLCollection {
21-
jsObject[key].fromJSValue()
22-
}
23-
24-
- @inlinable override public func namedItem(name: String) -> Element_or_RadioNodeList? {
25-
+ // `override` removed since the superclass returns a more constrained type `Element`
26-
+ @inlinable func namedItem(name: String) -> Element_or_RadioNodeList? {
27-
let this = jsObject
28-
return this[Strings.namedItem].function!(this: this, arguments: [_toJSValue(name)]).fromJSValue()
29-
}
30-
@@ -17153,7 +17161,6 @@ public class VisibilityStateEntry: PerformanceEntry {
31-
_name = ReadonlyAttribute(jsObject: jsObject, name: Strings.name)
32-
_entryType = ReadonlyAttribute(jsObject: jsObject, name: Strings.entryType)
33-
_startTime = ReadonlyAttribute(jsObject: jsObject, name: Strings.startTime)
34-
- _duration = ReadonlyAttribute(jsObject: jsObject, name: Strings.duration)
35-
super.init(unsafelyWrapping: jsObject)
36-
}
37-
38-
@@ -17166,8 +17173,8 @@ public class VisibilityStateEntry: PerformanceEntry {
39-
@usableFromInline let _startTime: ReadonlyAttribute<DOMHighResTimeStamp>
40-
@inlinable override public var startTime: DOMHighResTimeStamp { _startTime.wrappedValue }
41-
42-
- @usableFromInline let _duration: ReadonlyAttribute<UInt32>
43-
- @inlinable override public var duration: UInt32 { _duration.wrappedValue }
44-
+ // XXX: override of property `duration` removed because the type here is UInt32 but the
45-
+ // type in the superclass is DOMHighResTimestamp (Double).
17+
+ get { self.jsObject[Strings.returnValue].string! }
18+
+ set { self.jsObject[Strings.returnValue] = .string(newValue) }
19+
+ }
4620
}
4721

48-
public class VisualViewport: EventTarget {
49-
@@ -20687,19 +20694,9 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
22+
public enum BitrateMode: JSString, JSValueCompatible {
23+
@@ -24231,14 +24242,6 @@ public enum CanvasImageSource: JSValueCompatible, Any_CanvasImageSource {
24+
let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
5025
self = val
5126
}
52-
53-
- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) {
54-
- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
55-
- self = val
56-
- }
57-
-
58-
init(_ htmlImageElement: HTMLImageElement) {
27+
- public init(_ htmlImageElement: HTMLImageElement) {
5928
- let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement)
6029
- self = .init(val)
6130
- }
62-
-
63-
- init(_ svgImageElement: SVGImageElement) {
31+
- public init(_ svgImageElement: SVGImageElement) {
6432
- let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement)
6533
- self = .init(val)
66-
+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement)
67-
+ self = val
68-
}
69-
70-
init(_ htmlVideoElement: HTMLVideoElement) {
71-
@@ -21947,18 +21944,8 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
34+
- }
35+
public init(_ htmlVideoElement: HTMLVideoElement) {
36+
let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement)
37+
self = val
38+
@@ -25289,14 +25292,6 @@ public enum ImageBitmapSource: JSValueCompatible, Any_ImageBitmapSource {
39+
let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
7240
self = .init(val)
7341
}
74-
75-
- init(_ htmlOrSVGImageElement: HTMLOrSVGImageElement) {
76-
- let val: CanvasImageSource = .htmlOrSVGImageElement(htmlOrSVGImageElement)
77-
- self = .init(val)
78-
- }
79-
-
80-
init(_ htmlImageElement: HTMLImageElement) {
42+
- public init(_ htmlImageElement: HTMLImageElement) {
8143
- let val: HTMLOrSVGImageElement = .htmlImageElement(htmlImageElement)
8244
- self = .init(val)
8345
- }
84-
-
85-
- init(_ svgImageElement: SVGImageElement) {
46+
- public init(_ svgImageElement: SVGImageElement) {
8647
- let val: HTMLOrSVGImageElement = .svgImageElement(svgImageElement)
87-
+ let val: CanvasImageSource = .htmlOrSVGImageElement(htmlImageElement)
48+
- self = .init(val)
49+
- }
50+
public init(_ htmlVideoElement: HTMLVideoElement) {
51+
let val: CanvasImageSource = .htmlVideoElement(htmlVideoElement)
8852
self = .init(val)
89-
}
90-

0 commit comments

Comments
 (0)