npm happy-dom 15.0.0
v15.0.0

latest releases: 15.11.3, 15.11.2, 15.11.1...
2 months ago

💣 Breaking Changes

  • Drops offical support for Node.js 16.x and 17.x - By @capricorn86 in task #1332
  • A lot of internal logic has been refactored, so if you rely on internal APIs, this release may break your code - By @capricorn86 in task #1332

🎨 Features

  • Adds support for HTMLAreaElement, HTMLBodyElement, HTMLQuoteElement, HTMLBRElement, HTMLTableCaptionElement, HTMLTableColElement, HTMLTableColElement, HTMLDataElement, HTMLDataListElement, HTMLModElement, HTMLDetailsElement, HTMLDivElement, HTMLDListElement, HTMLEmbedElement, HTMLFieldSetElement, HTMLHeadingElement, HTMLHeadElement, HTMLHRElement, HTMLHtmlElement, HTMLModElement, HTMLLegendElement, HTMLLIElement, HTMLMapElement, HTMLMenuElement, HTMLMeterElement, HTMLObjectElement, HTMLOListElement, HTMLOutputElement, HTMLParagraphElement, HTMLParamElement, HTMLPictureElement, HTMLPreElement, HTMLProgressElement, HTMLQuoteElement, HTMLSourceElement, HTMLSpanElement, HTMLTableElement, HTMLTableSectionElement, HTMLTableSectionElement, HTMLTitleElement, HTMLTableRowElement, HTMLTrackElement, HTMLUListElement - By @capricorn86 in task #1332
  • Adds basic support for HTMLCanvasElement - By @capricorn86 in task #1332
  • Adds support for History API - By @capricorn86 in task #1332
  • Adds cache to CSSStyleDeclaration, querySelector(), querySelectorAll(), getElementById(), getElementsByClassName(), getElementsByTagName(), getElementsByTagNameNS(), getElementsByClassName() - By @capricorn86 in task #1332
  • Uses proxy for NodeList, HTMLCollection, DOMTokenList, TextTrackList, HTMLFormElement, HTMLSelectElement
  • Makes HTMLCollection objects returned by getElementsByClassName(), getElementsByTagName(), getElementsByTagNameNS() and getElementsByClassName() live - By @capricorn86 in task #1332
  • Improves support for HTMLMediaElement - By @capricorn86 in task #1332
    • It now supports all methods and properties of the HTMLMediaElement interface
  • Adds support for MediaStream, MediaStreamTrack, RemotePlayback, TextTrack, TextTrackCue, TextTrackCueList, TextTrackList, VTTCue, VTTRegion, CanvasCaptureMediaStream, ImageBitmap, OffscreenCanvas - By @capricorn86 in task #1332
  • Adds basic support for IntersectionObserver - By @capricorn86 in task #1332
  • Uses Array for nodes and elements in the DOM-tree to leverage the JiT compiler better - By @capricorn86 in task #1332
  • Adds support for HTMLInputElement.list - By @capricorn86 in task #1332
  • Improves support for ShadowRoot (it now supports clonable, serializable and slotAssignment) - By @capricorn86 in task #1332
  • Adds support for Element.getHTML() - By @capricorn86 in task #1332
  • Improves performance for some pseudo query selectors - By @capricorn86 in task #1332
  • Improves support for HTMLSlotElement - By @capricorn86 in task #1332
    • It now supports assign(), assignedNodes(), assignedElements() and the slotchange event

👷‍♂️ Patch fixes

  • Attributes and text data wasn't escaped correctly in XMLSerializer (used by features such as innerHTML) - By @capricorn86 in task #1265
  • waitForNavigation() would not resolve when navigating to some URLs (e.g. "javascript" or "about:blank") - By @capricorn86 in task #1332
  • CSS rules for gradients where not parsed correctly - By @capricorn86 in task #1332
  • Updates to CSSStyleDeclaration would not trigger listeners for the "style" attribute - By @capricorn86 in task #1332
  • Attributes where added to elements after they were added to the DOM during parsing, causing problems for elements loading resources - By @capricorn86 in task #1332
  • Attr.cloneNode() would not clone internal values - By @capricorn86 in task #1332
  • Document.title included text data inside child elements, which it shouldn't - By @capricorn86 in task #1332
  • Event.preventDefault() shouldn't cancel the default behaviour if cancelable is not sent as an option in EventTarget.dispatchEvent() - By @capricorn86 in task #1332
  • Source attributes containing URLs would not be resolved correctly in some elements - By @capricorn86 in task #1332
  • Changes name on TimeRange to TimeRanges - By @capricorn86 in task #1332
  • Window.parent and Window.top would not be set correctly in some scenarios - By @capricorn86 in task #1332

Don't miss a new happy-dom release

NewReleases is sending notifications on new releases.