Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 112 additions & 2 deletions Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
@_spi(BridgeJS) import JavaScriptKit

extension APIResult: _BridgedSwiftAssociatedValueEnum {
@_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult {
private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> APIResult {
switch caseId {
case 0:
return .success(String.bridgeJSLiftParameter(_swift_js_pop_param_int32(), _swift_js_pop_param_int32()))
Expand All @@ -26,6 +26,43 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum {
}
}

// MARK: Protocol Export

@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 {
switch self {
case .success(let param0):
var __bjs_param0 = param0
__bjs_param0.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
return Int32(0)
case .failure(let param0):
_swift_js_push_int(Int32(param0))
return Int32(1)
case .flag(let param0):
_swift_js_push_int(param0 ? 1 : 0)
return Int32(2)
case .rate(let param0):
_swift_js_push_f32(param0)
return Int32(3)
case .precise(let param0):
_swift_js_push_f64(param0)
return Int32(4)
case .info:
return Int32(5)
}
}

@_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> APIResult {
return _bridgeJSLiftFromCaseId(caseId)
}

// MARK: ExportSwift

@_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> APIResult {
return _bridgeJSLiftFromCaseId(caseId)
}

@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() {
switch self {
case .success(let param0):
Expand Down Expand Up @@ -53,7 +90,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum {
}

extension ComplexResult: _BridgedSwiftAssociatedValueEnum {
@_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> ComplexResult {
private static func _bridgeJSLiftFromCaseId(_ caseId: Int32) -> ComplexResult {
switch caseId {
case 0:
return .success(String.bridgeJSLiftParameter(_swift_js_pop_param_int32(), _swift_js_pop_param_int32()))
Expand All @@ -74,6 +111,79 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum {
}
}

// MARK: Protocol Export

@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerParameter() -> Int32 {
switch self {
case .success(let param0):
var __bjs_param0 = param0
__bjs_param0.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
return Int32(0)
case .error(let param0, let param1):
var __bjs_param0 = param0
__bjs_param0.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
_swift_js_push_int(Int32(param1))
return Int32(1)
case .location(let param0, let param1, let param2):
_swift_js_push_f64(param0)
_swift_js_push_f64(param1)
var __bjs_param2 = param2
__bjs_param2.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
return Int32(2)
case .status(let param0, let param1, let param2):
_swift_js_push_int(param0 ? 1 : 0)
_swift_js_push_int(Int32(param1))
var __bjs_param2 = param2
__bjs_param2.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
return Int32(3)
case .coordinates(let param0, let param1, let param2):
_swift_js_push_f64(param0)
_swift_js_push_f64(param1)
_swift_js_push_f64(param2)
return Int32(4)
case .comprehensive(let param0, let param1, let param2, let param3, let param4, let param5, let param6, let param7, let param8):
_swift_js_push_int(param0 ? 1 : 0)
_swift_js_push_int(param1 ? 1 : 0)
_swift_js_push_int(Int32(param2))
_swift_js_push_int(Int32(param3))
_swift_js_push_f64(param4)
_swift_js_push_f64(param5)
var __bjs_param6 = param6
__bjs_param6.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
var __bjs_param7 = param7
__bjs_param7.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
var __bjs_param8 = param8
__bjs_param8.withUTF8 { ptr in
_swift_js_push_string(ptr.baseAddress, Int32(ptr.count))
}
return Int32(5)
case .info:
return Int32(6)
}
}

@_spi(BridgeJS) @_transparent public static func bridgeJSLiftReturn(_ caseId: Int32) -> ComplexResult {
return _bridgeJSLiftFromCaseId(caseId)
}

// MARK: ExportSwift

@_spi(BridgeJS) @_transparent public static func bridgeJSLiftParameter(_ caseId: Int32) -> ComplexResult {
return _bridgeJSLiftFromCaseId(caseId)
}

@_spi(BridgeJS) @_transparent public consuming func bridgeJSLowerReturn() {
switch self {
case .success(let param0):
Expand Down
4 changes: 4 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -112,5 +112,9 @@ Run this script when you've made changes to:
These changes require updating the pre-generated Swift bindings committed to the repository.
**Adding new BridgeJS intrinsics:**
If you add new `@_extern(wasm, module: "bjs")` functions to [`BridgeJSInstrincics.swift`](Sources/JavaScriptKit/BridgeJSInstrincics.swift), also add corresponding stub entries to [`Plugins/PackageToJS/Templates/instantiate.js`](Plugins/PackageToJS/Templates/instantiate.js) in the `importObject["bjs"]` object. This allows packages without BridgeJS-generated code to instantiate successfully.
## Support
If you have any questions or need assistance, feel free to reach out via [GitHub Issues](https://github.com/swiftwasm/JavaScriptKit/issues) or [Discord](https://discord.gg/ashJW8T8yp).
Loading