All Versions
201
Latest Version
Avg Release Cycle
36 days
Latest Release
37 days ago
Changelog History
Page 2
Changelog History
Page 2
-
v12.2.0
October 08, 2018- ➕ Added support for shadow DOM! This includes shadow roots, slots, composed events, and more. (pmdartus)
- ➕ Added the
element.toggleAttribute()
method. - 🛠 Fixed
XMLHttpRequest
sometimes sending an empty request body after a preflight request. (andreasf) - 🛠 Fixed the
formElement.form
property to use an algorithm that also checks theform=""
attribute, instead of always looking for the closest ancestor<form>
element. (jamietre) - 📦 Stopped swallowing errors when the
canvas
orcanvas-prebuilt
packages were installed, but failed to load. (joscha)
-
v12.1.0
September 30, 2018- ⬆️ Dramatically upgraded our XML parser, from the unmaintained
sax
package to the well-maintainedsaxes
replacement. This increases our specification conformance, including rejecting certain ill-formed XML documents that were previously accepted, and properly handling other constructs like empty comments, CDATA sections, and<script>
elements. (lddubeau) - ➕ Added
fieldsetEl.elements
andfieldsetEl.type
properties. - ➕ Added the
options
parameter todom.runVMScript()
. (SimenB) - ➕ Added the ability for custom resource loader
fetch()
implementations to see what element initiated the fetch. (sarvaje) - 🛠 Fixed
input
andchange
events for<input>
elements to be trusted and uncancelable. - 🔀 "Fixed"
<script>
s with theasync
attribute to not execute before sync<script>
s that precede them. We still do not, in general, have proper execution of scripts during the initial parsing of a document, so this fix is more of a reduction of badness than an alignment with the specification. This behavior regressed in v12.0.0. (sarvaje)
- ⬆️ Dramatically upgraded our XML parser, from the unmaintained
-
v12.0.0
🚀 This major release brings along our new resource loader API, finally bringing all the capabilities from jsdom v9 to the new (jsdom v10+) API. Thanks very much to @sarvaje for his work to make this possible!
💥 Breaking changes:
- jsdom now requires Node.js v8.
- ✂ Removed the old jsdom API, as the new API now has all the capabilities you need.
- ⚡️ Updated our
parse5
dependency to v5, which changes the format of the node locations returned bydom.nodeLocation()
. - ⚡️ Updated our
whatwg-url
dependency to v7, which changes the origin offile:
URLs to be an opaque origin (and thusfile:
URLs are no longer same origin to each other).
Other changes:
- ➕ Added
countReset()
,dir()
anddirxml()
methods toconsole
. - ➕ Added the
InputEvent
class. - ➕ Added
window.status
. - ➕ Added
htmlElement.draggable
. - 🛠 Fixed
window.frameElement
to correctly return an actualHTMLElement
instance, instead of a jsdom internal class. - 🛠 Fixed cloning of
textarea
elements to preserve their values. - 🛠 Fixed
select.selectedOptions
sometimes returning outdated results. - 🛠 Fixed CSS selection APIs sometimes returning outdated results, especially for state pseudo-class selectors like
:checked
. - 🛠 Fixed CSS selection APIs to throw an error for invalid selectors even when used on empty nodes.
- 🛠 Fixed
window.name
to default to the empty string, per spec, instead of"nodejs"
. - 🛠 Fixed the default User-Agent to say "unknown OS" instead of "undefined" when jsdom is used in web browsers.
-
v11.12.0
- ➕ Added
window.localStorage
,window.sessionStorage
, andStorageEvent
support. These are currently only stored in-memory; file an issue if you need persistent (on-disk) storage capability so we can discuss adding that. This feature includes the newstorageQuota
option for controlling how much can be stored. - ➕ Added
element.closest()
. (caub) - ⚡️ Changed
hashchange
andpopstate
events to no longer bubble, per a specification update. - 🛠 Fixed the old API in Node.js v10 to not throw, when given input that is not a valid file path (such as a typical HTML string).
- 💅 Upgraded
cssstyle
to v1.0.0, bringing along various fixes to our CSS parser and object model. (eddies) - ⬆️ Upgraded
nwsapi
to v2.0.7, bringing along various fixes to our selector engine.
- ➕ Added
-
v11.11.0
- ➕ Added
node.getRootNode()
. (FrecksterGIT) - ➕ Added
label.control
. (FrecksterGIT) - ➕ Added
el.labels
for form control elements. (FrecksterGIT) - 🛠 Fixed the
contentType
ofDocument
s created through<iframe>
s. - 🛠 Fixed the
contentType
andorigin
ofDocument
s created throughdocument.implementation.createDocument()
. - 🛠 Fixed
sourceEl.srcset
to return the value of thesrcset=""
attribute, instead of thecite=""
attribute. - 🛠 Fixed
node.normalize()
to not modify non-Text
nodes. (lddubeau) - 💅 Upgraded
cssstyle
to v0.3.1, bringing along various fixes to our CSS parser and object model. (jsakas) - ⬆️ Upgraded
whatwg-url
to v6.4.1, fixing the interaction ofURL
'shref
andsearchParams
properties. - 🐎 Upgraded our selector matching engine from
nwsmatcher
tonwsapi
, bringing along extensive fixes, performance improvements, and additional selector support.
- ➕ Added
-
v11.10.0
- ➕ Added
event.srcElement
andevent.returnValue
. - 🛠 Fixed
XMLHttpRequest
to correctly set the User-Agent header, and set it on CORS preflight requests. (BehindTheMath)
- ➕ Added
-
v11.9.0
- ➕ Added
node.lookupPrefix()
,node.lookupNamespaceURI()
andnode.isDefaultNamespace()
. - 🛠 Fixed the cloning of
Document
s; previously it would not clone all of the appropriate state, and would sometimes add an extra document type node. - 🛠 Fixed various edge cases in the
textContent
andnodeValue
properties. - 🛠 Fixed
canvas.toBlob()
to properly pass through the JPEG quality argument, instead of always passing zero tonode-canvas
. (challakoushik)
- ➕ Added
-
v11.8.0
- ➕ Added the full constraint validation API, i.e.
willValidate
,validity
,validationMessage
,checkValidity()
,reportValidity()
, andsetCustomValidity()
, onHTMLButtonElement
,HTMLFieldSetElement
,HTMLFormElement
,HTMLInputElement
,HTMLObjectElement
,HTMLOutputElement
,HTMLSelectElement
, andHTMLTextAreaElement
. (kontomondo) - ➕ Added
getElementById()
toDocumentFragment
.
- ➕ Added the full constraint validation API, i.e.
-
v11.7.0
- ➕ Added the boolean return value to
DOMTokenList
'sreplace()
method, per the recent spec addition. - ➕ Added
FileReader
'sreadAsBinaryString()
method, as it has been added back to the specification. - 🛠 Fixed event handlers to be own properties of each
Window
, instead of onWindow.prototype
. (Fetz) - 🛠 Fixed an exception that would sometimes get raised when removing an
<img>
element'ssrc=""
attribute. (atsikov) - 🛠 Fixed
abort
events onAbortSignal
s to have theirisTrusted
set to true. - 🛠 Fixed some argument conversions in
XMLHttpRequest
'sopen()
method. - 👌 Improved MIME type and
data:
URL parsing throughout jsdom, by using the newwhatwg-mimetype
anddata-urls
packages. - ✂ Removed some unnecessary
.webidl
files that were included in the npm package.
- ➕ Added the boolean return value to
-
v11.6.2
- 🛠 Fixed another regression (since v11.6.0) in
<style>
elements, where they would omit a series of parsingjsdomError
events for any style sheet text containing spaces. - 💅 Generally improved the spec-conformance of when
<style>
and<script>
elements are evaluated; for example,<script>
elements inserted byinnerHTML
are no longer evaluated.
- 🛠 Fixed another regression (since v11.6.0) in