Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1166 commits
Select commit Hold shift + click to select a range
d2ca6eb
Add opt-in tracing hooks for JS bridge (#548)
kateinoigakukun Jan 30, 2026
d08ab42
BridgeJS: Array benchmarks (#549)
krodak Jan 30, 2026
bffab39
BridgeJS: Add UInt support (#551)
krodak Jan 30, 2026
8004473
Fix `ExperimentalCustomExecutors` SPI import build issues (#552)
kateinoigakukun Feb 2, 2026
d9c0301
BridgeJS: Rename stack manipulation imports
kateinoigakukun Feb 2, 2026
dbc216a
BridgeJS: Remove `swift_js_pop_array_length`
kateinoigakukun Feb 2, 2026
8c82550
BridgeJS: Remove `swift_js_push_array_length`
kateinoigakukun Feb 2, 2026
e604fa6
BridgeJS: Rename swift_js_push_int -> swift_js_push_i32
kateinoigakukun Feb 2, 2026
d8b0e17
Merge pull request #553 from swiftwasm/yt/reduce-intrinsics
krodak Feb 2, 2026
d4c16e4
Fix: Ensure `BridgeJS.Macros.swift` is processed by `SwiftToSkeleton`…
fjtrujy Feb 3, 2026
36d4c73
Fix missing comma in @_expose attribute for SwiftSyntax602 (#555)
zhiqipan Feb 3, 2026
b0bf4a3
Examples: Build SwiftSyntax in debug mode for macro plugins (#558)
kateinoigakukun Feb 3, 2026
4af1984
BridgeJS: Fix macro test suites silently ignoring failures (#559)
kateinoigakukun Feb 3, 2026
4fa48cf
BridgeJS: Fix namespace enum with `@JS(namespace:)` attribute (#562)
krodak Feb 3, 2026
d0724f2
BridgeJS: Add intrinsic extensions for stack-based lifting and refact…
krodak Feb 3, 2026
794e786
BridgeJS: Re-organize snapshot test structure (#561)
kateinoigakukun Feb 3, 2026
d4da0e3
BridgeJS: Exception checking on protocol wrapper methods
krodak Feb 3, 2026
a070ba0
Merge pull request #563 from PassiveLogic/krodak/protocol-throws
krodak Feb 3, 2026
1714f28
BridgeJS: Add JSObject and @JSClass struct support for arrays and struct
krodak Jan 29, 2026
0662e3b
Revert "BridgeJS: Enforce throws(JSException) on @JS protocol methods…
kateinoigakukun Feb 3, 2026
d35ef58
Merge pull request #566 from PassiveLogic/krodak/jsobject-stack-support
krodak Feb 3, 2026
bc61038
TS2Swift: Skip type checks when translating TS -> Swift (#567)
kateinoigakukun Feb 3, 2026
edabb97
BridgeJS: emit typed throws without extra space (#571)
kateinoigakukun Feb 3, 2026
89ed56e
CI: Cancel previous workflow runs on PRs
kateinoigakukun Feb 4, 2026
6990143
BridgeJS: Support `@JSFunction static func`
kateinoigakukun Feb 3, 2026
a2aa6e1
BridgeJS: Cover static methods in ts2swift tests
kateinoigakukun Feb 4, 2026
4e3f02b
BridgeJS: Fix d.ts rendering of static methods
kateinoigakukun Feb 4, 2026
0c3cb25
./Utilities/format.swift
kateinoigakukun Feb 4, 2026
cf6c745
BridgeJS: Simplify static method naming
kateinoigakukun Feb 4, 2026
5161a41
BridgeJS: Remove support for static members in extensions
kateinoigakukun Feb 4, 2026
fc7e237
BridgeJS: Support `T | null` and `T | undefined`
kateinoigakukun Feb 3, 2026
6a230da
BridgeJS: Simplify Optional and JSUndefinedOr code paths
kateinoigakukun Feb 4, 2026
d6551ac
BridgeJS: Add te2swift unit tests
kateinoigakukun Feb 4, 2026
ab2c068
BridgeJS: Simplify optional presence check handling
kateinoigakukun Feb 4, 2026
667d787
BridgeJS: Cover Optional/Undefined usage on import side
kateinoigakukun Feb 4, 2026
966b2d7
./Utilities/format.swift
kateinoigakukun Feb 4, 2026
e4b688f
Merge pull request #568 from swiftwasm/katei/8891-bridgejs-support
krodak Feb 4, 2026
e55d927
Merge pull request #569 from swiftwasm/katei/5e7d-bridgejs-import
krodak Feb 4, 2026
0bd50f8
[NFC] BridgeJS: Avoid emitting empty skeletons (#574)
kateinoigakukun Feb 4, 2026
56aabfa
[NFC] BridgeJS: Omit trailing spaces on empty lines in generated JS c…
kateinoigakukun Feb 4, 2026
81885ea
BridgeJS: Perf-tune `SwiftToSkeleton` by avoiding unnecessary Syntax …
kateinoigakukun Feb 4, 2026
16e3f44
BridgeJS: Add JSValue parameter/return support (#570)
kateinoigakukun Feb 4, 2026
dcc148f
BridgeJS: Support all missing types as associated values in exported …
krodak Jan 27, 2026
26dfded
Merge pull request #579 from PassiveLogic/krodak/associated-enum-alig…
krodak Feb 4, 2026
43a05d9
BridgeJS: Few more array import tests
krodak Feb 4, 2026
66f0d12
build-examples.sh: re-enable Embedded example package (#490)
MaxDesiatov Feb 4, 2026
0ea3733
Merge pull request #573 from PassiveLogic/krodak/import-array
krodak Feb 4, 2026
ffa6c06
- Added JSValue-aware stack lift/lower fragments so arrays push/pop J…
kateinoigakukun Feb 5, 2026
3dba5df
- Added JSValue array support end-to-end: JS glue now lowers/lifts op…
kateinoigakukun Feb 5, 2026
f56d72f
BridgeJS: Fix throws hint spacing (#584)
kateinoigakukun Feb 5, 2026
4db13d9
[NFC] BridgeJS: Split out OptionalSupportTests.swift (#583)
kateinoigakukun Feb 5, 2026
b2e93d0
BridgeJS: Fix optional String return handling in generated JS glue code
kateinoigakukun Feb 5, 2026
f03500f
Merge pull request #585 from swiftwasm/yt/optiona-imports-fix
krodak Feb 5, 2026
d48acfa
Merge pull request #580 from swiftwasm/katei/6700-support-jsvalue
krodak Feb 5, 2026
b932073
BridgeJS: Skip directories in generate input file processing
krodak Feb 5, 2026
c8536db
Merge pull request #586 from PassiveLogic/krodak/directory-error
krodak Feb 5, 2026
89d8165
[NFC] BridgeJS: Add push/pop JS codegen helpers
kateinoigakukun Feb 5, 2026
2aceeb9
Merge pull request #587 from swiftwasm/yt/nfc-push-pop-js-glue-gen
krodak Feb 5, 2026
63b7b72
[NFC] BridgeJS: Remove explicit stack storage captures from enum/stru…
kateinoigakukun Feb 5, 2026
20457f4
[NFC] BridgeJS: Remove remaining explicit captures from enum/struct h…
kateinoigakukun Feb 5, 2026
516fb9d
BridgeJS: Make Stack ABI storage direction agnostic
kateinoigakukun Feb 5, 2026
72ec08d
BridgeJS: Add Dictionary support (#581)
kateinoigakukun Feb 5, 2026
3da2172
PackageToJS: Fix skeleton file discovery path for build plugin output
krodak Feb 5, 2026
9a312e2
Merge pull request #591 from PassiveLogic/krodak/packagetojslocationfix
krodak Feb 5, 2026
23cec54
Merge pull request #589 from swiftwasm/yt/follow-up-capture-cleanup
krodak Feb 5, 2026
6b3a697
Add ts2swift Record to Dictionary mapping (#582)
kateinoigakukun Feb 5, 2026
b1fb45e
BridgeJS: Add missing `function` keyword for namespace function decla…
krodak Feb 5, 2026
faf9d12
Merge pull request #590 from swiftwasm/yt/direction-agnostic-stack
krodak Feb 5, 2026
444393f
BridgeJS: Fix Dictionary bridging after Stack ABI refactor (#594)
krodak Feb 5, 2026
bc752fc
BridgeJS: Generate Swift doc-comment based on JSDoc (#596)
kateinoigakukun Feb 6, 2026
610b1a6
BridgeJS: Improve diagnostics and fix-its for macros
kateinoigakukun Feb 5, 2026
f68159c
Merge pull request #597 from swiftwasm/katei/b443-bridgejs-macros
krodak Feb 6, 2026
8217d06
BridgeJS: Add `JSTypedClosure` API (#578)
kateinoigakukun Feb 6, 2026
18339d3
BridgeJS: Always provide swift_js_closure_unregister intrinsic in gen…
krodak Feb 6, 2026
60b9444
Merge pull request #599 from PassiveLogic/krodak/js-closure-intrinsic…
krodak Feb 6, 2026
180c010
BridgeJS: show unified diff on snapshot mismatch (#600)
kateinoigakukun Feb 8, 2026
6d103ab
[NFC] BridgeJS: Cover more types in closure snapshot tests (#602)
kateinoigakukun Feb 8, 2026
d9adac0
[NFC] Fix warnings (#603)
kateinoigakukun Feb 9, 2026
f2bf525
BridgeJS: Support `@JS class` in imported function signatures (#601)
kateinoigakukun Feb 9, 2026
3a22f4d
BridgeJS: Add profiling instrumentation (#604)
kateinoigakukun Feb 9, 2026
788ad44
[NFC] BridgeJS: Make JSGlueGen and IntrinsicJSFragment methods throwable
kateinoigakukun Feb 9, 2026
3d9678a
BridgeJS: Build fixes for profiling API
kateinoigakukun Feb 9, 2026
235a9bd
BridgeJS: Deduplicate closure signature collection logic (#605)
kateinoigakukun Feb 9, 2026
c336a3f
[NFC] BridgeJS: Make JSGlueGen and IntrinsicJSFragment methods throwa…
kateinoigakukun Feb 9, 2026
3bc0400
[NFC] BridgeJS: Move CodeFragmentPrintetr to BridgeJSCore
kateinoigakukun Feb 9, 2026
2e4de4f
BridgeJS: Explicitly reject unsupported optional wrapped types
kateinoigakukun Feb 9, 2026
dbfef2e
Merge pull request #607 from swiftwasm/yt/move-code-printer
kateinoigakukun Feb 9, 2026
8f77619
BridgeJS: Fix handling of optional Swift heap objects in JS glue gene…
kateinoigakukun Feb 9, 2026
4c0a345
BridgeJS: Fix optional Swift heap object for parameter lifting in JS …
kateinoigakukun Feb 9, 2026
26880cf
Merge pull request #608 from swiftwasm/yt/fix-optional-swift-heap-low…
kateinoigakukun Feb 9, 2026
c74f659
BridgeJS: Fix missing escape in profiling output
kateinoigakukun Feb 9, 2026
a0b8448
BridgeJS: Add `IntrinsicJSFragment.PrintCodeContext`
kateinoigakukun Feb 9, 2026
4e1eb26
Merge pull request #609 from swiftwasm/yt/intrinsic-fragment-context
kateinoigakukun Feb 9, 2026
00d1967
BridgeJS: Fix unused variable warnings in JSGlueGen.swift
kateinoigakukun Feb 9, 2026
f6959e0
BridgeJS: Reduce `PrintCodeContext` construction usage
kateinoigakukun Feb 9, 2026
cb45962
./Utilities/format.swift
kateinoigakukun Feb 9, 2026
f90d918
BridgeJS: Unify closure JS glue lift/lower
kateinoigakukun Feb 8, 2026
50ad37a
Merge pull request #610 from swiftwasm/katei/18a5-bridgejs-unify-g
krodak Feb 9, 2026
bceaf28
Bump actions/setup-node from 4 to 6
dependabot[bot] Feb 9, 2026
c6f2642
BridgeJS: Fix incorrect TypeScript type names for `tsEnum`-style enum…
krodak Feb 9, 2026
c8565c9
Merge pull request #613 from swiftwasm/dependabot/github_actions/acti…
kateinoigakukun Feb 9, 2026
0452169
Merge pull request #614 from PassiveLogic/krodak/ts-enum-fix
kateinoigakukun Feb 9, 2026
935130c
BridgeJS: Update `JSUndefinedOr` APIs
kateinoigakukun Feb 10, 2026
a271c38
Merge pull request #615 from swiftwasm/yt/remove-undefinedValue
kateinoigakukun Feb 10, 2026
9eaefa6
BridgeJS: Rename `BRIDGE_JS_PROFILING` to `BRIDGEJS_PROFILING`
kateinoigakukun Feb 10, 2026
929af06
Merge pull request #616 from swiftwasm/katei/0736-bridgejs-diagnos
kateinoigakukun Feb 10, 2026
63cb9af
BridgeJS: Check generated TypeScript validity in test suites (#611)
krodak Feb 10, 2026
b06a79b
BridgeJS: Allow executing TS2SwiftVitestTests on Xcode
kateinoigakukun Feb 10, 2026
cb7b6a9
BridgeJS: Remove parsing API usage from JSSetterMacro
kateinoigakukun Feb 11, 2026
9162fa0
BridgeJS: Remove BasicFormat usage in ExportSwift
kateinoigakukun Feb 11, 2026
dd1cb58
BridgeJS: Remove BasicFormat usage in ExportSwift (#617)
kateinoigakukun Feb 11, 2026
bed1178
NCF: BridgeJS: Generalize Optional stack ABI for Array, Dictionary, a…
krodak Feb 11, 2026
38af37b
BridgeJS: Delegate nested container codegen to generic runtime confor…
krodak Feb 11, 2026
1b99431
Merge pull request #618 from PassiveLogic/kr/stack-abi-generalization
kateinoigakukun Feb 12, 2026
9ab70c6
Merge pull request #619 from PassiveLogic/kr/container-codegen-simpli…
kateinoigakukun Feb 12, 2026
6716dfc
[NFC] BridgeJS: Remove tag stack and use i32 stack for enum case tags
kateinoigakukun Feb 12, 2026
e129b41
[NFC] BridgeJS: Minimize enum with assoc values code generation
kateinoigakukun Feb 12, 2026
9ddfda9
Merge pull request #620 from swiftwasm/yt/remove-tag-stack
krodak Feb 12, 2026
a77ee78
Merge pull request #621 from swiftwasm/yt/rename-stack-abi-ops
krodak Feb 12, 2026
8970445
NFC: BridgeJS: Simplify ExportSwift codegen by using no-arg bridgeJSL…
krodak Feb 12, 2026
7018c02
Merge pull request #623 from PassiveLogic/kr/bridgejs-lift-simplifica…
krodak Feb 12, 2026
d5ac7fa
NFC: BridgeJS: Simplify ExportSwift codegen by removing redundant bra…
krodak Feb 12, 2026
318f3ae
Merge pull request #624 from PassiveLogic/kr/codegen-cleanup
krodak Feb 12, 2026
38a73c8
NFC: BridgeJS: Further simplify codegen and JSValue intrinsics
krodak Feb 12, 2026
a98e49d
Merge pull request #625 from PassiveLogic/kr/bridgejs-next-cleanups
krodak Feb 12, 2026
e68262d
BridgeJS: Consolidate optional and pointer runtime intrinsics
krodak Feb 12, 2026
ac72422
Merge pull request #627 from swiftwasm/katei/bf1a-fix-ts2swift-for
kateinoigakukun Feb 12, 2026
b3ddd88
Prevent cross-module inlining of f32/f64 @_extern(wasm) functions
krodak Feb 12, 2026
56933d2
Merge pull request #626 from PassiveLogic/kr/runtime-intrinsics-generic
krodak Feb 12, 2026
fcd2b53
Merge pull request #628 from PassiveLogic/kr/f32f64-inline-never-fix
krodak Feb 12, 2026
e34f382
BridgeJS: add runtime coverage for `public @JS struct` (#629)
kateinoigakukun Feb 13, 2026
6682a2e
BridgeJS: Prepare for MVP release for documentation and relaxing feat…
kateinoigakukun Feb 13, 2026
a931787
Documentation tweaks
kateinoigakukun Feb 13, 2026
bab0adb
Prevent cross-module inlining of remaining @_extern(wasm) functions (…
fjtrujy Feb 13, 2026
d0c0282
CI: Use debug builds for SwiftSyntax in ./Examples/Embedded (#632)
kateinoigakukun Feb 13, 2026
83995af
[skip ci] Fix BridgeJS code snippet on README.md
kateinoigakukun Feb 13, 2026
dadff8b
NFC: BridgeJS: Reduce retained object cleanup warning noise in Bridge…
krodak Feb 14, 2026
a8b249c
[NFC] BridgeJS: Rename Stack ABI operation methods (#634)
kateinoigakukun Feb 15, 2026
e9855d1
BridgeJS: Fix double-release of JSObject when passing a `JSObject?` J…
kateinoigakukun Feb 16, 2026
18d56d8
[NFC] BridgeJS: Move optional support test imports to their own JS class
kateinoigakukun Feb 16, 2026
072b0d0
Tests: Cover a test case to kill JSObject? double-release
kateinoigakukun Feb 16, 2026
118db02
BridgeJS: Take ownership of source Uint8Array id in `swift_js_init_me…
kateinoigakukun Feb 16, 2026
3fffd36
TS2Swift: Make it easier to use ts2swift directly
kateinoigakukun Feb 16, 2026
8abb79d
TS2Swift: Support reading from stdin
kateinoigakukun Feb 16, 2026
0d5b431
Merge pull request #637 from swiftwasm/yt/handy-ts2swift
kateinoigakukun Feb 16, 2026
2c51958
Merge pull request #636 from swiftwasm/yt/fix-opt-jsobject-double-rel…
krodak Feb 16, 2026
9589496
BridgeJS: Add additionalSourceDirs config for cross-plugin file disco…
krodak Feb 16, 2026
53f69d4
BridgeJS: Test different approach for cross-plugin file discovery
krodak Feb 16, 2026
809487c
Merge pull request #638 from PassiveLogic/kr/bridgejs-additional-sour…
krodak Feb 16, 2026
96c691b
BridgeJS: Skip writing output files when content is unchanged
krodak Feb 16, 2026
79bda2e
Merge pull request #639 from PassiveLogic/kr/bridgejs-skip-unchanged-…
krodak Feb 16, 2026
4d7b773
BridgeJS: Fix `@JSClass` on public/package access level struct
kateinoigakukun Feb 17, 2026
312e715
PlayBridgeJS: Surface BridgeJS diagnostics inside editors
kateinoigakukun Feb 17, 2026
d221b24
Merge pull request #640 from swiftwasm/yt/public-jsclass
kateinoigakukun Feb 17, 2026
76e0362
Make PlayBridgeJS tabs scroll when overflow
kateinoigakukun Feb 17, 2026
f2327ec
Merge pull request #641 from swiftwasm/katei/be1a-playbridgejs-sho
kateinoigakukun Feb 17, 2026
487cf79
BridgeJS: Use indirect _exports lookup in wrap functions
krodak Feb 17, 2026
4079097
PackageToJS: Replace @ts-ignore with @ts-expect-error in templates
krodak Feb 17, 2026
a4206f2
Runtime: Simplify find-global.ts to just globalThis
krodak Feb 17, 2026
504ae31
Runtime: Apply prettier formatting and enforce in CI
krodak Feb 17, 2026
d8ae96f
Merge pull request #642 from PassiveLogic/kr/bridgejs-wrap-function-s…
kateinoigakukun Feb 18, 2026
116b6d9
PlayBridgeJS: Stop wrapping lines in the editor
kateinoigakukun Feb 18, 2026
04ed1c2
Merge pull request #643 from PassiveLogic/kr/ts-expect-error-templates
kateinoigakukun Feb 18, 2026
95a2a49
Merge pull request #644 from PassiveLogic/kr/prettier-ci-and-find-glo…
kateinoigakukun Feb 18, 2026
1b35993
BridgeJS: Add runtime tests for `@JS class` to JSObject conversion
kateinoigakukun Feb 18, 2026
01c8404
Merge pull request #646 from swiftwasm/katei/53c2-bridgejs-please
kateinoigakukun Feb 18, 2026
969e696
PackageToJS: Rebuild bridge-js.js when BridgeJSLink is changed
kateinoigakukun Feb 18, 2026
6df18bb
Merge pull request #647 from swiftwasm/yt/detect-bjslink-change
kateinoigakukun Feb 18, 2026
012fb6b
BridgeJS: Fix SwiftHeapObject finalization registry leaks and double …
kateinoigakukun Feb 18, 2026
ef3634d
Merge pull request #648 from swiftwasm/katei/956f-bridgejs-fix-swi
kateinoigakukun Feb 18, 2026
0387eef
Add AI coding agent config files to gitignore
krodak Feb 18, 2026
2dc9a66
Merge pull request #649 from PassiveLogic/main
kateinoigakukun Feb 18, 2026
7fbf3e1
Runtime: Fix lint issues in compiled output
krodak Feb 18, 2026
b10bee6
Merge pull request #650 from PassiveLogic/kr/runtime-lint-fixes
kateinoigakukun Feb 18, 2026
67a3104
BridgeJS: Improve ts2swift diagnostics on invalid definitions
kateinoigakukun Feb 18, 2026
306c1d7
Merge pull request #651 from swiftwasm/katei/8d7e-ts2swift-better
kateinoigakukun Feb 18, 2026
9527aa5
TS2Swift: emit enums for string literal unions
kateinoigakukun Feb 18, 2026
30cf39a
Merge pull request #652 from swiftwasm/katei/32f9-ts2swift-treat-c
kateinoigakukun Feb 18, 2026
9c092f6
TS2Swift: emit static properties as static members (#653)
kateinoigakukun Feb 18, 2026
002ffd9
TS2Swift: skip enum types when emitting string literal unions
kateinoigakukun Feb 18, 2026
b18be89
Merge pull request #654 from swiftwasm/katei/5460-ts2swift-generat
krodak Feb 18, 2026
b643c47
NFC: BridgeJS: Remove dead cleanup infrastructure
krodak Feb 18, 2026
8bbf832
Merge pull request #655 from PassiveLogic/kr/cleanup-removal
krodak Feb 18, 2026
dd164d2
TS2Swift: warn when exported declarations are skipped
kateinoigakukun Feb 18, 2026
1ad419b
NFC: BridgeJS: Refactor JSGlueGen with compositional optional handlin…
krodak Feb 18, 2026
017f172
TS2Swift tests: warn on export assignment
kateinoigakukun Feb 19, 2026
2a92246
[NFC] BridgeJS: Use consistent codegen helper for @_extern decl
kateinoigakukun Feb 19, 2026
aa961dc
[NFC] BridgeJS: Work around extern inlining by adding an extra non-in…
kateinoigakukun Feb 19, 2026
eace50e
TS2Swift: inject diagnostics for export assignment test
kateinoigakukun Feb 19, 2026
6bb09b6
Merge pull request #659 from swiftwasm/yt/workaround-extern-inlining
kateinoigakukun Feb 19, 2026
834b59a
BridgeJS: Register parameter names in scope instead of reserveNames
krodak Feb 19, 2026
bbdf7d5
Merge pull request #660 from swiftwasm/katei/b8fc-ts2swift-should
krodak Feb 19, 2026
cf89c5f
Merge pull request #656 from PassiveLogic/kr/jsglue-refactor
krodak Feb 19, 2026
32a6981
BridgeJS: Add tests for memory management of SwiftHeapObject
kateinoigakukun Feb 19, 2026
483c850
BridgeJS: Fix memory management of SwiftHeapObject
kateinoigakukun Feb 19, 2026
afc2088
BridgeJS: Add lifetime tracking mode to BridgeJSLink
kateinoigakukun Feb 19, 2026
9bf1c59
[Tests] BridgeJS: Move Array-related tests to their own test file
kateinoigakukun Feb 19, 2026
f75e365
BridgeJS: Fix `Array<@JSClass struct>` support on imported interfaces
kateinoigakukun Feb 19, 2026
866ba61
Merge pull request #664 from swiftwasm/yt/fix-heapobj-ownership
krodak Feb 20, 2026
bf69cdb
Merge pull request #665 from swiftwasm/fix-swift-class-array
krodak Feb 20, 2026
8ebcc22
BridgeJS: fix _exports access for namespaced classes in JS codegen
krodak Feb 20, 2026
c47beee
Merge pull request #668 from PassiveLogic/kr/fix-namespace-exports-ac…
krodak Feb 20, 2026
c702ac2
BridgeJS: Fix static method and constructor codegen dropping default …
krodak Feb 20, 2026
97933a2
Merge pull request #669 from PassiveLogic/kr/fix-static-method-defaul…
kateinoigakukun Feb 21, 2026
44d9a94
BridgeJS: Workaround `@_extern` inlining issue take 2 (#670)
kateinoigakukun Feb 21, 2026
9339c1c
BridgeJS: Fix stack ordering for multiple stack-based parameters
krodak Feb 21, 2026
aa9aa77
Merge pull request #671 from PassiveLogic/kr/fix-stack-ordering
krodak Feb 22, 2026
cf7a4f3
Allow Swift projects that use JavaScriptKit to compile on Windows (#673)
cuberoot Feb 24, 2026
3badf17
BridgeJS: Simplify Stack ABI for Optional (#674)
kateinoigakukun Feb 25, 2026
1746d97
BridgeJS: Remove inline array lifting/lowering codegen
kateinoigakukun Feb 25, 2026
33c03e9
Merge pull request #675 from swiftwasm/pr-a70deeb0f5843a90772a69522fb…
krodak Feb 25, 2026
9660392
[NFC] BridgeJS: Cover more Array cases in runtime tests (#678)
kateinoigakukun Feb 27, 2026
f08fec7
[NFC] BridgeJS: Move out default argument tests into a separate suite…
kateinoigakukun Feb 27, 2026
c0785e1
[NFC] BridgeJS: Move all Optional tests into OptionalSupportTests (#680)
kateinoigakukun Feb 27, 2026
fed1176
BridgeJS: Unify `JSUndefinedOr` and `Optional` intrinsic methods
kateinoigakukun Feb 25, 2026
a86c7d2
Merge pull request #681 from swiftwasm/pr-555f1adc5bc4fcf9cdc572ac439…
kateinoigakukun Feb 27, 2026
816325f
BridgeJS: Fix property codegen using unqualified type name for namesp…
krodak Feb 27, 2026
e902160
Merge pull request #682 from PassiveLogic/kr/fix-namespace-property-c…
krodak Feb 27, 2026
494ed16
BridgeJS: Include namespace prefix in ABI names for namespace-nested …
krodak Feb 27, 2026
bcb952c
BridgeJS: Remove `_BridgedSwiftDictionaryStackType` protocol
kateinoigakukun Feb 25, 2026
78800eb
Merge pull request #684 from swiftwasm/pr-720ce456b1d8a61bcaf3a4a43a6…
kateinoigakukun Feb 27, 2026
cf60e85
BridgeJS: Migrate Dictionary tests to use conventional style
kateinoigakukun Feb 25, 2026
1750eff
Merge pull request #683 from PassiveLogic/kr/namespace-abi-names
krodak Feb 27, 2026
af7428c
Merge pull request #685 from swiftwasm/pr-1527aac22ca5bede85517921fd3…
kateinoigakukun Feb 28, 2026
3eff48a
Bump rollup from 4.57.1 to 4.59.0 (#686)
dependabot[bot] Mar 1, 2026
5529520
Merge pull request #687 from gn-adin-b/adin/property-access-tracing
gn-adin-b Mar 3, 2026
0c4c45a
fix use-after-free in BridgeJS (#690)
diederich Mar 4, 2026
bc05d2a
BridgeJS: fix codegen for async + throws exported methods (#691)
diederich Mar 4, 2026
3d25cd9
[BridgeJS] Pass String parameters unretained as (address, length) (#688)
sliemeobn Mar 5, 2026
40fa074
BridgeJS: Include properties and release() in declare global class stubs
krodak Mar 5, 2026
757f2a0
BridgeJS: Add E2E test for instance property access via globalThis
krodak Mar 5, 2026
ba66ff1
Merge pull request #693 from PassiveLogic/kr/fix-declare-global-class…
krodak Mar 5, 2026
86f07ab
BridgeJS: Correctly emit @JS methods in extensions
wfltaylor Mar 6, 2026
6762c6b
BridgeJS: Improve test coverage for @JS methods and properties in ext…
wfltaylor Mar 10, 2026
7dd0263
BridgeJS: Use shared decodeString for JSTypedClosure error path (#696)
kateinoigakukun Mar 10, 2026
825f695
Fix formatting
wfltaylor Mar 10, 2026
a93a686
Update test code to avoid accidentally introduced failure
wfltaylor Mar 11, 2026
e7b8427
BridgeJS: Fix protocol existential lowering in Swift-to-JS direction
krodak Mar 10, 2026
4c1c32c
Fix CI: update snapshots, formatting, runtime test, add docs and revi…
krodak Mar 11, 2026
604c6ad
Merge pull request #697 from PassiveLogic/kr/fix-protocol-existential…
krodak Mar 11, 2026
3398ff7
BridgeJS: Support protocol types in closure parameters and returns
krodak Mar 11, 2026
1f54ba6
Merge pull request #699 from PassiveLogic/kr/protocol-in-closure
krodak Mar 11, 2026
bd36090
BridgeJS: expand integer type support
kateinoigakukun Mar 12, 2026
c5ae8c2
Merge pull request #701 from swiftwasm/yt/more-int-width
krodak Mar 13, 2026
95bb3af
Merge pull request #694 from wfltaylor/extensions
krodak Mar 16, 2026
abf1c88
Revert "BridgeJS: Correctly emit @JS methods in extensions" (#703)
MaxDesiatov Mar 16, 2026
d6630c8
Fix Embedded, bump 6.3 Swift toolchain in `test.yml` (#702)
MaxDesiatov Mar 23, 2026
c36a742
Gate `ExperimentalCustomExecutors` usage behind Swift 6.4 compiler ch…
kateinoigakukun Mar 23, 2026
7be7d4e
BridgeJS: Re-land extension method support (reverted in #703) (#706)
krodak Mar 24, 2026
7e242b0
BridgeJS: support imports of JS `Promise` as `async` Swift (#707)
MaxDesiatov Mar 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
root = true

[*]
indent_style = space
indent_size = 4
trim_trailing_whitespace = true
insert_final_newline = true
1 change: 1 addition & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Sources/JavaScriptKit/Runtime/** linguist-generated
37 changes: 37 additions & 0 deletions .github/actions/install-swift/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: 'Install Swift toolchain'
description: 'Install Swift toolchain tarball from URL'
inputs:
download-url:
description: 'URL to download Swift toolchain tarball'
required: true

runs:
using: composite
steps:
# https://www.swift.org/install/linux/#installation-via-tarball
- name: Install dependent packages for Swift
shell: bash
run: >
sudo apt-get -q update &&
sudo apt-get install -y
binutils
git
gnupg2
libc6-dev
libcurl4-openssl-dev
libedit2
libgcc-9-dev
libpython3.8
libsqlite3-0
libstdc++-9-dev
libxml2-dev
libz3-dev
pkg-config
tzdata
unzip
zlib1g-dev
curl

- name: Install Swift
shell: bash
run: curl -fL ${{ inputs.download-url }} | sudo tar xfz - --strip-components=2 -C /usr/local
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates

version: 2
updates:
- package-ecosystem: 'github-actions'
directory: '/'
schedule:
interval: 'weekly'
24 changes: 0 additions & 24 deletions .github/workflows/compatibility.yml

This file was deleted.

26 changes: 0 additions & 26 deletions .github/workflows/documentation.yml

This file was deleted.

22 changes: 0 additions & 22 deletions .github/workflows/npm-publish.yml

This file was deleted.

23 changes: 0 additions & 23 deletions .github/workflows/perf.yml

This file was deleted.

199 changes: 188 additions & 11 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,23 +3,200 @@ on:
pull_request:
push:
branches: [main]
concurrency:
group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
jobs:
test:
name: Build and Test
strategy:
matrix:
os: [macOS-10.15, Ubuntu-18.04]
runs-on: ${{ matrix.os }}
entry:
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/swift-6.1-release/ubuntu2204/swift-6.1-RELEASE/swift-6.1-RELEASE-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasi"
env: |
JAVASCRIPTKIT_DISABLE_TRACING_TRAIT=1
- os: ubuntu-24.04
toolchain:
download-url: https://download.swift.org/development/ubuntu2404/swift-DEVELOPMENT-SNAPSHOT-2025-12-01-a/swift-DEVELOPMENT-SNAPSHOT-2025-12-01-a-ubuntu24.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasip1"
- os: ubuntu-24.04
toolchain:
download-url: https://download.swift.org/swift-6.3-branch/ubuntu2404/swift-6.3-DEVELOPMENT-SNAPSHOT-2026-03-05-a/swift-6.3-DEVELOPMENT-SNAPSHOT-2026-03-05-a-ubuntu24.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasip1"
- os: ubuntu-22.04
toolchain:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-12-01-a/swift-DEVELOPMENT-SNAPSHOT-2025-12-01-a-ubuntu22.04.tar.gz
wasi-backend: Node
target: "wasm32-unknown-wasip1-threads"

runs-on: ${{ matrix.entry.os }}
env:
JAVASCRIPTKIT_WASI_BACKEND: ${{ matrix.entry.wasi-backend }}
steps:
- name: Checkout
uses: actions/checkout@master
uses: actions/checkout@v6
- name: Export matrix env
if: ${{ matrix.entry.env != '' && matrix.entry.env != null }}
run: |
cat <<'EOF' >> "$GITHUB_ENV"
${{ matrix.entry.env }}
EOF
- uses: ./.github/actions/install-swift
with:
download-url: ${{ matrix.entry.toolchain.download-url }}
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-swiftwasm
with:
fetch-depth: 1
- name: Run Test
target: ${{ matrix.entry.target }}
- name: Configure environment variables
run: |
git clone https://github.com/kylef/swiftenv.git ~/.swiftenv
export SWIFTENV_ROOT="$HOME/.swiftenv"
export PATH="$SWIFTENV_ROOT/bin:$PATH"
eval "$(swiftenv init -)"
make bootstrap
make test
echo "SWIFT_SDK_ID=${{ steps.setup-swiftwasm.outputs.swift-sdk-id }}" >> $GITHUB_ENV
echo "SWIFT_BIN_PATH=$(dirname $(which swiftc))" >> $GITHUB_ENV
- run: make bootstrap
- run: make unittest
# Skip unit tests with uwasi because its proc_exit throws
# unhandled promise rejection.
if: ${{ matrix.entry.wasi-backend != 'MicroWASI' }}
- name: Check if SwiftPM resources are stale
run: |
make regenerate_swiftpm_resources
git diff --exit-code Sources/JavaScriptKit/Runtime
- run: swift test --package-path ./Plugins/PackageToJS
- run: swift test --package-path ./Plugins/BridgeJS
- name: Validate BridgeJS TypeScript declarations
run: npm run check:bridgejs-dts

test-bridgejs-against-swift-versions:
name: Test BridgeJS against Swift versions
strategy:
matrix:
entry:
- image: "swift:6.1.2"
swift-syntax-version: "601.0.0"
- image: "swift:6.2"
swift-syntax-version: "602.0.0"
runs-on: ubuntu-latest
container:
image: ${{ matrix.entry.image }}
steps:
- uses: actions/checkout@v6
- name: Setup Node.js
uses: actions/setup-node@v6
with:
node-version: '20'
- name: Install TypeScript
run: npm install
- name: Validate BridgeJS TypeScript declarations
run: npm run check:bridgejs-dts
- name: Run BridgeJS tests
# NOTE: Seems like the prebuilt SwiftSyntax binaries are not compatible with
# non-macro dependents, so disable experimental prebuilts for now.
run: swift test --disable-experimental-prebuilts --package-path ./Plugins/BridgeJS
env:
BRIDGEJS_OVERRIDE_SWIFT_SYNTAX_VERSION: ${{ matrix.entry.swift-syntax-version }}

native-build:
# Check native build to make it easy to develop applications by Xcode
name: Build for native target
strategy:
matrix:
include:
- os: macos-15
xcode: Xcode_16.4
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v6
- run: swift build --product BridgeJSTool
env:
DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer/
- run: swift build --package-path ./Examples/Basic
env:
DEVELOPER_DIR: /Applications/${{ matrix.xcode }}.app/Contents/Developer/

prettier:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: '20'
- run: npm install
- run: npx prettier --check Runtime/src

format:
runs-on: ubuntu-latest
container:
image: swift:6.1.2
steps:
- uses: actions/checkout@v6
- run: ./Utilities/format.swift
- name: Check for formatting changes
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git diff --exit-code || {
echo "::error::The formatting changed some files. Please run \`./Utilities/format.swift\` and commit the changes."
exit 1
}

check-bridgejs-generated:
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/install-swift
with:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2025-09-14-a/swift-DEVELOPMENT-SNAPSHOT-2025-09-14-a-ubuntu22.04.tar.gz
- run: make bootstrap
- run: ./Utilities/bridge-js-generate.sh
- name: Check if BridgeJS generated files are up-to-date
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
git diff --exit-code || {
echo "::error::BridgeJS generated files are out of date. Please run \`./Utilities/bridge-js-generate.sh\` and commit the changes."
exit 1
}

build-examples:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: ./.github/actions/install-swift
with:
download-url: https://download.swift.org/development/ubuntu2204/swift-DEVELOPMENT-SNAPSHOT-2026-03-09-a/swift-DEVELOPMENT-SNAPSHOT-2026-03-09-a-ubuntu22.04.tar.gz
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-wasm32-unknown-wasip1
with: { target: wasm32-unknown-wasip1 }
- uses: swiftwasm/setup-swiftwasm@v2
id: setup-wasm32-unknown-wasip1-threads
with: { target: wasm32-unknown-wasip1-threads }
- run: |
swift --version
./Utilities/build-examples.sh
env:
SWIFT_SDK_ID_wasm32_unknown_wasip1_threads: ${{ steps.setup-wasm32-unknown-wasip1-threads.outputs.swift-sdk-id }}
SWIFT_SDK_ID_wasm32_unknown_wasip1: ${{ steps.setup-wasm32-unknown-wasip1.outputs.swift-sdk-id }}
- run: ./Utilities/prepare-gh-pages.sh
- name: Upload static files as artifact
id: deployment
uses: actions/upload-pages-artifact@v4
with:
path: ./_site
deploy-examples:
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
needs: build-examples
permissions:
pages: write
id-token: write
steps:
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,27 @@ node_modules
/*.xcodeproj
xcuserdata/
.swiftpm
.vscode
Examples/*/Bundle
Examples/*/package-lock.json
Package.resolved
Plugins/BridgeJS/Sources/TS2Swift/JavaScript/package-lock.json
Plugins/BridgeJS/Tests/BridgeJSToolTests/__Snapshots__/**/*.actual
bridge-js.config.local.json
_site/

# AI coding agent config files
AGENTS.md
CLAUDE.md
GEMINI.md
.claude/
.opencode/
.cursor/
.cursorrules
.codex/
.aider*
.cline/
.clinerules
.windsurf/
.windsurfrules
.codeiumignore
Loading