## 9.8.3
* Fixed syntax errors in node v4.
## 9.8.2
* Fixed `DOMTokenList` and `getElementsByClassName` to only split on ASCII whitespace, not all Unicode whitespace.
## 9.8.1
* Fixed an error that occurred when passing no class names to `getElementsByClassName`, e.g. `getElementsByClassName("")` or `getElementsByClassName(" ")`.
## 9.8.0
* Added the `blob.isClosed` property. (TimothyGu)
* Fixed the `file.lastModified` property to be on `File` instead of on `Blob`. (TimothyGu)
* Fixed the `file.lastModified` property to default to the time of the `File` object's creation, not the time that the property is accessed. (TimothyGu)
* Fixed a minor edge-case regression where non-HTML elements with the name `"iframe"` became focusable in 9.7.0.
## 9.7.1
* Fixed a performance regression introduced in 9.5.0 for modifying the DOM. It was particularly noticable during initial parsing of a document with many elements; for example, one test showed parsing ten thousand elements taking 36.4 seconds, whereas after this fix it is back to a more reasonable 0.4 seconds.
## 9.7.0
* Added `EventListenerOptions` support to `addEventListener` and `removeEventListener`, including both the `once` and `capture` options. (GianlucaGuarini)
* Added `document.hasFocus()` (acusti)
* Fixed the focus management to ensure that focusing something inside an `iframe` will also focus the `iframe` itself (acusti)
## 9.6.0
* Added `HTMLCollection.prototype[Symbol.iterator]`, so you can use `for`-`of` loops over `HTMLCollection`s now. (i8-pi)
* Fixed `file.lastModified` to return the current time as the default, instead of `0`.
* Fixed cloning of `Attr`s to properly clone the namespace prefix.
* Tweaked `XMLHttpRequest` progress event ordering slightly to better match the spec and browsers.
* Tweaked the behavior of calling `event.stopPropagation` and `event.stopImmediatePropagation` on already-dispatched events, per [the latest changes to the DOM Standard](https://github.com/whatwg/dom/commit/806d4aab584f6fc38c21f8e088b51b8ba3e27e20).
## 9.5.0
* Added `document.scripts`, `document.embeds`, and `document.plugins`.
* Fixed `document.getElementsByTagName` and `document.getElementsByTagNameNS` to return `HTMLCollection`s instead of `NodeList`s, and to follow the spec algorithms more exactly.
* Fixed various `HTMLCollection`-returning getters such as `document.applets` or `table.cells` to be more spec-compliant.
* Fixed the resource loader to respect the `agent` and `agentClass` options, not just the `agentOptions` one.
* Fixed `console.groupCollapse` to be `console.groupCollapsed` (and changed the virtual console accordingly).
## 9.4.5
* Fixed `"error"` events from failed resource loads going missing since 9.4.3. I really should have tested that release better.
## 9.4.4
* Fixed a leftover `console.log` introduced in the error handling path in 9.4.3.
## 9.4.3
* Fixed spurious `"jsdomError"`s occuring when closing a window, due to aborted resource loads.
## 9.4.2
* Fixed what would happen when inline event handlers (such as `element.onclick`) would return non-boolean values (such as `undefined`); it would previously erroneously cancel the event, in many cases. (dmethvin)
* Upgraded the minimum tough-cookie version to ensure all installations are protected against [a security advisory](https://nodesecurity.io/advisories/130).
## 9.4.1
* Implemented the cloning steps for `` elements, so that cloned inputs properly copy over their value, checkedness, dirty value flag, and dirty checkedness flag. (matthewp)
## 9.4.0
* Added the `DOMParser` API. It is spec-compliant, including producing `` elements, except that the produced documents do not have the same URL as the creating document (they instead always have `"about:blank"`).
* Added strict XML parsing when using `parsingMode: "xml"`. Creating documents will now fail, just like in a browser, when ill-formed XHTML markup is used.
* Added some rudimentary application of XML ``.
* Updated `FormData` for [recent spec fixes](https://github.com/whatwg/xhr/commit/1a75845e67792418a7721d516266ad01a90f2062): blobs, files, and filenames should now all work like you'd expect.
* Updated the `FormData` constructor to use the proper, rather-complex, [constructing the form data set](https://html.spec.whatwg.org/multipage/forms.html#constructing-form-data-set) algorithm.
* Fixed all constructors that appears as globals on the jsdom `window` object to be non-enumerable.
* Fixed `