jsdom v11.6.0 Release Notes

    • ➕ Added a fully-functioning WebSocket implementation!
    • ➕ Added a window.performance implementation, including the basics of the High Resolution Time specification: performance.now(), performance.timeOrigin, and performance.toJSON().
    • ➕ Added support for all of the public API of HTMLMeterElement, except for meterEl.labels.
    • ➕ Added the locationbar, menubar, personalbar, scrollbars, statusbar, and toolbar properties to Window.
    • ➕ Added more properties to window.screen: availWidth, availHeight, colorDepth, and pixelDepth. All of its properties are now getters as well.
    • ➕ Added window.devicePixelRatio.
    • ➕ Added getModifierState() to MouseEvent and KeyboardEvent.
    • ➕ Added a setter for HTMLInputElement's files property.
    • ➕ Added support for the endings option to the Blob constructor.
    • 🛠 Fixed firing various event firings to have the correct default values, e.g. the properties of MouseEvent when using element.click().
    • 🛠 Fixed the firing of popstate and hashchange events during fragment navigation to make them trusted events.
    • 🛠 Fixed data: URL parsing to not include the fragment portions.
    • 🛠 Fixed all URL-accepting properties to properly perform scalar value string conversion and URL resolution.
    • 🛠 Fixed many other small edge-case conformance issues in the API surface of various web APIs; see #2053 and #2081 for more information.
    • 🛠 Fixed various APIs to use ASCII lowercasing, instead of Unicode lowercasing, for element and attribute names.
    • 🛠 Fixed the encoding of a document created via new Document() to be UTF-8.
    • 🛠 Fixed event handler properties behavior when given non-callable objects.
    • 🐎 Increased the performance of parsing HTML documents with large numbers of sibling elements.
    • ✂ Removed probablySupportsContext() and setContext() from HTMLCanvasElement, per spec updates.
    • ✂ Removed the nonstandard window.scrollLeft and window.scrollTop properties, and the window.createPopup() method.