• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

solidjs / solid / 35741238914
74%
main: 89%

Build:
Build:
LAST BUILD BRANCH: fix/optimistic-undeclared-flight-owner
DEFAULT BRANCH: main
Ran 22 Sep 2026 02:40PM UTC
Jobs 1
Files 8
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

22 Sep 2026 02:34PM UTC coverage: 72.775%. Remained the same
35741238914

push

github

web-flow
fix(compiler): escape static text on SSR spread elements (#3557) (#3559)

* fix(compiler): escape static text on SSR spread elements (#3557)

Static JSX text children of a spread element were pushed to `ssrElement`
as decoded strings, and `ssrElement` joins string children verbatim, so
`<div {...p}>a &lt;b&gt;</div>` rendered a real `<b>`. Both compilers now
escape the text unless the element is `script` or `style`.

The textarea `value` fold wrote the decoded value into the template, so
`<textarea value="a &lt;b&gt;" />` rendered `a <b>`; the fold now escapes
the text in both compilers.

The Babel plugin folded a textarea `value` into children on spread
elements too, which the native compiler never did. The fold ran before
the sources were assembled, so any source's `value` overwrote the static
regardless of order. The fold is now skipped when the element carries a
spread and the value stays a prop of the running source object, where
the runtime applies source precedence and escapes it. Static string props
of Babel spread elements are rebuilt from their decoded value, since the
generator prints a JSX attribute literal from its raw entity text.

* fix: address review findings

A static string expression child of a spread `script` or `style` element
(`<script {...props}>{"a < b"}</script>`) is no longer HTML-escaped by the
Babel SSR transform: `createElement` now forwards `doNotEscape` to
`transformNode`, as the template path already did, matching the native
compiler and the non-spread output.

The `decodedAttrValue` helper in `universal/element.ts` is exported and
replaces the identical inline idiom in the SSR, DOM and component spread
paths; the output is unchanged.

* chore: rebase #3559 over hoistProps; changeset summary

Co-authored-by: Claude via Cursor <noreply@cursor.com>

* test(web): silence TS2783 on the intentional duplicate value in the spread specs

Co-authored-by: Claude via Cursor <noreply@cursor.com>

---------

Co-authored-by: Ryan Ca... (continued)

550 of 818 branches covered (67.24%)

Branch coverage included in aggregate %.

824 of 1070 relevant lines covered (77.01%)

17.4 hits per line

Jobs
ID Job ID Ran Files Coverage
1 35741238914.1 22 Sep 2026 02:40PM UTC 8
72.78
GitHub Action Run
Source Files on build 35741238914
  • Tree
  • List 8
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35741238914
  • 9adf007f on github
  • Prev Build on next (#35737734011)
  • Next Build on next (#35748247012)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc