node.insertBefore(child, child)

Does the spec define what should happen with

   node.insertBefore(child, child)

...?

From my reading of the spec [1], what should happen is that first the
child node should be removed ("If the newChild is already in the tree, it
is first removed."), then a "NOT_FOUND_ERR" exception should be thrown,
since the node is no longer in the tree and so can't be found.

This isn't useful, and isn't what UAs appear to have implemented. Based on
this testcase:

   http://hixie.ch/tests/adhoc/dom/core/007-demo.html

...Opera, Mozilla, IE6, and Safari all simply ignore the call, not
changing the DOM and not raising any exceptions.

Could the spec be clarified to specify this interoperable behaviour?

-- References --
[1] http://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-952280727

Cheers,
-- 
Ian Hickson                                      )\._.,--....,'``.    fL
U+1047E                                         /,   _.. \   _\  ;`._ ,.
http://index.hixie.ch/                         `._.-(,_..'--(,_..'`-.;.'

Received on Friday, 28 November 2003 11:55:50 UTC