All Versions
Latest Version
Avg Release Cycle
36 days
Latest Release

Changelog History
Page 16

  • v1.0.2 Changes

    • ๐Ÿ›  Fix: temporarily pin cssstyle dependency to at most 0.2.18 until chad3814/CSSStyleDeclaration#20 is fixed.
    • ๐Ÿ›  Fix: browserifying jsdom should work better now that the required packages are included as dependencies instead of devDependencies. (Sebmaster)
    • ๐Ÿ›  Fix: using jsdom.env in a browser environment now correctly defaults options.url to location.href instead of trying to infer a reasonable fil:// URL using techniques that fail in the browser. (rattrayalex)
  • v1.0.1 Changes

    • Fix: the return value of EventTarget.prototype.dispatchEvent should be true when the default is not prevented; previously it was the opposite. (eventualbuddha)
  • v1.0.0 Changes

    ๐Ÿ‘€ For a consolidated list of changes from 0.11.1 to 1.0.0, see this wiki page.

    • โœ‚ Remove: nonstandard EventTarget.getListeners; EventTarget.forwardIterator; EventTarget.backwardIterator; EventTarget.singleIterator.
    • โœ‚ Remove: nonstandard document.innerHTML. (jorendorff)
    • ๐Ÿ›  Fix: value and defaultValue properties of a HTMLInputElement are now correctly synced to the value="" attribute. (Sebmaster)
  • v1.0.0-pre.7 Changes

    • โœ‚ Remove: support for old, untested HTML and XML parsers, namely davglass/node-htmlparser and isaacs/sax-js. In the future we plan to work toward a standardized parsing interface that other parsers can implement, instead of adding custom code to jsdom for various parsers. This interface still is being decided though, as it needs to support complex things like pausing the parse stream (for document.write) and parsing disconnected fragments (for document.innerHTML). (Sebmaster)
    • โž• Add: new parsingMode configuration, to allow you to manually specify XML or HTML. (Sebmaster)
    • ๐Ÿ”„ Change: jsdom will no longer use the presence of <?xml or similar to attempt to auto-detect XHTML documents. Instead, it will by default treat them the same as browsers do, with the <?xml declaration just being a bogus comment. If you need your document interpreted as XHTML instead of HTML, use the parsingMode option. (Sebmaster)
    • ๐ŸŽ Tweak: memoize various DOM-querying functions (e.g. getElementsByTagName, querySelector, etc.) to improve performance. (ccarpita)
  • v1.0.0-pre.6 Changes

    • ๐Ÿ›  Fix: another parsing issues with void elements and innerHTML, this time related to disconnected nodes. This was a regression between 0.11.1 and 1.0.0-pre.1. (paton)
    • ๐Ÿ›  Fix: same-named radio inputs should not be mutually exclusive unless they are in the same form. (stof)
  • v1.0.0-pre.5 Changes

    • ๐Ÿ›  Fix: sometimes calling window.close() would cause a segfault. (paton)
  • v1.0.0-pre.4 Changes

    • ๐Ÿ›  Fix: attributes and elements now have their prefix, localName, and namespaceURI properties set correctly in all cases. (Excepting application/xhtml+xml mode, which jsdom does not support yet.) (Sebmaster)
  • v1.0.0-pre.3 Changes

    • ๐Ÿ›  Fix: void elements no longer parsed correctly when using innerHTML. This was a regression between 0.11.1 and 1.0.0-pre.1. (Sebmaster)
  • v1.0.0-pre.2 Changes

    • ๐Ÿ›  Fix: parsing and serialization of attributes in the form x:y, e.g. xmlns:xlink or xlink:href. This was a regression between 0.11.1 and 1.0.0-pre.1. (Sebmaster)
  • v1.0.0-pre.1 Changes

    ๐Ÿš€ This is a prerelease of jsdom's first major version. It incorporates several great additions, as well as a general cleanup of the API surface, which make it more backward-incompatible than usual. Starting with the 1.0.0 release, we will be following semantic versioning, so that you can depend on stability within major version ranges. But we still have a few more issues before we can get there, so I don't want to do 1.0.0 quite yet.

    ๐Ÿš€ This release owes a special thanks to @Sebmaster, for his amazing work taking on some of the hardest problems in jsdom and solving them with gusto.

    Major changes

    • ๐Ÿ‘ท jsdom now can be browserified into a bundle that works in web workers! This is highly experimental, but also highly exciting! (lawnsea)
    • An overhaul of the initialization lifecycle, to bring more control and address common use cases. (Sebmaster)
    • ๐Ÿ“ฆ The excellent parse5 HTML parser is now the default parser, fixing many parsing bugs and giving us full, official-test-suite-passing HTML parsing support. This especially impacts documents that didn't include optional tags like <html>, <head>, or <body> in their source. We also use parse5 for serialization, fixing many bugs there. (Sebmaster)
    • ๐Ÿ“œ As part of the new parser story, we are not supporting XML for now. It might work if you switch to a different parser (e.g. htmlparser2), but in the end, HTML and XML are very different, and we are not attempting to be an XML DOM. That said, we eventually want to support XML to the same extent browsers do (i.e., support XHTML and SVG, with an appropriate MIME type switch); this is being planned in #820.

    โœ‚ Removed jsdom APIs

    • jsdom.createWindow: use document.parentWindow after creating a document
    • jsdom.html: use jsdom.jsdom
    • ๐Ÿ“ฆ jsdom.version: use require("jsdom/package.json").version
    • ๐Ÿšš jsdom.level: levels are deprecated and will probably be removed in 2.0.0
    • jsdom.dom
    • ๐Ÿ’ป jsdom.browserAugmentation
    • jsdom.windowAugmentation

    ๐Ÿ”„ Changed jsdom APIs

    โœ‚ Removed non-standard DOM APIs

    • document.createWindow: use document.parentWindow
    • document.innerHTML and document.outerHTML: use the new jsdom.serializeDocument to include the DOCTYPE, or use document.documentElement.outerHTML to omit it.

    ๐Ÿ›  Other fixes

    • ๐Ÿ‘ Allow empty strings to be passed to jsdom.env. (michaelmior)
    • ๐Ÿ›  Fix for a memory leak in EventTarget.prototype.dispatchEvent. (Joris-van-der-Wel)
    • ๐Ÿ‘‰ Make event listeners in the capture phase also fire on the event target. (Joris-van-der-Wel)
    • Correctly reset eventPhase and currentTarget on events, before and after a dispatch. (Joris-van-der-Wel)
    • ๐Ÿ›  Fix document.cookie = null to not throw, but instead just do nothing. (kapouer)