- 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.
- Bumped version of jquery dev dependency (#163)
- Omit tests/ directory from NPM package (#161)
- Bug fix for
Element#closest
when selector doesn't match (#154)
- Bug fix for CSS
$=
selector and for matches on root<html>
element. - Renamed CSS
:matches
to: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#text
andHTMLOptionElement#value
(#136)
- Add
domino.createIncrementalHTMLParser
interface.
- 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 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#title
continues to use correct whitespace stripping for node > 4, and properly set<title>
whenundefined
is passed toDOMImplementation#createHTMLDocument()
- Ensure
Element#attributes
implementsNamedNodeMap
and that indexed properties ofElement#attributes
work (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
TreeWalker
andNodeIterator
: read-only properties, proper exception types, type coercion ofNodeFilter
results. - Implement
NodeIterator
pre-removal steps. Note that in the absence of weak references, be cautious about the number ofNodeIterator
s 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#hash
whenhref
attribute 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
flex
CSS styles (#119, #120) - Fix Element#matches with ~= selectors (#121)
- Allow attributes named 'xmlns' (#112)
- Make DOMTokenList add/remove variadic (#109)
- Make
Array.from
and for-of loops work onNode#attributes
.
- 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.
- 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 andshould
to 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/nodes
tests from w3c/web-platform-tests. (#92, @pimterry) - Make selected API methods writable to support polyfills. (#89, @pimterry)
- Fix
Element#hasAttribute
/Element#hasAttributeNS
afterElement#removeAttribute
/Element#removeAttributeNS
. (#90, @clint-tseng) - Fix deep
Document#importNode
. (#93) - Ensure that
Node#parentNode
isnull
(notundefined
) 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()
, 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
querySelector
and friends. (#79)
- Implement WindowTimers interface on Window. (#72)
- Factor out the NavigatorID interface and make more spec-compliant.
- Implement
HTMLTemplateElement
and parse<template>
tags. - Properly parse the
<main>
tag. - Remove support for the non-standard
<command>
tag. - Create
HTMLCanvasElement
when parsing<canvas>
tags. - Create
HTMLDialogElement
when parsing<dialog>
tags. - Fix parsing of
<ruby>
tags, especially<rb>
and<rtc>
. - Create
HTMLMenuItemElement
when parsing<menuitem>
tags. - Create
HTMLSourceElement
when parsing<source>
tags. - Create
HTMLTrackElement
when 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.createDocument
to 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#nodeValue
andAttr#textContent
aliases. (#70)
- Improve performance when adding nodes with duplicate IDs. (#60)
- Be more careful about setting prototype to
null
when using Objects as a Map. (#61) - Fix a global leak in NodeIterator.
- Improve efficiency of
Node#replaceChild
andNode#insert
. (#62) - Bug fix for
Node#normalize
which could cause deletion of emptyComment
orProcessingInstruction
nodes. (#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
mocha
dependency to 2.2.x andshould
to 7.0.x.
- HTMLAnchorElement now implements URLUtils. (#47)
- Be consistent with our handling of null/empty namespaces. (#48)
- Update
mocha
dependency to 1.21.x andshould
to 4.0.x.
- Brown paper bag bug fix for an HTML parsing regression introduced in domino 1.0.16. (#45)
- Update
mocha
dependency to 1.18.x andshould
to 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#isHTML
for non-HTML elements. (#41)
- Implement
Element#matches()
. - Fix CSS
[lang]
,[dir]
, etc selectors. - Update
mocha
dependency to 1.17.x.
Element#classList.length
should be 0 if there's noclass
attribute.- Add
height
/width
attributes toHTMLImageElement
. - Fix node 0.11 incompatibility in the w3c test harness.
- Update
mocha
dependency to 1.16.x; updateshould
dependency to 2.1.x.
- Include
<th>
elements inHTMLTableRowElement#cells
. (#38, #39) - Fix old call to
toLowerCase()
function. (#37) - Update
mocha
andshould
dependencies.
- Fix bug in formatting element adoption agency algorithm. (#36)
- Coerce
document.createTextNode
argument 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#title
to match DOM spec. (#29) - Add missing
require('utils')
forhandleErrors
. (#28) - Implement
DocumentFragment#querySelector
andDocumentFragment#querySelectorAll
. (#20, #26) - Fix
querySelectorAll
on unparentedElement
s. (#23) - Move
outerHTML
/innerHTML
properties fromHTMLElement
toElement
to match dom parsing spec. (#21) - Update zest selector library to 0.0.4. (#25)
- Fix regression in node 0.10. (#22, #24)
- Update
mocha
andshould
dependencies.
- 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
SyntaxError
upon invocation rather than build-time. (#10) - Return nodes in document order. (#11)
- Added a TreeWalker implementation.