This is a rather large release bringing with it several important re-implementations of DOM and HTML APIs.
- Our
EventTargetimplementation has been rewritten from scratch to follow the spec exactly. This should improve any edge case misbehaviors. - Our
Eventclass hierarchy has been rewritten and fleshed out, fixing many gaps in functionality.- Previously missing classes
KeyboardEventandTouchEventare now implemented. - Almost all supported
Eventsubclasses now have constructors. (TouchEventdoes not yet, andMutationEventis specified to not have one.) - All classes now have correct public APIs, e.g. getters instead of data properties, missing properties added, and constructors that correctly allow setting all the supported properties.
document.createEvent("customevent", ...)now correctly creates aCustomEventinstead of anEvent, andCustomEvent.prototype.initProgressEventhas been replaced withCustomEvent.prototype.initCustomEvent.
- Previously missing classes
- The
Attrclass and related attribute-manipulating methods has been rewritten to follow the latest specification. In particular,Attris no longer a subclass ofNode, and no longer has child text nodes. - The
<template>element implementation has been greatly improved, now passing most web platform tests. Its.contentproperty no longer has an extra intermediate document fragment; it no longer has child nodes; and related parts of the parser and serializer have been fixed, includinginnerHTMLandouterHTML, to now work as specified. querySelector,querySelectorAll, andmatchesnow correctly throw"SyntaxError"DOMExceptions for invalid selectors, instead of justErrorinstances.Node.prototype'sinsertBefore,replaceChild, andappendChildmethods now check their arguments more correctly.- The browser builds now have regained the ability to fetch URLs for content and the like; this had been broken due to an issue with the browser-request package, which is no longer necessary anyway.