jsdom v11.2.0 Release Notes
-
๐ This release brings with it a much-awaited infrastructure change, as part of webidl2js v7.3.0 by the ever-amazing TimothyGu: jsdom can now generate spec-compliant versions of classes that have "
Proxy
-like" behavior, i.e. allow getting or setting keys in unusual ways. This enables a number of improvements, also by TimothyGu:- Significantly improved the spec-compliance and "liveness" of both
NodeList
andHTMLCollection
, such that retrieving properties via indices or (inHTMLCollection
's case)id
/name
values will always work correctly. - โ Added
element.dataset
support. - โ Added indexed and named access to
<select>
elements, as well as the correspondingitem()
andnamedItem()
methods. - โ Added suport for
FileList
indexed properties, i.e.fileList[i]
. - Made
select.options
an instance of the newly-implementedHTMLOptionsCollection
, instead of just aHTMLCollection
.
This infrastructure will allow us to improve and implement many other similar behaviors; that work is being tracked in #1129.
In addition to these improvements to the object model, we have more work to share:
- โ Added no-op APIs
document.clear()
,document.captureEvents()
,document.releaseEvents()
,window.external.AddSearchProvider()
, andwindow.external.IsSearchProviderInstalled()
. (Zirro) - โ Added active checks to prevent reentrancy in
TreeWalker
andNodeIterator
. - โก๏ธ Updated the interaction between a
<textarea>
'svalue
,defaultValue
, andtextContent
per a recent spec change - ๐ Fixed elements with
id="undefined"
shadowing theundefined
property of the global object. (TimothyGu) - ๐ Fixed matching in
getElementsByClassName()
to be ASCII case-insensitive, instead of using JavaScript'stoLowerCase()
. - ๐ Improved some behaviors around navigating to fragments. (ForbesLindesay)
- ๐ Improved
XMLHttpRequest
andFileReader
behavior, mainly around event handlers,abort()
, and network errors. - ๐ Improved edge-case spec compliance of
NodeIterator
.
- Significantly improved the spec-compliance and "liveness" of both