Releases: swiftwasm/JavaScriptKit
0.48.0
What's Changed
- BridgeJS: expand integer and raw-value enum support by @kateinoigakukun in #701
- BridgeJS: Correctly emit
@JSmethods in extensions by @wfltaylor in #694 - Revert "BridgeJS: Correctly emit
@JSmethods in extensions" by @MaxDesiatov in #703 - Fix Embedded, bump 6.3 Swift toolchain in
test.ymlby @MaxDesiatov in #702 - Gate
ExperimentalCustomExecutorsusage behind Swift 6.4 compiler check by @kateinoigakukun in #705
New Contributors
- @wfltaylor made their first contribution in #694
Full Changelog: 0.47.1...0.48.0
0.47.1
What's Changed
- BridgeJS: Use shared decodeString for JSTypedClosure error path by @kateinoigakukun in #696
- BridgeJS: Fix protocol existential lowering in Swift-to-JS direction by @krodak in #697
- BridgeJS: Support protocol types in closure parameters and returns by @krodak in #699
Full Changelog: 0.47.0...0.47.1
0.47.0
What's Changed
- fix use-after-free in BridgeJS by @diederich in #690
- BridgeJS: fix codegen for async + throws exported methods by @diederich in #691
- [BridgeJS] Pass String parameters unretained as (address, length) by @sliemeobn in #688
- BridgeJS: Include properties and release() in declare global class stubs by @krodak in #693
New Contributors
- @diederich made their first contribution in #690
Full Changelog: 0.46.5...0.47.0
0.46.5
What's Changed
- BridgeJS: Migrate Dictionary tests to use conventional style by @kateinoigakukun in #685
- Bump rollup from 4.57.1 to 4.59.0 by @dependabot[bot] in #686
- Add property access tracing to JSTracing by @gn-adin-b in #687
New Contributors
- @gn-adin-b made their first contribution in #687
Full Changelog: 0.46.4...0.46.5
0.46.4
What's Changed
- Allow Swift projects that use JavaScriptKit to compile on Windows by @cuberoot in #673
- BridgeJS: Simplify Stack ABI for Optional by @kateinoigakukun in #674
- BridgeJS: Remove inline array lifting/lowering codegen by @kateinoigakukun in #675
- [NFC] BridgeJS: Cover more Array cases in runtime tests by @kateinoigakukun in #678
- [NFC] BridgeJS: Move out default argument tests into a separate suite by @kateinoigakukun in #679
- [NFC] BridgeJS: Move all Optional tests into OptionalSupportTests by @kateinoigakukun in #680
- BridgeJS: Unify
JSUndefinedOrandOptionalintrinsic methods by @kateinoigakukun in #681 - BridgeJS: Fix property codegen using unqualified type name for namespace-nested classes by @krodak in #682
- BridgeJS: Remove
_BridgedSwiftDictionaryStackTypeprotocol by @kateinoigakukun in #684 - BridgeJS: Include namespace prefix in ABI names for namespace-nested classes and structs by @krodak in #683
New Contributors
Full Changelog: 0.46.3...0.46.4
0.46.3
0.46.1
What's Changed
- BridgeJS: Fix memory management of SwiftHeapObject by @kateinoigakukun in #664
- BridgeJS: Fix
Array<@JSClass struct>support on imported interfaces by @kateinoigakukun in #665
Full Changelog: 0.46.0...0.46.1
0.46.0
What's Changed
- BridgeJS: Fix
@JSClasson public/package access level struct by @kateinoigakukun in #640 - PlayBridgeJS: Surface BridgeJS diagnostics inside editors by @kateinoigakukun in #641
- BridgeJS: Use indirect _exports lookup in wrap functions by @krodak in #642
- PackageToJS: Replace
@ts-ignorewith@ts-expect-errorin templates by @krodak in #643 - Runtime: Enforce prettier formatting, simplify find-global.ts by @krodak in #644
- BridgeJS: Add runtime tests for
@JS classto JSObject conversion by @kateinoigakukun in #646 - PackageToJS: Rebuild bridge-js.js when BridgeJSLink is changed by @kateinoigakukun in #647
- BridgeJS: Fix SwiftHeapObject finalization registry leaks and double release by @kateinoigakukun in #648
- Add AI coding agent config files to gitignore by @krodak in #649
- Runtime: Fix lint issues in compiled output by @krodak in #650
- BridgeJS: Improve ts2swift diagnostics on invalid definitions by @kateinoigakukun in #651
- TS2Swift: treat callable exported consts as functions by @kateinoigakukun in #652
- TS2Swift: emit static properties as static members by @kateinoigakukun in #653
- TS2Swift: emit enums for string literal unions by @kateinoigakukun in #654
- NFC: BridgeJS: Remove dead cleanup infrastructure by @krodak in #655
- [NFC] BridgeJS: Work around extern inlining by adding an extra non-inlined layer of indirection by @kateinoigakukun in #659
- TS2Swift: warn on skipped exports by @kateinoigakukun in #660
- NFC: BridgeJS: Refactor JSGlueGen with compositional optional handling and helper consolidation by @krodak in #656
Full Changelog: 0.45.0...0.46.0
0.45.0
What's Changed
- NFC: BridgeJS: Reduce retained object cleanup warning noise in BridgeJS glue by @krodak in #633
- [NFC] BridgeJS: Rename Stack ABI operation methods by @kateinoigakukun in #634
- BridgeJS: Take ownership of source Uint8Array id in
swift_js_init_memoryby @kateinoigakukun in #635 - TS2Swift: Make it easier to use ts2swift directly by @kateinoigakukun in #637
- BridgeJS: Fix double-release of JSObject when passing a
JSObject?JS->Swift by @kateinoigakukun in #636 - BridgeJS: Include pluginGeneratedSources in build plugin input files by @krodak in #638
- BridgeJS: Skip writing output files when content is unchanged by @krodak in #639
Full Changelog: 0.44.1...0.45.0
0.44.1: BridgeJS MVP
BridgeJS MVP Release! 🌉
This release marks the MVP of BridgeJS, a new interop mechanism that makes Swift-JavaScript interop faster, easier, and type-safe for WebAssembly apps.
With BridgeJS, you declare the shape of your API using Swift macros (or optionally TypeScript definitions), and the tool generates specialized glue code in both directions, exporting Swift to JavaScript and importing JavaScript into Swift.
Compared to the dynamic JSObject/JSValue APIs, BridgeJS offers significantly better performance through specialized codegen, compile-time type safety, and less boilerplate.
See the BridgeJS documentation to get started.
Note
You can quickly preview what interfaces will be exposed on the Swift/JavaScript/TypeScript sides using the BridgeJS Playground.
What's Changed
- Prevent cross-module inlining of remaining @_extern(wasm) functions by @fjtrujy in #631
- CI: Use debug builds for SwiftSyntax in ./Examples/Embedded by @kateinoigakukun in #632
Full Changelog: 0.44.0...0.44.1