@@ -197,10 +197,8 @@ private func makeAsyncClosure(
197197// └─────────────────────┴──────────────────────────┘
198198
199199/// Returns true if the host function has been already released, otherwise false.
200- @_expose ( wasm, " swjs_call_host_function " )
201- @_cdecl ( " _swjs_call_host_function " )
202- @available ( * , unavailable)
203- public func _swjs_call_host_function(
200+ @_cdecl ( " _call_host_function_impl " )
201+ func _call_host_function_impl(
204202 _ hostFuncRef: JavaScriptHostFuncRef ,
205203 _ argv: UnsafePointer < RawJSValue > , _ argc: Int32 ,
206204 _ callbackFuncRef: JavaScriptObjectRef
@@ -233,10 +231,9 @@ extension JSClosure {
233231 }
234232}
235233
236- @_expose ( wasm, " swjs_free_host_function " )
237- @_cdecl ( " _swjs_free_host_function " )
238- @available ( * , unavailable)
239- func _swjs_free_host_function( _ hostFuncRef: JavaScriptHostFuncRef ) { }
234+
235+ @_cdecl ( " _free_host_function_impl " )
236+ func _free_host_function_impl( _ hostFuncRef: JavaScriptHostFuncRef ) { }
240237
241238#else
242239
@@ -247,10 +244,25 @@ extension JSClosure {
247244
248245}
249246
250- @_expose ( wasm, " swjs_free_host_function " )
251- @_cdecl ( " _swjs_free_host_function " )
252- @available ( * , unavailable)
253- func _swjs_free_host_function( _ hostFuncRef: JavaScriptHostFuncRef ) {
247+ @_cdecl ( " _free_host_function_impl " )
248+ func _free_host_function_impl( _ hostFuncRef: JavaScriptHostFuncRef ) {
254249 JSClosure . sharedClosures. wrappedValue [ hostFuncRef] = nil
255250}
256251#endif
252+
253+ #if compiler(>=6.0) && hasFeature(Embedded)
254+ // cdecls currently don't work in embedded, and expose for wasm only works >=6.0
255+ @_expose ( wasm, " swjs_call_host_function " )
256+ public func _swjs_call_host_function(
257+ _ hostFuncRef: JavaScriptHostFuncRef ,
258+ _ argv: UnsafePointer < RawJSValue > , _ argc: Int32 ,
259+ _ callbackFuncRef: JavaScriptObjectRef ) -> Bool {
260+
261+ _call_host_function_impl ( hostFuncRef, argv, argc, callbackFuncRef)
262+ }
263+
264+ @_expose ( wasm, " swjs_free_host_function " )
265+ public func _swjs_free_host_function( _ hostFuncRef: JavaScriptHostFuncRef ) {
266+ _free_host_function_impl ( hostFuncRef)
267+ }
268+ #endif
0 commit comments