Add experimental TSRX compiler frontends - #3086
Conversation
.tsrx sources desugar TSRX constructs into the shared Solid JSX lowering in @solidjs/babel-plugin (via @tsrx/core) and @solidjs/compiler (via a pinned oxc-tsrx text projection), with byte-parity enforced by the fixture corpus and parity harness. Also fixes DOM insert markers to ride the following sibling's declared walk variable, matching Babel. Co-authored-by: Cursor <cursoragent@cursor.com>
Exercise Unicode spans, lexical traps, nested backend lowering, accessor scope, and early-error constraints so the shared corpus catches frontend drift. Rewrite lazy binding update targets in the native compiler to match the Babel frontend. Co-authored-by: Cursor <cursoragent@cursor.com>
Execute the same authored fixtures through Babel and Oxc against the real Solid DOM and SSR runtimes, asserting reactive updates, keyed identity, events, lazy writes, branches, and empty fallbacks independently of code-generation parity. Co-authored-by: Cursor <cursoragent@cursor.com>
Add full lazy destructuring semantics and close parser parity gaps so both frontends support expression containers, accessor-backed patterns, and lazy arrow parameters. Co-authored-by: Cursor <cursoragent@cursor.com>
Compile TSRX style blocks into parity-tested scoped CSS sidecars across Babel and native pipelines without runtime helpers. Co-authored-by: Cursor <cursoragent@cursor.com>
🦋 Changeset detectedLatest commit: 66cce98 The changes in this PR will be included in the next version bump. This PR includes changesets to release 11 packages
Not sure what this means? Click here to learn what changesets are. Click here if you're a maintainer who wants to add another changeset to this PR |
size-limit report 📦
|
Coverage Report for CI Build 33159014288Warning Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes. Coverage remained the same at 72.216%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
Merging this PR will not alter performance
Comparing Footnotes
|
Allow secondary compiler passes to retain the authored TSRX path so server-function IDs stay aligned with Vite's manifest. Co-authored-by: Cursor <cursoragent@cursor.com>
Scope selectors against known elements instead of allowing unrelated selectors whenever a dynamic child is present. Co-authored-by: Cursor <cursoragent@cursor.com>
Compose Oxc mappings through exact projection ranges while leaving generated scaffolding unmapped. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Review the following changes in direct dependencies. Learn more about Socket for GitHub.
|
Summary
.tsrxsyntax routing to both@solidjs/babel-pluginand@solidjs/compiler<style>blocks into scoped CSS sidecars and class maps without browser runtime helpers.tsrxmodules with Solid's function-level\"use server\"transform while preserving path-stable IDsVite integration: solidjs/solid-vite-plugin#333
Test plan
pnpm --filter @solidjs/babel-plugin testpnpm --filter @solidjs/compiler testRelease plan
Keep this PR in draft while the current Solid release is prepared. Rebase onto the post-release
nextbranch and refresh the experimental parser pins before marking it ready.Made with Cursor