Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit689fdd2

Browse files
authored
Merge pull request#460 from PassiveLogic/feat/protocol-support
BridgeJS: Improved@js Protocol support - properties, Optional, enums
2 parents84243a4 +eb1f0e3 commit689fdd2

File tree

56 files changed

+6427
-654
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+6427
-654
lines changed

‎Benchmarks/Sources/Generated/BridgeJS.ExportSwift.swift‎

Lines changed: 112 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
@_spi(BridgeJS)import JavaScriptKit
88

99
extensionAPIResult:_BridgedSwiftAssociatedValueEnum{
10-
@_spi(BridgeJS)@_transparentpublicstaticfuncbridgeJSLiftParameter(_ caseId:Int32)->APIResult{
10+
privatestaticfunc_bridgeJSLiftFromCaseId(_ caseId:Int32)->APIResult{
1111
switch caseId{
1212
case0:
1313
return.success(String.bridgeJSLiftParameter(_swift_js_pop_param_int32(),_swift_js_pop_param_int32()))
@@ -26,6 +26,43 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum {
2626
}
2727
}
2828

29+
// MARK: Protocol Export
30+
31+
@_spi(BridgeJS)@_transparentpublicconsumingfunc bridgeJSLowerParameter()->Int32{
32+
switchself{
33+
case.success(let param0):
34+
var__bjs_param0= param0
35+
__bjs_param0.withUTF8{ ptrin
36+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
37+
}
38+
returnInt32(0)
39+
case.failure(let param0):
40+
_swift_js_push_int(Int32(param0))
41+
returnInt32(1)
42+
case.flag(let param0):
43+
_swift_js_push_int(param0?1:0)
44+
returnInt32(2)
45+
case.rate(let param0):
46+
_swift_js_push_f32(param0)
47+
returnInt32(3)
48+
case.precise(let param0):
49+
_swift_js_push_f64(param0)
50+
returnInt32(4)
51+
case.info:
52+
returnInt32(5)
53+
}
54+
}
55+
56+
@_spi(BridgeJS)@_transparentpublicstaticfunc bridgeJSLiftReturn(_ caseId:Int32)->APIResult{
57+
return_bridgeJSLiftFromCaseId(caseId)
58+
}
59+
60+
// MARK: ExportSwift
61+
62+
@_spi(BridgeJS)@_transparentpublicstaticfunc bridgeJSLiftParameter(_ caseId:Int32)->APIResult{
63+
return_bridgeJSLiftFromCaseId(caseId)
64+
}
65+
2966
@_spi(BridgeJS)@_transparentpublicconsumingfunc bridgeJSLowerReturn(){
3067
switchself{
3168
case.success(let param0):
@@ -53,7 +90,7 @@ extension APIResult: _BridgedSwiftAssociatedValueEnum {
5390
}
5491

5592
extensionComplexResult:_BridgedSwiftAssociatedValueEnum{
56-
@_spi(BridgeJS)@_transparentpublicstaticfuncbridgeJSLiftParameter(_ caseId:Int32)->ComplexResult{
93+
privatestaticfunc_bridgeJSLiftFromCaseId(_ caseId:Int32)->ComplexResult{
5794
switch caseId{
5895
case0:
5996
return.success(String.bridgeJSLiftParameter(_swift_js_pop_param_int32(),_swift_js_pop_param_int32()))
@@ -74,6 +111,79 @@ extension ComplexResult: _BridgedSwiftAssociatedValueEnum {
74111
}
75112
}
76113

114+
// MARK: Protocol Export
115+
116+
@_spi(BridgeJS)@_transparentpublicconsumingfunc bridgeJSLowerParameter()->Int32{
117+
switchself{
118+
case.success(let param0):
119+
var__bjs_param0= param0
120+
__bjs_param0.withUTF8{ ptrin
121+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
122+
}
123+
returnInt32(0)
124+
case.error(let param0,let param1):
125+
var__bjs_param0= param0
126+
__bjs_param0.withUTF8{ ptrin
127+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
128+
}
129+
_swift_js_push_int(Int32(param1))
130+
returnInt32(1)
131+
case.location(let param0,let param1,let param2):
132+
_swift_js_push_f64(param0)
133+
_swift_js_push_f64(param1)
134+
var__bjs_param2= param2
135+
__bjs_param2.withUTF8{ ptrin
136+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
137+
}
138+
returnInt32(2)
139+
case.status(let param0,let param1,let param2):
140+
_swift_js_push_int(param0?1:0)
141+
_swift_js_push_int(Int32(param1))
142+
var__bjs_param2= param2
143+
__bjs_param2.withUTF8{ ptrin
144+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
145+
}
146+
returnInt32(3)
147+
case.coordinates(let param0,let param1,let param2):
148+
_swift_js_push_f64(param0)
149+
_swift_js_push_f64(param1)
150+
_swift_js_push_f64(param2)
151+
returnInt32(4)
152+
case.comprehensive(let param0,let param1,let param2,let param3,let param4,let param5,let param6,let param7,let param8):
153+
_swift_js_push_int(param0?1:0)
154+
_swift_js_push_int(param1?1:0)
155+
_swift_js_push_int(Int32(param2))
156+
_swift_js_push_int(Int32(param3))
157+
_swift_js_push_f64(param4)
158+
_swift_js_push_f64(param5)
159+
var__bjs_param6= param6
160+
__bjs_param6.withUTF8{ ptrin
161+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
162+
}
163+
var__bjs_param7= param7
164+
__bjs_param7.withUTF8{ ptrin
165+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
166+
}
167+
var__bjs_param8= param8
168+
__bjs_param8.withUTF8{ ptrin
169+
_swift_js_push_string(ptr.baseAddress,Int32(ptr.count))
170+
}
171+
returnInt32(5)
172+
case.info:
173+
returnInt32(6)
174+
}
175+
}
176+
177+
@_spi(BridgeJS)@_transparentpublicstaticfunc bridgeJSLiftReturn(_ caseId:Int32)->ComplexResult{
178+
return_bridgeJSLiftFromCaseId(caseId)
179+
}
180+
181+
// MARK: ExportSwift
182+
183+
@_spi(BridgeJS)@_transparentpublicstaticfunc bridgeJSLiftParameter(_ caseId:Int32)->ComplexResult{
184+
return_bridgeJSLiftFromCaseId(caseId)
185+
}
186+
77187
@_spi(BridgeJS)@_transparentpublicconsumingfunc bridgeJSLowerReturn(){
78188
switchself{
79189
case.success(let param0):

‎CONTRIBUTING.md‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,5 +112,9 @@ Run this script when you've made changes to:
112112
113113
These changes require updating the pre-generated Swift bindings committed to the repository.
114114
115+
**Adding new BridgeJS intrinsics:**
116+
117+
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.
118+
115119
## Support
116120
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).

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp