44
55import JavaScriptKit
66
7- public class Promise < Type> : JSBridgedClass {
7+ public class Global {
8+ public let jsObject = JSObject . global
9+ public let document : Document
810
9- public static var constructor : JSFunction { JSObject . global. Promise. function! }
10-
11- public let jsObject : JSObject
11+ init ( ) {
12+ document = Document ( unsafelyWrapping: jsObject. document. object!)
13+ }
14+ }
1215
13- public required init ( unsafelyWrapping jsObject: JSObject ) {
16+ public extension Document {
17+ var body : HTMLElement {
18+ . init( unsafelyWrapping: jsObject. body. object!)
19+ }
20+ }
1421
15- self . jsObject = jsObject
22+ public extension HTMLElement {
23+ convenience init ? ( from element: Element ) {
24+ self . init ( from: . object( element. jsObject) )
1625 }
1726}
1827
28+ public let global = Global ( )
29+
1930public class ReadableStream : JSBridgedClass {
2031
2132 public static var constructor : JSFunction { JSObject . global. ReadableStream. function! }
@@ -32,7 +43,7 @@ public class ReadableStream: JSBridgedClass {
3243 }
3344}
3445
35- @propertyWrapper public struct ClosureHandler < ArgumentType: JSValueCodable , ReturnType: JSValueCodable > {
46+ @propertyWrapper public struct ClosureHandler < ArgumentType: JSValueCompatible , ReturnType: JSValueCompatible > {
3647
3748 let jsObject : JSObject
3849 let name : String
@@ -52,7 +63,7 @@ public class ReadableStream: JSBridgedClass {
5263 }
5364}
5465
55- @propertyWrapper public struct OptionalClosureHandler < ArgumentType: JSValueCodable , ReturnType: JSValueCodable > {
66+ @propertyWrapper public struct OptionalClosureHandler < ArgumentType: JSValueCompatible , ReturnType: JSValueCompatible > {
5667
5768 let jsObject : JSObject
5869 let name : String
@@ -79,7 +90,7 @@ public class ReadableStream: JSBridgedClass {
7990 }
8091}
8192
82- @propertyWrapper public struct ReadWriteAttribute < Wrapped: JSValueCodable > {
93+ @propertyWrapper public struct ReadWriteAttribute < Wrapped: JSValueCompatible > {
8394
8495 let jsObject : JSObject
8596 let name : String
@@ -99,7 +110,7 @@ public class ReadableStream: JSBridgedClass {
99110 }
100111}
101112
102- @propertyWrapper public struct ReadonlyAttribute < Wrapped: JSValueConstructible > {
113+ @propertyWrapper public struct ReadonlyAttribute < Wrapped: ConstructibleFromJSValue > {
103114
104115 let jsObject : JSObject
105116 let name : String
@@ -116,7 +127,7 @@ public class ReadableStream: JSBridgedClass {
116127 }
117128}
118129
119- public class ValueIterableIterator < SequenceType: JSBridgedClass & Sequence > : IteratorProtocol where SequenceType. Element: JSValueConstructible {
130+ public class ValueIterableIterator < SequenceType: JSBridgedClass & Sequence > : IteratorProtocol where SequenceType. Element: ConstructibleFromJSValue {
120131
121132 private var index : Int = 0
122133 private let sequence : SequenceType
@@ -142,7 +153,7 @@ public protocol KeyValueSequence: Sequence where Element == (String, Value) {
142153 associatedtype Value
143154}
144155
145- public class PairIterableIterator < SequenceType: JSBridgedClass & KeyValueSequence > : IteratorProtocol where SequenceType. Value: JSValueConstructible {
156+ public class PairIterableIterator < SequenceType: JSBridgedClass & KeyValueSequence > : IteratorProtocol where SequenceType. Value: ConstructibleFromJSValue {
146157
147158 private let iterator : JSObject
148159 private let sequence : SequenceType
0 commit comments