• Tests did pass in 7.4, but numerous warnings were triggered concerning
method declaration type differences because php 7.4's type declarations
for DOM methods were mostly nonexistent.
• Moved all of preInsertionValidity to ParentNode; removed
AbstractDocument
• Added host property to HTMLTemplateElement
• Increased required PHP version to 7.4
• ElementSet is now ElementMap again because it's now internally a map
of a Document and an array of Elements, but it's public API is still
that of a set.
• Template elements are now only added as a reference in ElementMap when
they're appended to a document. If they're removed, they're removed from
ElementMap. If a template element's owner document is destructed then it
and all of the other template elements in the document are removed from
ElementMap.
• Document::__construct now accepts \DOMDocument|string|null as its source.
• Document::serialize has been removed in favor of Document::saveHTML, making it more in line with PHP's DOM.
• Added Document::loadDOM for loading a vanilla PHP \DOMDocument into this library. As mentioned above Document::__constructor also accepts a \DOMDocument.
• Document::importNode will correctly convert an imported template element as a HTMLTemplateElement.
• TemplateElement is now HTMLTemplateElement.
• DOM walker methods now correctly check if the output of the closure is true
• Unnecessary test cases removed.