Changelog History
Page 9
-
v8.1.1 Changes
- 🛠 Fixed input selection methods and properties to properly differentiate between inputs that can be selected outright vs. textual inputs which allow variable-length selection. (yaycmyk)
-
v8.1.0 Changes
- ➕ Added
attr.nodeName
, which was recently re-added to the spec. - ➕ Added click-proxying behavior from
<label>
s to their labeled form elements. (yaycmyk) - ➕ Added a setter for
element.classList
per recent spec changes (it forwards toelement.classList.value
). - ⚡️ Updated our attributes implementation in a few ways for recent spec changes and to fix discovered bugs:
- Added
element.getAttributeNames()
. (spec addition) setAttributeNode
andsetAttributeNodeNS
can now replace an attribute node, instead of removing the old one and adding a new one; this avoids changing the order in the attribute list. (spec change)NamedNodeMap
named properties are now lowercase (except in edge cases involving XML documents or non-HTML elements). (spec change)NamedNodeMap
named properties are now non-enumerable.- The
"DOMAttrModified"
mutation event'srelatedNode
is now the newAttr
object, not theNode
, as per spec.
- Added
- ⚡️ Updated
DOMTokenList
to have avalue
property per recent spec changes; itstoString
serialization also changed slightly. - ⚡️ Updated
tc.headers
to be aDOMTokenList
that simply reflects theheaders
attribute; previously it was a string, with its computation doing some weird stuff. - 🛠 Fixed
document.implementation.createDocument()
to create a document with its parsing mode set to XML, which affects a variety of DOM APIs in small ways. - 🛠 Fixed
EventTarget.prototype.constructor
to be correct; it was previouslyWindow
. - 🛠 Fixed
option.index
for<option>
s not inside a<select>
to no longer error. - 🛠 Fixed
tc.cellIndex
for<td>
s and<th>
s not inside a<tr>
to no longer error. - 🛠 Fixed
tr.sectionRowIndex
for<tr>
s not inside a<table>
,<tbody>
,<thead>
, or<tfoot>
to no longer error. - ✂ Removed the
"keyevents"
alias for"keyboardevent"
when usingdocument.createEvent
, per recent spec changes.
- ➕ Added
-
v8.0.4 Changes
- 🛠 Fixed the
this
value when you pass a{ handleEvent() { ... } }
object toaddEventListener
. (thetalecrafter)
- 🛠 Fixed the
-
v8.0.3 Changes
- 🛠 Fixed
HTMLOptionElement.prototype.label
; a typo was causing it to not work at all. (karlhorky) - 💅 Updated
cssstyle
minimum version to ensure all jsdom installs (not just fresh ones) get the benefit ofcssstyle
's recently-betterpadding
andmargin
parsing/CSSOM.
- 🛠 Fixed
-
v8.0.2 Changes
- 🛠 Fixed an issue where custom user agents would not propagate to
navigator.userAgent
in frames and iframes. - 👌 Improved our
document.activeElement
implementation to be a bit smarter; we still don't have full focus/blur/active element semantics, but at least now it falls back to the<body>
element when the active element is removed from the document or when no element has been focused yet.
- 🛠 Fixed an issue where custom user agents would not propagate to
-
v8.0.1 Changes
- 🛠 Fixed an issue where the
this
inside event handler callbacks was not equal to the event's current target. (Surprisingly there were no tests for this!)
- 🛠 Fixed an issue where the
-
v8.0.0 Changes
🚀 This major release includes a large rewrite of most of the DOM and HTML classes exposed in jsdom. A lot of their behavior is generated from their specs' IDL syntax, taking care of many type conversions, attribute/property reflections, and much more. Many properties that were previously not present are now available, and almost everything behaves in a more spec-compliant way. Additionally, for these classes all of their implementation details are no longer available as underscore-prefixed properties, but instead are hidden behind a single symbol.
🚀 Although normally jsdom does not mark a new major release for changes that simply update us to the latest specs or hide internal implementation details better, the magnitude of the changes is so extensive that we want to bump the major version in order to ensure that consumers perform adequate testing before upgrading. But, you should definitely upgrade! The new stuff is really awesome!
- 📦 Reimplemented
Location
,History
, andHTMLHyperlinkElementUtils
(used by bothHTMLAnchorElement
andHTMLAreaElement
) according to the latest specs, and using the latest whatwg-url package. This greatly improves our correctness on URL resolution and navigation (to the extent we support navigation, i.e.pushState
and changing the hash). It should also improve parsing speed as we no longer parse and resolve URLs during parsing. - ➕ Added
Element.prototype.insertAdjacentHTML
. (kasperisager) - ➕ Added
Node.prototype.adoptNode
, and adopt nodes during insertion instead of throwing"WrongDocumentError"
s. (dmethvin) - ➕ Added a stub
Element.prototype.getClientRects
to match our stubgetBoundingClientRect
. - 🛠 Fixed
setTimeout
andsetInterval
to return numeric IDs, instead of objects. (alvarorahul) - 🛠 Fixed
setTimeout
andsetInterval
to accept string arguments to eval, and to pass along extra arguments after the first two. - 🛠 Fixed certain style shorthand properties not updating their component properties or parsing correctly. (dpvc)
- 🛠 Fixed
Event
object creation to always initialize the event objects, unless usingdocument.createEvent
, even for events with name""
. - 🛠 Fixed iframes to go through the custom resource loader. (chrmarti)
- ✂ Removed "DOM Load and Save" stub implementation. That spec was never implemented in browsers, and jsdom only contained stubs.
- ✂ Removed other minor unimplemented, stub, or no-longer-standard APIs from "DOM Level 3", like the user-data API,
DOMError
,DOMConfiguration
, andDOMStringList
.
- 📦 Reimplemented
-
v7.2.2 Changes
- 🛠 Fixed
canvasEl.toDataURL()
, with thecanvas
npm package installed; a recent update to thecanvas
package broke how we were passing arguments to do. - 🛠 Fixed
data:
URL parsing to allow empty contents, e.g.data:text/css;base64,
. (sebmck)
- 🛠 Fixed
-
v7.2.1 Changes
- 🛠 Fixed a regression in XML parsing of attributes with a namespace URL but no prefix (e.g.
<math xmlns="http://www.w3.org/1998/Math/MathML">
).
- 🛠 Fixed a regression in XML parsing of attributes with a namespace URL but no prefix (e.g.
-
v7.2.0 Changes
- ➕ Added support for text selection APIs on
<input>
and<textarea>
! (sjelin and yaycmyk) - 📦 Replaced our default XML parser with sax, thus fixing many (but not all) issues with XML and XHTML parsing. To get a flavor of the issues fixed, check out these now-closed bugs: #393, #651, #415, #1276.
- 🛠 Fixed the
<canvas>
tag to reset its contents when its width or height changed, including the change from the default 300 × 150 canvas. (Applies only when using thecanvas
npm package.) - 🛠 Fixed an issue where
HTMLCollection
s would get confused when they contained elements with numericid
s orname
s. - 🛠 Fixed an issue with doctype parsing confusing the system ID and public ID.
- 🤡 Made the task posted by
postMessage
use the inside-jsdom timer queue, instead of the Node.js one. This allows easier mocking. (cpojer)
- ➕ Added support for text selection APIs on