💣 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 bygetElementsByClassName()
,getElementsByTagName()
,getElementsByTagNameNS()
andgetElementsByClassName()
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
- It now supports all methods and properties of the
- 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 supportsclonable
,serializable
andslotAssignment
) - 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 theslotchange
event
- It now supports
👷♂️ Patch fixes
- Attributes and text data wasn't escaped correctly in
XMLSerializer
(used by features such asinnerHTML
) - 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 #1332Document.title
included text data inside child elements, which it shouldn't - By @capricorn86 in task #1332Event.preventDefault()
shouldn't cancel the default behaviour if cancelable is not sent as an option inEventTarget.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
toTimeRanges
- By @capricorn86 in task #1332 Window.parent
andWindow.top
would not be set correctly in some scenarios - By @capricorn86 in task #1332