-
Notifications
You must be signed in to change notification settings - Fork 0
Comparing changes
Open a pull request
base repository: PassiveLogic/JavaScriptKit
base: main
head repository: swiftwasm/JavaScriptKit
compare: main
- 20 commits
- 201 files changed
- 3 contributors
Commits on Aug 11, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 30d994d - Browse repository at this point
Copy the full SHA 30d994dView commit details -
Configuration menu - View commit details
-
Copy full SHA for e10836b - Browse repository at this point
Copy the full SHA e10836bView commit details
Commits on Aug 13, 2026
-
Configuration menu - View commit details
-
Copy full SHA for ccd828b - Browse repository at this point
Copy the full SHA ccd828bView commit details -
Configuration menu - View commit details
-
Copy full SHA for c58ffa4 - Browse repository at this point
Copy the full SHA c58ffa4View commit details -
Configuration menu - View commit details
-
Copy full SHA for d13c994 - Browse repository at this point
Copy the full SHA d13c994View commit details -
Configuration menu - View commit details
-
Copy full SHA for a099736 - Browse repository at this point
Copy the full SHA a099736View commit details -
Configuration menu - View commit details
-
Copy full SHA for 81dee2f - Browse repository at this point
Copy the full SHA 81dee2fView commit details -
Configuration menu - View commit details
-
Copy full SHA for bf00750 - Browse repository at this point
Copy the full SHA bf00750View commit details -
Merge pull request swiftwasm#799 from PassiveLogic/kr/stack-abi-gener…
…ics-import BridgeJS: Support generic functions on imported JS APIs
Configuration menu - View commit details
-
Copy full SHA for 3966530 - Browse repository at this point
Copy the full SHA 3966530View commit details -
BridgeJS: Lower imported optional stack parameters fully on the stack
An imported optional whose payload is stack-only ([T]?, [String: V]?, @js struct?) used a hybrid convention: the isSome flag crossed as a wasm i32 parameter while the payload was conditionally pushed onto the shared stacks. Optional returns and optional array elements of the same types already travel entirely on the stacks: payload first, then a 0/1 flag on the i32 stack. This lowers those parameters the same way. The Swift thunk pushes the payload (if some) followed by the flag, the wasm signature carries no argument for the parameter, and the JS handler pops the flag before conditionally lifting the payload, through the same fragment already used for optional returns and elements. The hybrid shape was the last parameter category that both passed a wasm argument and pushed stack data, which is what enabled the argument transposition fixed in swiftwasm#794. Every stack-touching parameter is now flagless and reverse-ordered, matching returns and elements. All other optional parameter ABIs (scalars, strings, JSObject, closures, enums, heap objects) are unchanged.
Configuration menu - View commit details
-
Copy full SHA for f998117 - Browse repository at this point
Copy the full SHA f998117View commit details
Commits on Aug 14, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 9750486 - Browse repository at this point
Copy the full SHA 9750486View commit details -
Merge pull request swiftwasm#802 from PassiveLogic/kr/optional-param-…
…stack-flag BridgeJS: Lower imported optional stack parameters fully on the stack
Configuration menu - View commit details
-
Copy full SHA for c3ac9da - Browse repository at this point
Copy the full SHA c3ac9daView commit details
Commits on Aug 17, 2026
-
Configuration menu - View commit details
-
Copy full SHA for 2e36a76 - Browse repository at this point
Copy the full SHA 2e36a76View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0b453a5 - Browse repository at this point
Copy the full SHA 0b453a5View commit details -
Configuration menu - View commit details
-
Copy full SHA for ae935a9 - Browse repository at this point
Copy the full SHA ae935a9View commit details -
Configuration menu - View commit details
-
Copy full SHA for 59a6274 - Browse repository at this point
Copy the full SHA 59a6274View commit details -
Merge pull request swiftwasm#803 from wfltaylor/extension-types
BridgeJS: Allow extensions to contain types
Configuration menu - View commit details
-
Copy full SHA for 7a7a70a - Browse repository at this point
Copy the full SHA 7a7a70aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 372fce2 - Browse repository at this point
Copy the full SHA 372fce2View commit details -
Configuration menu - View commit details
-
Copy full SHA for 8f4c851 - Browse repository at this point
Copy the full SHA 8f4c851View commit details
Commits on Aug 22, 2026
-
PackageToJS: Derive WASI and shared memory support from wasm imports (s…
…wiftwasm#807) * PackageToJS: Derive WASI and shared memory support from wasm imports The SwiftBuild backend's build directory doesn't encode the target triple, so detect the traits derived from it by parsing the imports of the product binary instead. The imports are now parsed as a part of the packaging build graph. * Avoid `import var Foundation.stderr` ``` $ echo "@preconcurrency import var Foundation.stderr" | swiftly run +main-snapshot-2026-08-11 swiftc - -o /dev/null <stdin>:1:28: error: ambiguous name 'stderr' in module 'Foundation' 1 | @preconcurrency import var Foundation.stderr | `- error: ambiguous name 'stderr' in module 'Foundation' 2 | Glibc.stderr:1:32: note: found this candidate 1 | nonisolated(unsafe) public var stderr: UnsafeMutablePointer<FILE>! { get } | `- note: found this candidate /usr/include/stdio.h:151:14: note: found this candidate 149 | extern FILE *stdin; /* Standard input stream. */ 150 | extern FILE *stdout; /* Standard output stream. */ 151 | extern FILE *stderr; /* Standard error output stream. */ | `- note: found this candidate 152 | /* C89/C99 say they're macros. Make them happy. */ 153 | #define stdin stdin ``` swiftlang/swift#89891 * CI: Install Swift toolchain preserving its usr/bin layout Flattening the tarball into /usr/local makes SwiftPM derive a bogus toolchain root, so the swiftbuild build system cannot find swiftc. * PackageToJS: Record every import kind while parsing wasm imports Only memory imports were collected, so `WasmFeatures.isWASI` never saw `wasi_snapshot_preview1` and the generated node.js dropped the WASI import while still constructing a WASI instance. * PackageToJS: run per-target test runners under the swiftbuild build system `swift package js test` assumed the native build system's single combined `<Package>PackageTests` binary: it looked for one `.wasm`/`.xctest` under `.build/<config>/`, packaged it, and ran it. SwiftBuild produces no combined test binary. It emits one `<TestTarget>-test-runner.wasm` per test target under `.build/out/Products/`, plus an aggregate target that only orchestrates building them, so the old lookup failed with "Failed to find 'JavaScriptKitPackageTests.wasm'". (cherry picked from commit c12c7e9) * Install the JS event loop executor in async test targets Because SwiftBuild mode produces a linked executable for each test target. (cherry picked from commit 0a1f926) * BridgeJS: Skip type handle registration for unlinked modules `js test` generates the glue from every test target's skeletons, but the SwiftBuild build system links one binary per test target, so the eager registration hit a missing export. * PackageToJS: Share the linked JS modules with the aggregated glue The per-runner `bridge-js.js` copied to the base output directory for test preludes imports its JavaScript modules relative to itself, so copy the `bridge-js-modules` directory next to it. * BridgeJS: Require the imports object for static-only imported types An imported type looked up from `getImports` contributes its static methods too, but only a constructor marked the imports object as needed, so the glue referenced an undeclared `imports`. * PackageToJS: Generate each test bundle's glue from what its binary links in `js test` generated the glue from every test target's skeletons and handed the same copy to each SwiftBuild per-target runner, which described exports those binaries don't have. Package the aggregated glue once into the shared base directory, where preludes import it by a fixed path, and give each runner glue scoped to the target it links in. This supersedes the registration guard in the JS code generator.
Configuration menu - View commit details
-
Copy full SHA for cadafdc - Browse repository at this point
Copy the full SHA cadafdcView commit details
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff main...main