From e129b41a23d407b8b0f77cf1375e13674031b0d9 Mon Sep 17 00:00:00 2001 From: Yuta Saito Date: Thu, 12 Feb 2026 15:28:49 +0900 Subject: [PATCH] [NFC] BridgeJS: Minimize enum with assoc values code generation --- Benchmarks/Sources/Generated/BridgeJS.swift | 94 +---- .../Sources/BridgeJSCore/ExportSwift.swift | 63 +--- .../EnumAssociatedValue.swift | 338 +---------------- .../BridgeJSCodegenTests/Protocol.swift | 27 +- .../StaticFunctions.Global.swift | 27 +- .../StaticFunctions.swift | 27 +- .../BridgeJSCodegenTests/SwiftClosure.swift | 38 +- .../JavaScriptKit/BridgeJSIntrinsics.swift | 33 +- .../Generated/BridgeJS.swift | 353 +----------------- 9 files changed, 76 insertions(+), 924 deletions(-) diff --git a/Benchmarks/Sources/Generated/BridgeJS.swift b/Benchmarks/Sources/Generated/BridgeJS.swift index cdd3aa775..9a1b30dc4 100644 --- a/Benchmarks/Sources/Generated/BridgeJS.swift +++ b/Benchmarks/Sources/Generated/BridgeJS.swift @@ -8,7 +8,7 @@ @_spi(BridgeJS) import JavaScriptKit extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -27,9 +27,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -50,42 +48,10 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .flag(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .rate(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .precise(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .info: - _swift_js_push_i32(Int32(5)) - } - } } extension ComplexResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> ComplexResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> ComplexResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -106,9 +72,7 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -147,56 +111,6 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { return Int32(6) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .error(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .location(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .status(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .coordinates(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .comprehensive(let param0, let param1, let param2, let param3, let param4, let param5, let param6, let param7, let param8): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - param3.bridgeJSLowerStackReturn() - param4.bridgeJSLowerStackReturn() - param5.bridgeJSLowerStackReturn() - param6.bridgeJSLowerStackReturn() - param7.bridgeJSLowerStackReturn() - param8.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(5)) - case .info: - _swift_js_push_i32(Int32(6)) - } - } } extension SimpleStruct: _BridgedSwiftStruct { diff --git a/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift b/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift index 304ded82b..5fb6f103f 100644 --- a/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift +++ b/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift @@ -1199,7 +1199,9 @@ struct EnumCodegen { let printer = CodeFragmentPrinter() printer.write("extension \(typeName): _BridgedSwiftAssociatedValueEnum {") printer.indent { - printer.write("private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> \(typeName) {") + printer.write( + "@_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> \(typeName) {" + ) printer.indent { printer.write("switch caseId {") generateStackLiftSwitchCases(printer: printer, enumDef: enumDef) @@ -1212,40 +1214,7 @@ struct EnumCodegen { printer.write("}") printer.nextLine() - printer.write("// MARK: Protocol Export") - printer.nextLine() - - printer.write("@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 {") - printer.indent { - printer.write("switch self {") - generateLowerParameterSwitchCases(printer: printer, enumDef: enumDef) - printer.write("}") - } - printer.write("}") - printer.nextLine() - - printer.write( - multilineString: """ - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> \(typeName) { - return _bridgeJSLiftFromCaseId(caseId) - } - """ - ) - printer.nextLine() - - printer.write("// MARK: ExportSwift") - printer.nextLine() - - printer.write( - multilineString: """ - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> \(typeName) { - return _bridgeJSLiftFromCaseId(caseId) - } - """ - ) - printer.nextLine() - - printer.write("@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() {") + printer.write("@_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 {") printer.indent { printer.write("switch self {") generateReturnSwitchCases(printer: printer, enumDef: enumDef) @@ -1298,32 +1267,12 @@ struct EnumCodegen { } } - private func generateLowerParameterSwitchCases(printer: CodeFragmentPrinter, enumDef: ExportedEnum) { - for (caseIndex, enumCase) in enumDef.cases.enumerated() { - if enumCase.associatedValues.isEmpty { - printer.write("case .\(enumCase.name):") - printer.indent { - printer.write("return Int32(\(caseIndex))") - } - } else { - let pattern = enumCase.associatedValues.enumerated() - .map { index, associatedValue in "let \(associatedValue.label ?? "param\(index)")" } - .joined(separator: ", ") - printer.write("case .\(enumCase.name)(\(pattern)):") - printer.indent { - generatePayloadPushingCode(printer: printer, associatedValues: enumCase.associatedValues) - printer.write("return Int32(\(caseIndex))") - } - } - } - } - private func generateReturnSwitchCases(printer: CodeFragmentPrinter, enumDef: ExportedEnum) { for (caseIndex, enumCase) in enumDef.cases.enumerated() { if enumCase.associatedValues.isEmpty { printer.write("case .\(enumCase.name):") printer.indent { - printer.write("_swift_js_push_i32(Int32(\(caseIndex)))") + printer.write("return Int32(\(caseIndex))") } } else { let pattern = enumCase.associatedValues.enumerated() @@ -1334,7 +1283,7 @@ struct EnumCodegen { generatePayloadPushingCode(printer: printer, associatedValues: enumCase.associatedValues) // Push tag AFTER payloads so it's popped first (LIFO) by the JS lift function. // This ensures nested enum tags don't overwrite the outer tag. - printer.write("_swift_js_push_i32(Int32(\(caseIndex)))") + printer.write("return Int32(\(caseIndex))") } } } diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/EnumAssociatedValue.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/EnumAssociatedValue.swift index 9787865f2..8705c929e 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/EnumAssociatedValue.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/EnumAssociatedValue.swift @@ -1,5 +1,5 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -18,9 +18,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -41,42 +39,10 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .flag(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .rate(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .precise(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .info: - _swift_js_push_i32(Int32(5)) - } - } } extension ComplexResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> ComplexResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> ComplexResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -95,9 +61,7 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -131,55 +95,10 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .error(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .status(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .coordinates(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .comprehensive(let param0, let param1, let param2, let param3, let param4, let param5, let param6, let param7, let param8): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - param3.bridgeJSLowerStackReturn() - param4.bridgeJSLowerStackReturn() - param5.bridgeJSLowerStackReturn() - param6.bridgeJSLowerStackReturn() - param7.bridgeJSLowerStackReturn() - param8.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .info: - _swift_js_push_i32(Int32(5)) - } - } } extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> Utilities.Result { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> Utilities.Result { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -192,9 +111,7 @@ extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -210,37 +127,10 @@ extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { return Int32(2) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> Utilities.Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> Utilities.Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .status(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - } - } } extension NetworkingResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> NetworkingResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> NetworkingResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -251,9 +141,7 @@ extension NetworkingResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -264,32 +152,10 @@ extension NetworkingResult: _BridgedSwiftAssociatedValueEnum { return Int32(1) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> NetworkingResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> NetworkingResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - } - } } extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIOptionalResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIOptionalResult { switch caseId { case 0: return .success(Optional.bridgeJSLiftParameter()) @@ -302,9 +168,7 @@ extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): let __bjs_isSome_param0 = param0 != nil @@ -344,57 +208,6 @@ extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { return Int32(2) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIOptionalResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIOptionalResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - let __bjs_isSome_param1 = param1 != nil - if let __bjs_unwrapped_param1 = param1 { - __bjs_unwrapped_param1.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param1 ? 1 : 0) - _swift_js_push_i32(Int32(1)) - case .status(let param0, let param1, let param2): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - let __bjs_isSome_param1 = param1 != nil - if let __bjs_unwrapped_param1 = param1 { - __bjs_unwrapped_param1.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param1 ? 1 : 0) - let __bjs_isSome_param2 = param2 != nil - if let __bjs_unwrapped_param2 = param2 { - __bjs_unwrapped_param2.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param2 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - } - } } extension Precision: _BridgedSwiftEnumNoPayload, _BridgedSwiftRawValueEnum { @@ -444,7 +257,7 @@ extension CardinalDirection: _BridgedSwiftCaseEnum { } extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> TypedPayloadResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> TypedPayloadResult { switch caseId { case 0: return .precision(Precision.bridgeJSLiftParameter(_swift_js_pop_f32())) @@ -461,9 +274,7 @@ extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .precision(let param0): param0.bridgeJSLowerStackReturn() @@ -489,47 +300,10 @@ extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { return Int32(4) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> TypedPayloadResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> TypedPayloadResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .precision(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .direction(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .optPrecision(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - case .optDirection(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(3)) - case .empty: - _swift_js_push_i32(Int32(4)) - } - } } extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> AllTypesResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> AllTypesResult { switch caseId { case 0: return .structPayload(Point.bridgeJSLiftParameter()) @@ -548,9 +322,7 @@ extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .structPayload(let param0): param0.bridgeJSLowerReturn() @@ -571,42 +343,10 @@ extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> AllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> AllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .structPayload(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(0)) - case .classPayload(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .jsObjectPayload(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .nestedEnum(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(3)) - case .arrayPayload(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(4)) - case .empty: - _swift_js_push_i32(Int32(5)) - } - } } extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> OptionalAllTypesResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> OptionalAllTypesResult { switch caseId { case 0: return .optStruct(Optional.bridgeJSLiftParameter()) @@ -625,9 +365,7 @@ extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .optStruct(let param0): param0.bridgeJSLowerReturn() @@ -660,50 +398,6 @@ extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> OptionalAllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> OptionalAllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .optStruct(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(0)) - case .optClass(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(1)) - case .optJSObject(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - case .optNestedEnum(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - _swift_js_push_i32(__bjs_unwrapped_param0.bridgeJSLowerParameter()) - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(3)) - case .optArray(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(4)) - case .empty: - _swift_js_push_i32(Int32(5)) - } - } } extension Point: _BridgedSwiftStruct { diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/Protocol.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/Protocol.swift index 9b68b96ed..fcca0aaa3 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/Protocol.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/Protocol.swift @@ -363,7 +363,7 @@ extension ExampleEnum: _BridgedSwiftEnumNoPayload, _BridgedSwiftRawValueEnum { } extension Result: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> Result { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> Result { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -374,9 +374,7 @@ extension Result: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -386,27 +384,6 @@ extension Result: _BridgedSwiftAssociatedValueEnum { return Int32(1) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - } - } } extension Priority: _BridgedSwiftEnumNoPayload, _BridgedSwiftRawValueEnum { diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.Global.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.Global.swift index a7b0578a9..6622ef3da 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.Global.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.Global.swift @@ -45,7 +45,7 @@ public func _bjs_Calculator_static_square(_ value: Int32) -> Int32 { } extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -56,9 +56,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -68,27 +66,6 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(1) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - } - } } @_expose(wasm, "bjs_APIResult_static_roundtrip") diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.swift index a7b0578a9..6622ef3da 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/StaticFunctions.swift @@ -45,7 +45,7 @@ public func _bjs_Calculator_static_square(_ value: Int32) -> Int32 { } extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -56,9 +56,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -68,27 +66,6 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(1) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - } - } } @_expose(wasm, "bjs_APIResult_static_roundtrip") diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/SwiftClosure.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/SwiftClosure.swift index d8b3c9bb8..57a963637 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/SwiftClosure.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/BridgeJSCodegenTests/SwiftClosure.swift @@ -1188,7 +1188,7 @@ extension HttpStatus: _BridgedSwiftEnumNoPayload, _BridgedSwiftRawValueEnum { } extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -1207,9 +1207,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -1230,38 +1228,6 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .flag(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .rate(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .precise(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .info: - _swift_js_push_i32(Int32(5)) - } - } } @_expose(wasm, "bjs_roundtripString") diff --git a/Sources/JavaScriptKit/BridgeJSIntrinsics.swift b/Sources/JavaScriptKit/BridgeJSIntrinsics.swift index feca05b3b..90493f773 100644 --- a/Sources/JavaScriptKit/BridgeJSIntrinsics.swift +++ b/Sources/JavaScriptKit/BridgeJSIntrinsics.swift @@ -601,23 +601,42 @@ extension _BridgedSwiftCaseEnum { /// /// The conformance is automatically synthesized by the BridgeJS code generator. public protocol _BridgedSwiftAssociatedValueEnum: _BridgedSwiftTypeLoweredIntoVoidType, _BridgedSwiftStackType { - // MARK: ImportTS - @_spi(BridgeJS) consuming func bridgeJSLowerParameter() -> Int32 - @_spi(BridgeJS) static func bridgeJSLiftReturn(_ caseId: Int32) -> Self + /// Pops the payload of the associated value enum from the stack. + /// + /// - Parameter caseId: The enum case ID. + /// - Returns: The associated value enum with its payload popped from the stack. + @_spi(BridgeJS) static func bridgeJSStackPopPayload(_ caseId: Int32) -> Self - // MARK: ExportSwift - @_spi(BridgeJS) static func bridgeJSLiftParameter(_ caseId: Int32) -> Self - @_spi(BridgeJS) consuming func bridgeJSLowerReturn() -> Void + /// Pushes the payload of the associated value enum onto the stack. + /// + /// - Returns: The enum case ID. + @_spi(BridgeJS) consuming func bridgeJSStackPushPayload() -> Int32 } extension _BridgedSwiftAssociatedValueEnum { @_spi(BridgeJS) public static func bridgeJSLiftParameter() -> Self { - bridgeJSLiftParameter(_swift_js_pop_i32()) + bridgeJSStackPopPayload(_swift_js_pop_i32()) } @_spi(BridgeJS) public consuming func bridgeJSLowerStackReturn() { bridgeJSLowerReturn() } + + @_spi(BridgeJS) public static func bridgeJSLiftParameter(_ caseId: Int32) -> Self { + return bridgeJSStackPopPayload(caseId) + } + + @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() { + _swift_js_push_i32(bridgeJSStackPushPayload()) + } + + @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + return bridgeJSStackPushPayload() + } + + @_spi(BridgeJS) public static func bridgeJSLiftReturn(_ caseId: Int32) -> Self { + return bridgeJSStackPopPayload(caseId) + } } /// A protocol that Swift struct types conform to. diff --git a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.swift b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.swift index 745c56472..400829a5d 100644 --- a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.swift +++ b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.swift @@ -2026,7 +2026,7 @@ extension Internal.SupportedMethod: _BridgedSwiftCaseEnum { } extension APIResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -2045,9 +2045,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -2068,42 +2066,10 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum { return Int32(5) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .flag(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .rate(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .precise(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .info: - _swift_js_push_i32(Int32(5)) - } - } } extension ComplexResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> ComplexResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> ComplexResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -2124,9 +2090,7 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -2165,60 +2129,10 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum { return Int32(6) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> ComplexResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .error(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .location(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .status(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(3)) - case .coordinates(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(4)) - case .comprehensive(let param0, let param1, let param2, let param3, let param4, let param5, let param6, let param7, let param8): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - param3.bridgeJSLowerStackReturn() - param4.bridgeJSLowerStackReturn() - param5.bridgeJSLowerStackReturn() - param6.bridgeJSLowerStackReturn() - param7.bridgeJSLowerStackReturn() - param8.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(5)) - case .info: - _swift_js_push_i32(Int32(6)) - } - } } extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> Utilities.Result { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> Utilities.Result { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -2231,9 +2145,7 @@ extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -2249,37 +2161,10 @@ extension Utilities.Result: _BridgedSwiftAssociatedValueEnum { return Int32(2) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> Utilities.Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> Utilities.Result { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .status(let param0, let param1, let param2): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - param2.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - } - } } extension API.NetworkingResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> API.NetworkingResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> API.NetworkingResult { switch caseId { case 0: return .success(String.bridgeJSLiftParameter()) @@ -2290,9 +2175,7 @@ extension API.NetworkingResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): param0.bridgeJSLowerStackReturn() @@ -2303,32 +2186,10 @@ extension API.NetworkingResult: _BridgedSwiftAssociatedValueEnum { return Int32(1) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> API.NetworkingResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> API.NetworkingResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - param0.bridgeJSLowerStackReturn() - param1.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - } - } } extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> AllTypesResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> AllTypesResult { switch caseId { case 0: return .structPayload(Address.bridgeJSLiftParameter()) @@ -2349,9 +2210,7 @@ extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .structPayload(let param0): param0.bridgeJSLowerReturn() @@ -2375,45 +2234,10 @@ extension AllTypesResult: _BridgedSwiftAssociatedValueEnum { return Int32(6) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> AllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> AllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .structPayload(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(0)) - case .classPayload(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .jsObjectPayload(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(2)) - case .nestedEnum(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(3)) - case .arrayPayload(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(4)) - case .jsClassPayload(let param0): - param0.jsObject.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(5)) - case .empty: - _swift_js_push_i32(Int32(6)) - } - } } extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> TypedPayloadResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> TypedPayloadResult { switch caseId { case 0: return .precision(Precision.bridgeJSLiftParameter(_swift_js_pop_f32())) @@ -2430,9 +2254,7 @@ extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .precision(let param0): param0.bridgeJSLowerStackReturn() @@ -2458,43 +2280,6 @@ extension TypedPayloadResult: _BridgedSwiftAssociatedValueEnum { return Int32(4) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> TypedPayloadResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> TypedPayloadResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .precision(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(0)) - case .direction(let param0): - param0.bridgeJSLowerStackReturn() - _swift_js_push_i32(Int32(1)) - case .optPrecision(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - case .optDirection(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(3)) - case .empty: - _swift_js_push_i32(Int32(4)) - } - } } extension StaticCalculator: _BridgedSwiftCaseEnum { @@ -2803,7 +2588,7 @@ public func _bjs_StaticPropertyNamespace_NestedProperties_static_nestedDouble_se } extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> OptionalAllTypesResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> OptionalAllTypesResult { switch caseId { case 0: return .optStruct(Optional
.bridgeJSLiftParameter()) @@ -2824,9 +2609,7 @@ extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .optStruct(let param0): param0.bridgeJSLowerReturn() @@ -2866,61 +2649,10 @@ extension OptionalAllTypesResult: _BridgedSwiftAssociatedValueEnum { return Int32(6) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> OptionalAllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> OptionalAllTypesResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .optStruct(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(0)) - case .optClass(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(1)) - case .optJSObject(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - case .optNestedEnum(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - _swift_js_push_i32(__bjs_unwrapped_param0.bridgeJSLowerParameter()) - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(3)) - case .optArray(let param0): - param0.bridgeJSLowerReturn() - _swift_js_push_i32(Int32(4)) - case .optJsClass(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.jsObject.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(5)) - case .empty: - _swift_js_push_i32(Int32(6)) - } - } } extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { - private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIOptionalResult { + @_spi(BridgeJS) @_transparent public static func bridgeJSStackPopPayload(_ caseId: Int32) -> APIOptionalResult { switch caseId { case 0: return .success(Optional.bridgeJSLiftParameter()) @@ -2933,9 +2665,7 @@ extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { } } - // MARK: Protocol Export - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { + @_spi(BridgeJS) @_transparent public consuming func bridgeJSStackPushPayload() -> Int32 { switch self { case .success(let param0): let __bjs_isSome_param0 = param0 != nil @@ -2975,57 +2705,6 @@ extension APIOptionalResult: _BridgedSwiftAssociatedValueEnum { return Int32(2) } } - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIOptionalResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - // MARK: ExportSwift - - @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIOptionalResult { - return _bridgeJSLiftFromCaseId(caseId) - } - - @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() { - switch self { - case .success(let param0): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - _swift_js_push_i32(Int32(0)) - case .failure(let param0, let param1): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - let __bjs_isSome_param1 = param1 != nil - if let __bjs_unwrapped_param1 = param1 { - __bjs_unwrapped_param1.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param1 ? 1 : 0) - _swift_js_push_i32(Int32(1)) - case .status(let param0, let param1, let param2): - let __bjs_isSome_param0 = param0 != nil - if let __bjs_unwrapped_param0 = param0 { - __bjs_unwrapped_param0.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param0 ? 1 : 0) - let __bjs_isSome_param1 = param1 != nil - if let __bjs_unwrapped_param1 = param1 { - __bjs_unwrapped_param1.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param1 ? 1 : 0) - let __bjs_isSome_param2 = param2 != nil - if let __bjs_unwrapped_param2 = param2 { - __bjs_unwrapped_param2.bridgeJSLowerStackReturn() - } - _swift_js_push_i32(__bjs_isSome_param2 ? 1 : 0) - _swift_js_push_i32(Int32(2)) - } - } } extension Point: _BridgedSwiftStruct {