@@ -779,30 +779,11 @@ struct StackCodegen {
779779 func liftExpression ( for type : BridgeType ) -> ExprSyntax {
780780 switch type {
781781 case . string , . int , . uint , . bool , . float , . double ,
782- . jsObject ( nil ) , . jsValue , . swiftStruct , . swiftHeapObject :
782+ . jsObject ( nil ) , . jsValue , . swiftStruct , . swiftHeapObject , . unsafePointer ,
783+ . swiftProtocol , . caseEnum , . associatedValueEnum , . rawValueEnum :
783784 return " \( raw : type . swiftType ) .bridgeJSLiftParameter() "
784785 case . jsObject ( let className ? ) :
785786 return " \( raw : className ) (unsafelyWrapping: JSObject.bridgeJSLiftParameter()) "
786- case . unsafePointer :
787- return " \( raw : type . swiftType ) .bridgeJSLiftParameter() "
788- case . swiftProtocol ( let protocolName ) :
789- return " Any \( raw : protocolName ) .bridgeJSLiftParameter(_swift_js_pop_i32()) "
790- case . caseEnum :
791- return " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_i32()) "
792- case . rawValueEnum ( _, let rawType ) :
793- switch rawType {
794- case . string :
795- return
796- " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_i32(), _swift_js_pop_i32()) "
797- case . float :
798- return " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_f32()) "
799- case . double :
800- return " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_f64()) "
801- case . bool , . int , . int32 , . int64 , . uint , . uint32 , . uint64 :
802- return " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_i32()) "
803- }
804- case . associatedValueEnum :
805- return " \( raw : type . swiftType ) .bridgeJSLiftParameter(_swift_js_pop_i32()) "
806787 case . nullable ( let wrappedType , let kind ) :
807788 return liftNullableExpression ( wrappedType : wrappedType , kind : kind )
808789 case . array ( let elementType ) :
@@ -820,8 +801,6 @@ struct StackCodegen {
820801 switch elementType {
821802 case . jsObject ( let className ? ) where className != " JSObject " :
822803 return liftArrayExpressionInline ( elementType : elementType )
823- case . swiftProtocol ( let protocolName ) :
824- return " [Any \( raw : protocolName ) ].bridgeJSLiftParameter() "
825804 case . nullable , . closure :
826805 return liftArrayExpressionInline ( elementType : elementType )
827806 case . void , . namespaceEnum :
@@ -857,13 +836,6 @@ struct StackCodegen {
857836 return __dict.mapValues { \( raw : className ) (unsafelyWrapping: $0) }
858837 }()
859838 """
860- case . swiftProtocol ( let protocolName ) :
861- return """
862- {
863- let __dict = [String: JSObject].bridgeJSLiftParameter()
864- return __dict.mapValues { $0 as! Any \( raw : protocolName ) }
865- }()
866- """
867839 case . nullable , . closure :
868840 return liftDictionaryExpressionInline ( valueType : valueType )
869841 case . void , . namespaceEnum :
@@ -917,19 +889,14 @@ struct StackCodegen {
917889 varPrefix : String
918890 ) -> [ CodeBlockItemSyntax ] {
919891 switch type {
920- case . string , . int , . uint , . bool , . float , . double , . jsValue :
921- return [ " \( raw : accessor ) .bridgeJSLowerStackReturn() " ]
922- case . jsObject ( nil ) :
892+ case . string , . int , . uint , . bool , . float , . double , . jsValue ,
893+ . jsObject ( nil ) , . swiftHeapObject , . unsafePointer , . closure ,
894+ . caseEnum , . rawValueEnum :
923895 return [ " \( raw : accessor ) .bridgeJSLowerStackReturn() " ]
924896 case . jsObject ( _? ) :
925897 return [ " \( raw : accessor ) .jsObject.bridgeJSLowerStackReturn() " ]
926- case . swiftHeapObject , . unsafePointer , . closure :
927- return [ " \( raw : accessor ) .bridgeJSLowerStackReturn() " ]
928- case . swiftProtocol ( let protocolName ) :
929- let wrapperName = " Any \( protocolName ) "
930- return [ " ( \( raw : accessor ) as! \( raw : wrapperName ) ).bridgeJSLowerStackReturn() " ]
931- case . caseEnum , . rawValueEnum :
932- return [ " \( raw : accessor ) .bridgeJSLowerStackReturn() " ]
898+ case . swiftProtocol :
899+ return [ " ( \( raw : accessor ) as! \( raw : type . swiftType ) ).bridgeJSLowerStackReturn() " ]
933900 case . associatedValueEnum , . swiftStruct :
934901 return [ " \( raw : accessor ) .bridgeJSLowerReturn() " ]
935902 case . nullable ( let wrappedType , _) :
@@ -951,8 +918,8 @@ struct StackCodegen {
951918 switch elementType {
952919 case . jsObject ( let className ? ) where className != " JSObject " :
953920 return [ " \( raw : accessor ) .map { $0.jsObject }.bridgeJSLowerReturn() " ]
954- case . swiftProtocol ( let protocolName ) :
955- return [ " \( raw : accessor ) .map { $0 as! Any \( raw : protocolName ) }.bridgeJSLowerReturn() " ]
921+ case . swiftProtocol :
922+ return [ " \( raw : accessor ) .map { $0 as! \( raw : elementType . swiftType ) }.bridgeJSLowerReturn() " ]
956923 case . nullable , . closure :
957924 return lowerArrayStatementsInline (
958925 elementType : elementType ,
@@ -998,8 +965,8 @@ struct StackCodegen {
998965 switch valueType {
999966 case . jsObject ( let className ? ) where className != " JSObject " :
1000967 return [ " \( raw : accessor ) .mapValues { $0.jsObject }.bridgeJSLowerReturn() " ]
1001- case . swiftProtocol ( let protocolName ) :
1002- return [ " \( raw : accessor ) .mapValues { $0 as! Any \( raw : protocolName ) }.bridgeJSLowerReturn() " ]
968+ case . swiftProtocol :
969+ return [ " \( raw : accessor ) .mapValues { $0 as! \( raw : valueType . swiftType ) }.bridgeJSLowerReturn() " ]
1003970 case . nullable , . closure :
1004971 return lowerDictionaryStatementsInline (
1005972 valueType : valueType ,
0 commit comments