diff --git a/Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift b/Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift index ab0cbb19..8fb5c97d 100644 --- a/Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift +++ b/Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift @@ -362,18 +362,19 @@ public func _bjs_EnumRoundtrip_deinit(pointer: UnsafeMutableRawPointer) { extension EnumRoundtrip: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_EnumRoundtrip_wrap") - func _bjs_EnumRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_EnumRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_EnumRoundtrip_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_EnumRoundtrip_wrap") +fileprivate func _bjs_EnumRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_EnumRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_ComplexResultRoundtrip_init") @_cdecl("bjs_ComplexResultRoundtrip_init") public func _bjs_ComplexResultRoundtrip_init() -> UnsafeMutableRawPointer { @@ -491,18 +492,19 @@ public func _bjs_ComplexResultRoundtrip_deinit(pointer: UnsafeMutableRawPointer) extension ComplexResultRoundtrip: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_ComplexResultRoundtrip_wrap") - func _bjs_ComplexResultRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_ComplexResultRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_ComplexResultRoundtrip_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_ComplexResultRoundtrip_wrap") +fileprivate func _bjs_ComplexResultRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_ComplexResultRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_StringRoundtrip_init") @_cdecl("bjs_StringRoundtrip_init") public func _bjs_StringRoundtrip_init() -> UnsafeMutableRawPointer { @@ -543,14 +545,15 @@ public func _bjs_StringRoundtrip_deinit(pointer: UnsafeMutableRawPointer) { extension StringRoundtrip: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_StringRoundtrip_wrap") - func _bjs_StringRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_StringRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_StringRoundtrip_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_StringRoundtrip_wrap") +fileprivate func _bjs_StringRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_StringRoundtrip_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Benchmarks/Sources/Generated/BridgeJS.ImportTS.swift b/Benchmarks/Sources/Generated/BridgeJS.ImportTS.swift index bc7f0b17..e885569d 100644 --- a/Benchmarks/Sources/Generated/BridgeJS.ImportTS.swift +++ b/Benchmarks/Sources/Generated/BridgeJS.ImportTS.swift @@ -6,45 +6,48 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkHelperNoop") +fileprivate func bjs_benchmarkHelperNoop() -> Void +#else +fileprivate func bjs_benchmarkHelperNoop() -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func benchmarkHelperNoop() throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkHelperNoop") - func bjs_benchmarkHelperNoop() -> Void - #else - func bjs_benchmarkHelperNoop() -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_benchmarkHelperNoop() if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkHelperNoopWithNumber") +fileprivate func bjs_benchmarkHelperNoopWithNumber(_ n: Float64) -> Void +#else +fileprivate func bjs_benchmarkHelperNoopWithNumber(_ n: Float64) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func benchmarkHelperNoopWithNumber(_ n: Double) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkHelperNoopWithNumber") - func bjs_benchmarkHelperNoopWithNumber(_ n: Float64) -> Void - #else - func bjs_benchmarkHelperNoopWithNumber(_ n: Float64) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_benchmarkHelperNoopWithNumber(n.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkRunner") +fileprivate func bjs_benchmarkRunner(_ name: Int32, _ body: Int32) -> Void +#else +fileprivate func bjs_benchmarkRunner(_ name: Int32, _ body: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func benchmarkRunner(_ name: String, _ body: JSObject) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Benchmarks", name: "bjs_benchmarkRunner") - func bjs_benchmarkRunner(_ name: Int32, _ body: Int32) -> Void - #else - func bjs_benchmarkRunner(_ name: Int32, _ body: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_benchmarkRunner(name.bridgeJSLowerParameter(), body.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ExportSwift.swift b/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ExportSwift.swift index 9e4515f5..be683415 100644 --- a/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ExportSwift.swift +++ b/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ExportSwift.swift @@ -50,18 +50,19 @@ public func _bjs_PlayBridgeJS_deinit(pointer: UnsafeMutableRawPointer) { extension PlayBridgeJS: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "PlayBridgeJS", name: "bjs_PlayBridgeJS_wrap") - func _bjs_PlayBridgeJS_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PlayBridgeJS_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PlayBridgeJS_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "PlayBridgeJS", name: "bjs_PlayBridgeJS_wrap") +fileprivate func _bjs_PlayBridgeJS_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PlayBridgeJS_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PlayBridgeJSOutput_outputJs") @_cdecl("bjs_PlayBridgeJSOutput_outputJs") public func _bjs_PlayBridgeJSOutput_outputJs(_self: UnsafeMutableRawPointer) -> Void { @@ -114,14 +115,15 @@ public func _bjs_PlayBridgeJSOutput_deinit(pointer: UnsafeMutableRawPointer) { extension PlayBridgeJSOutput: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "PlayBridgeJS", name: "bjs_PlayBridgeJSOutput_wrap") - func _bjs_PlayBridgeJSOutput_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PlayBridgeJSOutput_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PlayBridgeJSOutput_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "PlayBridgeJS", name: "bjs_PlayBridgeJSOutput_wrap") +fileprivate func _bjs_PlayBridgeJSOutput_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PlayBridgeJSOutput_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ImportTS.swift b/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ImportTS.swift index 4d35ef74..fca5dcb2 100644 --- a/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ImportTS.swift +++ b/Examples/PlayBridgeJS/Sources/PlayBridgeJS/Generated/BridgeJS.ImportTS.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "PlayBridgeJS", name: "bjs_createTS2Skeleton") +fileprivate func bjs_createTS2Skeleton() -> Int32 +#else +fileprivate func bjs_createTS2Skeleton() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createTS2Skeleton() throws(JSException) -> TS2Skeleton { - #if arch(wasm32) - @_extern(wasm, module: "PlayBridgeJS", name: "bjs_createTS2Skeleton") - func bjs_createTS2Skeleton() -> Int32 - #else - func bjs_createTS2Skeleton() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createTS2Skeleton() if let error = _swift_js_take_exception() { throw error @@ -22,6 +23,15 @@ func createTS2Skeleton() throws(JSException) -> TS2Skeleton { return TS2Skeleton.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "PlayBridgeJS", name: "bjs_TS2Skeleton_convert") +fileprivate func bjs_TS2Skeleton_convert(_ self: Int32, _ ts: Int32) -> Int32 +#else +fileprivate func bjs_TS2Skeleton_convert(_ self: Int32, _ ts: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct TS2Skeleton: _JSBridgedClass { let jsObject: JSObject @@ -30,14 +40,6 @@ struct TS2Skeleton: _JSBridgedClass { } func convert(_ ts: String) throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "PlayBridgeJS", name: "bjs_TS2Skeleton_convert") - func bjs_TS2Skeleton_convert(_ self: Int32, _ ts: Int32) -> Int32 - #else - func bjs_TS2Skeleton_convert(_ self: Int32, _ ts: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_TS2Skeleton_convert(self.bridgeJSLowerParameter(), ts.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift b/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift index 07b103b6..0938bfcf 100644 --- a/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift +++ b/Plugins/BridgeJS/Sources/BridgeJSCore/ExportSwift.swift @@ -1497,12 +1497,12 @@ public class ExportSwift { } for signature in closureSignatures.sorted(by: { $0.mangleName < $1.mangleName }) { - decls.append(try closureCodegen.renderClosureHelper(signature: signature)) + decls.append(contentsOf: try closureCodegen.renderClosureHelper(signature: signature)) decls.append(try closureCodegen.renderClosureInvokeHandler(signature: signature)) } for proto in exportedProtocols { - decls.append(try renderProtocolWrapper(protocol: proto)) + decls.append(contentsOf: try renderProtocolWrapper(protocol: proto)) } for enumDef in exportedEnums { @@ -1547,6 +1547,7 @@ public class ExportSwift { var parameters: [Parameter] = [] var abiParameterSignatures: [(name: String, type: WasmCoreType)] = [] var abiReturnType: WasmCoreType? + var externDecls: [DeclSyntax] = [] let effects: Effects init(effects: Effects) { @@ -1839,7 +1840,7 @@ public class ExportSwift { return lines.isEmpty ? "" : lines.joined(separator: "\n") + "\n" } - func renderClosureHelper(signature: ClosureSignature) throws -> DeclSyntax { + func renderClosureHelper(signature: ClosureSignature) throws -> [DeclSyntax] { let mangledName = signature.mangleName let helperName = "_BJS_Closure_\(mangledName)" let boxClassName = "_BJS_ClosureBox_\(mangledName)" @@ -1899,25 +1900,31 @@ public class ExportSwift { invokeReturnType = "Void" } + let externName = "invoke_js_callback_\(signature.moduleName)_\(mangledName)" + let returnLifting: String if signature.returnType == .void { - returnLifting = "_invoke(\(invokeCallArgs.joined(separator: ", ")))" + returnLifting = "\(externName)(\(invokeCallArgs.joined(separator: ", ")))" } else if case .optional = signature.returnType { returnLifting = """ - _invoke(\(invokeCallArgs.joined(separator: ", "))) + \(externName)(\(invokeCallArgs.joined(separator: ", "))) return \(signature.returnType.swiftType).bridgeJSLiftReturnFromSideChannel() """ } else { returnLifting = """ - let resultId = _invoke(\(invokeCallArgs.joined(separator: ", "))) + let resultId = \(externName)(\(invokeCallArgs.joined(separator: ", "))) return \(signature.returnType.swiftType).bridgeJSLiftReturn(resultId) """ } - let externName = "invoke_js_callback_\(signature.moduleName)_\(mangledName)" let optionalLoweringCode = try generateOptionalParameterLowering(signature: signature) - return """ + let externDecl: DeclSyntax = """ + @_extern(wasm, module: "bjs", name: "\(raw: externName)") + fileprivate func \(raw: externName)(\(raw: invokeSignature)) -> \(raw: invokeReturnType) + """ + + let boxDecl: DeclSyntax = """ private final class \(raw: boxClassName): _BridgedSwiftClosureBox { let closure: \(raw: closureType) init(_ closure: @escaping \(raw: closureType)) { @@ -1935,16 +1942,15 @@ public class ExportSwift { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] \(raw: signature.parameters.indices.map { "param\($0)" }.joined(separator: ", ")) in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "\(raw: externName)") - func _invoke(\(raw: invokeSignature)) -> \(raw: invokeReturnType) \(raw: optionalLoweringCode)\(raw: returnLifting) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } """ + return [externDecl, boxDecl] } func renderClosureInvokeHandler(signature: ClosureSignature) throws -> DeclSyntax { @@ -2051,28 +2057,28 @@ public class ExportSwift { func renderAssociatedValueEnumHelpers(_ enumDef: ExportedEnum) -> DeclSyntax { let typeName = enumDef.swiftCallName return """ - extension \(raw: typeName): _BridgedSwiftAssociatedValueEnum { + extension \(raw: typeName): _BridgedSwiftAssociatedValueEnum { private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> \(raw: typeName) { switch caseId { \(raw: generateStackLiftSwitchCases(enumDef: enumDef).joined(separator: "\n")) default: fatalError("Unknown \(raw: typeName) case ID: \\(caseId)") } } - + // MARK: Protocol Export - + @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { switch self { \(raw: generateLowerParameterSwitchCases(enumDef: enumDef).joined(separator: "\n")) } } - + @_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> \(raw: typeName) { return _bridgeJSLiftFromCaseId(caseId) } - + // MARK: ExportSwift - + @_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> \(raw: typeName) { return _bridgeJSLiftFromCaseId(caseId) } @@ -2460,7 +2466,7 @@ public class ExportSwift { } // Generate ConvertibleToJSValue extension - decls.append(renderConvertibleToJSValueExtension(klass: klass)) + decls.append(contentsOf: renderConvertibleToJSValueExtension(klass: klass)) return decls } @@ -2495,42 +2501,46 @@ public class ExportSwift { /// ```swift /// extension Greeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { /// var jsValue: JSValue { - /// @_extern(wasm, module: "MyModule", name: "bjs_Greeter_wrap") - /// func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 /// return JSObject(id: UInt32(bitPattern: _bjs_Greeter_wrap(Unmanaged.passRetained(self).toOpaque()))) /// } /// } + /// @_extern(wasm, module: "MyModule", name: "bjs_Greeter_wrap") + /// fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 /// ``` - func renderConvertibleToJSValueExtension(klass: ExportedClass) -> DeclSyntax { + func renderConvertibleToJSValueExtension(klass: ExportedClass) -> [DeclSyntax] { let wrapFunctionName = "_bjs_\(klass.name)_wrap" let externFunctionName = "bjs_\(klass.name)_wrap" // If the class has an explicit access control, we need to add it to the extension declaration. let accessControl = klass.explicitAccessControl.map { "\($0) " } ?? "" - return """ + let extensionDecl: DeclSyntax = """ extension \(raw: klass.swiftCallName): ConvertibleToJSValue, _BridgedSwiftHeapObject { \(raw: accessControl)var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: externFunctionName)") - func \(raw: wrapFunctionName)(_: UnsafeMutableRawPointer) -> Int32 - #else - func \(raw: wrapFunctionName)(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: \(raw: wrapFunctionName)(Unmanaged.passRetained(self).toOpaque())))) } } """ + let externDecl: DeclSyntax = """ + #if arch(wasm32) + @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: externFunctionName)") + fileprivate func \(raw: wrapFunctionName)(_: UnsafeMutableRawPointer) -> Int32 + #else + fileprivate func \(raw: wrapFunctionName)(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") + } + #endif + """ + return [extensionDecl, externDecl] } /// Creates a struct that wraps a JSObject and implements protocol methods /// by calling `@_extern(wasm)` functions that forward to JavaScript via JSObject ID - func renderProtocolWrapper(protocol proto: ExportedProtocol) throws -> DeclSyntax { + func renderProtocolWrapper(protocol proto: ExportedProtocol) throws -> [DeclSyntax] { let wrapperName = "Any\(proto.name)" let protocolName = proto.name var methodDecls: [DeclSyntax] = [] + var externDecls: [DeclSyntax] = [] for method in proto.methods { var swiftParams: [String] = [] @@ -2617,10 +2627,16 @@ public class ExportSwift { """ } } + + externDecls.append( + """ + @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: method.abiName)") + fileprivate func _extern_\(raw: method.name)(\(raw: externParams.joined(separator: ", ")))\(raw: externReturnType) + """ + ) + let methodImplementation: DeclSyntax = """ func \(raw: method.name)(\(raw: swiftParams.joined(separator: ", ")))\(raw: returnTypeStr) { - @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: method.abiName)") - func _extern_\(raw: method.name)(\(raw: externParams.joined(separator: ", ")))\(raw: externReturnType) \(raw: callCode) } """ @@ -2631,34 +2647,36 @@ public class ExportSwift { var propertyDecls: [DeclSyntax] = [] for property in proto.properties { - let propertyImpl = try renderProtocolProperty( + let (propertyImpl, propertyExternDecls) = try renderProtocolProperty( property: property, protocolName: protocolName, moduleName: moduleName ) propertyDecls.append(propertyImpl) + externDecls.append(contentsOf: propertyExternDecls) } let allDecls = (methodDecls + propertyDecls).map { $0.description }.joined(separator: "\n\n") - return """ + let structDecl: DeclSyntax = """ struct \(raw: wrapperName): \(raw: protocolName), _BridgedSwiftProtocolWrapper { let jsObject: JSObject - + \(raw: allDecls) - + static func bridgeJSLiftParameter(_ value: Int32) -> Self { return \(raw: wrapperName)(jsObject: JSObject(id: UInt32(bitPattern: value))) } } """ + return [structDecl] + externDecls } private func renderProtocolProperty( property: ExportedProtocolProperty, protocolName: String, moduleName: String - ) throws -> DeclSyntax { + ) throws -> (propertyDecl: DeclSyntax, externDecls: [DeclSyntax]) { let getterAbiName = ABINameGenerator.generateABIName( baseName: property.name, operation: "get", @@ -2679,33 +2697,39 @@ public class ExportSwift { // Optional case/raw enums use side-channel reading (Void return) getterReturnType = "" getterBody = """ - _extern_get(this: Int32(bitPattern: jsObject.id)) + \(getterAbiName)(this: Int32(bitPattern: jsObject.id)) return \(property.type.swiftType).bridgeJSLiftReturnFromSideChannel() """ } else if let abiType = liftingInfo.valueToLift { getterReturnType = " -> \(abiType.swiftType)" getterBody = """ - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = \(getterAbiName)(this: Int32(bitPattern: jsObject.id)) return \(property.type.swiftType).bridgeJSLiftReturn(ret) """ } else { getterReturnType = "" getterBody = """ - _extern_get(this: Int32(bitPattern: jsObject.id)) + \(getterAbiName)(this: Int32(bitPattern: jsObject.id)) return \(property.type.swiftType).bridgeJSLiftReturn() """ } + let getterExternDecl: DeclSyntax = """ + @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: getterAbiName)") + fileprivate func \(raw: getterAbiName)(this: Int32)\(raw: getterReturnType) + """ + if property.isReadonly { - return """ + return ( + """ var \(raw: property.name): \(raw: property.type.swiftType) { get { - @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: getterAbiName)") - func _extern_get(this: Int32)\(raw: getterReturnType) \(raw: getterBody) } } - """ + """, + [getterExternDecl] + ) } else { let loweringInfo = try property.type.loweringParameterInfo(context: .exportSwift) @@ -2720,28 +2744,32 @@ public class ExportSwift { let wrappedParam = loweringInfo.loweredParameters[1].name setterBody = """ let (\(isSomeParam), \(wrappedParam)) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), \(isSomeParam): \(isSomeParam), \(wrappedParam): \(wrappedParam)) + \(setterAbiName)(this: Int32(bitPattern: jsObject.id), \(isSomeParam): \(isSomeParam), \(wrappedParam): \(wrappedParam)) """ } else { let paramName = loweringInfo.loweredParameters[0].name setterBody = - "_extern_set(this: Int32(bitPattern: jsObject.id), \(paramName): newValue.bridgeJSLowerParameter())" + "\(setterAbiName)(this: Int32(bitPattern: jsObject.id), \(paramName): newValue.bridgeJSLowerParameter())" } - return """ + let setterExternDecl: DeclSyntax = """ + @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: setterAbiName)") + fileprivate func \(raw: setterAbiName)(\(raw: setterParams)) + """ + + return ( + """ var \(raw: property.name): \(raw: property.type.swiftType) { get { - @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: getterAbiName)") - func _extern_get(this: Int32)\(raw: getterReturnType) \(raw: getterBody) } set { - @_extern(wasm, module: "\(raw: moduleName)", name: "\(raw: setterAbiName)") - func _extern_set(\(raw: setterParams)) \(raw: setterBody) } } - """ + """, + [getterExternDecl, setterExternDecl] + ) } } } diff --git a/Plugins/BridgeJS/Sources/BridgeJSCore/ImportTS.swift b/Plugins/BridgeJS/Sources/BridgeJSCore/ImportTS.swift index af4a59c9..00ef5399 100644 --- a/Plugins/BridgeJS/Sources/BridgeJSCore/ImportTS.swift +++ b/Plugins/BridgeJS/Sources/BridgeJSCore/ImportTS.swift @@ -116,6 +116,9 @@ public struct ImportTS { func renderImportDecl() -> DeclSyntax { let baseDecl = FunctionDeclSyntax( + modifiers: DeclModifierListSyntax(itemsBuilder: { + DeclModifierSyntax(name: .keyword(.fileprivate)).with(\.trailingTrivia, .space) + }), funcKeyword: .keyword(.func).with(\.trailingTrivia, .space), name: .identifier(abiName), signature: FunctionSignatureSyntax( @@ -175,7 +178,6 @@ public struct ImportTS { ) ), body: CodeBlockSyntax { - self.renderImportDecl() body } ) @@ -200,7 +202,6 @@ public struct ImportTS { effectSpecifiers: ImportTS.buildFunctionEffect(throws: true, async: false) ), bodyBuilder: { - self.renderImportDecl() body } ) @@ -228,6 +229,7 @@ public struct ImportTS { } builder.call(returnType: function.returnType) try builder.liftReturnValue(returnType: function.returnType) + topLevelDecls.append(builder.renderImportDecl()) return [ builder.renderThunkDecl( name: function.name, @@ -249,6 +251,7 @@ public struct ImportTS { } builder.call(returnType: method.returnType) try builder.liftReturnValue(returnType: method.returnType) + topLevelDecls.append(builder.renderImportDecl()) return [ builder.renderThunkDecl( name: method.name, @@ -266,6 +269,7 @@ public struct ImportTS { } builder.call(returnType: .jsObject(name)) builder.assignThis(returnType: .jsObject(name)) + topLevelDecls.append(builder.renderImportDecl()) return [ builder.renderConstructorDecl(parameters: constructor.parameters) ] @@ -279,11 +283,11 @@ public struct ImportTS { try builder.lowerParameter(param: Parameter(label: nil, name: "self", type: .jsObject(name))) builder.call(returnType: property.type) try builder.liftReturnValue(returnType: property.type) + topLevelDecls.append(builder.renderImportDecl()) return AccessorDeclSyntax( accessorSpecifier: .keyword(.get), effectSpecifiers: Self.buildAccessorEffect(throws: true, async: false), body: CodeBlockSyntax { - builder.renderImportDecl() builder.body } ) @@ -298,6 +302,7 @@ public struct ImportTS { try builder.lowerParameter(param: Parameter(label: nil, name: "self", type: .jsObject(name))) try builder.lowerParameter(param: newValue) builder.call(returnType: .void) + topLevelDecls.append(builder.renderImportDecl()) return builder.renderThunkDecl( name: "set\(property.name.capitalizedFirstLetter)", parameters: [newValue], diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/DefaultParameters.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/DefaultParameters.swift index 675f7bfb..525782c4 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/DefaultParameters.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/DefaultParameters.swift @@ -206,18 +206,19 @@ public func _bjs_DefaultGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension DefaultGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_DefaultGreeter_wrap") - func _bjs_DefaultGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_DefaultGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_DefaultGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_DefaultGreeter_wrap") +fileprivate func _bjs_DefaultGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_DefaultGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_EmptyGreeter_init") @_cdecl("bjs_EmptyGreeter_init") public func _bjs_EmptyGreeter_init() -> UnsafeMutableRawPointer { @@ -237,18 +238,19 @@ public func _bjs_EmptyGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension EmptyGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_EmptyGreeter_wrap") - func _bjs_EmptyGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_EmptyGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_EmptyGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_EmptyGreeter_wrap") +fileprivate func _bjs_EmptyGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_EmptyGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_ConstructorDefaults_init") @_cdecl("bjs_ConstructorDefaults_init") public func _bjs_ConstructorDefaults_init(nameBytes: Int32, nameLength: Int32, count: Int32, enabled: Int32, status: Int32, tagIsSome: Int32, tagBytes: Int32, tagLength: Int32) -> UnsafeMutableRawPointer { @@ -384,14 +386,15 @@ public func _bjs_ConstructorDefaults_deinit(pointer: UnsafeMutableRawPointer) { extension ConstructorDefaults: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_ConstructorDefaults_wrap") - func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_ConstructorDefaults_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_ConstructorDefaults_wrap") +fileprivate func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/EnumNamespace.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/EnumNamespace.swift index ca201f3d..cf497750 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/EnumNamespace.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/EnumNamespace.swift @@ -120,18 +120,19 @@ public func _bjs_Converter_deinit(pointer: UnsafeMutableRawPointer) { extension Utils.Converter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Converter_wrap") - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Converter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Converter_wrap") +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_HTTPServer_init") @_cdecl("bjs_HTTPServer_init") public func _bjs_HTTPServer_init() -> UnsafeMutableRawPointer { @@ -161,18 +162,19 @@ public func _bjs_HTTPServer_deinit(pointer: UnsafeMutableRawPointer) { extension Networking.API.HTTPServer: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_HTTPServer_wrap") - func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_HTTPServer_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_HTTPServer_wrap") +fileprivate func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_TestServer_init") @_cdecl("bjs_TestServer_init") public func _bjs_TestServer_init() -> UnsafeMutableRawPointer { @@ -202,14 +204,15 @@ public func _bjs_TestServer_deinit(pointer: UnsafeMutableRawPointer) { extension Internal.TestServer: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_TestServer_wrap") - func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_TestServer_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_TestServer_wrap") +fileprivate func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Namespaces.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Namespaces.swift index f868fa11..3e771446 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Namespaces.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Namespaces.swift @@ -58,18 +58,19 @@ public func _bjs_Greeter_deinit(pointer: UnsafeMutableRawPointer) { extension Greeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Greeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_Converter_init") @_cdecl("bjs_Converter_init") public func _bjs_Converter_init() -> UnsafeMutableRawPointer { @@ -100,18 +101,19 @@ public func _bjs_Converter_deinit(pointer: UnsafeMutableRawPointer) { extension Converter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Converter_wrap") - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Converter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Converter_wrap") +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_UUID_uuidString") @_cdecl("bjs_UUID_uuidString") public func _bjs_UUID_uuidString(_self: UnsafeMutableRawPointer) -> Void { @@ -131,14 +133,15 @@ public func _bjs_UUID_deinit(pointer: UnsafeMutableRawPointer) { extension UUID: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_UUID_wrap") - func _bjs_UUID_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_UUID_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_UUID_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_UUID_wrap") +fileprivate func _bjs_UUID_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_UUID_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Optionals.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Optionals.swift index 9cd9e1f6..0834943e 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Optionals.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Optionals.swift @@ -232,18 +232,19 @@ public func _bjs_Greeter_deinit(pointer: UnsafeMutableRawPointer) { extension Greeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Greeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_OptionalPropertyHolder_init") @_cdecl("bjs_OptionalPropertyHolder_init") public func _bjs_OptionalPropertyHolder_init() -> UnsafeMutableRawPointer { @@ -326,14 +327,15 @@ public func _bjs_OptionalPropertyHolder_deinit(pointer: UnsafeMutableRawPointer) extension OptionalPropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_OptionalPropertyHolder_wrap") - func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_OptionalPropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_OptionalPropertyHolder_wrap") +fileprivate func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/PropertyTypes.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/PropertyTypes.swift index 822e5846..f622e3ac 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/PropertyTypes.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/PropertyTypes.swift @@ -334,14 +334,15 @@ public func _bjs_PropertyHolder_deinit(pointer: UnsafeMutableRawPointer) { extension PropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_PropertyHolder_wrap") - func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_PropertyHolder_wrap") +fileprivate func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Protocol.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Protocol.swift index d68ef81d..ef6160d2 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Protocol.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/Protocol.swift @@ -10,235 +10,169 @@ struct AnyMyViewControllerDelegate: MyViewControllerDelegate, _BridgedSwiftProto let jsObject: JSObject func onSomethingHappened() { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onSomethingHappened") - func _extern_onSomethingHappened(this: Int32) _extern_onSomethingHappened(this: Int32(bitPattern: jsObject.id)) } func onValueChanged(_ value: String) { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onValueChanged") - func _extern_onValueChanged(this: Int32, value: Int32) _extern_onValueChanged(this: Int32(bitPattern: jsObject.id), value: value.bridgeJSLowerParameter()) } func onCountUpdated(count: Int) -> Bool { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onCountUpdated") - func _extern_onCountUpdated(this: Int32, count: Int32) -> Int32 let ret = _extern_onCountUpdated(this: Int32(bitPattern: jsObject.id), count: count.bridgeJSLowerParameter()) return Bool.bridgeJSLiftReturn(ret) } func onLabelUpdated(_ prefix: String, _ suffix: String) { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onLabelUpdated") - func _extern_onLabelUpdated(this: Int32, prefix: Int32, suffix: Int32) _extern_onLabelUpdated(this: Int32(bitPattern: jsObject.id), prefix: prefix.bridgeJSLowerParameter(), suffix: suffix.bridgeJSLowerParameter()) } func isCountEven() -> Bool { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_isCountEven") - func _extern_isCountEven(this: Int32) -> Int32 let ret = _extern_isCountEven(this: Int32(bitPattern: jsObject.id)) return Bool.bridgeJSLiftReturn(ret) } func onHelperUpdated(_ helper: Helper) { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onHelperUpdated") - func _extern_onHelperUpdated(this: Int32, helper: UnsafeMutableRawPointer) _extern_onHelperUpdated(this: Int32(bitPattern: jsObject.id), helper: helper.bridgeJSLowerParameter()) } func createHelper() -> Helper { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createHelper") - func _extern_createHelper(this: Int32) -> UnsafeMutableRawPointer let ret = _extern_createHelper(this: Int32(bitPattern: jsObject.id)) return Helper.bridgeJSLiftReturn(ret) } func onOptionalHelperUpdated(_ helper: Optional) { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onOptionalHelperUpdated") - func _extern_onOptionalHelperUpdated(this: Int32, helperIsSome: Int32, helperPointer: UnsafeMutableRawPointer) let (helperIsSome, helperPointer) = helper.bridgeJSLowerParameterWithPresence() _extern_onOptionalHelperUpdated(this: Int32(bitPattern: jsObject.id), helperIsSome: helperIsSome, helperPointer: helperPointer) } func createOptionalHelper() -> Optional { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createOptionalHelper") - func _extern_createOptionalHelper(this: Int32) -> UnsafeMutableRawPointer let ret = _extern_createOptionalHelper(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } func createEnum() -> ExampleEnum { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createEnum") - func _extern_createEnum(this: Int32) -> Int32 let ret = _extern_createEnum(this: Int32(bitPattern: jsObject.id)) return ExampleEnum.bridgeJSLiftReturn(ret) } func handleResult(_ result: Result) { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_handleResult") - func _extern_handleResult(this: Int32, result: Int32) _extern_handleResult(this: Int32(bitPattern: jsObject.id), result: result.bridgeJSLowerParameter()) } func getResult() -> Result { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_getResult") - func _extern_getResult(this: Int32) -> Int32 let ret = _extern_getResult(this: Int32(bitPattern: jsObject.id)) return Result.bridgeJSLiftReturn(ret) } var eventCount: Int { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_eventCount_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_eventCount_get(this: Int32(bitPattern: jsObject.id)) return Int.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_eventCount_set") - func _extern_set(this: Int32, value: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) + bjs_MyViewControllerDelegate_eventCount_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) } } var delegateName: String { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_delegateName_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_delegateName_get(this: Int32(bitPattern: jsObject.id)) return String.bridgeJSLiftReturn(ret) } } var optionalName: Optional { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalName_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_MyViewControllerDelegate_optionalName_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalName_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_MyViewControllerDelegate_optionalName_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var optionalRawEnum: Optional { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalRawEnum_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_MyViewControllerDelegate_optionalRawEnum_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalRawEnum_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_MyViewControllerDelegate_optionalRawEnum_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var rawStringEnum: ExampleEnum { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_rawStringEnum_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_rawStringEnum_get(this: Int32(bitPattern: jsObject.id)) return ExampleEnum.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_rawStringEnum_set") - func _extern_set(this: Int32, value: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) + bjs_MyViewControllerDelegate_rawStringEnum_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) } } var result: Result { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_result_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_result_get(this: Int32(bitPattern: jsObject.id)) return Result.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_result_set") - func _extern_set(this: Int32, caseId: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), caseId: newValue.bridgeJSLowerParameter()) + bjs_MyViewControllerDelegate_result_set(this: Int32(bitPattern: jsObject.id), caseId: newValue.bridgeJSLowerParameter()) } } var optionalResult: Optional { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalResult_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_optionalResult_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalResult_set") - func _extern_set(this: Int32, isSome: Int32, caseId: Int32) let (isSome, caseId) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, caseId: caseId) + bjs_MyViewControllerDelegate_optionalResult_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, caseId: caseId) } } var direction: Direction { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_direction_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_direction_get(this: Int32(bitPattern: jsObject.id)) return Direction.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_direction_set") - func _extern_set(this: Int32, value: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) + bjs_MyViewControllerDelegate_direction_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) } } var directionOptional: Optional { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_directionOptional_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_directionOptional_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_directionOptional_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_MyViewControllerDelegate_directionOptional_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var priority: Priority { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priority_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_MyViewControllerDelegate_priority_get(this: Int32(bitPattern: jsObject.id)) return Priority.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priority_set") - func _extern_set(this: Int32, value: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) + bjs_MyViewControllerDelegate_priority_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) } } var priorityOptional: Optional { get { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priorityOptional_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_MyViewControllerDelegate_priorityOptional_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priorityOptional_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_MyViewControllerDelegate_priorityOptional_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } @@ -247,6 +181,105 @@ struct AnyMyViewControllerDelegate: MyViewControllerDelegate, _BridgedSwiftProto } } +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onSomethingHappened") +fileprivate func _extern_onSomethingHappened(this: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onValueChanged") +fileprivate func _extern_onValueChanged(this: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onCountUpdated") +fileprivate func _extern_onCountUpdated(this: Int32, count: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onLabelUpdated") +fileprivate func _extern_onLabelUpdated(this: Int32, prefix: Int32, suffix: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_isCountEven") +fileprivate func _extern_isCountEven(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onHelperUpdated") +fileprivate func _extern_onHelperUpdated(this: Int32, helper: UnsafeMutableRawPointer) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createHelper") +fileprivate func _extern_createHelper(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_onOptionalHelperUpdated") +fileprivate func _extern_onOptionalHelperUpdated(this: Int32, helperIsSome: Int32, helperPointer: UnsafeMutableRawPointer) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createOptionalHelper") +fileprivate func _extern_createOptionalHelper(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_createEnum") +fileprivate func _extern_createEnum(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_handleResult") +fileprivate func _extern_handleResult(this: Int32, result: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_getResult") +fileprivate func _extern_getResult(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_eventCount_get") +fileprivate func bjs_MyViewControllerDelegate_eventCount_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_eventCount_set") +fileprivate func bjs_MyViewControllerDelegate_eventCount_set(this: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_delegateName_get") +fileprivate func bjs_MyViewControllerDelegate_delegateName_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalName_get") +fileprivate func bjs_MyViewControllerDelegate_optionalName_get(this: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalName_set") +fileprivate func bjs_MyViewControllerDelegate_optionalName_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalRawEnum_get") +fileprivate func bjs_MyViewControllerDelegate_optionalRawEnum_get(this: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalRawEnum_set") +fileprivate func bjs_MyViewControllerDelegate_optionalRawEnum_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_rawStringEnum_get") +fileprivate func bjs_MyViewControllerDelegate_rawStringEnum_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_rawStringEnum_set") +fileprivate func bjs_MyViewControllerDelegate_rawStringEnum_set(this: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_result_get") +fileprivate func bjs_MyViewControllerDelegate_result_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_result_set") +fileprivate func bjs_MyViewControllerDelegate_result_set(this: Int32, caseId: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalResult_get") +fileprivate func bjs_MyViewControllerDelegate_optionalResult_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_optionalResult_set") +fileprivate func bjs_MyViewControllerDelegate_optionalResult_set(this: Int32, isSome: Int32, caseId: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_direction_get") +fileprivate func bjs_MyViewControllerDelegate_direction_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_direction_set") +fileprivate func bjs_MyViewControllerDelegate_direction_set(this: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_directionOptional_get") +fileprivate func bjs_MyViewControllerDelegate_directionOptional_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_directionOptional_set") +fileprivate func bjs_MyViewControllerDelegate_directionOptional_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priority_get") +fileprivate func bjs_MyViewControllerDelegate_priority_get(this: Int32) -> Int32 + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priority_set") +fileprivate func bjs_MyViewControllerDelegate_priority_set(this: Int32, value: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priorityOptional_get") +fileprivate func bjs_MyViewControllerDelegate_priorityOptional_get(this: Int32) + +@_extern(wasm, module: "TestModule", name: "bjs_MyViewControllerDelegate_priorityOptional_set") +fileprivate func bjs_MyViewControllerDelegate_priorityOptional_set(this: Int32, isSome: Int32, value: Int32) + extension Direction: _BridgedSwiftCaseEnum { @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { return bridgeJSRawValue @@ -399,18 +432,19 @@ public func _bjs_Helper_deinit(pointer: UnsafeMutableRawPointer) { extension Helper: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Helper_wrap") - func _bjs_Helper_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Helper_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Helper_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Helper_wrap") +fileprivate func _bjs_Helper_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Helper_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_MyViewController_init") @_cdecl("bjs_MyViewController_init") public func _bjs_MyViewController_init(delegate: Int32) -> UnsafeMutableRawPointer { @@ -536,14 +570,15 @@ public func _bjs_MyViewController_deinit(pointer: UnsafeMutableRawPointer) { extension MyViewController: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_MyViewController_wrap") - func _bjs_MyViewController_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_MyViewController_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_MyViewController_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_MyViewController_wrap") +fileprivate func _bjs_MyViewController_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_MyViewController_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticFunctions.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticFunctions.swift index 7aa91b91..81ea282f 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticFunctions.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticFunctions.swift @@ -179,14 +179,15 @@ public func _bjs_MathUtils_deinit(pointer: UnsafeMutableRawPointer) { extension MathUtils: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_MathUtils_wrap") - func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_MathUtils_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_MathUtils_wrap") +fileprivate func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticProperties.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticProperties.swift index 72d561a0..e34f26f8 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticProperties.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/StaticProperties.swift @@ -325,14 +325,15 @@ public func _bjs_PropertyClass_deinit(pointer: UnsafeMutableRawPointer) { extension PropertyClass: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_PropertyClass_wrap") - func _bjs_PropertyClass_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PropertyClass_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PropertyClass_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_PropertyClass_wrap") +fileprivate func _bjs_PropertyClass_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PropertyClass_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClass.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClass.swift index 81f5ccf4..097f73a9 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClass.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClass.swift @@ -77,18 +77,19 @@ public func _bjs_Greeter_deinit(pointer: UnsafeMutableRawPointer) { extension Greeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Greeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Greeter_wrap") +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PublicGreeter_deinit") @_cdecl("bjs_PublicGreeter_deinit") public func _bjs_PublicGreeter_deinit(pointer: UnsafeMutableRawPointer) { @@ -97,18 +98,19 @@ public func _bjs_PublicGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension PublicGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { public var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_PublicGreeter_wrap") - func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PublicGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_PublicGreeter_wrap") +fileprivate func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PackageGreeter_deinit") @_cdecl("bjs_PackageGreeter_deinit") public func _bjs_PackageGreeter_deinit(pointer: UnsafeMutableRawPointer) { @@ -117,14 +119,15 @@ public func _bjs_PackageGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension PackageGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { package var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_PackageGreeter_wrap") - func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PackageGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_PackageGreeter_wrap") +fileprivate func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClosure.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClosure.swift index 4b1b404f..c036a797 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClosure.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ExportSwiftTests/SwiftClosure.swift @@ -6,6 +6,9 @@ @_spi(BridgeJS) import JavaScriptKit +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule10HttpStatusO_Si") +fileprivate func invoke_js_callback_TestModule_10TestModule10HttpStatusO_Si(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule10HttpStatusO_Si: _BridgedSwiftClosureBox { let closure: (HttpStatus) -> Int init(_ closure: @escaping (HttpStatus) -> Int) { @@ -23,13 +26,11 @@ private enum _BJS_Closure_10TestModule10HttpStatusO_Si { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule10HttpStatusO_Si") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule10HttpStatusO_Si(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Int.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -46,6 +47,9 @@ public func _invoke_swift_closure_TestModule_10TestModule10HttpStatusO_Si(boxPtr #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule5ThemeO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModule5ThemeO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule5ThemeO_SS: _BridgedSwiftClosureBox { let closure: (Theme) -> String init(_ closure: @escaping (Theme) -> String) { @@ -63,13 +67,11 @@ private enum _BJS_Closure_10TestModule5ThemeO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule5ThemeO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule5ThemeO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -86,6 +88,9 @@ public func _invoke_swift_closure_TestModule_10TestModule5ThemeO_SS(boxPtr: Unsa #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule5ThemeO_Sb") +fileprivate func invoke_js_callback_TestModule_10TestModule5ThemeO_Sb(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule5ThemeO_Sb: _BridgedSwiftClosureBox { let closure: (Theme) -> Bool init(_ closure: @escaping (Theme) -> Bool) { @@ -103,13 +108,11 @@ private enum _BJS_Closure_10TestModule5ThemeO_Sb { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule5ThemeO_Sb") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule5ThemeO_Sb(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Bool.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -126,6 +129,9 @@ public func _invoke_swift_closure_TestModule_10TestModule5ThemeO_Sb(boxPtr: Unsa #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule6PersonC_SS") +fileprivate func invoke_js_callback_TestModule_10TestModule6PersonC_SS(_: Int32, _: UnsafeMutableRawPointer) -> Int32 + private final class _BJS_ClosureBox_10TestModule6PersonC_SS: _BridgedSwiftClosureBox { let closure: (Person) -> String init(_ closure: @escaping (Person) -> String) { @@ -143,13 +149,11 @@ private enum _BJS_Closure_10TestModule6PersonC_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule6PersonC_SS") - func _invoke(_: Int32, _: UnsafeMutableRawPointer) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule6PersonC_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -166,6 +170,9 @@ public func _invoke_swift_closure_TestModule_10TestModule6PersonC_SS(boxPtr: Uns #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9APIResultO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModule9APIResultO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule9APIResultO_SS: _BridgedSwiftClosureBox { let closure: (APIResult) -> String init(_ closure: @escaping (APIResult) -> String) { @@ -183,13 +190,11 @@ private enum _BJS_Closure_10TestModule9APIResultO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9APIResultO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule9APIResultO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -206,6 +211,9 @@ public func _invoke_swift_closure_TestModule_10TestModule9APIResultO_SS(boxPtr: #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9DirectionO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModule9DirectionO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule9DirectionO_SS: _BridgedSwiftClosureBox { let closure: (Direction) -> String init(_ closure: @escaping (Direction) -> String) { @@ -223,13 +231,11 @@ private enum _BJS_Closure_10TestModule9DirectionO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9DirectionO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule9DirectionO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -246,6 +252,9 @@ public func _invoke_swift_closure_TestModule_10TestModule9DirectionO_SS(boxPtr: #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9DirectionO_Sb") +fileprivate func invoke_js_callback_TestModule_10TestModule9DirectionO_Sb(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModule9DirectionO_Sb: _BridgedSwiftClosureBox { let closure: (Direction) -> Bool init(_ closure: @escaping (Direction) -> Bool) { @@ -263,13 +272,11 @@ private enum _BJS_Closure_10TestModule9DirectionO_Sb { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModule9DirectionO_Sb") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModule9DirectionO_Sb(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Bool.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -286,6 +293,9 @@ public func _invoke_swift_closure_TestModule_10TestModule9DirectionO_Sb(boxPtr: #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSS_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSS_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSS_SS: _BridgedSwiftClosureBox { let closure: (String) -> String init(_ closure: @escaping (String) -> String) { @@ -303,13 +313,11 @@ private enum _BJS_Closure_10TestModuleSS_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSS_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_TestModule_10TestModuleSS_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -326,6 +334,9 @@ public func _invoke_swift_closure_TestModule_10TestModuleSS_SS(boxPtr: UnsafeMut #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq5ThemeO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSq5ThemeO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSq5ThemeO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -343,14 +354,12 @@ private enum _BJS_Closure_10TestModuleSq5ThemeO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq5ThemeO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_TestModule_10TestModuleSq5ThemeO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -367,6 +376,9 @@ public func _invoke_swift_closure_TestModule_10TestModuleSq5ThemeO_SS(boxPtr: Un #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq6PersonCSqSSSqSd_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSq6PersonCSqSSSqSd_SS(_: Int32, _: Int32, _: UnsafeMutableRawPointer, _: Int32, _: Int32, _: Int32, _: Float64) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSq6PersonCSqSSSqSd_SS: _BridgedSwiftClosureBox { let closure: (Optional, Optional, Optional) -> String init(_ closure: @escaping (Optional, Optional, Optional) -> String) { @@ -384,16 +396,14 @@ private enum _BJS_Closure_10TestModuleSq6PersonCSqSSSqSd_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0, param1, param2 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq6PersonCSqSSSqSd_SS") - func _invoke(_: Int32, _: Int32, _: UnsafeMutableRawPointer, _: Int32, _: Int32, _: Int32, _: Float64) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithRetain() let (param1IsSome, param1Value) = param1.bridgeJSLowerParameterWithPresence() let (param2IsSome, param2Value) = param2.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value, param1IsSome, param1Value, param2IsSome, param2Value) +let resultId = invoke_js_callback_TestModule_10TestModuleSq6PersonCSqSSSqSd_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value, param1IsSome, param1Value, param2IsSome, param2Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -410,6 +420,9 @@ public func _invoke_swift_closure_TestModule_10TestModuleSq6PersonCSqSSSqSd_SS(b #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq6PersonC_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSq6PersonC_SS(_: Int32, _: Int32, _: UnsafeMutableRawPointer) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSq6PersonC_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -427,14 +440,12 @@ private enum _BJS_Closure_10TestModuleSq6PersonC_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq6PersonC_SS") - func _invoke(_: Int32, _: Int32, _: UnsafeMutableRawPointer) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithRetain() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_TestModule_10TestModuleSq6PersonC_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -451,6 +462,9 @@ public func _invoke_swift_closure_TestModule_10TestModuleSq6PersonC_SS(boxPtr: U #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq9APIResultO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSq9APIResultO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSq9APIResultO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -468,14 +482,12 @@ private enum _BJS_Closure_10TestModuleSq9APIResultO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq9APIResultO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_TestModule_10TestModuleSq9APIResultO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -492,6 +504,9 @@ public func _invoke_swift_closure_TestModule_10TestModuleSq9APIResultO_SS(boxPtr #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq9DirectionO_SS") +fileprivate func invoke_js_callback_TestModule_10TestModuleSq9DirectionO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_10TestModuleSq9DirectionO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -509,14 +524,12 @@ private enum _BJS_Closure_10TestModuleSq9DirectionO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_TestModule_10TestModuleSq9DirectionO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_TestModule_10TestModuleSq9DirectionO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -684,18 +697,19 @@ public func _bjs_Person_deinit(pointer: UnsafeMutableRawPointer) { extension Person: ConvertibleToJSValue, _BridgedSwiftHeapObject { public var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_Person_wrap") - func _bjs_Person_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Person_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Person_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_Person_wrap") +fileprivate func _bjs_Person_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Person_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_TestProcessor_init") @_cdecl("bjs_TestProcessor_init") public func _bjs_TestProcessor_init(transform: Int32) -> UnsafeMutableRawPointer { @@ -902,14 +916,15 @@ public func _bjs_TestProcessor_deinit(pointer: UnsafeMutableRawPointer) { extension TestProcessor: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "TestModule", name: "bjs_TestProcessor_wrap") - func _bjs_TestProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_TestProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_TestProcessor_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "TestModule", name: "bjs_TestProcessor_wrap") +fileprivate func _bjs_TestProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_TestProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/ArrayParameter.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/ArrayParameter.swift index 96fac13d..1806d8aa 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/ArrayParameter.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/ArrayParameter.swift @@ -6,45 +6,48 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkArray") +fileprivate func bjs_checkArray(_ a: Int32) -> Void +#else +fileprivate func bjs_checkArray(_ a: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkArray(_ a: JSObject) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkArray") - func bjs_checkArray(_ a: Int32) -> Void - #else - func bjs_checkArray(_ a: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkArray(a.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkArrayWithLength") +fileprivate func bjs_checkArrayWithLength(_ a: Int32, _ b: Float64) -> Void +#else +fileprivate func bjs_checkArrayWithLength(_ a: Int32, _ b: Float64) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkArrayWithLength(_ a: JSObject, _ b: Double) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkArrayWithLength") - func bjs_checkArrayWithLength(_ a: Int32, _ b: Float64) -> Void - #else - func bjs_checkArrayWithLength(_ a: Int32, _ b: Float64) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkArrayWithLength(a.bridgeJSLowerParameter(), b.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkArray") +fileprivate func bjs_checkArray(_ a: Int32) -> Void +#else +fileprivate func bjs_checkArray(_ a: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkArray(_ a: JSObject) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkArray") - func bjs_checkArray(_ a: Int32) -> Void - #else - func bjs_checkArray(_ a: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkArray(a.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Async.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Async.swift index a8ecf8d5..5e564aa3 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Async.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Async.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncReturnVoid") +fileprivate func bjs_asyncReturnVoid() -> Int32 +#else +fileprivate func bjs_asyncReturnVoid() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncReturnVoid() throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncReturnVoid") - func bjs_asyncReturnVoid() -> Int32 - #else - func bjs_asyncReturnVoid() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncReturnVoid() if let error = _swift_js_take_exception() { throw error @@ -22,15 +23,16 @@ func asyncReturnVoid() throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripInt") +fileprivate func bjs_asyncRoundTripInt(_ v: Float64) -> Int32 +#else +fileprivate func bjs_asyncRoundTripInt(_ v: Float64) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripInt(_ v: Double) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripInt") - func bjs_asyncRoundTripInt(_ v: Float64) -> Int32 - #else - func bjs_asyncRoundTripInt(_ v: Float64) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripInt(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -38,15 +40,16 @@ func asyncRoundTripInt(_ v: Double) throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripString") +fileprivate func bjs_asyncRoundTripString(_ v: Int32) -> Int32 +#else +fileprivate func bjs_asyncRoundTripString(_ v: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripString(_ v: String) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripString") - func bjs_asyncRoundTripString(_ v: Int32) -> Int32 - #else - func bjs_asyncRoundTripString(_ v: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripString(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -54,15 +57,16 @@ func asyncRoundTripString(_ v: String) throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripBool") +fileprivate func bjs_asyncRoundTripBool(_ v: Int32) -> Int32 +#else +fileprivate func bjs_asyncRoundTripBool(_ v: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripBool(_ v: Bool) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripBool") - func bjs_asyncRoundTripBool(_ v: Int32) -> Int32 - #else - func bjs_asyncRoundTripBool(_ v: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripBool(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -70,15 +74,16 @@ func asyncRoundTripBool(_ v: Bool) throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripFloat") +fileprivate func bjs_asyncRoundTripFloat(_ v: Float64) -> Int32 +#else +fileprivate func bjs_asyncRoundTripFloat(_ v: Float64) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripFloat(_ v: Double) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripFloat") - func bjs_asyncRoundTripFloat(_ v: Float64) -> Int32 - #else - func bjs_asyncRoundTripFloat(_ v: Float64) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripFloat(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -86,15 +91,16 @@ func asyncRoundTripFloat(_ v: Double) throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripDouble") +fileprivate func bjs_asyncRoundTripDouble(_ v: Float64) -> Int32 +#else +fileprivate func bjs_asyncRoundTripDouble(_ v: Float64) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripDouble(_ v: Double) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripDouble") - func bjs_asyncRoundTripDouble(_ v: Float64) -> Int32 - #else - func bjs_asyncRoundTripDouble(_ v: Float64) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripDouble(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -102,15 +108,16 @@ func asyncRoundTripDouble(_ v: Double) throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_asyncRoundTripJSObject") +fileprivate func bjs_asyncRoundTripJSObject(_ v: Int32) -> Int32 +#else +fileprivate func bjs_asyncRoundTripJSObject(_ v: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func asyncRoundTripJSObject(_ v: JSObject) throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_asyncRoundTripJSObject") - func bjs_asyncRoundTripJSObject(_ v: Int32) -> Int32 - #else - func bjs_asyncRoundTripJSObject(_ v: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_asyncRoundTripJSObject(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Interface.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Interface.swift index 68f14808..12e04e05 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Interface.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/Interface.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_returnAnimatable") +fileprivate func bjs_returnAnimatable() -> Int32 +#else +fileprivate func bjs_returnAnimatable() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func returnAnimatable() throws(JSException) -> Animatable { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_returnAnimatable") - func bjs_returnAnimatable() -> Int32 - #else - func bjs_returnAnimatable() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_returnAnimatable() if let error = _swift_js_take_exception() { throw error @@ -22,6 +23,24 @@ func returnAnimatable() throws(JSException) -> Animatable { return Animatable.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Animatable_animate") +fileprivate func bjs_Animatable_animate(_ self: Int32, _ keyframes: Int32, _ options: Int32) -> Int32 +#else +fileprivate func bjs_Animatable_animate(_ self: Int32, _ keyframes: Int32, _ options: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Animatable_getAnimations") +fileprivate func bjs_Animatable_getAnimations(_ self: Int32, _ options: Int32) -> Int32 +#else +fileprivate func bjs_Animatable_getAnimations(_ self: Int32, _ options: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct Animatable: _JSBridgedClass { let jsObject: JSObject @@ -30,14 +49,6 @@ struct Animatable: _JSBridgedClass { } func animate(_ keyframes: JSObject, _ options: JSObject) throws(JSException) -> JSObject { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Animatable_animate") - func bjs_Animatable_animate(_ self: Int32, _ keyframes: Int32, _ options: Int32) -> Int32 - #else - func bjs_Animatable_animate(_ self: Int32, _ keyframes: Int32, _ options: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Animatable_animate(self.bridgeJSLowerParameter(), keyframes.bridgeJSLowerParameter(), options.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -46,14 +57,6 @@ struct Animatable: _JSBridgedClass { } func getAnimations(_ options: JSObject) throws(JSException) -> JSObject { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Animatable_getAnimations") - func bjs_Animatable_getAnimations(_ self: Int32, _ options: Int32) -> Int32 - #else - func bjs_Animatable_getAnimations(_ self: Int32, _ options: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Animatable_getAnimations(self.bridgeJSLowerParameter(), options.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/InvalidPropertyNames.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/InvalidPropertyNames.swift index 7e35f921..9fa2feaf 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/InvalidPropertyNames.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/InvalidPropertyNames.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createArrayBuffer") +fileprivate func bjs_createArrayBuffer() -> Int32 +#else +fileprivate func bjs_createArrayBuffer() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createArrayBuffer() throws(JSException) -> ArrayBufferLike { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createArrayBuffer") - func bjs_createArrayBuffer() -> Int32 - #else - func bjs_createArrayBuffer() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createArrayBuffer() if let error = _swift_js_take_exception() { throw error @@ -22,15 +23,16 @@ func createArrayBuffer() throws(JSException) -> ArrayBufferLike { return ArrayBufferLike.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createWeirdObject") +fileprivate func bjs_createWeirdObject() -> Int32 +#else +fileprivate func bjs_createWeirdObject() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createWeirdObject() throws(JSException) -> WeirdNaming { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createWeirdObject") - func bjs_createWeirdObject() -> Int32 - #else - func bjs_createWeirdObject() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createWeirdObject() if let error = _swift_js_take_exception() { throw error @@ -38,6 +40,24 @@ func createWeirdObject() throws(JSException) -> WeirdNaming { return WeirdNaming.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_ArrayBufferLike_byteLength_get") +fileprivate func bjs_ArrayBufferLike_byteLength_get(_ self: Int32) -> Float64 +#else +fileprivate func bjs_ArrayBufferLike_byteLength_get(_ self: Int32) -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_ArrayBufferLike_slice") +fileprivate func bjs_ArrayBufferLike_slice(_ self: Int32, _ begin: Float64, _ end: Float64) -> Int32 +#else +fileprivate func bjs_ArrayBufferLike_slice(_ self: Int32, _ begin: Float64, _ end: Float64) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct ArrayBufferLike: _JSBridgedClass { let jsObject: JSObject @@ -47,14 +67,6 @@ struct ArrayBufferLike: _JSBridgedClass { var byteLength: Double { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_ArrayBufferLike_byteLength_get") - func bjs_ArrayBufferLike_byteLength_get(_ self: Int32) -> Float64 - #else - func bjs_ArrayBufferLike_byteLength_get(_ self: Int32) -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_ArrayBufferLike_byteLength_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -64,14 +76,6 @@ struct ArrayBufferLike: _JSBridgedClass { } func slice(_ begin: Double, _ end: Double) throws(JSException) -> ArrayBufferLike { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_ArrayBufferLike_slice") - func bjs_ArrayBufferLike_slice(_ self: Int32, _ begin: Float64, _ end: Float64) -> Int32 - #else - func bjs_ArrayBufferLike_slice(_ self: Int32, _ begin: Float64, _ end: Float64) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_ArrayBufferLike_slice(self.bridgeJSLowerParameter(), begin.bridgeJSLowerParameter(), end.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -81,6 +85,69 @@ struct ArrayBufferLike: _JSBridgedClass { } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_normalProperty_get") +fileprivate func bjs_WeirdNaming_normalProperty_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_WeirdNaming_normalProperty_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_normalProperty_set") +fileprivate func bjs_WeirdNaming_normalProperty_set(_ self: Int32, _ newValue: Int32) -> Void +#else +fileprivate func bjs_WeirdNaming_normalProperty_set(_ self: Int32, _ newValue: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_for_get") +fileprivate func bjs_WeirdNaming_for_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_WeirdNaming_for_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_for_set") +fileprivate func bjs_WeirdNaming_for_set(_ self: Int32, _ newValue: Int32) -> Void +#else +fileprivate func bjs_WeirdNaming_for_set(_ self: Int32, _ newValue: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_Any_get") +fileprivate func bjs_WeirdNaming_Any_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_WeirdNaming_Any_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_Any_set") +fileprivate func bjs_WeirdNaming_Any_set(_ self: Int32, _ newValue: Int32) -> Void +#else +fileprivate func bjs_WeirdNaming_Any_set(_ self: Int32, _ newValue: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_WeirdNaming_as") +fileprivate func bjs_WeirdNaming_as(_ self: Int32) -> Void +#else +fileprivate func bjs_WeirdNaming_as(_ self: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + struct WeirdNaming: _JSBridgedClass { let jsObject: JSObject @@ -90,14 +157,6 @@ struct WeirdNaming: _JSBridgedClass { var normalProperty: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_normalProperty_get") - func bjs_WeirdNaming_normalProperty_get(_ self: Int32) -> Int32 - #else - func bjs_WeirdNaming_normalProperty_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_WeirdNaming_normalProperty_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -107,14 +166,6 @@ struct WeirdNaming: _JSBridgedClass { } func setNormalProperty(_ newValue: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_normalProperty_set") - func bjs_WeirdNaming_normalProperty_set(_ self: Int32, _ newValue: Int32) -> Void - #else - func bjs_WeirdNaming_normalProperty_set(_ self: Int32, _ newValue: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_WeirdNaming_normalProperty_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -123,14 +174,6 @@ struct WeirdNaming: _JSBridgedClass { var `for`: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_for_get") - func bjs_WeirdNaming_for_get(_ self: Int32) -> Int32 - #else - func bjs_WeirdNaming_for_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_WeirdNaming_for_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -140,14 +183,6 @@ struct WeirdNaming: _JSBridgedClass { } func setFor(_ newValue: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_for_set") - func bjs_WeirdNaming_for_set(_ self: Int32, _ newValue: Int32) -> Void - #else - func bjs_WeirdNaming_for_set(_ self: Int32, _ newValue: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_WeirdNaming_for_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -156,14 +191,6 @@ struct WeirdNaming: _JSBridgedClass { var `Any`: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_Any_get") - func bjs_WeirdNaming_Any_get(_ self: Int32) -> Int32 - #else - func bjs_WeirdNaming_Any_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_WeirdNaming_Any_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -173,14 +200,6 @@ struct WeirdNaming: _JSBridgedClass { } func setAny(_ newValue: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_Any_set") - func bjs_WeirdNaming_Any_set(_ self: Int32, _ newValue: Int32) -> Void - #else - func bjs_WeirdNaming_Any_set(_ self: Int32, _ newValue: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_WeirdNaming_Any_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -188,14 +207,6 @@ struct WeirdNaming: _JSBridgedClass { } func `as`() throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_WeirdNaming_as") - func bjs_WeirdNaming_as(_ self: Int32) -> Void - #else - func bjs_WeirdNaming_as(_ self: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_WeirdNaming_as(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/MultipleImportedTypes.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/MultipleImportedTypes.swift index 810df368..3102cd6e 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/MultipleImportedTypes.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/MultipleImportedTypes.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createDatabaseConnection") +fileprivate func bjs_createDatabaseConnection(_ config: Int32) -> Int32 +#else +fileprivate func bjs_createDatabaseConnection(_ config: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createDatabaseConnection(_ config: JSObject) throws(JSException) -> DatabaseConnection { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createDatabaseConnection") - func bjs_createDatabaseConnection(_ config: Int32) -> Int32 - #else - func bjs_createDatabaseConnection(_ config: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createDatabaseConnection(config.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -22,15 +23,16 @@ func createDatabaseConnection(_ config: JSObject) throws(JSException) -> Databas return DatabaseConnection.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createLogger") +fileprivate func bjs_createLogger(_ level: Int32) -> Int32 +#else +fileprivate func bjs_createLogger(_ level: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createLogger(_ level: String) throws(JSException) -> Logger { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createLogger") - func bjs_createLogger(_ level: Int32) -> Int32 - #else - func bjs_createLogger(_ level: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createLogger(level.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -38,15 +40,16 @@ func createLogger(_ level: String) throws(JSException) -> Logger { return Logger.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_getConfigManager") +fileprivate func bjs_getConfigManager() -> Int32 +#else +fileprivate func bjs_getConfigManager() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func getConfigManager() throws(JSException) -> ConfigManager { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_getConfigManager") - func bjs_getConfigManager() -> Int32 - #else - func bjs_getConfigManager() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_getConfigManager() if let error = _swift_js_take_exception() { throw error @@ -54,6 +57,51 @@ func getConfigManager() throws(JSException) -> ConfigManager { return ConfigManager.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_isConnected_get") +fileprivate func bjs_DatabaseConnection_isConnected_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_DatabaseConnection_isConnected_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connectionTimeout_get") +fileprivate func bjs_DatabaseConnection_connectionTimeout_get(_ self: Int32) -> Float64 +#else +fileprivate func bjs_DatabaseConnection_connectionTimeout_get(_ self: Int32) -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connectionTimeout_set") +fileprivate func bjs_DatabaseConnection_connectionTimeout_set(_ self: Int32, _ newValue: Float64) -> Void +#else +fileprivate func bjs_DatabaseConnection_connectionTimeout_set(_ self: Int32, _ newValue: Float64) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connect") +fileprivate func bjs_DatabaseConnection_connect(_ self: Int32, _ url: Int32) -> Void +#else +fileprivate func bjs_DatabaseConnection_connect(_ self: Int32, _ url: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_execute") +fileprivate func bjs_DatabaseConnection_execute(_ self: Int32, _ query: Int32) -> Int32 +#else +fileprivate func bjs_DatabaseConnection_execute(_ self: Int32, _ query: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct DatabaseConnection: _JSBridgedClass { let jsObject: JSObject @@ -63,14 +111,6 @@ struct DatabaseConnection: _JSBridgedClass { var isConnected: Bool { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_isConnected_get") - func bjs_DatabaseConnection_isConnected_get(_ self: Int32) -> Int32 - #else - func bjs_DatabaseConnection_isConnected_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_DatabaseConnection_isConnected_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -81,14 +121,6 @@ struct DatabaseConnection: _JSBridgedClass { var connectionTimeout: Double { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connectionTimeout_get") - func bjs_DatabaseConnection_connectionTimeout_get(_ self: Int32) -> Float64 - #else - func bjs_DatabaseConnection_connectionTimeout_get(_ self: Int32) -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_DatabaseConnection_connectionTimeout_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -98,14 +130,6 @@ struct DatabaseConnection: _JSBridgedClass { } func setConnectionTimeout(_ newValue: Double) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connectionTimeout_set") - func bjs_DatabaseConnection_connectionTimeout_set(_ self: Int32, _ newValue: Float64) -> Void - #else - func bjs_DatabaseConnection_connectionTimeout_set(_ self: Int32, _ newValue: Float64) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_DatabaseConnection_connectionTimeout_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -113,14 +137,6 @@ struct DatabaseConnection: _JSBridgedClass { } func connect(_ url: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_connect") - func bjs_DatabaseConnection_connect(_ self: Int32, _ url: Int32) -> Void - #else - func bjs_DatabaseConnection_connect(_ self: Int32, _ url: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_DatabaseConnection_connect(self.bridgeJSLowerParameter(), url.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -128,14 +144,6 @@ struct DatabaseConnection: _JSBridgedClass { } func execute(_ query: String) throws(JSException) -> JSObject { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_DatabaseConnection_execute") - func bjs_DatabaseConnection_execute(_ self: Int32, _ query: Int32) -> Int32 - #else - func bjs_DatabaseConnection_execute(_ self: Int32, _ query: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_DatabaseConnection_execute(self.bridgeJSLowerParameter(), query.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -145,6 +153,33 @@ struct DatabaseConnection: _JSBridgedClass { } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Logger_level_get") +fileprivate func bjs_Logger_level_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_Logger_level_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Logger_log") +fileprivate func bjs_Logger_log(_ self: Int32, _ message: Int32) -> Void +#else +fileprivate func bjs_Logger_log(_ self: Int32, _ message: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Logger_error") +fileprivate func bjs_Logger_error(_ self: Int32, _ message: Int32, _ error: Int32) -> Void +#else +fileprivate func bjs_Logger_error(_ self: Int32, _ message: Int32, _ error: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + struct Logger: _JSBridgedClass { let jsObject: JSObject @@ -154,14 +189,6 @@ struct Logger: _JSBridgedClass { var level: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Logger_level_get") - func bjs_Logger_level_get(_ self: Int32) -> Int32 - #else - func bjs_Logger_level_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Logger_level_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -171,14 +198,6 @@ struct Logger: _JSBridgedClass { } func log(_ message: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Logger_log") - func bjs_Logger_log(_ self: Int32, _ message: Int32) -> Void - #else - func bjs_Logger_log(_ self: Int32, _ message: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_Logger_log(self.bridgeJSLowerParameter(), message.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -186,14 +205,6 @@ struct Logger: _JSBridgedClass { } func error(_ message: String, _ error: JSObject) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Logger_error") - func bjs_Logger_error(_ self: Int32, _ message: Int32, _ error: Int32) -> Void - #else - func bjs_Logger_error(_ self: Int32, _ message: Int32, _ error: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_Logger_error(self.bridgeJSLowerParameter(), message.bridgeJSLowerParameter(), error.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -202,6 +213,33 @@ struct Logger: _JSBridgedClass { } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_ConfigManager_configPath_get") +fileprivate func bjs_ConfigManager_configPath_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_ConfigManager_configPath_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_ConfigManager_get") +fileprivate func bjs_ConfigManager_get(_ self: Int32, _ key: Int32) -> Int32 +#else +fileprivate func bjs_ConfigManager_get(_ self: Int32, _ key: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_ConfigManager_set") +fileprivate func bjs_ConfigManager_set(_ self: Int32, _ key: Int32, _ value: Int32) -> Void +#else +fileprivate func bjs_ConfigManager_set(_ self: Int32, _ key: Int32, _ value: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + struct ConfigManager: _JSBridgedClass { let jsObject: JSObject @@ -211,14 +249,6 @@ struct ConfigManager: _JSBridgedClass { var configPath: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_ConfigManager_configPath_get") - func bjs_ConfigManager_configPath_get(_ self: Int32) -> Int32 - #else - func bjs_ConfigManager_configPath_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_ConfigManager_configPath_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -228,14 +258,6 @@ struct ConfigManager: _JSBridgedClass { } func get(_ key: String) throws(JSException) -> JSObject { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_ConfigManager_get") - func bjs_ConfigManager_get(_ self: Int32, _ key: Int32) -> Int32 - #else - func bjs_ConfigManager_get(_ self: Int32, _ key: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_ConfigManager_get(self.bridgeJSLowerParameter(), key.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -244,14 +266,6 @@ struct ConfigManager: _JSBridgedClass { } func set(_ key: String, _ value: JSObject) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_ConfigManager_set") - func bjs_ConfigManager_set(_ self: Int32, _ key: Int32, _ value: Int32) -> Void - #else - func bjs_ConfigManager_set(_ self: Int32, _ key: Int32, _ value: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_ConfigManager_set(self.bridgeJSLowerParameter(), key.bridgeJSLowerParameter(), value.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveParameters.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveParameters.swift index 30f66a26..2643eaa0 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveParameters.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveParameters.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_check") +fileprivate func bjs_check(_ a: Float64, _ b: Int32) -> Void +#else +fileprivate func bjs_check(_ a: Float64, _ b: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func check(_ a: Double, _ b: Bool) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_check") - func bjs_check(_ a: Float64, _ b: Int32) -> Void - #else - func bjs_check(_ a: Float64, _ b: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_check(a.bridgeJSLowerParameter(), b.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveReturn.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveReturn.swift index 29ba81c6..6424329b 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveReturn.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/PrimitiveReturn.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkNumber") +fileprivate func bjs_checkNumber() -> Float64 +#else +fileprivate func bjs_checkNumber() -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + func checkNumber() throws(JSException) -> Double { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkNumber") - func bjs_checkNumber() -> Float64 - #else - func bjs_checkNumber() -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_checkNumber() if let error = _swift_js_take_exception() { throw error @@ -22,15 +23,16 @@ func checkNumber() throws(JSException) -> Double { return Double.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkBoolean") +fileprivate func bjs_checkBoolean() -> Int32 +#else +fileprivate func bjs_checkBoolean() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func checkBoolean() throws(JSException) -> Bool { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkBoolean") - func bjs_checkBoolean() -> Int32 - #else - func bjs_checkBoolean() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_checkBoolean() if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringParameter.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringParameter.swift index 99215a30..68b341ca 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringParameter.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringParameter.swift @@ -6,30 +6,32 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkString") +fileprivate func bjs_checkString(_ a: Int32) -> Void +#else +fileprivate func bjs_checkString(_ a: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkString(_ a: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkString") - func bjs_checkString(_ a: Int32) -> Void - #else - func bjs_checkString(_ a: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkString(a.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkStringWithLength") +fileprivate func bjs_checkStringWithLength(_ a: Int32, _ b: Float64) -> Void +#else +fileprivate func bjs_checkStringWithLength(_ a: Int32, _ b: Float64) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkStringWithLength(_ a: String, _ b: Double) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkStringWithLength") - func bjs_checkStringWithLength(_ a: Int32, _ b: Float64) -> Void - #else - func bjs_checkStringWithLength(_ a: Int32, _ b: Float64) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkStringWithLength(a.bridgeJSLowerParameter(), b.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringReturn.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringReturn.swift index 05bb8aea..638eedb0 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringReturn.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/StringReturn.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkString") +fileprivate func bjs_checkString() -> Int32 +#else +fileprivate func bjs_checkString() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func checkString() throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkString") - func bjs_checkString() -> Int32 - #else - func bjs_checkString() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_checkString() if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TS2SkeletonLike.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TS2SkeletonLike.swift index 0b17f13b..2e4331c7 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TS2SkeletonLike.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TS2SkeletonLike.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createTS2Skeleton") +fileprivate func bjs_createTS2Skeleton() -> Int32 +#else +fileprivate func bjs_createTS2Skeleton() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createTS2Skeleton() throws(JSException) -> TypeScriptProcessor { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createTS2Skeleton") - func bjs_createTS2Skeleton() -> Int32 - #else - func bjs_createTS2Skeleton() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createTS2Skeleton() if let error = _swift_js_take_exception() { throw error @@ -22,15 +23,16 @@ func createTS2Skeleton() throws(JSException) -> TypeScriptProcessor { return TypeScriptProcessor.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_createCodeGenerator") +fileprivate func bjs_createCodeGenerator(_ format: Int32) -> Int32 +#else +fileprivate func bjs_createCodeGenerator(_ format: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func createCodeGenerator(_ format: String) throws(JSException) -> CodeGenerator { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_createCodeGenerator") - func bjs_createCodeGenerator(_ format: Int32) -> Int32 - #else - func bjs_createCodeGenerator(_ format: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_createCodeGenerator(format.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -38,6 +40,33 @@ func createCodeGenerator(_ format: String) throws(JSException) -> CodeGenerator return CodeGenerator.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_version_get") +fileprivate func bjs_TypeScriptProcessor_version_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_TypeScriptProcessor_version_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_convert") +fileprivate func bjs_TypeScriptProcessor_convert(_ self: Int32, _ ts: Int32) -> Int32 +#else +fileprivate func bjs_TypeScriptProcessor_convert(_ self: Int32, _ ts: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_validate") +fileprivate func bjs_TypeScriptProcessor_validate(_ self: Int32, _ ts: Int32) -> Int32 +#else +fileprivate func bjs_TypeScriptProcessor_validate(_ self: Int32, _ ts: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct TypeScriptProcessor: _JSBridgedClass { let jsObject: JSObject @@ -47,14 +76,6 @@ struct TypeScriptProcessor: _JSBridgedClass { var version: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_version_get") - func bjs_TypeScriptProcessor_version_get(_ self: Int32) -> Int32 - #else - func bjs_TypeScriptProcessor_version_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_TypeScriptProcessor_version_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -64,14 +85,6 @@ struct TypeScriptProcessor: _JSBridgedClass { } func convert(_ ts: String) throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_convert") - func bjs_TypeScriptProcessor_convert(_ self: Int32, _ ts: Int32) -> Int32 - #else - func bjs_TypeScriptProcessor_convert(_ self: Int32, _ ts: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_TypeScriptProcessor_convert(self.bridgeJSLowerParameter(), ts.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -80,14 +93,6 @@ struct TypeScriptProcessor: _JSBridgedClass { } func validate(_ ts: String) throws(JSException) -> Bool { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_TypeScriptProcessor_validate") - func bjs_TypeScriptProcessor_validate(_ self: Int32, _ ts: Int32) -> Int32 - #else - func bjs_TypeScriptProcessor_validate(_ self: Int32, _ ts: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_TypeScriptProcessor_validate(self.bridgeJSLowerParameter(), ts.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -97,6 +102,24 @@ struct TypeScriptProcessor: _JSBridgedClass { } +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_CodeGenerator_outputFormat_get") +fileprivate func bjs_CodeGenerator_outputFormat_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_CodeGenerator_outputFormat_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_CodeGenerator_generate") +fileprivate func bjs_CodeGenerator_generate(_ self: Int32, _ input: Int32) -> Int32 +#else +fileprivate func bjs_CodeGenerator_generate(_ self: Int32, _ input: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + struct CodeGenerator: _JSBridgedClass { let jsObject: JSObject @@ -106,14 +129,6 @@ struct CodeGenerator: _JSBridgedClass { var outputFormat: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_CodeGenerator_outputFormat_get") - func bjs_CodeGenerator_outputFormat_get(_ self: Int32) -> Int32 - #else - func bjs_CodeGenerator_outputFormat_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_CodeGenerator_outputFormat_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -123,14 +138,6 @@ struct CodeGenerator: _JSBridgedClass { } func generate(_ input: JSObject) throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_CodeGenerator_generate") - func bjs_CodeGenerator_generate(_ self: Int32, _ input: Int32) -> Int32 - #else - func bjs_CodeGenerator_generate(_ self: Int32, _ input: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_CodeGenerator_generate(self.bridgeJSLowerParameter(), input.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeAlias.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeAlias.swift index d8b18463..e539e65d 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeAlias.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeAlias.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_checkSimple") +fileprivate func bjs_checkSimple(_ a: Float64) -> Void +#else +fileprivate func bjs_checkSimple(_ a: Float64) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func checkSimple(_ a: Double) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_checkSimple") - func bjs_checkSimple(_ a: Float64) -> Void - #else - func bjs_checkSimple(_ a: Float64) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_checkSimple(a.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeScriptClass.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeScriptClass.swift index 455b38bc..148419de 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeScriptClass.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/TypeScriptClass.swift @@ -6,6 +6,60 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_init") +fileprivate func bjs_Greeter_init(_ name: Int32) -> Int32 +#else +fileprivate func bjs_Greeter_init(_ name: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_name_get") +fileprivate func bjs_Greeter_name_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_Greeter_name_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_name_set") +fileprivate func bjs_Greeter_name_set(_ self: Int32, _ newValue: Int32) -> Void +#else +fileprivate func bjs_Greeter_name_set(_ self: Int32, _ newValue: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_age_get") +fileprivate func bjs_Greeter_age_get(_ self: Int32) -> Float64 +#else +fileprivate func bjs_Greeter_age_get(_ self: Int32) -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_greet") +fileprivate func bjs_Greeter_greet(_ self: Int32) -> Int32 +#else +fileprivate func bjs_Greeter_greet(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_Greeter_changeName") +fileprivate func bjs_Greeter_changeName(_ self: Int32, _ name: Int32) -> Void +#else +fileprivate func bjs_Greeter_changeName(_ self: Int32, _ name: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + struct Greeter: _JSBridgedClass { let jsObject: JSObject @@ -14,14 +68,6 @@ struct Greeter: _JSBridgedClass { } init(_ name: String) throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_init") - func bjs_Greeter_init(_ name: Int32) -> Int32 - #else - func bjs_Greeter_init(_ name: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Greeter_init(name.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -31,14 +77,6 @@ struct Greeter: _JSBridgedClass { var name: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_name_get") - func bjs_Greeter_name_get(_ self: Int32) -> Int32 - #else - func bjs_Greeter_name_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Greeter_name_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -48,14 +86,6 @@ struct Greeter: _JSBridgedClass { } func setName(_ newValue: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_name_set") - func bjs_Greeter_name_set(_ self: Int32, _ newValue: Int32) -> Void - #else - func bjs_Greeter_name_set(_ self: Int32, _ newValue: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_Greeter_name_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -64,14 +94,6 @@ struct Greeter: _JSBridgedClass { var age: Double { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_age_get") - func bjs_Greeter_age_get(_ self: Int32) -> Float64 - #else - func bjs_Greeter_age_get(_ self: Int32) -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Greeter_age_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -81,14 +103,6 @@ struct Greeter: _JSBridgedClass { } func greet() throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_greet") - func bjs_Greeter_greet(_ self: Int32) -> Int32 - #else - func bjs_Greeter_greet(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_Greeter_greet(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -97,14 +111,6 @@ struct Greeter: _JSBridgedClass { } func changeName(_ name: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_Greeter_changeName") - func bjs_Greeter_changeName(_ self: Int32, _ name: Int32) -> Void - #else - func bjs_Greeter_changeName(_ self: Int32, _ name: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_Greeter_changeName(self.bridgeJSLowerParameter(), name.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error diff --git a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/VoidParameterVoidReturn.swift b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/VoidParameterVoidReturn.swift index ae7ae0e8..51167847 100644 --- a/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/VoidParameterVoidReturn.swift +++ b/Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/ImportTSTests/VoidParameterVoidReturn.swift @@ -6,15 +6,16 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "Check", name: "bjs_check") +fileprivate func bjs_check() -> Void +#else +fileprivate func bjs_check() -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func check() throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "Check", name: "bjs_check") - func bjs_check() -> Void - #else - func bjs_check() -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_check() if let error = _swift_js_take_exception() { throw error diff --git a/Sources/JavaScriptKit/BridgeJSInstrincics.swift b/Sources/JavaScriptKit/BridgeJSInstrincics.swift index 0db1cd2e..b0e5ec39 100644 --- a/Sources/JavaScriptKit/BridgeJSInstrincics.swift +++ b/Sources/JavaScriptKit/BridgeJSInstrincics.swift @@ -167,29 +167,13 @@ extension String { // MARK: ImportTS @_spi(BridgeJS) public consuming func bridgeJSLowerParameter() -> Int32 { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_make_js_string") - func _swift_js_make_js_string(_ ptr: UnsafePointer?, _ len: Int32) -> Int32 - #else - /// Creates a JavaScript string from UTF-8 data in WebAssembly memory - func _swift_js_make_js_string(_ ptr: UnsafePointer?, _ len: Int32) -> Int32 { - _onlyAvailableOnWasm() - } - #endif return self.withUTF8 { b in _swift_js_make_js_string(b.baseAddress.unsafelyUnwrapped, Int32(b.count)) } } @_spi(BridgeJS) public static func bridgeJSLiftReturn(_ bytesCount: Int32) -> String { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_init_memory_with_result") - func _swift_js_init_memory_with_result(_ ptr: UnsafePointer?, _ len: Int32) - #else - /// Initializes WebAssembly memory with result data of JavaScript function call - func _swift_js_init_memory_with_result(_ ptr: UnsafePointer?, _ len: Int32) { - _onlyAvailableOnWasm() - } + #if !arch(wasm32) guard #available(macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0, *) else { _onlyAvailableOnWasm() } #endif return String(unsafeUninitializedCapacity: Int(bytesCount)) { b in @@ -201,14 +185,7 @@ extension String { // MARK: ExportSwift @_spi(BridgeJS) public static func bridgeJSLiftParameter(_ bytes: Int32, _ count: Int32) -> String { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_init_memory") - func _swift_js_init_memory(_ sourceId: Int32, _ ptr: UnsafeMutablePointer?) - #else - /// Initializes a part of WebAssembly memory with Uint8Array a JavaScript object - func _swift_js_init_memory(_ sourceId: Int32, _ ptr: UnsafeMutablePointer?) { - _onlyAvailableOnWasm() - } + #if !arch(wasm32) guard #available(macOS 11.0, iOS 14.0, watchOS 7.0, tvOS 14.0, *) else { _onlyAvailableOnWasm() } #endif return String(unsafeUninitializedCapacity: Int(count)) { b in @@ -218,15 +195,6 @@ extension String { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_string") - func _swift_js_return_string(_ ptr: UnsafePointer?, _ len: Int32) - #else - /// Write a string to reserved string storage to be returned to JavaScript - func _swift_js_return_string(_ ptr: UnsafePointer?, _ len: Int32) { - _onlyAvailableOnWasm() - } - #endif return self.withUTF8 { ptr in _swift_js_return_string(ptr.baseAddress, Int32(ptr.count)) } @@ -250,16 +218,6 @@ extension JSObject { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Int32 { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_retain") - func _swift_js_retain(_ id: Int32) -> Int32 - #else - /// Retains a JavaScript object reference to ensure the object id - /// remains valid after the function returns - func _swift_js_retain(_ id: Int32) -> Int32 { - _onlyAvailableOnWasm() - } - #endif return _swift_js_retain(Int32(bitPattern: self.id)) } } @@ -475,6 +433,191 @@ where Self: RawRepresentable, RawValue: _BridgedSwiftTypeLoweredIntoSingleWasmCo } #endif +// MARK: Wasm externs used by type lowering/lifting + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_make_js_string") +func _swift_js_make_js_string(_ ptr: UnsafePointer?, _ len: Int32) -> Int32 +#else +/// Creates a JavaScript string from UTF-8 data in WebAssembly memory +func _swift_js_make_js_string(_ ptr: UnsafePointer?, _ len: Int32) -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_init_memory_with_result") +func _swift_js_init_memory_with_result(_ ptr: UnsafePointer?, _ len: Int32) +#else +/// Initializes WebAssembly memory with result data of JavaScript function call +func _swift_js_init_memory_with_result(_ ptr: UnsafePointer?, _ len: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_string") +func _swift_js_return_string(_ ptr: UnsafePointer?, _ len: Int32) +#else +/// Write a string to reserved string storage to be returned to JavaScript +func _swift_js_return_string(_ ptr: UnsafePointer?, _ len: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_retain") +func _swift_js_retain(_ id: Int32) -> Int32 +#else +/// Retains a JavaScript object reference to ensure the object id +/// remains valid after the function returns +func _swift_js_retain(_ id: Int32) -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_bool") +func _swift_js_return_optional_bool(_ isSome: Int32, _ value: Int32) +#else +/// Sets the optional bool for return value storage +func _swift_js_return_optional_bool(_ isSome: Int32, _ value: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_presence") +func _swift_js_get_optional_int_presence() -> Int32 +#else +func _swift_js_get_optional_int_presence() -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_value") +func _swift_js_get_optional_int_value() -> Int32 +#else +func _swift_js_get_optional_int_value() -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_int") +func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) +#else +/// Sets the optional int for return value storage +func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_string") +func _swift_js_get_optional_string() -> Int32 +#else +func _swift_js_get_optional_string() -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_string") +func _swift_js_return_optional_string(_ isSome: Int32, _ ptr: UnsafePointer?, _ len: Int32) +#else +/// Write an optional string to reserved string storage to be returned to JavaScript +func _swift_js_return_optional_string(_ isSome: Int32, _ ptr: UnsafePointer?, _ len: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_object") +func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) +#else +/// Write an optional JSObject to reserved storage to be returned to JavaScript +func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_heap_object_pointer") +func _swift_js_get_optional_heap_object_pointer() -> UnsafeMutableRawPointer +#else +func _swift_js_get_optional_heap_object_pointer() -> UnsafeMutableRawPointer { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_heap_object") +func _swift_js_return_optional_heap_object(_ isSome: Int32, _ pointer: UnsafeMutableRawPointer?) +#else +/// Write an optional Swift heap object to reserved storage to be returned to JavaScript +func _swift_js_return_optional_heap_object(_ isSome: Int32, _ pointer: UnsafeMutableRawPointer?) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_presence") +func _swift_js_get_optional_float_presence() -> Int32 +#else +func _swift_js_get_optional_float_presence() -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_value") +func _swift_js_get_optional_float_value() -> Float32 +#else +func _swift_js_get_optional_float_value() -> Float32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_float") +func _swift_js_return_optional_float(_ isSome: Int32, _ value: Float32) +#else +/// Sets the optional float for return value storage +func _swift_js_return_optional_float(_ isSome: Int32, _ value: Float32) { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_presence") +func _swift_js_get_optional_double_presence() -> Int32 +#else +func _swift_js_get_optional_double_presence() -> Int32 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_value") +func _swift_js_get_optional_double_value() -> Float64 +#else +func _swift_js_get_optional_double_value() -> Float64 { + _onlyAvailableOnWasm() +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "bjs", name: "swift_js_return_optional_double") +func _swift_js_return_optional_double(_ isSome: Int32, _ value: Float64) +#else +/// Sets the optional double for return value storage +func _swift_js_return_optional_double(_ isSome: Int32, _ value: Float64) { + _onlyAvailableOnWasm() +} +#endif + extension Optional where Wrapped == Bool { // MARK: ImportTS @@ -516,16 +659,6 @@ extension Optional where Wrapped == Bool { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_bool") - func _swift_js_return_optional_bool(_ isSome: Int32, _ value: Int32) - #else - /// Sets the optional bool for return value storage - func _swift_js_return_optional_bool(_ isSome: Int32, _ value: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_bool(0, 0) @@ -563,20 +696,6 @@ extension Optional where Wrapped == Int { } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Int? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_presence") - func _swift_js_get_optional_int_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_value") - func _swift_js_get_optional_int_value() -> Int32 - #else - func _swift_js_get_optional_int_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_int_value() -> Int32 { - _onlyAvailableOnWasm() - } - #endif - let isSome = _swift_js_get_optional_int_presence() if isSome == 0 { return nil @@ -586,16 +705,6 @@ extension Optional where Wrapped == Int { } @_spi(BridgeJS) public func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_int") - func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) - #else - /// Sets the optional int for return value storage - func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch self { case .none: _swift_js_return_optional_int(0, 0) @@ -628,15 +737,6 @@ extension Optional where Wrapped == String { } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> String? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_string") - func _swift_js_get_optional_string() -> Int32 - #else - func _swift_js_get_optional_string() -> Int32 { - _onlyAvailableOnWasm() - } - #endif - let length = _swift_js_get_optional_string() if length < 0 { return nil @@ -646,16 +746,6 @@ extension Optional where Wrapped == String { } @_spi(BridgeJS) public func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_string") - func _swift_js_return_optional_string(_ isSome: Int32, _ ptr: UnsafePointer?, _ len: Int32) - #else - /// Write an optional string to reserved string storage to be returned to JavaScript - func _swift_js_return_optional_string(_ isSome: Int32, _ ptr: UnsafePointer?, _ len: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch self { case .none: _swift_js_return_optional_string(0, nil, 0) @@ -689,16 +779,6 @@ extension Optional where Wrapped == JSObject { } @_spi(BridgeJS) public func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_object") - func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) - #else - /// Write an optional JSObject to reserved storage to be returned to JavaScript - func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch self { case .none: _swift_js_return_optional_object(0, 0) @@ -721,16 +801,6 @@ extension Optional where Wrapped: _BridgedSwiftProtocolWrapper { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_object") - func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) - #else - /// Write an optional protocol wrapper to reserved storage to be returned to JavaScript - func _swift_js_return_optional_object(_ isSome: Int32, _ objectId: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_object(0, 0) @@ -815,15 +885,6 @@ extension Optional where Wrapped: _BridgedSwiftHeapObject { } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_heap_object_pointer") - func _swift_js_get_optional_heap_object_pointer() -> UnsafeMutableRawPointer - #else - func _swift_js_get_optional_heap_object_pointer() -> UnsafeMutableRawPointer { - _onlyAvailableOnWasm() - } - #endif - let pointer = _swift_js_get_optional_heap_object_pointer() if pointer == UnsafeMutableRawPointer(bitPattern: 0) { return nil @@ -833,16 +894,6 @@ extension Optional where Wrapped: _BridgedSwiftHeapObject { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_heap_object") - func _swift_js_return_optional_heap_object(_ isSome: Int32, _ pointer: UnsafeMutableRawPointer?) - #else - /// Write an optional Swift heap object to reserved storage to be returned to JavaScript - func _swift_js_return_optional_heap_object(_ isSome: Int32, _ pointer: UnsafeMutableRawPointer?) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_heap_object(0, nil) @@ -869,20 +920,6 @@ extension Optional where Wrapped == Float { } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Float? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_presence") - func _swift_js_get_optional_float_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_value") - func _swift_js_get_optional_float_value() -> Float32 - #else - func _swift_js_get_optional_float_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_float_value() -> Float32 { - _onlyAvailableOnWasm() - } - #endif - let isSome = _swift_js_get_optional_float_presence() if isSome == 0 { return nil @@ -892,16 +929,6 @@ extension Optional where Wrapped == Float { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_float") - func _swift_js_return_optional_float(_ isSome: Int32, _ value: Float32) - #else - /// Sets the optional float for return value storage - func _swift_js_return_optional_float(_ isSome: Int32, _ value: Float32) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_float(0, 0.0) @@ -929,20 +956,6 @@ extension Optional where Wrapped == Double { } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Double? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_presence") - func _swift_js_get_optional_double_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_value") - func _swift_js_get_optional_double_value() -> Float64 - #else - func _swift_js_get_optional_double_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_double_value() -> Float64 { - _onlyAvailableOnWasm() - } - #endif - let isSome = _swift_js_get_optional_double_presence() if isSome == 0 { return nil @@ -952,16 +965,6 @@ extension Optional where Wrapped == Double { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_double") - func _swift_js_return_optional_double(_ isSome: Int32, _ value: Float64) - #else - /// Sets the optional double for return value storage - func _swift_js_return_optional_double(_ isSome: Int32, _ value: Float64) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_double(0, 0.0) @@ -1001,16 +1004,6 @@ extension Optional where Wrapped: _BridgedSwiftCaseEnum { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_return_optional_int") - func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) - #else - /// Sets the optional int for return value storage - func _swift_js_return_optional_int(_ isSome: Int32, _ value: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_return_optional_int(0, 0) @@ -1062,15 +1055,6 @@ extension Optional where Wrapped: _BridgedSwiftEnumNoPayload, Wrapped: RawRepres } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_string") - func _swift_js_get_optional_string() -> Int32 - #else - func _swift_js_get_optional_string() -> Int32 { - _onlyAvailableOnWasm() - } - #endif - let length = _swift_js_get_optional_string() if length < 0 { return nil @@ -1103,20 +1087,6 @@ extension Optional where Wrapped: _BridgedSwiftEnumNoPayload, Wrapped: RawRepres } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_presence") - func _swift_js_get_optional_int_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_int_value") - func _swift_js_get_optional_int_value() -> Int32 - #else - func _swift_js_get_optional_int_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_int_value() -> Int32 { - _onlyAvailableOnWasm() - } - #endif - let isSome = _swift_js_get_optional_int_presence() if isSome == 0 { return nil @@ -1164,21 +1134,8 @@ extension Optional where Wrapped: _BridgedSwiftEnumNoPayload, Wrapped: RawRepres let optionalRawValue = Float?.bridgeJSLiftParameter(isSome, wrappedValue) return optionalRawValue.flatMap { Wrapped(rawValue: $0) } } - @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_presence") - func _swift_js_get_optional_float_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_float_value") - func _swift_js_get_optional_float_value() -> Float32 - #else - func _swift_js_get_optional_float_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_float_value() -> Float32 { - _onlyAvailableOnWasm() - } - #endif + @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { let isSome = _swift_js_get_optional_float_presence() if isSome == 0 { return nil @@ -1214,20 +1171,6 @@ extension Optional where Wrapped: _BridgedSwiftEnumNoPayload, Wrapped: RawRepres } @_spi(BridgeJS) public static func bridgeJSLiftReturnFromSideChannel() -> Wrapped? { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_presence") - func _swift_js_get_optional_double_presence() -> Int32 - @_extern(wasm, module: "bjs", name: "swift_js_get_optional_double_value") - func _swift_js_get_optional_double_value() -> Float64 - #else - func _swift_js_get_optional_double_presence() -> Int32 { - _onlyAvailableOnWasm() - } - func _swift_js_get_optional_double_value() -> Float64 { - _onlyAvailableOnWasm() - } - #endif - let isSome = _swift_js_get_optional_double_presence() if isSome == 0 { return nil @@ -1274,15 +1217,6 @@ extension Optional where Wrapped: _BridgedSwiftAssociatedValueEnum { } @_spi(BridgeJS) public consuming func bridgeJSLowerReturn() -> Void { - #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "swift_js_push_tag") - func _swift_js_push_tag(_ tag: Int32) - #else - func _swift_js_push_tag(_ tag: Int32) { - _onlyAvailableOnWasm() - } - #endif - switch consume self { case .none: _swift_js_push_tag(-1) // Use -1 as sentinel for null diff --git a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ExportSwift.swift b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ExportSwift.swift index 2e739499..572890b0 100644 --- a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ExportSwift.swift +++ b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ExportSwift.swift @@ -6,6 +6,9 @@ @_spi(BridgeJS) import JavaScriptKit +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests10HttpStatusO_Si") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests10HttpStatusO_Si(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests10HttpStatusO_Si: _BridgedSwiftClosureBox { let closure: (HttpStatus) -> Int init(_ closure: @escaping (HttpStatus) -> Int) { @@ -23,13 +26,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests10HttpStatusO_Si { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests10HttpStatusO_Si") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests10HttpStatusO_Si(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Int.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -46,6 +47,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests10H #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests5ThemeO_SS: _BridgedSwiftClosureBox { let closure: (Theme) -> String init(_ closure: @escaping (Theme) -> String) { @@ -63,13 +67,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests5ThemeO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -86,6 +88,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5Th #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_Sb") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_Sb(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests5ThemeO_Sb: _BridgedSwiftClosureBox { let closure: (Theme) -> Bool init(_ closure: @escaping (Theme) -> Bool) { @@ -103,13 +108,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests5ThemeO_Sb { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_Sb") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5ThemeO_Sb(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Bool.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -126,6 +129,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests5Th #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests7GreeterC_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests7GreeterC_SS(_: Int32, _: UnsafeMutableRawPointer) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests7GreeterC_SS: _BridgedSwiftClosureBox { let closure: (Greeter) -> String init(_ closure: @escaping (Greeter) -> String) { @@ -143,13 +149,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests7GreeterC_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests7GreeterC_SS") - func _invoke(_: Int32, _: UnsafeMutableRawPointer) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests7GreeterC_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -166,6 +170,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests7Gr #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9APIResultO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9APIResultO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests9APIResultO_SS: _BridgedSwiftClosureBox { let closure: (APIResult) -> String init(_ closure: @escaping (APIResult) -> String) { @@ -183,13 +190,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests9APIResultO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9APIResultO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9APIResultO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -206,6 +211,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9AP #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests9DirectionO_SS: _BridgedSwiftClosureBox { let closure: (Direction) -> String init(_ closure: @escaping (Direction) -> String) { @@ -223,13 +231,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests9DirectionO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -246,6 +252,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9Di #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_Sb") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_Sb(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTests9DirectionO_Sb: _BridgedSwiftClosureBox { let closure: (Direction) -> Bool init(_ closure: @escaping (Direction) -> Bool) { @@ -263,13 +272,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTests9DirectionO_Sb { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_Sb") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9DirectionO_Sb(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Bool.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -286,6 +293,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTests9Di #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_7GreeterC") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_7GreeterC(_: Int32, _: Int32) -> UnsafeMutableRawPointer + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSS_7GreeterC: _BridgedSwiftClosureBox { let closure: (String) -> Greeter init(_ closure: @escaping (String) -> Greeter) { @@ -303,13 +313,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSS_7GreeterC { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_7GreeterC") - func _invoke(_: Int32, _: Int32) -> UnsafeMutableRawPointer - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_7GreeterC(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Greeter.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -326,6 +334,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_ #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_SS(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSS_SS: _BridgedSwiftClosureBox { let closure: (String) -> String init(_ closure: @escaping (String) -> String) { @@ -343,13 +354,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSS_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_SS") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -366,6 +375,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSS_ #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSiSSSd_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSiSSSd_SS(_: Int32, _: Int32, _: Int32, _: Float64) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSiSSSd_SS: _BridgedSwiftClosureBox { let closure: (Int, String, Double) -> String init(_ closure: @escaping (Int, String, Double) -> String) { @@ -383,13 +395,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSiSSSd_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0, param1, param2 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSiSSSd_SS") - func _invoke(_: Int32, _: Int32, _: Int32, _: Float64) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter(), param1.bridgeJSLowerParameter(), param2.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSiSSSd_SS(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter(), param1.bridgeJSLowerParameter(), param2.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -406,6 +416,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSiS #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSi_Si") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSi_Si(_: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSi_Si: _BridgedSwiftClosureBox { let closure: (Int) -> Int init(_ closure: @escaping (Int) -> Int) { @@ -423,13 +436,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSi_Si { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSi_Si") - func _invoke(_: Int32, _: Int32) -> Int32 - let resultId = _invoke(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) + let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSi_Si(callback.bridgeJSLowerParameter(), param0.bridgeJSLowerParameter()) return Int.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -446,6 +457,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSi_ #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq5ThemeO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq5ThemeO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSq5ThemeO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -463,14 +477,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSq5ThemeO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq5ThemeO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq5ThemeO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -487,6 +499,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq5 #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq7GreeterC_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq7GreeterC_SS(_: Int32, _: Int32, _: UnsafeMutableRawPointer) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSq7GreeterC_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -504,14 +519,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSq7GreeterC_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq7GreeterC_SS") - func _invoke(_: Int32, _: Int32, _: UnsafeMutableRawPointer) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithRetain() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq7GreeterC_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -528,6 +541,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq7 #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9APIResultO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9APIResultO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSq9APIResultO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -545,14 +561,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSq9APIResultO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9APIResultO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9APIResultO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -569,6 +583,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9 #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9DirectionO_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9DirectionO_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSq9DirectionO_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -586,14 +603,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSq9DirectionO_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9DirectionO_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9DirectionO_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -610,6 +625,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSq9 #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSS_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSS_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSqSS_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -627,14 +645,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSqSS_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSS_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSS_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -651,6 +667,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqS #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSi_SS") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSi_SS(_: Int32, _: Int32, _: Int32) -> Int32 + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsSqSi_SS: _BridgedSwiftClosureBox { let closure: (Optional) -> String init(_ closure: @escaping (Optional) -> String) { @@ -668,14 +687,12 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsSqSi_SS { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] param0 in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSi_SS") - func _invoke(_: Int32, _: Int32, _: Int32) -> Int32 let (param0IsSome, param0Value) = param0.bridgeJSLowerParameterWithPresence() -let resultId = _invoke(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) +let resultId = invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqSi_SS(callback.bridgeJSLowerParameter(), param0IsSome, param0Value) return String.bridgeJSLiftReturn(resultId) #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -692,6 +709,9 @@ public func _invoke_swift_closure_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsSqS #endif } +@_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsy_Sq7GreeterC") +fileprivate func invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsy_Sq7GreeterC(_: Int32) -> Void + private final class _BJS_ClosureBox_20BridgeJSRuntimeTestsy_Sq7GreeterC: _BridgedSwiftClosureBox { let closure: () -> Optional init(_ closure: @escaping () -> Optional) { @@ -709,13 +729,11 @@ private enum _BJS_Closure_20BridgeJSRuntimeTestsy_Sq7GreeterC { let callback = JSObject.bridgeJSLiftParameter(callbackId) return { [callback] in #if arch(wasm32) - @_extern(wasm, module: "bjs", name: "invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsy_Sq7GreeterC") - func _invoke(_: Int32) -> Void - _invoke(callback.bridgeJSLowerParameter()) + invoke_js_callback_BridgeJSRuntimeTests_20BridgeJSRuntimeTestsy_Sq7GreeterC(callback.bridgeJSLowerParameter()) return Optional.bridgeJSLiftReturnFromSideChannel() #else fatalError("Only available on WebAssembly") - #endif + #endif } } } @@ -736,220 +754,160 @@ struct AnyDataProcessor: DataProcessor, _BridgedSwiftProtocolWrapper { let jsObject: JSObject func increment(by amount: Int) { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_increment") - func _extern_increment(this: Int32, amount: Int32) _extern_increment(this: Int32(bitPattern: jsObject.id), amount: amount.bridgeJSLowerParameter()) } func getValue() -> Int { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getValue") - func _extern_getValue(this: Int32) -> Int32 let ret = _extern_getValue(this: Int32(bitPattern: jsObject.id)) return Int.bridgeJSLiftReturn(ret) } func setLabelElements(_ labelPrefix: String, _ labelSuffix: String) { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_setLabelElements") - func _extern_setLabelElements(this: Int32, labelPrefix: Int32, labelSuffix: Int32) _extern_setLabelElements(this: Int32(bitPattern: jsObject.id), labelPrefix: labelPrefix.bridgeJSLowerParameter(), labelSuffix: labelSuffix.bridgeJSLowerParameter()) } func getLabel() -> String { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getLabel") - func _extern_getLabel(this: Int32) -> Int32 let ret = _extern_getLabel(this: Int32(bitPattern: jsObject.id)) return String.bridgeJSLiftReturn(ret) } func isEven() -> Bool { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_isEven") - func _extern_isEven(this: Int32) -> Int32 let ret = _extern_isEven(this: Int32(bitPattern: jsObject.id)) return Bool.bridgeJSLiftReturn(ret) } func processGreeter(_ greeter: Greeter) -> String { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_processGreeter") - func _extern_processGreeter(this: Int32, greeter: UnsafeMutableRawPointer) -> Int32 let ret = _extern_processGreeter(this: Int32(bitPattern: jsObject.id), greeter: greeter.bridgeJSLowerParameter()) return String.bridgeJSLiftReturn(ret) } func createGreeter() -> Greeter { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_createGreeter") - func _extern_createGreeter(this: Int32) -> UnsafeMutableRawPointer let ret = _extern_createGreeter(this: Int32(bitPattern: jsObject.id)) return Greeter.bridgeJSLiftReturn(ret) } func processOptionalGreeter(_ greeter: Optional) -> String { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_processOptionalGreeter") - func _extern_processOptionalGreeter(this: Int32, greeterIsSome: Int32, greeterPointer: UnsafeMutableRawPointer) -> Int32 let (greeterIsSome, greeterPointer) = greeter.bridgeJSLowerParameterWithPresence() let ret = _extern_processOptionalGreeter(this: Int32(bitPattern: jsObject.id), greeterIsSome: greeterIsSome, greeterPointer: greeterPointer) return String.bridgeJSLiftReturn(ret) } func createOptionalGreeter() -> Optional { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_createOptionalGreeter") - func _extern_createOptionalGreeter(this: Int32) -> UnsafeMutableRawPointer let ret = _extern_createOptionalGreeter(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } func handleAPIResult(_ result: Optional) { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_handleAPIResult") - func _extern_handleAPIResult(this: Int32, resultIsSome: Int32, resultCaseId: Int32) let (resultIsSome, resultCaseId) = result.bridgeJSLowerParameterWithPresence() _extern_handleAPIResult(this: Int32(bitPattern: jsObject.id), resultIsSome: resultIsSome, resultCaseId: resultCaseId) } func getAPIResult() -> Optional { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getAPIResult") - func _extern_getAPIResult(this: Int32) -> Int32 let ret = _extern_getAPIResult(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } var count: Int { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_count_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_count_get(this: Int32(bitPattern: jsObject.id)) return Int.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_count_set") - func _extern_set(this: Int32, value: Int32) - _extern_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) + bjs_DataProcessor_count_set(this: Int32(bitPattern: jsObject.id), value: newValue.bridgeJSLowerParameter()) } } var name: String { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_name_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_name_get(this: Int32(bitPattern: jsObject.id)) return String.bridgeJSLiftReturn(ret) } } var optionalTag: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTag_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_DataProcessor_optionalTag_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTag_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_DataProcessor_optionalTag_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var optionalCount: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalCount_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_DataProcessor_optionalCount_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalCount_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_DataProcessor_optionalCount_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var direction: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_direction_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_direction_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_direction_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_DataProcessor_direction_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var optionalTheme: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTheme_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_DataProcessor_optionalTheme_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTheme_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_DataProcessor_optionalTheme_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var httpStatus: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_httpStatus_get") - func _extern_get(this: Int32) - _extern_get(this: Int32(bitPattern: jsObject.id)) + bjs_DataProcessor_httpStatus_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturnFromSideChannel() } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_httpStatus_set") - func _extern_set(this: Int32, isSome: Int32, value: Int32) let (isSome, value) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) + bjs_DataProcessor_httpStatus_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, value: value) } } var apiResult: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_apiResult_get") - func _extern_get(this: Int32) -> Int32 - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_apiResult_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_apiResult_set") - func _extern_set(this: Int32, isSome: Int32, caseId: Int32) let (isSome, caseId) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, caseId: caseId) + bjs_DataProcessor_apiResult_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, caseId: caseId) } } var helper: Greeter { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_helper_get") - func _extern_get(this: Int32) -> UnsafeMutableRawPointer - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_helper_get(this: Int32(bitPattern: jsObject.id)) return Greeter.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_helper_set") - func _extern_set(this: Int32, pointer: UnsafeMutableRawPointer) - _extern_set(this: Int32(bitPattern: jsObject.id), pointer: newValue.bridgeJSLowerParameter()) + bjs_DataProcessor_helper_set(this: Int32(bitPattern: jsObject.id), pointer: newValue.bridgeJSLowerParameter()) } } var optionalHelper: Optional { get { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalHelper_get") - func _extern_get(this: Int32) -> UnsafeMutableRawPointer - let ret = _extern_get(this: Int32(bitPattern: jsObject.id)) + let ret = bjs_DataProcessor_optionalHelper_get(this: Int32(bitPattern: jsObject.id)) return Optional.bridgeJSLiftReturn(ret) } set { - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalHelper_set") - func _extern_set(this: Int32, isSome: Int32, pointer: UnsafeMutableRawPointer) let (isSome, pointer) = newValue.bridgeJSLowerParameterWithPresence() - _extern_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, pointer: pointer) + bjs_DataProcessor_optionalHelper_set(this: Int32(bitPattern: jsObject.id), isSome: isSome, pointer: pointer) } } @@ -958,6 +916,96 @@ struct AnyDataProcessor: DataProcessor, _BridgedSwiftProtocolWrapper { } } +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_increment") +fileprivate func _extern_increment(this: Int32, amount: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getValue") +fileprivate func _extern_getValue(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_setLabelElements") +fileprivate func _extern_setLabelElements(this: Int32, labelPrefix: Int32, labelSuffix: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getLabel") +fileprivate func _extern_getLabel(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_isEven") +fileprivate func _extern_isEven(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_processGreeter") +fileprivate func _extern_processGreeter(this: Int32, greeter: UnsafeMutableRawPointer) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_createGreeter") +fileprivate func _extern_createGreeter(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_processOptionalGreeter") +fileprivate func _extern_processOptionalGreeter(this: Int32, greeterIsSome: Int32, greeterPointer: UnsafeMutableRawPointer) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_createOptionalGreeter") +fileprivate func _extern_createOptionalGreeter(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_handleAPIResult") +fileprivate func _extern_handleAPIResult(this: Int32, resultIsSome: Int32, resultCaseId: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_getAPIResult") +fileprivate func _extern_getAPIResult(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_count_get") +fileprivate func bjs_DataProcessor_count_get(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_count_set") +fileprivate func bjs_DataProcessor_count_set(this: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_name_get") +fileprivate func bjs_DataProcessor_name_get(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTag_get") +fileprivate func bjs_DataProcessor_optionalTag_get(this: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTag_set") +fileprivate func bjs_DataProcessor_optionalTag_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalCount_get") +fileprivate func bjs_DataProcessor_optionalCount_get(this: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalCount_set") +fileprivate func bjs_DataProcessor_optionalCount_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_direction_get") +fileprivate func bjs_DataProcessor_direction_get(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_direction_set") +fileprivate func bjs_DataProcessor_direction_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTheme_get") +fileprivate func bjs_DataProcessor_optionalTheme_get(this: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalTheme_set") +fileprivate func bjs_DataProcessor_optionalTheme_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_httpStatus_get") +fileprivate func bjs_DataProcessor_httpStatus_get(this: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_httpStatus_set") +fileprivate func bjs_DataProcessor_httpStatus_set(this: Int32, isSome: Int32, value: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_apiResult_get") +fileprivate func bjs_DataProcessor_apiResult_get(this: Int32) -> Int32 + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_apiResult_set") +fileprivate func bjs_DataProcessor_apiResult_set(this: Int32, isSome: Int32, caseId: Int32) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_helper_get") +fileprivate func bjs_DataProcessor_helper_get(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_helper_set") +fileprivate func bjs_DataProcessor_helper_set(this: Int32, pointer: UnsafeMutableRawPointer) + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalHelper_get") +fileprivate func bjs_DataProcessor_optionalHelper_get(this: Int32) -> UnsafeMutableRawPointer + +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessor_optionalHelper_set") +fileprivate func bjs_DataProcessor_optionalHelper_set(this: Int32, isSome: Int32, pointer: UnsafeMutableRawPointer) + extension Direction: _BridgedSwiftCaseEnum { @_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 { return bridgeJSRawValue @@ -3377,18 +3425,19 @@ public func _bjs_Greeter_deinit(pointer: UnsafeMutableRawPointer) { extension Greeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { public var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Greeter_wrap") - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Greeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Greeter_wrap") +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Greeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_Calculator_square") @_cdecl("bjs_Calculator_square") public func _bjs_Calculator_square(_self: UnsafeMutableRawPointer, value: Int32) -> Int32 { @@ -3419,18 +3468,19 @@ public func _bjs_Calculator_deinit(pointer: UnsafeMutableRawPointer) { extension Calculator: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Calculator_wrap") - func _bjs_Calculator_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Calculator_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Calculator_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Calculator_wrap") +fileprivate func _bjs_Calculator_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Calculator_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_InternalGreeter_deinit") @_cdecl("bjs_InternalGreeter_deinit") public func _bjs_InternalGreeter_deinit(pointer: UnsafeMutableRawPointer) { @@ -3439,18 +3489,19 @@ public func _bjs_InternalGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension InternalGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { internal var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_InternalGreeter_wrap") - func _bjs_InternalGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_InternalGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_InternalGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_InternalGreeter_wrap") +fileprivate func _bjs_InternalGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_InternalGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PublicGreeter_deinit") @_cdecl("bjs_PublicGreeter_deinit") public func _bjs_PublicGreeter_deinit(pointer: UnsafeMutableRawPointer) { @@ -3459,18 +3510,19 @@ public func _bjs_PublicGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension PublicGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { public var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PublicGreeter_wrap") - func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PublicGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PublicGreeter_wrap") +fileprivate func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PublicGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PackageGreeter_deinit") @_cdecl("bjs_PackageGreeter_deinit") public func _bjs_PackageGreeter_deinit(pointer: UnsafeMutableRawPointer) { @@ -3479,18 +3531,19 @@ public func _bjs_PackageGreeter_deinit(pointer: UnsafeMutableRawPointer) { extension PackageGreeter: ConvertibleToJSValue, _BridgedSwiftHeapObject { package var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PackageGreeter_wrap") - func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PackageGreeter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PackageGreeter_wrap") +fileprivate func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PackageGreeter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_Converter_init") @_cdecl("bjs_Converter_init") public func _bjs_Converter_init() -> UnsafeMutableRawPointer { @@ -3521,18 +3574,19 @@ public func _bjs_Converter_deinit(pointer: UnsafeMutableRawPointer) { extension Utils.Converter: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Converter_wrap") - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_Converter_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_Converter_wrap") +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_Converter_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_HTTPServer_init") @_cdecl("bjs_HTTPServer_init") public func _bjs_HTTPServer_init() -> UnsafeMutableRawPointer { @@ -3562,18 +3616,19 @@ public func _bjs_HTTPServer_deinit(pointer: UnsafeMutableRawPointer) { extension Networking.API.HTTPServer: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_HTTPServer_wrap") - func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_HTTPServer_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_HTTPServer_wrap") +fileprivate func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_HTTPServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_TestServer_init") @_cdecl("bjs_TestServer_init") public func _bjs_TestServer_init() -> UnsafeMutableRawPointer { @@ -3603,18 +3658,19 @@ public func _bjs_TestServer_deinit(pointer: UnsafeMutableRawPointer) { extension Internal.TestServer: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_TestServer_wrap") - func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_TestServer_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_TestServer_wrap") +fileprivate func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_TestServer_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_OptionalPropertyHolder_init") @_cdecl("bjs_OptionalPropertyHolder_init") public func _bjs_OptionalPropertyHolder_init(optionalNameIsSome: Int32, optionalNameBytes: Int32, optionalNameLength: Int32) -> UnsafeMutableRawPointer { @@ -3697,18 +3753,19 @@ public func _bjs_OptionalPropertyHolder_deinit(pointer: UnsafeMutableRawPointer) extension OptionalPropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_OptionalPropertyHolder_wrap") - func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_OptionalPropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_OptionalPropertyHolder_wrap") +fileprivate func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_OptionalPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_SimplePropertyHolder_init") @_cdecl("bjs_SimplePropertyHolder_init") public func _bjs_SimplePropertyHolder_init(value: Int32) -> UnsafeMutableRawPointer { @@ -3749,18 +3806,19 @@ public func _bjs_SimplePropertyHolder_deinit(pointer: UnsafeMutableRawPointer) { extension SimplePropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_SimplePropertyHolder_wrap") - func _bjs_SimplePropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_SimplePropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_SimplePropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_SimplePropertyHolder_wrap") +fileprivate func _bjs_SimplePropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_SimplePropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_PropertyHolder_init") @_cdecl("bjs_PropertyHolder_init") public func _bjs_PropertyHolder_init(intValue: Int32, floatValue: Float32, doubleValue: Float64, boolValue: Int32, stringValueBytes: Int32, stringValueLength: Int32, jsObject: Int32, sibling: UnsafeMutableRawPointer) -> UnsafeMutableRawPointer { @@ -4067,18 +4125,19 @@ public func _bjs_PropertyHolder_deinit(pointer: UnsafeMutableRawPointer) { extension PropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PropertyHolder_wrap") - func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_PropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_PropertyHolder_wrap") +fileprivate func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_PropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_MathUtils_static_add") @_cdecl("bjs_MathUtils_static_add") public func _bjs_MathUtils_static_add(a: Int32, b: Int32) -> Int32 { @@ -4109,18 +4168,19 @@ public func _bjs_MathUtils_deinit(pointer: UnsafeMutableRawPointer) { extension MathUtils: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_MathUtils_wrap") - func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_MathUtils_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_MathUtils_wrap") +fileprivate func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_MathUtils_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_ConstructorDefaults_init") @_cdecl("bjs_ConstructorDefaults_init") public func _bjs_ConstructorDefaults_init(nameBytes: Int32, nameLength: Int32, count: Int32, enabled: Int32, status: Int32, tagIsSome: Int32, tagBytes: Int32, tagLength: Int32) -> UnsafeMutableRawPointer { @@ -4256,18 +4316,19 @@ public func _bjs_ConstructorDefaults_deinit(pointer: UnsafeMutableRawPointer) { extension ConstructorDefaults: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_ConstructorDefaults_wrap") - func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_ConstructorDefaults_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_ConstructorDefaults_wrap") +fileprivate func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_ConstructorDefaults_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_StaticPropertyHolder_init") @_cdecl("bjs_StaticPropertyHolder_init") public func _bjs_StaticPropertyHolder_init() -> UnsafeMutableRawPointer { @@ -4498,18 +4559,19 @@ public func _bjs_StaticPropertyHolder_deinit(pointer: UnsafeMutableRawPointer) { extension StaticPropertyHolder: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_StaticPropertyHolder_wrap") - func _bjs_StaticPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_StaticPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_StaticPropertyHolder_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_StaticPropertyHolder_wrap") +fileprivate func _bjs_StaticPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_StaticPropertyHolder_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_DataProcessorManager_init") @_cdecl("bjs_DataProcessorManager_init") public func _bjs_DataProcessorManager_init(processor: Int32) -> UnsafeMutableRawPointer { @@ -4784,18 +4846,19 @@ public func _bjs_DataProcessorManager_deinit(pointer: UnsafeMutableRawPointer) { extension DataProcessorManager: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessorManager_wrap") - func _bjs_DataProcessorManager_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_DataProcessorManager_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_DataProcessorManager_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_DataProcessorManager_wrap") +fileprivate func _bjs_DataProcessorManager_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_DataProcessorManager_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_SwiftDataProcessor_init") @_cdecl("bjs_SwiftDataProcessor_init") public func _bjs_SwiftDataProcessor_init() -> UnsafeMutableRawPointer { @@ -5133,18 +5196,19 @@ public func _bjs_SwiftDataProcessor_deinit(pointer: UnsafeMutableRawPointer) { extension SwiftDataProcessor: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_SwiftDataProcessor_wrap") - func _bjs_SwiftDataProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_SwiftDataProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_SwiftDataProcessor_wrap(Unmanaged.passRetained(self).toOpaque())))) } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_SwiftDataProcessor_wrap") +fileprivate func _bjs_SwiftDataProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_SwiftDataProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + @_expose(wasm, "bjs_TextProcessor_init") @_cdecl("bjs_TextProcessor_init") public func _bjs_TextProcessor_init(transform: Int32) -> UnsafeMutableRawPointer { @@ -5384,14 +5448,15 @@ public func _bjs_TextProcessor_deinit(pointer: UnsafeMutableRawPointer) { extension TextProcessor: ConvertibleToJSValue, _BridgedSwiftHeapObject { var jsValue: JSValue { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_TextProcessor_wrap") - func _bjs_TextProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 - #else - func _bjs_TextProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif return .object(JSObject(id: UInt32(bitPattern: _bjs_TextProcessor_wrap(Unmanaged.passRetained(self).toOpaque())))) } -} \ No newline at end of file +} + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_TextProcessor_wrap") +fileprivate func _bjs_TextProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 +#else +fileprivate func _bjs_TextProcessor_wrap(_: UnsafeMutableRawPointer) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif \ No newline at end of file diff --git a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ImportTS.swift b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ImportTS.swift index 19bc82fc..e75febb8 100644 --- a/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ImportTS.swift +++ b/Tests/BridgeJSRuntimeTests/Generated/BridgeJS.ImportTS.swift @@ -6,30 +6,32 @@ @_spi(BridgeJS) import JavaScriptKit +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripVoid") +fileprivate func bjs_jsRoundTripVoid() -> Void +#else +fileprivate func bjs_jsRoundTripVoid() -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func jsRoundTripVoid() throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripVoid") - func bjs_jsRoundTripVoid() -> Void - #else - func bjs_jsRoundTripVoid() -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_jsRoundTripVoid() if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripNumber") +fileprivate func bjs_jsRoundTripNumber(_ v: Float64) -> Float64 +#else +fileprivate func bjs_jsRoundTripNumber(_ v: Float64) -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + func jsRoundTripNumber(_ v: Double) throws(JSException) -> Double { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripNumber") - func bjs_jsRoundTripNumber(_ v: Float64) -> Float64 - #else - func bjs_jsRoundTripNumber(_ v: Float64) -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsRoundTripNumber(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -37,15 +39,16 @@ func jsRoundTripNumber(_ v: Double) throws(JSException) -> Double { return Double.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripBool") +fileprivate func bjs_jsRoundTripBool(_ v: Int32) -> Int32 +#else +fileprivate func bjs_jsRoundTripBool(_ v: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func jsRoundTripBool(_ v: Bool) throws(JSException) -> Bool { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripBool") - func bjs_jsRoundTripBool(_ v: Int32) -> Int32 - #else - func bjs_jsRoundTripBool(_ v: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsRoundTripBool(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -53,15 +56,16 @@ func jsRoundTripBool(_ v: Bool) throws(JSException) -> Bool { return Bool.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripString") +fileprivate func bjs_jsRoundTripString(_ v: Int32) -> Int32 +#else +fileprivate func bjs_jsRoundTripString(_ v: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func jsRoundTripString(_ v: String) throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsRoundTripString") - func bjs_jsRoundTripString(_ v: Int32) -> Int32 - #else - func bjs_jsRoundTripString(_ v: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsRoundTripString(v.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -69,30 +73,32 @@ func jsRoundTripString(_ v: String) throws(JSException) -> String { return String.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrVoid") +fileprivate func bjs_jsThrowOrVoid(_ shouldThrow: Int32) -> Void +#else +fileprivate func bjs_jsThrowOrVoid(_ shouldThrow: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + func jsThrowOrVoid(_ shouldThrow: Bool) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrVoid") - func bjs_jsThrowOrVoid(_ shouldThrow: Int32) -> Void - #else - func bjs_jsThrowOrVoid(_ shouldThrow: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_jsThrowOrVoid(shouldThrow.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error } } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrNumber") +fileprivate func bjs_jsThrowOrNumber(_ shouldThrow: Int32) -> Float64 +#else +fileprivate func bjs_jsThrowOrNumber(_ shouldThrow: Int32) -> Float64 { + fatalError("Only available on WebAssembly") +} +#endif + func jsThrowOrNumber(_ shouldThrow: Bool) throws(JSException) -> Double { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrNumber") - func bjs_jsThrowOrNumber(_ shouldThrow: Int32) -> Float64 - #else - func bjs_jsThrowOrNumber(_ shouldThrow: Int32) -> Float64 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsThrowOrNumber(shouldThrow.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -100,15 +106,16 @@ func jsThrowOrNumber(_ shouldThrow: Bool) throws(JSException) -> Double { return Double.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrBool") +fileprivate func bjs_jsThrowOrBool(_ shouldThrow: Int32) -> Int32 +#else +fileprivate func bjs_jsThrowOrBool(_ shouldThrow: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func jsThrowOrBool(_ shouldThrow: Bool) throws(JSException) -> Bool { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrBool") - func bjs_jsThrowOrBool(_ shouldThrow: Int32) -> Int32 - #else - func bjs_jsThrowOrBool(_ shouldThrow: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsThrowOrBool(shouldThrow.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -116,15 +123,16 @@ func jsThrowOrBool(_ shouldThrow: Bool) throws(JSException) -> Bool { return Bool.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrString") +fileprivate func bjs_jsThrowOrString(_ shouldThrow: Int32) -> Int32 +#else +fileprivate func bjs_jsThrowOrString(_ shouldThrow: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func jsThrowOrString(_ shouldThrow: Bool) throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_jsThrowOrString") - func bjs_jsThrowOrString(_ shouldThrow: Int32) -> Int32 - #else - func bjs_jsThrowOrString(_ shouldThrow: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_jsThrowOrString(shouldThrow.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -132,15 +140,16 @@ func jsThrowOrString(_ shouldThrow: Bool) throws(JSException) -> String { return String.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_runAsyncWorks") +fileprivate func bjs_runAsyncWorks() -> Int32 +#else +fileprivate func bjs_runAsyncWorks() -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + func runAsyncWorks() throws(JSException) -> JSPromise { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_runAsyncWorks") - func bjs_runAsyncWorks() -> Int32 - #else - func bjs_runAsyncWorks() -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_runAsyncWorks() if let error = _swift_js_take_exception() { throw error @@ -148,6 +157,60 @@ func runAsyncWorks() throws(JSException) -> JSPromise { return JSPromise.bridgeJSLiftReturn(ret) } +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_init") +fileprivate func bjs_JsGreeter_init(_ name: Int32, _ prefix: Int32) -> Int32 +#else +fileprivate func bjs_JsGreeter_init(_ name: Int32, _ prefix: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_name_get") +fileprivate func bjs_JsGreeter_name_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_JsGreeter_name_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_name_set") +fileprivate func bjs_JsGreeter_name_set(_ self: Int32, _ newValue: Int32) -> Void +#else +fileprivate func bjs_JsGreeter_name_set(_ self: Int32, _ newValue: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_prefix_get") +fileprivate func bjs_JsGreeter_prefix_get(_ self: Int32) -> Int32 +#else +fileprivate func bjs_JsGreeter_prefix_get(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_greet") +fileprivate func bjs_JsGreeter_greet(_ self: Int32) -> Int32 +#else +fileprivate func bjs_JsGreeter_greet(_ self: Int32) -> Int32 { + fatalError("Only available on WebAssembly") +} +#endif + +#if arch(wasm32) +@_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_changeName") +fileprivate func bjs_JsGreeter_changeName(_ self: Int32, _ name: Int32) -> Void +#else +fileprivate func bjs_JsGreeter_changeName(_ self: Int32, _ name: Int32) -> Void { + fatalError("Only available on WebAssembly") +} +#endif + struct JsGreeter: _JSBridgedClass { let jsObject: JSObject @@ -156,14 +219,6 @@ struct JsGreeter: _JSBridgedClass { } init(_ name: String, _ prefix: String) throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_init") - func bjs_JsGreeter_init(_ name: Int32, _ prefix: Int32) -> Int32 - #else - func bjs_JsGreeter_init(_ name: Int32, _ prefix: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_JsGreeter_init(name.bridgeJSLowerParameter(), prefix.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -173,14 +228,6 @@ struct JsGreeter: _JSBridgedClass { var name: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_name_get") - func bjs_JsGreeter_name_get(_ self: Int32) -> Int32 - #else - func bjs_JsGreeter_name_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_JsGreeter_name_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -190,14 +237,6 @@ struct JsGreeter: _JSBridgedClass { } func setName(_ newValue: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_name_set") - func bjs_JsGreeter_name_set(_ self: Int32, _ newValue: Int32) -> Void - #else - func bjs_JsGreeter_name_set(_ self: Int32, _ newValue: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_JsGreeter_name_set(self.bridgeJSLowerParameter(), newValue.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -206,14 +245,6 @@ struct JsGreeter: _JSBridgedClass { var prefix: String { get throws(JSException) { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_prefix_get") - func bjs_JsGreeter_prefix_get(_ self: Int32) -> Int32 - #else - func bjs_JsGreeter_prefix_get(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_JsGreeter_prefix_get(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -223,14 +254,6 @@ struct JsGreeter: _JSBridgedClass { } func greet() throws(JSException) -> String { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_greet") - func bjs_JsGreeter_greet(_ self: Int32) -> Int32 - #else - func bjs_JsGreeter_greet(_ self: Int32) -> Int32 { - fatalError("Only available on WebAssembly") - } - #endif let ret = bjs_JsGreeter_greet(self.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error @@ -239,14 +262,6 @@ struct JsGreeter: _JSBridgedClass { } func changeName(_ name: String) throws(JSException) -> Void { - #if arch(wasm32) - @_extern(wasm, module: "BridgeJSRuntimeTests", name: "bjs_JsGreeter_changeName") - func bjs_JsGreeter_changeName(_ self: Int32, _ name: Int32) -> Void - #else - func bjs_JsGreeter_changeName(_ self: Int32, _ name: Int32) -> Void { - fatalError("Only available on WebAssembly") - } - #endif bjs_JsGreeter_changeName(self.bridgeJSLowerParameter(), name.bridgeJSLowerParameter()) if let error = _swift_js_take_exception() { throw error