jsdom v7.0.0 Release Notes
-
๐ 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
XMLHttpRequest
and related classes (nicolashenry):- Includes support for
Blob
,File
,FileList
,FileReader
,FormData
,ProgressEvent
, and the supportingXMLHttpRequestUpload
, andXMLHttpRequestEventTarget
interfaces. - Includes support for synchronous XHRs.
- Adds some new request-management abilities, documented in the readme. In short, the
pool
,agentOptions
, anduserAgent
options 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.stopImmediatePropagation
and the constantsNONE
,CAPTURING_PHASE
,AT_TARGET
, andBUBBLING_PHASE
. This accounted for another 15 newly-passing web platform tests. (nicolashenry) - ๐ Fixed
document.styleSheets
to correctly track the removal of stylesheets from the document. (AVGP) - ๐ Fixed the
created
jsdom lifecycle callback receiving a differentwindow
object than theloaded
ordone
callbacks 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
.