All Versions
Latest Version
Avg Release Cycle
36 days
Latest Release

Changelog History
Page 11

  • v5.6.1 Changes

    • ๐Ÿ›  Fixed an accidentally-created global attribute variable if you ever called createAttributeNS.
    • โฌ†๏ธ Dependency upgrades fixed a couple of bugs, although you would have gotten these anyway with a clean jsdom v5.6.0 install:
      • Parsing of CSS properties that use url("quoted string") now works correctly, as of cssstyle v0.2.29.
      • Selectors for the empty string, like div[title=""], now work correctly, as of nwmatcher v1.3.6.
  • v5.6.0 Changes

    • ๐Ÿ virtualConsole.sendTo now returns this, allowing for a nice shorthand. (jeffcarp)
  • v5.5.0 Changes

    • โž• Added postMessage support, for communicating between parent windows, iframes, and combinations thereof. It's missing a few semantics, especially around origins, as well as MessageEvent source. Objects are not yet structured cloned, but instead passed by reference. But it's working, and awesome! (jeffcarp)
    • ๐Ÿ‘ฏ Rewrote cloning code (underlying cloneNode and importNode), fixing a number of issues:
      • Elements with weird tag names, of the type that only the parser can normally create, can now be cloned (#1142)
      • Doctypes can now be cloned, per the latest spec.
      • Attrs cannot be cloned, per the latest spec (although they still have a cloneNode method for now due to legacy).
      • Document clones now correctly copy over the URL and content-type.
    • ๐Ÿ›  Fixed any virtual console output from iframes to be proxied to the parent window's virtual console. (jeffcarp)
    • ๐Ÿ›  Fixed the type property of <button> elements to correctly default to submit, and to stay within the allowed range.
    • ๐Ÿ›  Fixed clicking on submit <button>s to submit their containing form; previously only <input type="submit"> worked. (rxgx)
    • ๐Ÿ›  Fixed to return this, per spec. (ryanseddon)

    โž• Additionally, Joris-van-der-Wel added a benchmarking framework, and a number of benchmarks, which should help us avoid performance regressions going forward, and also make targeted performance fixes. We're already investigating some real-world issues using this framework. Very exciting!

  • v5.4.3 Changes

    • ๐Ÿ’… Incorporated upstream fix for setting to an invalid value, which should be ignored instead of causing an error to be thrown. This same bug has also caused an error while setting the style attribute to an invalid value, ever since 5.4.0. (Joris-van-der-Wel; chad3814 upstream)
  • v5.4.2 Changes

    • ๐Ÿ›  Fixed license metadata to conform to latest npm standards.
  • v5.4.1 Changes

    • ๐Ÿ›  Fixed to work with browserify again (regression introduced in v5.4.0).
  • v5.4.0 Changes

    ๐Ÿš€ This is a pretty exciting release! It includes a couple features I never really anticipated jsdom being awesome enough to have, but our wonderful contributors powered through and made them happen anyway:

    • โž• Added support for the default HTML stylesheet when using window.getComputedStyle! (akhaku)
      • Notably, this makes jQuery's show() and hide() methods now work correctly; see #994.
    • โž• Added support for named properties on window: any elements with an id attribute, or certain elements with a name attribute, will cause properties to show up on the window, and thus as global variables within the jsdom. (Joris-van-der-Wel)
      • Although this is fairly unfortunate browser behavior, it's standardized and supported everywhere, so the fact that jsdom now supports this too means we can run a lot of scripts that would previously fail.
      • Previously, we only supported this for <iframe>s, and our implementation was quite buggy: e.g., <iframe name="addEventListener"> would override window.addEventListener.
      • Now that we have the infrastructure in place, we anticipate expanding our support so that this works on e.g. HTMLFormElements as well in the future.

    ๐Ÿ›  We also have a bunch more fixes and additions:

    • Implemented the NonDocumentTypeChildNode mixin. Practically, this means adding nextElementSibling and previousElementSibling to Element and the various types of CharacterData. (brandon-bethke-neudesic)
    • ๐Ÿ’… Updated StyleSheetList to inherit from Array, as per the latest CSSOM spec.
    • Overhauled the handling of attributes throughout the DOM, to follow the spec more exactly.
      • Our NamedNodeMap implementation is up to date, as are the various Element methods; other places in the code that deal with attributes now all go through a spec-compliant set of helpers.
      • Some weirdnesses around the style attribute were fixed along the way; see e.g. #1109.
      • However, Attr objects themselves are not yet spec-compliant (e.g., they still inherit from Node). That's coming soon.
    • ๐Ÿ›  Fixed an unfortunate bug where getElementById would fail to work correctly on <img> elements whose id attributes were modified. (Joris-van-der-Wel)
    • ๐Ÿ›  Fixed the virtualConsole option to work with jsdom.env, not just jsdom.jsdom. (jeffcarp)
    • โœ‚ Removed a few functions that were erroneously added to window: mapper, mapDOMNodes, and visitTree. (Joris-van-der-Wel)
  • v5.3.0 Changes

    • โž• Added a virtualConsole option to the document creation methods, along with the jsdom.createVirtualConsole factory. (See examples in the readme.) With this option you can install a virtual console before the document is even created, thus allowing you to catch any virtual console events that occur during initialization. (jeffcarp)
  • v5.2.0 Changes

    • Implemented much of the ParentNode mixin (Joris-van-der-Wel):
      • Moved children from Node to ParentNode, i.e., made it available on Document, DocumentFragment, and Element, but not other types of nodes.
      • Made children a HTMLCollection instead of a NodeList.
      • Implemented firstElementChild, lastElementChild, and childElementCount.
    • Implemented the outerHTML setter. (Joris-van-der-Wel)
    • ๐Ÿ›  Fixed the outerHTML getter for <select> and <form>. (Joris-van-der-Wel)
    • ๐Ÿ›  Fixed various issues with window-less documents, so that they no longer give incorrect results or blow up in strange ways. You can create such documents with e.g. document.implementation.createHTMLDocument(). (Joris-van-der-Wel)
    • ๐Ÿ›  Fixed relative stylesheet resolution when using @import. (dbo)
  • v5.1.0 Changes

    • โž• Added support for the NodeIterator class from the DOM Standard. (Joris-van-der-Wel)
    • ๐Ÿ›  Fixed an issue with the initial request where it was not sharing its cookie jar with the subsequent requests, sometimes leading to a "possible EventEmitter memory leak detected" warning. (inikulin)
    • โšก๏ธ Updated tough-cookie to 0.13.0, bringing along many spec compliance fixes. (inikulin)
    • โž• Added a fast failure in Node.jsโ„ข with a clear error message, so that people don't get confused by syntax errors.