- Bug fix for CSS
$=selector and for matches on root<html>element. - Renamed CSS
:matchesto:is( w3c/csswg-drafts#3258 ) - Bug fix for CSS matches with escape characters in tag name.
- Allow writable Element constructors unless domino_frozen is set to true (#138)
- Bug fix for CSS
$=selector. (#135) - Move
Node#_serializeOne()toNodeUtils.serializeOne()to reduce pressure on the megamorphic stub cache in V8, and thereby improve throughput (#142). - Implemented
HTMLOptionElement#textandHTMLOptionElement#value(#136)
- Add
domino.createIncrementalHTMLParserinterface.
- 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
CharacterDatainterface methods - Spec-correctness fixes for
DOMTokenList, including handling of duplicate keys. - Fix
[src=...]selectors inDocument#querySelector()and similar - Spec-correctness fixes for
Document#createElement()andDocument#createElementNS(), including proper exception type and type coercion. - Implement
Attr#cloneNode(),Element#getAttributeNode(),Element#getAttributeNodeNS(),Element#setAttributeNode(),Element#setAttributeNodeNS(), andElement#removeAttributeNode()(DOM3 compatibility) - Implement
Document#createAttribute()andDocument#createAttributeNS() - Implement
Element#hasAttributes(),Element#toggleAttribute(), andElement#getAttributeNames() - Implement
Text#wholeText - Implement
Document#cloneNode()andDocumentType#cloneNode() - Spec-correctness fixes for
Node#lookupPrefix(),Node#lookupNamespaceURI(), andNode#isDefaultNamespace, including proper type coercion and reconciling DOM 3 and DOM 4 specifications. - Ensure
Document#titlecontinues to use correct whitespace stripping for node > 4, and properly set<title>whenundefinedis passed toDOMImplementation#createHTMLDocument() - Ensure
Element#attributesimplementsNamedNodeMapand that indexed properties ofElement#attributeswork (previously you needed to use theitem()accessor method) - Improve stubs for
HTMLElement#style,Document#documentURI, andDocument#contentType - Implement proper accessors for
HTMLSelectElement#autocomplete,HTMLTextAreaElement#type/value/defaultValue/textLength, andHTMLInputElement#width/height/minLength - Implement
Element#insertAdjacentElement(),Element#insertAdjacentText(), andElement#insertAdjacentHTML()(#102) - Spec-correctness fixes for
TreeWalkerandNodeIterator: read-only properties, proper exception types, type coercion ofNodeFilterresults. - Implement
NodeIteratorpre-removal steps. Note that in the absence of weak references, be cautious about the number ofNodeIterators you create on any single document, since domino does not artificially limit these. See tc39/proposal-weakrefs#17 for details. - Preserve prefix of SVG elements during parsing. (#102)
- Define
blur(),focus()andforceSpellCheck()onHTMLElement(#125) - Stringify argument tokens for DOMTokenList methods (#126)
- Fix
HTMLAnchorElement#hashwhenhrefattribute contains bare fragment (#127) - Implement case-insensitive CSS attribute matching (#128)
- Implement
DOMTokenList#replace(),DOMTokenList#toggle(token, force), andDOMTokenList#value. Fix handling of non-space whitespace. (#111)
- Add TypeScript definitions (#103)
- Add
flexCSS styles (#119, #120) - Fix Element#matches with ~= selectors (#121)
- Allow attributes named 'xmlns' (#112)
- Make DOMTokenList add/remove variadic (#109)
- Make
Array.fromand for-of loops work onNode#attributes.
- Fix potential O(N^2) slowdown in FilteredElementList#item.
mochadependency 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.
- Fix regexp capitalization in URLUtils (#101)
- Fix O(N^2) slowdown in initial tree traversal using nextSibling/prevSibling
- Update
mochadependency to 3.5.x andshouldto 13.1.x.
- 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)
- Fix unescape mechanism in attribute values. (#95)
- Disable nonstandard "ignore case" version of attribute matching.
- Add
dom/nodestests from w3c/web-platform-tests. (#92, @pimterry) - Make selected API methods writable to support polyfills. (#89, @pimterry)
- Fix
Element#hasAttribute/Element#hasAttributeNSafterElement#removeAttribute/Element#removeAttributeNS. (#90, @clint-tseng) - Fix deep
Document#importNode. (#93) - Ensure that
Node#parentNodeisnull(notundefined) when removed. - Add an optional second argument to
domino.createWindowto 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(), andChildNode#replaceWith().
- 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: is no longer an empty element.
- HTML5 spec update: tweaked HTML entity parsing in attributes.
- HTML5 spec update: dashes are allowed in HTML comments.
- HTML5 spec update: remove special handling of
This is a searchable index. Enter search keywords:
. - Improve handling of legacy elements:
<xmp>,<listing>,acronym,basefont,big,center,nobr,noembed,noframes,plaintext,rb,rtc,strike, andtt. - HTML5 spec update: Remove extra newline in serialization of
<pre>,<listing>,<textarea>. (#88) - HTML5 spec update: Remove case normalization for defunct SVG attributes.
- Implement HTMLMenuItemElement#label.
- Basic SVG support. (#81, #82)
- Implement Document#dir.
- Minor spec-compliance fixes to Document#title and classList#contains.
- Implement Element#closest(). (#84)
- Actually run the HTMLWG tests (#83)
- Expose the HTML5 tree builder implementation. (#87)
- Add workaround to W3C test harness for node >= 0.11.7.
- Update the form-associated element list to match HTML5.
- Fix broken stopping of immediate propagation of Events. (#78)
- Properly set "scripting enabled" flag when parsing fragments.
- Fix handling of escaped or invalid CSS identifiers in
querySelectorand friends. (#79)
- Implement WindowTimers interface on Window. (#72)
- Factor out the NavigatorID interface and make more spec-compliant.
- Implement
HTMLTemplateElementand parse<template>tags. - Properly parse the
<main>tag. - Remove support for the non-standard
<command>tag. - Create
HTMLCanvasElementwhen parsing<canvas>tags. - Create
HTMLDialogElementwhen parsing<dialog>tags. - Fix parsing of
<ruby>tags, especially<rb>and<rtc>. - Create
HTMLMenuItemElementwhen parsing<menuitem>tags. - Create
HTMLSourceElementwhen parsing<source>tags. - Create
HTMLTrackElementwhen parsing<track>tags. - Improve parsing of
<svg>elements. - Fix parsing of
<isindex>element in unusual contexts. - Serialize
<!DOCTYPE>according to latest HTML5 spec. - Update adoption agency algorithm to match latest HTML5 spec.
- Add additional parameter to
domino.createDocumentto allow creating a document from an empty string if desired. - Add tree builder test cases from
html5lib-tests. - Implement
Document#location. (#75) - Stub out additional properties of
HTMLIFrameElement. (#76)
- Fix
CSSStyleDeclaration#setProperty. (#71) - Update bundled CSS parser to 0.2.5+domino1.
- Prevent TypeError due to undefined property when parsing styles. (#68)
- Support legacy
Attr#nodeValueandAttr#textContentaliases. (#70)
- Improve performance when adding nodes with duplicate IDs. (#60)
- Be more careful about setting prototype to
nullwhen using Objects as a Map. (#61) - Fix a global leak in NodeIterator.
- Improve efficiency of
Node#replaceChildandNode#insert. (#62) - Bug fix for
Node#normalizewhich could cause deletion of emptyCommentorProcessingInstructionnodes. (#63) - Don't lowercase non-ASCII tag and attribute names. (#65)
- Fix a number of minor bugs in rarely used code, discovered during delinting. (#66)
- Implement
Node.contains. (#67)
- CharacterData implements the NonDocumentTypeChildNode interface. (#57, #58)
- Fix CSS
[style]selector. (#59)
- Bug fixes for
TreeWalker/document.createTreeWalker(filter argument was ignored; various traversal issues) - Implement
NodeIterator/document.createNodeIterator(#54) - Update
mochadependency to 2.2.x andshouldto 7.0.x.
- HTMLAnchorElement now implements URLUtils. (#47)
- Be consistent with our handling of null/empty namespaces. (#48)
- Update
mochadependency to 1.21.x andshouldto 4.0.x.
- Brown paper bag bug fix for an HTML parsing regression introduced in domino 1.0.16. (#45)
- Update
mochadependency to 1.18.x andshouldto 3.3.x.
DO NOT USE: contains parser regression, fixed in 1.0.17.
- Various performance improvements to the HTML5 parser. (#43, #44)
- Fix
Element#isHTMLfor non-HTML elements. (#41)
- Implement
Element#matches(). - Fix CSS
[lang],[dir], etc selectors. - Update
mochadependency to 1.17.x.
Element#classList.lengthshould be 0 if there's noclassattribute.- Add
height/widthattributes toHTMLImageElement. - Fix node 0.11 incompatibility in the w3c test harness.
- Update
mochadependency to 1.16.x; updateshoulddependency to 2.1.x.
- Include
<th>elements inHTMLTableRowElement#cells. (#38, #39) - Fix old call to
toLowerCase()function. (#37) - Update
mochaandshoulddependencies.
- Fix bug in formatting element adoption agency algorithm. (#36)
- Coerce
document.createTextNodeargument to a string. (#34, #35) - Work around performance regression in node <= 0.6.
- Fix rooted element traversal (
Element#nextElement,Element#getElementsByTagName). (#31, #32) - Update zest to fix bugs in
+and>combinators. - Don't overflow the stack if attribute values are very large (>64k).
- Document issues with
Element#attributes. (#27) - Fix
Document#titleto match DOM spec. (#29) - Add missing
require('utils')forhandleErrors. (#28) - Implement
DocumentFragment#querySelectorandDocumentFragment#querySelectorAll. (#20, #26) - Fix
querySelectorAllon unparentedElements. (#23) - Move
outerHTML/innerHTMLproperties fromHTMLElementtoElementto match dom parsing spec. (#21) - Update zest selector library to 0.0.4. (#25)
- Fix regression in node 0.10. (#22, #24)
- Update
mochaandshoulddependencies.
- Support jQuery 1.9.x by allowing
Element#attributes[qname]. - Implement
HTMLElement#outerHTML. (#18) - Only add newlines after
<pre>/<textarea>/<listing>if necessary, to match HTML5 serialization spec. (#16, #17) - Mirror node type properties (
ELEMENT_NODE, etc) intoNode.prototype. (#14, #15)
DO NOT USE: was inadvertently published identical to domino 1.0.7.
- Throw
SyntaxErrorupon invocation rather than build-time. (#10) - Return nodes in document order. (#11)
- Added a TreeWalker implementation.