Skip to content

Commit 57160fe

Browse files
BridgeJS: Remove unnecessary helper enums for struct bridging (#532)
1 parent 9c8d67d commit 57160fe

File tree

6 files changed

+26
-279
lines changed

6 files changed

+26
-279
lines changed

Benchmarks/Sources/Generated/BridgeJS.swift

Lines changed: 4 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,7 @@ extension SimpleStruct: _BridgedSwiftStruct {
269269
}
270270

271271
init(unsafelyCopying jsObject: JSObject) {
272-
let __bjs_cleanupId = _SimpleStructHelpers.lower(jsObject)
272+
let __bjs_cleanupId = _bjs_struct_lower_SimpleStruct(jsObject.bridgeJSLowerParameter())
273273
defer {
274274
_swift_js_struct_cleanup(__bjs_cleanupId)
275275
}
@@ -279,16 +279,6 @@ extension SimpleStruct: _BridgedSwiftStruct {
279279
func toJSObject() -> JSObject {
280280
var __bjs_self = self
281281
__bjs_self.bridgeJSLowerReturn()
282-
return _SimpleStructHelpers.raise()
283-
}
284-
}
285-
286-
fileprivate enum _SimpleStructHelpers {
287-
static func lower(_ jsObject: JSObject) -> Int32 {
288-
return _bjs_struct_lower_SimpleStruct(jsObject.bridgeJSLowerParameter())
289-
}
290-
291-
static func raise() -> JSObject {
292282
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_SimpleStruct()))
293283
}
294284
}
@@ -332,7 +322,7 @@ extension Address: _BridgedSwiftStruct {
332322
}
333323

334324
init(unsafelyCopying jsObject: JSObject) {
335-
let __bjs_cleanupId = _AddressHelpers.lower(jsObject)
325+
let __bjs_cleanupId = _bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
336326
defer {
337327
_swift_js_struct_cleanup(__bjs_cleanupId)
338328
}
@@ -342,16 +332,6 @@ extension Address: _BridgedSwiftStruct {
342332
func toJSObject() -> JSObject {
343333
var __bjs_self = self
344334
__bjs_self.bridgeJSLowerReturn()
345-
return _AddressHelpers.raise()
346-
}
347-
}
348-
349-
fileprivate enum _AddressHelpers {
350-
static func lower(_ jsObject: JSObject) -> Int32 {
351-
return _bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
352-
}
353-
354-
static func raise() -> JSObject {
355335
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Address()))
356336
}
357337
}
@@ -401,7 +381,7 @@ extension Person: _BridgedSwiftStruct {
401381
}
402382

403383
init(unsafelyCopying jsObject: JSObject) {
404-
let __bjs_cleanupId = _PersonHelpers.lower(jsObject)
384+
let __bjs_cleanupId = _bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
405385
defer {
406386
_swift_js_struct_cleanup(__bjs_cleanupId)
407387
}
@@ -411,16 +391,6 @@ extension Person: _BridgedSwiftStruct {
411391
func toJSObject() -> JSObject {
412392
var __bjs_self = self
413393
__bjs_self.bridgeJSLowerReturn()
414-
return _PersonHelpers.raise()
415-
}
416-
}
417-
418-
fileprivate enum _PersonHelpers {
419-
static func lower(_ jsObject: JSObject) -> Int32 {
420-
return _bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
421-
}
422-
423-
static func raise() -> JSObject {
424394
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Person()))
425395
}
426396
}
@@ -473,7 +443,7 @@ extension ComplexStruct: _BridgedSwiftStruct {
473443
}
474444

475445
init(unsafelyCopying jsObject: JSObject) {
476-
let __bjs_cleanupId = _ComplexStructHelpers.lower(jsObject)
446+
let __bjs_cleanupId = _bjs_struct_lower_ComplexStruct(jsObject.bridgeJSLowerParameter())
477447
defer {
478448
_swift_js_struct_cleanup(__bjs_cleanupId)
479449
}
@@ -483,16 +453,6 @@ extension ComplexStruct: _BridgedSwiftStruct {
483453
func toJSObject() -> JSObject {
484454
var __bjs_self = self
485455
__bjs_self.bridgeJSLowerReturn()
486-
return _ComplexStructHelpers.raise()
487-
}
488-
}
489-
490-
fileprivate enum _ComplexStructHelpers {
491-
static func lower(_ jsObject: JSObject) -> Int32 {
492-
return _bjs_struct_lower_ComplexStruct(jsObject.bridgeJSLowerParameter())
493-
}
494-
495-
static func raise() -> JSObject {
496456
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_ComplexStruct()))
497457
}
498458
}

Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift

Lines changed: 2 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1157,7 +1157,6 @@ struct StructCodegen {
11571157
let lowerCode = generateStructLowerCode(structDef: structDef)
11581158
let accessControl = structDef.explicitAccessControl.map { "\($0) " } ?? ""
11591159

1160-
let helpersTypeName = "_\(structDef.name)Helpers"
11611160
let lowerExternName = "swift_js_struct_lower_\(structDef.name)"
11621161
let raiseExternName = "swift_js_struct_raise_\(structDef.name)"
11631162
let lowerFunctionName = "_bjs_struct_lower_\(structDef.name)"
@@ -1174,26 +1173,14 @@ struct StructCodegen {
11741173
}
11751174
11761175
\(raw: accessControl)init(unsafelyCopying jsObject: JSObject) {
1177-
let __bjs_cleanupId = \(raw: helpersTypeName).lower(jsObject)
1176+
let __bjs_cleanupId = \(raw: lowerFunctionName)(jsObject.bridgeJSLowerParameter())
11781177
defer { _swift_js_struct_cleanup(__bjs_cleanupId) }
11791178
self = Self.bridgeJSLiftParameter()
11801179
}
11811180
11821181
\(raw: accessControl)func toJSObject() -> JSObject {
11831182
var __bjs_self = self
11841183
__bjs_self.bridgeJSLowerReturn()
1185-
return \(raw: helpersTypeName).raise()
1186-
}
1187-
}
1188-
"""
1189-
1190-
let helpersType: DeclSyntax = """
1191-
fileprivate enum \(raw: helpersTypeName) {
1192-
static func lower(_ jsObject: JSObject) -> Int32 {
1193-
return \(raw: lowerFunctionName)(jsObject.bridgeJSLowerParameter())
1194-
}
1195-
1196-
static func raise() -> JSObject {
11971184
return JSObject(id: UInt32(bitPattern: \(raw: raiseFunctionName)()))
11981185
}
11991186
}
@@ -1216,7 +1203,7 @@ struct StructCodegen {
12161203
)
12171204
)
12181205

1219-
return [bridgedStructExtension, helpersType, lowerExternDecl, raiseExternDecl]
1206+
return [bridgedStructExtension, lowerExternDecl, raiseExternDecl]
12201207
}
12211208

12221209
private static func renderStructExtern(

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/DefaultParameters.swift

Lines changed: 2 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ extension Config: _BridgedSwiftStruct {
5555
}
5656

5757
init(unsafelyCopying jsObject: JSObject) {
58-
let __bjs_cleanupId = _ConfigHelpers.lower(jsObject)
58+
let __bjs_cleanupId = _bjs_struct_lower_Config(jsObject.bridgeJSLowerParameter())
5959
defer {
6060
_swift_js_struct_cleanup(__bjs_cleanupId)
6161
}
@@ -65,16 +65,6 @@ extension Config: _BridgedSwiftStruct {
6565
func toJSObject() -> JSObject {
6666
var __bjs_self = self
6767
__bjs_self.bridgeJSLowerReturn()
68-
return _ConfigHelpers.raise()
69-
}
70-
}
71-
72-
fileprivate enum _ConfigHelpers {
73-
static func lower(_ jsObject: JSObject) -> Int32 {
74-
return _bjs_struct_lower_Config(jsObject.bridgeJSLowerParameter())
75-
}
76-
77-
static func raise() -> JSObject {
7868
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Config()))
7969
}
8070
}
@@ -108,7 +98,7 @@ extension MathOperations: _BridgedSwiftStruct {
10898
}
10999

110100
init(unsafelyCopying jsObject: JSObject) {
111-
let __bjs_cleanupId = _MathOperationsHelpers.lower(jsObject)
101+
let __bjs_cleanupId = _bjs_struct_lower_MathOperations(jsObject.bridgeJSLowerParameter())
112102
defer {
113103
_swift_js_struct_cleanup(__bjs_cleanupId)
114104
}
@@ -118,16 +108,6 @@ extension MathOperations: _BridgedSwiftStruct {
118108
func toJSObject() -> JSObject {
119109
var __bjs_self = self
120110
__bjs_self.bridgeJSLowerReturn()
121-
return _MathOperationsHelpers.raise()
122-
}
123-
}
124-
125-
fileprivate enum _MathOperationsHelpers {
126-
static func lower(_ jsObject: JSObject) -> Int32 {
127-
return _bjs_struct_lower_MathOperations(jsObject.bridgeJSLowerParameter())
128-
}
129-
130-
static func raise() -> JSObject {
131111
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_MathOperations()))
132112
}
133113
}

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftStruct.swift

Lines changed: 5 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ extension DataPoint: _BridgedSwiftStruct {
2828
}
2929

3030
init(unsafelyCopying jsObject: JSObject) {
31-
let __bjs_cleanupId = _DataPointHelpers.lower(jsObject)
31+
let __bjs_cleanupId = _bjs_struct_lower_DataPoint(jsObject.bridgeJSLowerParameter())
3232
defer {
3333
_swift_js_struct_cleanup(__bjs_cleanupId)
3434
}
@@ -38,16 +38,6 @@ extension DataPoint: _BridgedSwiftStruct {
3838
func toJSObject() -> JSObject {
3939
var __bjs_self = self
4040
__bjs_self.bridgeJSLowerReturn()
41-
return _DataPointHelpers.raise()
42-
}
43-
}
44-
45-
fileprivate enum _DataPointHelpers {
46-
static func lower(_ jsObject: JSObject) -> Int32 {
47-
return _bjs_struct_lower_DataPoint(jsObject.bridgeJSLowerParameter())
48-
}
49-
50-
static func raise() -> JSObject {
5141
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_DataPoint()))
5242
}
5343
}
@@ -106,7 +96,7 @@ extension Address: _BridgedSwiftStruct {
10696
}
10797

10898
init(unsafelyCopying jsObject: JSObject) {
109-
let __bjs_cleanupId = _AddressHelpers.lower(jsObject)
99+
let __bjs_cleanupId = _bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
110100
defer {
111101
_swift_js_struct_cleanup(__bjs_cleanupId)
112102
}
@@ -116,16 +106,6 @@ extension Address: _BridgedSwiftStruct {
116106
func toJSObject() -> JSObject {
117107
var __bjs_self = self
118108
__bjs_self.bridgeJSLowerReturn()
119-
return _AddressHelpers.raise()
120-
}
121-
}
122-
123-
fileprivate enum _AddressHelpers {
124-
static func lower(_ jsObject: JSObject) -> Int32 {
125-
return _bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
126-
}
127-
128-
static func raise() -> JSObject {
129109
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Address()))
130110
}
131111
}
@@ -175,7 +155,7 @@ extension Person: _BridgedSwiftStruct {
175155
}
176156

177157
init(unsafelyCopying jsObject: JSObject) {
178-
let __bjs_cleanupId = _PersonHelpers.lower(jsObject)
158+
let __bjs_cleanupId = _bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
179159
defer {
180160
_swift_js_struct_cleanup(__bjs_cleanupId)
181161
}
@@ -185,16 +165,6 @@ extension Person: _BridgedSwiftStruct {
185165
func toJSObject() -> JSObject {
186166
var __bjs_self = self
187167
__bjs_self.bridgeJSLowerReturn()
188-
return _PersonHelpers.raise()
189-
}
190-
}
191-
192-
fileprivate enum _PersonHelpers {
193-
static func lower(_ jsObject: JSObject) -> Int32 {
194-
return _bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
195-
}
196-
197-
static func raise() -> JSObject {
198168
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Person()))
199169
}
200170
}
@@ -230,7 +200,7 @@ extension Session: _BridgedSwiftStruct {
230200
}
231201

232202
init(unsafelyCopying jsObject: JSObject) {
233-
let __bjs_cleanupId = _SessionHelpers.lower(jsObject)
203+
let __bjs_cleanupId = _bjs_struct_lower_Session(jsObject.bridgeJSLowerParameter())
234204
defer {
235205
_swift_js_struct_cleanup(__bjs_cleanupId)
236206
}
@@ -240,16 +210,6 @@ extension Session: _BridgedSwiftStruct {
240210
func toJSObject() -> JSObject {
241211
var __bjs_self = self
242212
__bjs_self.bridgeJSLowerReturn()
243-
return _SessionHelpers.raise()
244-
}
245-
}
246-
247-
fileprivate enum _SessionHelpers {
248-
static func lower(_ jsObject: JSObject) -> Int32 {
249-
return _bjs_struct_lower_Session(jsObject.bridgeJSLowerParameter())
250-
}
251-
252-
static func raise() -> JSObject {
253213
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_Session()))
254214
}
255215
}
@@ -282,7 +242,7 @@ extension ConfigStruct: _BridgedSwiftStruct {
282242
}
283243

284244
init(unsafelyCopying jsObject: JSObject) {
285-
let __bjs_cleanupId = _ConfigStructHelpers.lower(jsObject)
245+
let __bjs_cleanupId = _bjs_struct_lower_ConfigStruct(jsObject.bridgeJSLowerParameter())
286246
defer {
287247
_swift_js_struct_cleanup(__bjs_cleanupId)
288248
}
@@ -292,16 +252,6 @@ extension ConfigStruct: _BridgedSwiftStruct {
292252
func toJSObject() -> JSObject {
293253
var __bjs_self = self
294254
__bjs_self.bridgeJSLowerReturn()
295-
return _ConfigStructHelpers.raise()
296-
}
297-
}
298-
299-
fileprivate enum _ConfigStructHelpers {
300-
static func lower(_ jsObject: JSObject) -> Int32 {
301-
return _bjs_struct_lower_ConfigStruct(jsObject.bridgeJSLowerParameter())
302-
}
303-
304-
static func raise() -> JSObject {
305255
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_ConfigStruct()))
306256
}
307257
}

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/UnsafePointer.swift

Lines changed: 1 addition & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ extension PointerFields: _BridgedSwiftStruct {
1717
}
1818

1919
init(unsafelyCopying jsObject: JSObject) {
20-
let __bjs_cleanupId = _PointerFieldsHelpers.lower(jsObject)
20+
let __bjs_cleanupId = _bjs_struct_lower_PointerFields(jsObject.bridgeJSLowerParameter())
2121
defer {
2222
_swift_js_struct_cleanup(__bjs_cleanupId)
2323
}
@@ -27,16 +27,6 @@ extension PointerFields: _BridgedSwiftStruct {
2727
func toJSObject() -> JSObject {
2828
var __bjs_self = self
2929
__bjs_self.bridgeJSLowerReturn()
30-
return _PointerFieldsHelpers.raise()
31-
}
32-
}
33-
34-
fileprivate enum _PointerFieldsHelpers {
35-
static func lower(_ jsObject: JSObject) -> Int32 {
36-
return _bjs_struct_lower_PointerFields(jsObject.bridgeJSLowerParameter())
37-
}
38-
39-
static func raise() -> JSObject {
4030
return JSObject(id: UInt32(bitPattern: _bjs_struct_raise_PointerFields()))
4131
}
4232
}

0 commit comments

Comments
 (0)