jsdom v9.1.0 Release Notes

    • โž• Added a somewhat-reasonable implementation of focus and focus events. Although the full complexity of focus is not implemented, the following improvements have been made:
      • Only elements which are focusable can be focused.
      • Added the FocusEvent class, and now focus and blur events are fired appropriately.
      • tabIndex now returns 0 by default for focusable elements.
    • Reimplemented navigator to be to-spec:
      • Added appCodeName, product, productSub, vendor, and vendorSub; also changes userAgent, appName, platform, and version to be more browser-like instead of based on various Node.js information.
      • Added language and languages.
      • Added onLine.
      • Added javaEnabled().
      • Removed noUI.
    • ๐Ÿ›  Fixed formEl.action to return a value resolved relative to the document URL, or to return the document URL if the corresponding attribute is missing or empty.
    • Sped up XPath execution. (vsemozhetbyt)
    • ๐Ÿ›  Fixed window.close() not correctly clearing event listeners on the document. (Ojek)
    • ๐Ÿ›  Fixed a regression introduced in v9.0.0 where invalid CSS would cause a crash while attempting to parse it. Instead, a "jsdomError" will now be emitted to the virtual console.