Skip to content

Commit 45d949d

Browse files
committed
NFC: BridgeJS: Refactor to descriptor-driven codegen, remove dead cleanup infrastructure
1 parent 76e0362 commit 45d949d

File tree

63 files changed

+3739
-5056
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+3739
-5056
lines changed

Benchmarks/Sources/Generated/BridgeJS.swift

Lines changed: 15 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -132,10 +132,7 @@ extension SimpleStruct: _BridgedSwiftStruct {
132132
}
133133

134134
init(unsafelyCopying jsObject: JSObject) {
135-
let __bjs_cleanupId = _bjs_struct_lower_SimpleStruct(jsObject.bridgeJSLowerParameter())
136-
defer {
137-
_swift_js_struct_cleanup(__bjs_cleanupId)
138-
}
135+
_bjs_struct_lower_SimpleStruct(jsObject.bridgeJSLowerParameter())
139136
self = Self.bridgeJSStackPop()
140137
}
141138

@@ -148,9 +145,9 @@ extension SimpleStruct: _BridgedSwiftStruct {
148145

149146
#if arch(wasm32)
150147
@_extern(wasm, module: "bjs", name: "swift_js_struct_lower_SimpleStruct")
151-
fileprivate func _bjs_struct_lower_SimpleStruct(_ objectId: Int32) -> Int32
148+
fileprivate func _bjs_struct_lower_SimpleStruct(_ objectId: Int32) -> Void
152149
#else
153-
fileprivate func _bjs_struct_lower_SimpleStruct(_ objectId: Int32) -> Int32 {
150+
fileprivate func _bjs_struct_lower_SimpleStruct(_ objectId: Int32) -> Void {
154151
fatalError("Only available on WebAssembly")
155152
}
156153
#endif
@@ -179,10 +176,7 @@ extension Address: _BridgedSwiftStruct {
179176
}
180177

181178
init(unsafelyCopying jsObject: JSObject) {
182-
let __bjs_cleanupId = _bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
183-
defer {
184-
_swift_js_struct_cleanup(__bjs_cleanupId)
185-
}
179+
_bjs_struct_lower_Address(jsObject.bridgeJSLowerParameter())
186180
self = Self.bridgeJSStackPop()
187181
}
188182

@@ -195,9 +189,9 @@ extension Address: _BridgedSwiftStruct {
195189

196190
#if arch(wasm32)
197191
@_extern(wasm, module: "bjs", name: "swift_js_struct_lower_Address")
198-
fileprivate func _bjs_struct_lower_Address(_ objectId: Int32) -> Int32
192+
fileprivate func _bjs_struct_lower_Address(_ objectId: Int32) -> Void
199193
#else
200-
fileprivate func _bjs_struct_lower_Address(_ objectId: Int32) -> Int32 {
194+
fileprivate func _bjs_struct_lower_Address(_ objectId: Int32) -> Void {
201195
fatalError("Only available on WebAssembly")
202196
}
203197
#endif
@@ -232,10 +226,7 @@ extension Person: _BridgedSwiftStruct {
232226
}
233227

234228
init(unsafelyCopying jsObject: JSObject) {
235-
let __bjs_cleanupId = _bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
236-
defer {
237-
_swift_js_struct_cleanup(__bjs_cleanupId)
238-
}
229+
_bjs_struct_lower_Person(jsObject.bridgeJSLowerParameter())
239230
self = Self.bridgeJSStackPop()
240231
}
241232

@@ -248,9 +239,9 @@ extension Person: _BridgedSwiftStruct {
248239

249240
#if arch(wasm32)
250241
@_extern(wasm, module: "bjs", name: "swift_js_struct_lower_Person")
251-
fileprivate func _bjs_struct_lower_Person(_ objectId: Int32) -> Int32
242+
fileprivate func _bjs_struct_lower_Person(_ objectId: Int32) -> Void
252243
#else
253-
fileprivate func _bjs_struct_lower_Person(_ objectId: Int32) -> Int32 {
244+
fileprivate func _bjs_struct_lower_Person(_ objectId: Int32) -> Void {
254245
fatalError("Only available on WebAssembly")
255246
}
256247
#endif
@@ -285,10 +276,7 @@ extension ComplexStruct: _BridgedSwiftStruct {
285276
}
286277

287278
init(unsafelyCopying jsObject: JSObject) {
288-
let __bjs_cleanupId = _bjs_struct_lower_ComplexStruct(jsObject.bridgeJSLowerParameter())
289-
defer {
290-
_swift_js_struct_cleanup(__bjs_cleanupId)
291-
}
279+
_bjs_struct_lower_ComplexStruct(jsObject.bridgeJSLowerParameter())
292280
self = Self.bridgeJSStackPop()
293281
}
294282

@@ -301,9 +289,9 @@ extension ComplexStruct: _BridgedSwiftStruct {
301289

302290
#if arch(wasm32)
303291
@_extern(wasm, module: "bjs", name: "swift_js_struct_lower_ComplexStruct")
304-
fileprivate func _bjs_struct_lower_ComplexStruct(_ objectId: Int32) -> Int32
292+
fileprivate func _bjs_struct_lower_ComplexStruct(_ objectId: Int32) -> Void
305293
#else
306-
fileprivate func _bjs_struct_lower_ComplexStruct(_ objectId: Int32) -> Int32 {
294+
fileprivate func _bjs_struct_lower_ComplexStruct(_ objectId: Int32) -> Void {
307295
fatalError("Only available on WebAssembly")
308296
}
309297
#endif
@@ -330,10 +318,7 @@ extension Point: _BridgedSwiftStruct {
330318
}
331319

332320
init(unsafelyCopying jsObject: JSObject) {
333-
let __bjs_cleanupId = _bjs_struct_lower_Point(jsObject.bridgeJSLowerParameter())
334-
defer {
335-
_swift_js_struct_cleanup(__bjs_cleanupId)
336-
}
321+
_bjs_struct_lower_Point(jsObject.bridgeJSLowerParameter())
337322
self = Self.bridgeJSStackPop()
338323
}
339324

@@ -346,9 +331,9 @@ extension Point: _BridgedSwiftStruct {
346331

347332
#if arch(wasm32)
348333
@_extern(wasm, module: "bjs", name: "swift_js_struct_lower_Point")
349-
fileprivate func _bjs_struct_lower_Point(_ objectId: Int32) -> Int32
334+
fileprivate func _bjs_struct_lower_Point(_ objectId: Int32) -> Void
350335
#else
351-
fileprivate func _bjs_struct_lower_Point(_ objectId: Int32) -> Int32 {
336+
fileprivate func _bjs_struct_lower_Point(_ objectId: Int32) -> Void {
352337
fatalError("Only available on WebAssembly")
353338
}
354339
#endif

Plugins/BridgeJS/Sources/BridgeJSCore/ClosureCodegen.swift

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -123,23 +123,23 @@ public struct ClosureCodegen {
123123

124124
for (index, paramType) in signature.parameters.enumerated() {
125125
let paramName = "param\(index)"
126-
let liftInfo = try paramType.liftParameterInfo()
126+
let liftParams = try paramType.liftParameterInfo()
127127

128-
for (argName, wasmType) in liftInfo.parameters {
128+
for (argName, wasmType) in liftParams {
129129
let fullName =
130-
liftInfo.parameters.count > 1 ? "\(paramName)\(argName.capitalizedFirstLetter)" : paramName
130+
liftParams.count > 1 ? "\(paramName)\(argName.capitalizedFirstLetter)" : paramName
131131
abiParams.append((fullName, wasmType))
132132
}
133133

134-
let argNames = liftInfo.parameters.map { (argName, _) in
135-
liftInfo.parameters.count > 1 ? "\(paramName)\(argName.capitalizedFirstLetter)" : paramName
134+
let argNames = liftParams.map { (argName, _) in
135+
liftParams.count > 1 ? "\(paramName)\(argName.capitalizedFirstLetter)" : paramName
136136
}
137137
liftedParams.append("\(paramType.swiftType).bridgeJSLiftParameter(\(argNames.joined(separator: ", ")))")
138138
}
139139

140140
let closureCallExpr = ExprSyntax("closure(\(raw: liftedParams.joined(separator: ", ")))")
141141

142-
let abiReturnWasmType = try signature.returnType.loweringReturnInfo().returnType
142+
let abiReturnWasmType = try signature.returnType.loweringReturnInfo()
143143

144144
// Build signature using SwiftSignatureBuilder
145145
let funcSignature = SwiftSignatureBuilder.buildABIFunctionSignature(

0 commit comments

Comments
 (0)