This major release has as its headlining feature a completely re-written XMLHttpRequest implementation, in a heroic effort by @nicolashenry. It includes a number of other smaller improvements and fixes. The breaking changes are highlighted in bold below.
- Node.js 4.0 onward is now required, as we have begun using ES2015 features only present there.
- Completely re-implemented
XMLHttpRequestand related classes (nicolashenry):- Includes support for
Blob,File,FileList,FileReader,FormData,ProgressEvent, and the supportingXMLHttpRequestUpload, andXMLHttpRequestEventTargetinterfaces. - Includes support for synchronous XHRs.
- Adds some new request-management abilities, documented in the readme. In short, the
pool,agentOptions, anduserAgentoptions are new, and resource loads can now be aborted. - These implementations are extremely complete and standards-compliant, passing 136 newly-introduced web platform tests.
- Includes support for
- Added
document.charset, an alias fordocument.characterSet. - Added
HTMLTemplateElement.prototype.content, for getting the contents of a<template>element as a document fragment. (@rickychien) - Implemented "loose" cookie parsing, giving correct execution of code like
document.cookie = "foo". - Several fixes related to event dispatching and creation, including the addition of
Event.prototype.stopImmediatePropagationand the constantsNONE,CAPTURING_PHASE,AT_TARGET, andBUBBLING_PHASE. This accounted for another 15 newly-passing web platform tests. (@nicolashenry) - Fixed
document.styleSheetsto correctly track the removal of stylesheets from the document. (@AVGP) - Fixed the
createdjsdom lifecycle callback receiving a differentwindowobject than theloadedordonecallbacks when scripting was enabled. - Invalid URLs are no longer allowed when creating a jsdom document; the URL must be parseable, or an error will be thrown.
- The
{ omitJsdomErrors }option of the virtual console has moved; it is no longer provided when creating the virtual console, but instead when callingsendTo.