Releases: jsdom/jsdom
Version 24.1.0
- Added the
getSetCookie()
method to theHeaders
class. (ushiboy) - Fixed the creation and parsing of elements with names from
Object.prototype
, like"constructor"
or"toString"
. - Updated
rweb-cssom
, which can now parse additional CSS constructs.
Version 24.0.0
This release reverts our selector engine back to nwsapi
. As discussed in #3659, the performance regressions from @asamuzakjp/dom-selector
turned out to be higher than anticipated. In the future, we can revisit @asamuzakjp/dom-selector
after it reaches nwsapi
's performance on the two real-world benchmarks provided by the community.
Since reverting to nwsapi
causes several functionality regressions, e.g. removing :has()
support, we've decided to make this a major version.
Additionally:
- Small fixes to edge-case behavior of the following properties:
input.maxLength
,input.minLength
,input.size
,progress.max
,tableCell.colSpan
,tableCell.rowSpan
,tableCol.span
,textArea.cols
,textArea.maxLength
,textArea.minLength
,textArea.rows
.
Version 23.2.0
This release switches our CSS selector engine from nwsapi
to @asamuzakjp/dom-selector
. The new engine is more actively maintained, and supports many new selectors: see the package's documentation for the full list. It also works better with shadow trees.
There is a potential of a performance regression due to this change. In our stress test benchmark, which runs most of these 273 selectors against this 128 KiB document, the new engine completes the benchmark only 0.25x as fast. However, we're hopeful that in more moderate usage this will not be a significant issue. Any help speeding up @asamuzakjp/dom-selector
is appreciated, and feel free to open an issue if this has had a significant impact on your project.
Version 23.1.0
- Added an initial implementation of
ElementInternals
, including theshadowRoot
getter and the string-valued ARIA properties. (zjffun) - Added the string-valued ARIA attribute-reflecting properties to
Element
. - Fixed
history.pushState()
andhistory.replaceState()
to follow the latest specification, notably with regards to how they handle empty string inputs and what new URLs are possible. - Fixed the
input.valueAsANumber
setter to handleNaN
correctly. (alexandertrefz) - Updated various dependencies, including
cssstyle
which contains several bug fixes.
Version 23.0.1
- Fixed the incorrect
canvas
peer dependency introduced in v23.0.0.
Version 23.0.0
- Node.js v18 is now the minimum supported version.
- Updated various dependencies, including
whatwg-url
which integrates various additions to theURL
andURLSearchParams
objects.
Version 22.1.0
- Added
crypto.randomUUID()
. (jamesbvaughan) - Added
DOMRect
andDOMRectReadOnly
. - Added
AbortSignal.timeout()
. - Added
abortSignal.throwIfAborted()
. - Added support for the
submitter
argument to theFormData
constructor. (jenseng) - Improved
getComputedStyle()
's results for color-based properties, to resolve named colors and attempt to provide initial inheritance support. (hoekz-wwt) - Updated
Window
's event handler properties (e.g.oncopy
,ontouchstart
, etc.) to reflect the latest list from the standard. - Fixed
DOMParser
-created documents to inherit their URL from the creating document.
Version 22.0.0
- Node.js v16 is now the minimum supported version.
- Removed support for running jsdom in the browser via a browserified bundle. This carried with it too much complexity, especially for our testing infrastructure, and a testing package we relied on was recently deprecated.
Version 21.1.2
- Fixed
setRangeText()
used on<input>
and<textarea>
elements to calculate the new end index correctly. (pmstss) - Fixed
pageX
,pageY
,offsetX
, andoffsetY
onMouseEvent
s during dispatch. (jenseng) - Upgraded
nwsapi
to v2.2.4, bringing along various fixes to our selector engine.
Version 21.1.1
- Fixed
jsdom.reconfigure()
to also adjust the URL as seen by the history API, so that e.g.history.replaceState(null, "")
would not mess up the URL. (jdufresne) - Fixed
location.hash = ""
to leave any#
in location.href. - Fixes a few bugs with CSS parsing by replacing
cssom
withrweb-cssom
, since the latter is maintained. (seanparmelee)