# domino 2.1.6 (16 Jul 2020)
* Bumped version of lodash (#169)
* Performance improvement to DOMTokenList (#166)
* `mocha` dependency has been updated to 6.x. As a result, we are
no longer testing on node 4.
# domino 2.1.5 (30 Apr 2020)
* Bumped version of jquery dev dependency (#163)
* Omit tests/ directory from NPM package (#161)
# domino 2.1.4 (16 Dec 2019)
* Bug fix for `Element#closest` when selector doesn't match (#154)
# domino 2.1.3 (6 Mar 2019)
* Bug fix for CSS `$=` selector and for matches on root `` element.
* Renamed CSS `:matches` to `:is`
( https://github.com/w3c/csswg-drafts/issues/3258 )
* Bug fix for CSS matches with escape characters in tag name.
# domino 2.1.2 (14 Feb 2019)
* Allow writable Element constructors unless __domino_frozen__ is set to true (#138)
* Bug fix for CSS `$=` selector. (#135)
* Move `Node#_serializeOne()` to `NodeUtils.serializeOne()` to reduce pressure
on the megamorphic stub cache in V8, and thereby improve throughput (#142).
* Implemented `HTMLOptionElement#text` and `HTMLOptionElement#value` (#136)
# domino 2.1.1 (30 Nov 2018)
* Add `domino.createIncrementalHTMLParser` interface.
# domino 2.1.0 (13 Aug 2018)
* Fix `ContainerNode#removeChildren()` when there is more than one child (#129)
* Implement `Document#scrollingElement` (#107)
* Implement setter for `Element#outerHTML` (#102)
* Handle null/undefined in setter for `Node#textContent`
* Handle null/undefined/negative values in `CharacterData` interface methods
* Spec-correctness fixes for `DOMTokenList`, including handling of duplicate
keys.
* Fix `[src=...]` selectors in `Document#querySelector()` and similar
* Spec-correctness fixes for `Document#createElement()` and
`Document#createElementNS()`, including proper exception type and type
coercion.
* Implement `Attr#cloneNode()`, `Element#getAttributeNode()`,
`Element#getAttributeNodeNS()`, `Element#setAttributeNode()`,
`Element#setAttributeNodeNS()`, and `Element#removeAttributeNode()`
(DOM3 compatibility)
* Implement `Document#createAttribute()` and `Document#createAttributeNS()`
* Implement `Element#hasAttributes()`, `Element#toggleAttribute()`, and
`Element#getAttributeNames()`
* Implement `Text#wholeText`
* Implement `Document#cloneNode()` and `DocumentType#cloneNode()`
* Spec-correctness fixes for `Node#lookupPrefix()`,
`Node#lookupNamespaceURI()`, and `Node#isDefaultNamespace`, including
proper type coercion and reconciling DOM 3 and DOM 4 specifications.
* Ensure `Document#title` continues to use correct whitespace stripping
for node > 4, and properly set `
` when `undefined` is passed to
`DOMImplementation#createHTMLDocument()`
* Ensure `Element#attributes` implements `NamedNodeMap` and that indexed
properties of `Element#attributes` work (previously you needed to use
the `item()` accessor method)
* Improve stubs for `HTMLElement#style`, `Document#documentURI`, and
`Document#contentType`
* Implement proper accessors for `HTMLSelectElement#autocomplete`,
`HTMLTextAreaElement#type/value/defaultValue/textLength`, and
`HTMLInputElement#width/height/minLength`
* Implement `Element#insertAdjacentElement()`, `Element#insertAdjacentText()`,
and `Element#insertAdjacentHTML()` (#102)
* Spec-correctness fixes for `TreeWalker` and `NodeIterator`: read-only
properties, proper exception types, type coercion of `NodeFilter` results.
* Implement `NodeIterator` pre-removal steps. Note that in the absence
of weak references, be cautious about the number of `NodeIterator`s you
create on any single document, since domino does not artificially limit
these.
See https://github.com/tc39/proposal-weakrefs/issues/17 for details.
* Preserve prefix of SVG elements during parsing. (#102)
# domino 2.0.3 (12 Jul 2018)
* Define `blur()`, `focus()` and `forceSpellCheck()` on `HTMLElement` (#125)
* Stringify argument tokens for DOMTokenList methods (#126)
* Fix `HTMLAnchorElement#hash` when `href` attribute contains bare
fragment (#127)
* Implement case-insensitive CSS attribute matching (#128)
* Implement `DOMTokenList#replace()`, `DOMTokenList#toggle(token, force)`,
and `DOMTokenList#value`. Fix handling of non-space whitespace. (#111)
# domino 2.0.2 (28 Mar 2018)
* Add TypeScript definitions (#103)
* Add `flex` CSS styles (#119, #120)
* Fix Element#matches with ~= selectors (#121)
# domino 2.0.1 (14 Feb 2018)
* Allow attributes named 'xmlns' (#112)
* Make DOMTokenList add/remove variadic (#109)
* Make `Array.from` and for-of loops work on `Node#attributes`.
# domino 2.0.0 ( 8 Nov 2017)
* Fix potential O(N^2) slowdown in FilteredElementList#item.
* `mocha` dependency has been updated to 4.0.x. As a result, we are
no longer testing on node pre-v4.0.0; see:
https://boneskull.com/mocha-v4-nears-release/
* Domino now uses a linked list representation for children of Node,
unless/until the Node#childNodes accessor is used (which requires
an indexed array to be built). Inserting a removing nodes can be
much quicker using the linked list representation if care is
taken not to deoptimize the tree by using the #childNodes accessor.
This implementation strategy matches the one used by webkit and
other browser-based implementations, and thus ought to match
performance expectations of folks used to writing browser-based
DOM manipulation code.
# domino 1.0.30 (24 Oct 2017)
* Fix regexp capitalization in URLUtils (#101)
* Fix O(N^2) slowdown in initial tree traversal using nextSibling/prevSibling
* Update `mocha` dependency to 3.5.x and `should` to 13.1.x.
# domino 1.0.29 ( 7 Aug 2017)
* Fix "#id" optimization in querySelectorAll() when 0 or 2 matches for
`id`. (#99)
* Correct return value of CSSStyleDeclaration#getPropertyValue() when
style is not set. (#98)
# domino 1.0.28 (27 Jan 2017)
* Fix unescape mechanism in attribute values. (#95)
* Disable nonstandard "ignore case" version of attribute matching.
* Add `dom/nodes` tests from w3c/web-platform-tests. (#92, @pimterry)
* Make selected API methods writable to support polyfills. (#89, @pimterry)
* Fix `Element#hasAttribute`/`Element#hasAttributeNS` after
`Element#removeAttribute`/`Element#removeAttributeNS`. (#90, @clint-tseng)
* Fix deep `Document#importNode`. (#93)
* Ensure that `Node#parentNode` is `null` (not `undefined`) when removed.
* Add an optional second argument to `domino.createWindow` to specify
the document's address.
* Tweak JavaScript properties which are DOM reflections of element
attributes in order to more closely match the DOM 4 spec.
* Implement `ChildNode#before()`, `ChildNode#after()`, and
`ChildNode#replaceWith()`.
# domino 1.0.27 (17 Oct 2016)
* Fix bug in AFE list replacement over existing bookmark.
* Update htmlwg test suite to latest w3c/web-platform-tests.
* Update html5lib test suite to latest.
* HTML5 spec update: