Releases of jsdom
279 stable releases, newest first. Release notes are kept for the last 90 days; older ones link to where they were published.
30.1.3
15 October 2026Improved performance of
getComputedStyle()and computed CSS property reads, including with stylesheets containing attribute selectors. (@scttcper, @asamuzaK)Fixed slowdowns when focusing elements and running interaction tests, which regressed in v30.1.2. (@scttcper)
Fixed
XMLHttpRequestreusing credentials supplied toxhr.open()after cross-origin redirects, including in response to authentication challenges from the destination.Fixed
XMLHttpRequestincorrectly sending and accepting cookies after cross-origin redirects back to the document's origin whenxhr.withCredentialsis false.
30.1.2
4 October 2026Updated URLs to support Unicode v18.0.0 in internationalized domain names.
Reduced package size and memory use for CSS property definitions. (@scttcper)
Fixed severe slowdowns when building large DOM trees, including SVG charts with D3, which regressed in v30.1.0. (@cmdcolin)
Fixed exponentially slow reads of empty inherited CSS custom properties in deeply nested documents, and custom properties incorrectly inheriting past an
initialreset. (@scttcper)
30.1.1
22 September 2026Fixed spurious window
blurandfocusoutevents and incorrectevent.relatedTargetvalues when focusing an element after removing the previously focused element, which regressed in v30.1.0. (@asamuzaK)Fixed focus and blur behavior across frames, and focusing the document's viewport through
document.documentElement.focus(). (@asamuzaK)Fixed focus targets removed or disabled by
blurlisteners becoming active, and text selections made by focus and blur listeners being overwritten. (@asamuzaK)Fixed
element.focus()incorrectly focusing disabled form controls and<input type="hidden">elements withtabindex="". (@scttcper)
30.1.0
17 September 2026jsdom is feeling the AGI!
This release is dedicated to @scttcper, who unleashed @codex upon jsdom and found tons of performance improvements. Along the way, he found and fixed many correctness issues as well.
We really appreciate his thoughtful PRs, which did a great job following the project's contribution guidelines, and were clearly human-curated, with their PR descriptions edited to be brief and respectful of the maintainers' time.
Added named access to elements on
document, such asdocument.myFormfor<form name="myForm">. (@vojtisprime11)
30.0.1
29 July 2026Fixed
getComputedStyle()withcalc()and other functions throwing an exception, which regressed in v30.0.0. (@asamuzaK)Sped up up range operations on large documents (@leonidaz)
30.0.0
27 July 2026Breaking changes:
Node.js minimum version raised to
^22.22.2 || ^24.15.0 || >=26.0.0.
Other changes:
Added
CSS.escape()andCSS.supports()functions. (@asamuzaK)
29.1.1
30 April 202629.1.0
27 April 202629.0.2
7 April 202629.0.1
20 March 202629.0.0
15 March 202628.1.0
15 February 202628.0.0
2 February 202627.4.0
26 December 202527.3.0
8 December 202527.2.0
12 November 202527.1.0
31 October 202527.0.1
18 October 202527.0.0
13 September 202526.1.0
13 April 202526.0.0
9 January 202525.0.1
22 September 202425.0.0
25 August 202424.1.3
25 August 202424.1.2
25 August 202424.1.1
21 July 202424.1.0
26 May 202424.0.0
21 January 202423.2.0
7 January 202423.1.0
5 January 202423.0.1
30 November 202323.0.0
26 November 202322.1.0
27 May 202322.0.0
2 May 202321.1.2
1 May 202321.1.1
12 March 202321.1.0
22 January 202321.0.0
7 January 202320.0.3
20 November 202220.0.2
30 October 202220.0.1
2 October 202220.0.0
19 June 202219.0.0
2 December 202118.1.1
21 November 202118.1.0
12 November 202118.0.1
1 November 202118.0.0
8 October 202117.0.0
13 August 202116.7.0
1 August 202116.6.0
23 May 2021