Skip to content

Commit 9bb855b

Browse files
Rename stack ABI call sites to bridgeJSStackPop/Push
Co-authored-by: Yuta Saito <kateinoigakukun@users.noreply.github.com>
1 parent 83995af commit 9bb855b

File tree

16 files changed

+608
-591
lines changed

16 files changed

+608
-591
lines changed

Benchmarks/Sources/Generated/BridgeJS.swift

Lines changed: 102 additions & 102 deletions
Large diffs are not rendered by default.

Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ public class ExportSwift {
136136
liftingExpr = ExprSyntax("_BJS_Closure_\(raw: signature.mangleName).bridgeJSLift(\(raw: param.name))")
137137
case .swiftStruct(let structName):
138138
typeNameForIntrinsic = structName
139-
liftingExpr = ExprSyntax("\(raw: structName).bridgeJSLiftParameter()")
139+
liftingExpr = ExprSyntax("\(raw: structName).bridgeJSStackPop()")
140140
case .array:
141141
typeNameForIntrinsic = param.type.swiftType
142142
liftingExpr = StackCodegen().liftExpression(for: param.type)
@@ -739,17 +739,17 @@ struct StackCodegen {
739739
case .string, .int, .uint, .bool, .float, .double,
740740
.jsObject(nil), .jsValue, .swiftStruct, .swiftHeapObject, .unsafePointer,
741741
.swiftProtocol, .caseEnum, .associatedValueEnum, .rawValueEnum:
742-
return "\(raw: type.swiftType).bridgeJSLiftParameter()"
742+
return "\(raw: type.swiftType).bridgeJSStackPop()"
743743
case .jsObject(let className?):
744-
return "\(raw: className)(unsafelyWrapping: JSObject.bridgeJSLiftParameter())"
744+
return "\(raw: className)(unsafelyWrapping: JSObject.bridgeJSStackPop())"
745745
case .nullable(let wrappedType, let kind):
746746
return liftNullableExpression(wrappedType: wrappedType, kind: kind)
747747
case .array(let elementType):
748748
return liftArrayExpression(elementType: elementType)
749749
case .dictionary(let valueType):
750750
return liftDictionaryExpression(valueType: valueType)
751751
case .closure:
752-
return "JSObject.bridgeJSLiftParameter()"
752+
return "JSObject.bridgeJSStackPop()"
753753
case .void, .namespaceEnum:
754754
return "()"
755755
}
@@ -758,13 +758,13 @@ struct StackCodegen {
758758
func liftArrayExpression(elementType: BridgeType) -> ExprSyntax {
759759
switch elementType {
760760
case .jsObject(let className?) where className != "JSObject":
761-
return "[JSObject].bridgeJSLiftParameter().map { \(raw: className)(unsafelyWrapping: $0) }"
761+
return "[JSObject].bridgeJSStackPop().map { \(raw: className)(unsafelyWrapping: $0) }"
762762
case .nullable, .closure:
763763
return liftArrayExpressionInline(elementType: elementType)
764764
case .void, .namespaceEnum:
765765
fatalError("Invalid array element type: \(elementType)")
766766
default:
767-
return "[\(raw: elementType.swiftType)].bridgeJSLiftParameter()"
767+
return "[\(raw: elementType.swiftType)].bridgeJSStackPop()"
768768
}
769769
}
770770

@@ -790,7 +790,7 @@ struct StackCodegen {
790790
case .jsObject(let className?) where className != "JSObject":
791791
return """
792792
{
793-
let __dict = [String: JSObject].bridgeJSLiftParameter()
793+
let __dict = [String: JSObject].bridgeJSStackPop()
794794
return __dict.mapValues { \(raw: className)(unsafelyWrapping: $0) }
795795
}()
796796
"""
@@ -799,7 +799,7 @@ struct StackCodegen {
799799
case .void, .namespaceEnum:
800800
fatalError("Invalid dictionary value type: \(valueType)")
801801
default:
802-
return "[String: \(raw: valueType.swiftType)].bridgeJSLiftParameter()"
802+
return "[String: \(raw: valueType.swiftType)].bridgeJSStackPop()"
803803
}
804804
}
805805

@@ -813,7 +813,7 @@ struct StackCodegen {
813813
__result.reserveCapacity(__count)
814814
for _ in 0..<__count {
815815
let __value = \(valueLift)
816-
let __key = String.bridgeJSLiftParameter()
816+
let __key = String.bridgeJSStackPop()
817817
__result[__key] = __value
818818
}
819819
return __result
@@ -850,11 +850,11 @@ struct StackCodegen {
850850
case .string, .int, .uint, .bool, .float, .double, .jsValue,
851851
.jsObject(nil), .swiftHeapObject, .unsafePointer, .closure,
852852
.caseEnum, .rawValueEnum:
853-
return ["\(raw: accessor).bridgeJSLowerStackReturn()"]
853+
return ["\(raw: accessor).bridgeJSStackPush()"]
854854
case .jsObject(_?):
855-
return ["\(raw: accessor).jsObject.bridgeJSLowerStackReturn()"]
855+
return ["\(raw: accessor).jsObject.bridgeJSStackPush()"]
856856
case .swiftProtocol:
857-
return ["(\(raw: accessor) as! \(raw: type.swiftType)).bridgeJSLowerStackReturn()"]
857+
return ["(\(raw: accessor) as! \(raw: type.swiftType)).bridgeJSStackPush()"]
858858
case .associatedValueEnum, .swiftStruct:
859859
return ["\(raw: accessor).bridgeJSLowerReturn()"]
860860
case .nullable(let wrappedType, _):
@@ -1008,13 +1008,13 @@ struct StackCodegen {
10081008
) -> [CodeBlockItemSyntax] {
10091009
switch wrappedType {
10101010
case .jsObject(_?):
1011-
return ["\(raw: unwrappedVar).jsObject.bridgeJSLowerStackReturn()"]
1011+
return ["\(raw: unwrappedVar).jsObject.bridgeJSStackPush()"]
10121012
case .swiftProtocol:
1013-
return ["(\(raw: unwrappedVar) as! \(raw: wrappedType.swiftType)).bridgeJSLowerStackReturn()"]
1013+
return ["(\(raw: unwrappedVar) as! \(raw: wrappedType.swiftType)).bridgeJSStackPush()"]
10141014
case .string, .int, .uint, .bool, .float, .double, .jsValue,
10151015
.jsObject(nil), .swiftHeapObject, .unsafePointer, .closure,
10161016
.caseEnum, .rawValueEnum, .associatedValueEnum:
1017-
return ["\(raw: unwrappedVar).bridgeJSLowerStackReturn()"]
1017+
return ["\(raw: unwrappedVar).bridgeJSStackPush()"]
10181018
default:
10191019
return ["preconditionFailure(\"BridgeJS: unsupported optional wrapped type\")"]
10201020
}
@@ -1247,7 +1247,7 @@ struct StructCodegen {
12471247
defer {
12481248
_swift_js_struct_cleanup(__bjs_cleanupId)
12491249
}
1250-
self = Self.bridgeJSLiftParameter()
1250+
self = Self.bridgeJSStackPop()
12511251
}
12521252
"""
12531253
)

Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/ArrayTypes.swift

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -46,22 +46,22 @@ extension Status: _BridgedSwiftEnumNoPayload, _BridgedSwiftRawValueEnum {
4646

4747
extension Point: _BridgedSwiftStruct {
4848
@_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter() -> Point {
49-
let y = Double.bridgeJSLiftParameter()
50-
let x = Double.bridgeJSLiftParameter()
49+
let y = Double.bridgeJSStackPop()
50+
let x = Double.bridgeJSStackPop()
5151
return Point(x: x, y: y)
5252
}
5353

5454
@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() {
55-
self.x.bridgeJSLowerStackReturn()
56-
self.y.bridgeJSLowerStackReturn()
55+
self.x.bridgeJSStackPush()
56+
self.y.bridgeJSStackPush()
5757
}
5858

5959
init(unsafelyCopying jsObject: JSObject) {
6060
let __bjs_cleanupId = _bjs_struct_lower_Point(jsObject.bridgeJSLowerParameter())
6161
defer {
6262
_swift_js_struct_cleanup(__bjs_cleanupId)
6363
}
64-
self = Self.bridgeJSLiftParameter()
64+
self = Self.bridgeJSStackPop()
6565
}
6666

6767
func toJSObject() -> JSObject {
@@ -93,7 +93,7 @@ fileprivate func _bjs_struct_lift_Point() -> Int32 {
9393
@_cdecl("bjs_processIntArray")
9494
public func _bjs_processIntArray() -> Void {
9595
#if arch(wasm32)
96-
let ret = processIntArray(_: [Int].bridgeJSLiftParameter())
96+
let ret = processIntArray(_: [Int].bridgeJSStackPop())
9797
ret.bridgeJSLowerReturn()
9898
#else
9999
fatalError("Only available on WebAssembly")
@@ -104,7 +104,7 @@ public func _bjs_processIntArray() -> Void {
104104
@_cdecl("bjs_processStringArray")
105105
public func _bjs_processStringArray() -> Void {
106106
#if arch(wasm32)
107-
let ret = processStringArray(_: [String].bridgeJSLiftParameter())
107+
let ret = processStringArray(_: [String].bridgeJSStackPop())
108108
ret.bridgeJSLowerReturn()
109109
#else
110110
fatalError("Only available on WebAssembly")
@@ -115,7 +115,7 @@ public func _bjs_processStringArray() -> Void {
115115
@_cdecl("bjs_processDoubleArray")
116116
public func _bjs_processDoubleArray() -> Void {
117117
#if arch(wasm32)
118-
let ret = processDoubleArray(_: [Double].bridgeJSLiftParameter())
118+
let ret = processDoubleArray(_: [Double].bridgeJSStackPop())
119119
ret.bridgeJSLowerReturn()
120120
#else
121121
fatalError("Only available on WebAssembly")
@@ -126,7 +126,7 @@ public func _bjs_processDoubleArray() -> Void {
126126
@_cdecl("bjs_processBoolArray")
127127
public func _bjs_processBoolArray() -> Void {
128128
#if arch(wasm32)
129-
let ret = processBoolArray(_: [Bool].bridgeJSLiftParameter())
129+
let ret = processBoolArray(_: [Bool].bridgeJSStackPop())
130130
ret.bridgeJSLowerReturn()
131131
#else
132132
fatalError("Only available on WebAssembly")
@@ -137,7 +137,7 @@ public func _bjs_processBoolArray() -> Void {
137137
@_cdecl("bjs_processPointArray")
138138
public func _bjs_processPointArray() -> Void {
139139
#if arch(wasm32)
140-
let ret = processPointArray(_: [Point].bridgeJSLiftParameter())
140+
let ret = processPointArray(_: [Point].bridgeJSStackPop())
141141
ret.bridgeJSLowerReturn()
142142
#else
143143
fatalError("Only available on WebAssembly")
@@ -148,7 +148,7 @@ public func _bjs_processPointArray() -> Void {
148148
@_cdecl("bjs_processDirectionArray")
149149
public func _bjs_processDirectionArray() -> Void {
150150
#if arch(wasm32)
151-
let ret = processDirectionArray(_: [Direction].bridgeJSLiftParameter())
151+
let ret = processDirectionArray(_: [Direction].bridgeJSStackPop())
152152
ret.bridgeJSLowerReturn()
153153
#else
154154
fatalError("Only available on WebAssembly")
@@ -159,7 +159,7 @@ public func _bjs_processDirectionArray() -> Void {
159159
@_cdecl("bjs_processStatusArray")
160160
public func _bjs_processStatusArray() -> Void {
161161
#if arch(wasm32)
162-
let ret = processStatusArray(_: [Status].bridgeJSLiftParameter())
162+
let ret = processStatusArray(_: [Status].bridgeJSStackPop())
163163
ret.bridgeJSLowerReturn()
164164
#else
165165
fatalError("Only available on WebAssembly")
@@ -170,7 +170,7 @@ public func _bjs_processStatusArray() -> Void {
170170
@_cdecl("bjs_sumIntArray")
171171
public func _bjs_sumIntArray() -> Int32 {
172172
#if arch(wasm32)
173-
let ret = sumIntArray(_: [Int].bridgeJSLiftParameter())
173+
let ret = sumIntArray(_: [Int].bridgeJSStackPop())
174174
return ret.bridgeJSLowerReturn()
175175
#else
176176
fatalError("Only available on WebAssembly")
@@ -181,7 +181,7 @@ public func _bjs_sumIntArray() -> Int32 {
181181
@_cdecl("bjs_findFirstPoint")
182182
public func _bjs_findFirstPoint(_ matchingBytes: Int32, _ matchingLength: Int32) -> Void {
183183
#if arch(wasm32)
184-
let ret = findFirstPoint(_: [Point].bridgeJSLiftParameter(), matching: String.bridgeJSLiftParameter(matchingBytes, matchingLength))
184+
let ret = findFirstPoint(_: [Point].bridgeJSStackPop(), matching: String.bridgeJSLiftParameter(matchingBytes, matchingLength))
185185
return ret.bridgeJSLowerReturn()
186186
#else
187187
fatalError("Only available on WebAssembly")
@@ -192,7 +192,7 @@ public func _bjs_findFirstPoint(_ matchingBytes: Int32, _ matchingLength: Int32)
192192
@_cdecl("bjs_processUnsafeRawPointerArray")
193193
public func _bjs_processUnsafeRawPointerArray() -> Void {
194194
#if arch(wasm32)
195-
let ret = processUnsafeRawPointerArray(_: [UnsafeRawPointer].bridgeJSLiftParameter())
195+
let ret = processUnsafeRawPointerArray(_: [UnsafeRawPointer].bridgeJSStackPop())
196196
ret.bridgeJSLowerReturn()
197197
#else
198198
fatalError("Only available on WebAssembly")
@@ -203,7 +203,7 @@ public func _bjs_processUnsafeRawPointerArray() -> Void {
203203
@_cdecl("bjs_processUnsafeMutableRawPointerArray")
204204
public func _bjs_processUnsafeMutableRawPointerArray() -> Void {
205205
#if arch(wasm32)
206-
let ret = processUnsafeMutableRawPointerArray(_: [UnsafeMutableRawPointer].bridgeJSLiftParameter())
206+
let ret = processUnsafeMutableRawPointerArray(_: [UnsafeMutableRawPointer].bridgeJSStackPop())
207207
ret.bridgeJSLowerReturn()
208208
#else
209209
fatalError("Only available on WebAssembly")
@@ -214,7 +214,7 @@ public func _bjs_processUnsafeMutableRawPointerArray() -> Void {
214214
@_cdecl("bjs_processOpaquePointerArray")
215215
public func _bjs_processOpaquePointerArray() -> Void {
216216
#if arch(wasm32)
217-
let ret = processOpaquePointerArray(_: [OpaquePointer].bridgeJSLiftParameter())
217+
let ret = processOpaquePointerArray(_: [OpaquePointer].bridgeJSStackPop())
218218
ret.bridgeJSLowerReturn()
219219
#else
220220
fatalError("Only available on WebAssembly")
@@ -238,7 +238,7 @@ public func _bjs_processOptionalIntArray() -> Void {
238238
for __bjs_elem_ret in ret {
239239
let __bjs_isSome_ret_elem = __bjs_elem_ret != nil
240240
if let __bjs_unwrapped_ret_elem = __bjs_elem_ret {
241-
__bjs_unwrapped_ret_elem.bridgeJSLowerStackReturn()
241+
__bjs_unwrapped_ret_elem.bridgeJSStackPush()
242242
}
243243
_swift_js_push_i32(__bjs_isSome_ret_elem ? 1 : 0)
244244
}
@@ -265,7 +265,7 @@ public func _bjs_processOptionalStringArray() -> Void {
265265
for __bjs_elem_ret in ret {
266266
let __bjs_isSome_ret_elem = __bjs_elem_ret != nil
267267
if let __bjs_unwrapped_ret_elem = __bjs_elem_ret {
268-
__bjs_unwrapped_ret_elem.bridgeJSLowerStackReturn()
268+
__bjs_unwrapped_ret_elem.bridgeJSStackPush()
269269
}
270270
_swift_js_push_i32(__bjs_isSome_ret_elem ? 1 : 0)
271271
}
@@ -326,7 +326,7 @@ public func _bjs_processOptionalDirectionArray() -> Void {
326326
for __bjs_elem_ret in ret {
327327
let __bjs_isSome_ret_elem = __bjs_elem_ret != nil
328328
if let __bjs_unwrapped_ret_elem = __bjs_elem_ret {
329-
__bjs_unwrapped_ret_elem.bridgeJSLowerStackReturn()
329+
__bjs_unwrapped_ret_elem.bridgeJSStackPush()
330330
}
331331
_swift_js_push_i32(__bjs_isSome_ret_elem ? 1 : 0)
332332
}
@@ -353,7 +353,7 @@ public func _bjs_processOptionalStatusArray() -> Void {
353353
for __bjs_elem_ret in ret {
354354
let __bjs_isSome_ret_elem = __bjs_elem_ret != nil
355355
if let __bjs_unwrapped_ret_elem = __bjs_elem_ret {
356-
__bjs_unwrapped_ret_elem.bridgeJSLowerStackReturn()
356+
__bjs_unwrapped_ret_elem.bridgeJSStackPush()
357357
}
358358
_swift_js_push_i32(__bjs_isSome_ret_elem ? 1 : 0)
359359
}
@@ -367,7 +367,7 @@ public func _bjs_processOptionalStatusArray() -> Void {
367367
@_cdecl("bjs_processNestedIntArray")
368368
public func _bjs_processNestedIntArray() -> Void {
369369
#if arch(wasm32)
370-
let ret = processNestedIntArray(_: [[Int]].bridgeJSLiftParameter())
370+
let ret = processNestedIntArray(_: [[Int]].bridgeJSStackPop())
371371
ret.bridgeJSLowerReturn()
372372
#else
373373
fatalError("Only available on WebAssembly")
@@ -378,7 +378,7 @@ public func _bjs_processNestedIntArray() -> Void {
378378
@_cdecl("bjs_processNestedStringArray")
379379
public func _bjs_processNestedStringArray() -> Void {
380380
#if arch(wasm32)
381-
let ret = processNestedStringArray(_: [[String]].bridgeJSLiftParameter())
381+
let ret = processNestedStringArray(_: [[String]].bridgeJSStackPop())
382382
ret.bridgeJSLowerReturn()
383383
#else
384384
fatalError("Only available on WebAssembly")
@@ -389,7 +389,7 @@ public func _bjs_processNestedStringArray() -> Void {
389389
@_cdecl("bjs_processNestedPointArray")
390390
public func _bjs_processNestedPointArray() -> Void {
391391
#if arch(wasm32)
392-
let ret = processNestedPointArray(_: [[Point]].bridgeJSLiftParameter())
392+
let ret = processNestedPointArray(_: [[Point]].bridgeJSStackPop())
393393
ret.bridgeJSLowerReturn()
394394
#else
395395
fatalError("Only available on WebAssembly")
@@ -400,7 +400,7 @@ public func _bjs_processNestedPointArray() -> Void {
400400
@_cdecl("bjs_processItemArray")
401401
public func _bjs_processItemArray() -> Void {
402402
#if arch(wasm32)
403-
let ret = processItemArray(_: [Item].bridgeJSLiftParameter())
403+
let ret = processItemArray(_: [Item].bridgeJSStackPop())
404404
ret.bridgeJSLowerReturn()
405405
#else
406406
fatalError("Only available on WebAssembly")
@@ -411,7 +411,7 @@ public func _bjs_processItemArray() -> Void {
411411
@_cdecl("bjs_processNestedItemArray")
412412
public func _bjs_processNestedItemArray() -> Void {
413413
#if arch(wasm32)
414-
let ret = processNestedItemArray(_: [[Item]].bridgeJSLiftParameter())
414+
let ret = processNestedItemArray(_: [[Item]].bridgeJSStackPop())
415415
ret.bridgeJSLowerReturn()
416416
#else
417417
fatalError("Only available on WebAssembly")
@@ -422,7 +422,7 @@ public func _bjs_processNestedItemArray() -> Void {
422422
@_cdecl("bjs_processJSObjectArray")
423423
public func _bjs_processJSObjectArray() -> Void {
424424
#if arch(wasm32)
425-
let ret = processJSObjectArray(_: [JSObject].bridgeJSLiftParameter())
425+
let ret = processJSObjectArray(_: [JSObject].bridgeJSStackPop())
426426
ret.bridgeJSLowerReturn()
427427
#else
428428
fatalError("Only available on WebAssembly")
@@ -446,7 +446,7 @@ public func _bjs_processOptionalJSObjectArray() -> Void {
446446
for __bjs_elem_ret in ret {
447447
let __bjs_isSome_ret_elem = __bjs_elem_ret != nil
448448
if let __bjs_unwrapped_ret_elem = __bjs_elem_ret {
449-
__bjs_unwrapped_ret_elem.bridgeJSLowerStackReturn()
449+
__bjs_unwrapped_ret_elem.bridgeJSStackPush()
450450
}
451451
_swift_js_push_i32(__bjs_isSome_ret_elem ? 1 : 0)
452452
}
@@ -460,7 +460,7 @@ public func _bjs_processOptionalJSObjectArray() -> Void {
460460
@_cdecl("bjs_processNestedJSObjectArray")
461461
public func _bjs_processNestedJSObjectArray() -> Void {
462462
#if arch(wasm32)
463-
let ret = processNestedJSObjectArray(_: [[JSObject]].bridgeJSLiftParameter())
463+
let ret = processNestedJSObjectArray(_: [[JSObject]].bridgeJSStackPop())
464464
ret.bridgeJSLowerReturn()
465465
#else
466466
fatalError("Only available on WebAssembly")

0 commit comments

Comments
 (0)