Releases: swiftwasm/JavaScriptKit
0.20.1
Minor fixes for IDE build support
Full Changelog: 0.20.0...0.20.1
0.20.0
This release adds initial multi-threading support.
What's Changed
- Start migrating imported functions to the new definition style by @kateinoigakukun in #252
- Allocate JavaScriptEventLoop per thread in multi-threaded environment by @kateinoigakukun in #255
- Add
WebWorkerTaskExecutor
by @kateinoigakukun in #256
Full Changelog: 0.19.3...0.20.0
0.19.3
What's Changed
- Fix
JSClosure
leak by @kateinoigakukun in #240 - Update README file to include new carton 1.0 implementation. by @kuhl in #243
- Update Carton context on README. by @kuhl in #245
- Support latest nightly snapshot by @kateinoigakukun in #246
- Use Swift SDK for development snapshot testing in CI by @kateinoigakukun in #248
- Add
sharedMemory
option to allow threads with shared memory by @kateinoigakukun in #247 - Check 5.10 toolchain in CI by @kateinoigakukun in #249
New Contributors
Full Changelog: 0.19.2...0.19.3
0.19.2
What's Changed
- [CI] macos-14 by @ikesyo in #233
- [CI] Drop macos-11 since that is deprecated and will be removed in Q2 2024 by @ikesyo in #234
- Update swift-tools-version to reflect the supported Swift versions by @ikesyo in #235
- [CI] Update actions and configure Dependabot by @ikesyo in #236
- Fix Optional implementation for ConstructibleFromJSValue by @omochi in #238
- Inherit JSFunction from JSClosure by @kateinoigakukun in #239
- Fix object decode by @omochi in #241
New Contributors
Full Changelog: 0.19.1...0.19.2
0.19.1
What's Changed
- Fix availability marker for Swift 5.9 compiler targeting host machine by @kateinoigakukun in #232
Full Changelog: 0.19.0...0.19.1
0.19.0
What's Changed
- Update 5.7 patch version by @kateinoigakukun in #226
- Add 5.8 toolchain matrix by @kateinoigakukun in #227
- Fix warnings Aug 5, 2023 by @STREGA in #228
- Swift 5.9 Changes by @STREGA in #229
New Contributors
Full Changelog: 0.18.0...0.19.0
0.18.0
What's Changed
- Use swiftwasm/setup-swiftwasm instead of swiftenv on CI by @kateinoigakukun in #215
- Support Clock-based sleep APIs by @kateinoigakukun in #216
- Prefer
UInt(bitPattern:)
for object id to guarantee uniqueness by @kateinoigakukun in #219 - Fix wrong markdown in documentation by @gibachan in #221
- Add
withUnsafeBytesAsync
function toJSTypedArray
by @fjtrujy in #222 - Trivial fixes to JSTypedArray by @kateinoigakukun in #223
New Contributors
Full Changelog: 0.17.0...0.18.0
0.17.0
What's Changed
- Bump @actions/core from 1.2.6 to 1.9.1 in /ci/perf-tester by @dependabot in #209
- Remove baseline tests (e.g. “Call JavaScript function directly”) from comparison by @j-f1 in #211
- Add 5.7 toolchain matrix by @kateinoigakukun in #210
- Add JavaScriptEventLoopTestSupport module to install executor by @kateinoigakukun in #213
- Expose
JavaScriptEventLoop.queueMicrotask
and.setTimeout
by @kateinoigakukun in #214
Full Changelog: 0.16.0...0.17.0
0.16.0
This release contains significant performance improvements, API enhancements for JSPromise
/ JSBigInt
/ JSClosure
, and documentation improvements.
Merged pull requests:
- Runtime Performance Optimization (#207) via @kateinoigakukun
- Add missing doc comments for more types (#208) via @MaxDesiatov
- Add Int64/UInt64 to Bigint slow conversion (#204) via @kateinoigakukun
- Test native builds with Xcode 14.0 (#206) via @MaxDesiatov
- Support DocC generation in Swift Package Index (#205) via @MaxDesiatov
- Refine benchmark suite (#203) via @kateinoigakukun
- Add diagnostics for those who build with WASI command line ABI (#202) via @kateinoigakukun
- Bump terser from 5.10.0 to 5.14.2 in /Example (#201) via @dependabot[bot]
- Test with uwasi implementation (#198) via @kateinoigakukun
- Add async JSPromise.result property (#200) via @kateinoigakukun
- Asynchronous calls in JSClosure (#157) via @j-f1
- JSPromise(resolver:) usage (#156) via @j-f1
0.15.0
This is a major release that adds new features and fixes issues. Specifically:
BigInt
andBigInt
-basedJSTypedArray
types are now supported. Now, when passingInt64
values from Swift, they will be mapped toBigInt
values on the JavaScript side.- The
constructor
property onJSBridgedClass
is now anOptional
, which allows bridging JavaScript classes that aren't available in every browser or environment. - JavaScriptKit runtime files are now supplied as SwiftPM resources. This allows us to resolve a long-standing issue in
carton
that could lead to a version mismatch between JavaScriptKit dependency inPackage.swift
orPackage.resolved
and carton’s bundled JavaScriptKit runtime version. - The
JSSymbol
type has been added, enabling support for JavaScriptSymbol
values, including accessingSymbol
-keyed properties on objects.
Source breaking changes
UInt64.jsValue
and Int64.jsValue
, which are a part of JavaScriptKit
module, have been moved into JavaScriptBigIntSupport
module since their implementation changed to require JS-BigInt-integration to avoid implicit casts from 64-bit integer to JS number type.
If you want to keep the behavior so far, please cast the 64-bit integer values to Double
.
Merged pull requests:
- Improve JSKit diagnostics for use-after-free of JSClosure (#195) via @kateinoigakukun
- Gracefully handle unavailable
JSBridgedClass
(#190) via @MaxDesiatov - Supply JSKit runtime in SwiftPM resources (#193) via @MaxDesiatov
- Test with Node.js's WASI implementation (#192) via @kateinoigakukun
- Add support for BigInts and BigInt-based TypedArrays (#184) via @j-f1
- Update toolchain references to 5.6.0 in
README.md
(#189) via @MaxDesiatov - Bump async from 2.6.3 to 2.6.4 in /Example (#188) via @dependabot
- Remove outdated
BigInt
supportFIXME
fromJSTypedArray
(#187) via @MaxDesiatov - Cleanup & improvements to perf-tester (#186) via @j-f1
- Re-add support for Symbol objects via JSSymbol (#183) via @j-f1
- Fix JSValueDecoder (#185) via @j-f1
- Fix deprecation warning in
JSFunction.swift
(#182) via @MaxDesiatov