- From: <bugzilla@jessica.w3.org>
- Date: Wed, 09 Nov 2011 18:47:17 +0000
- To: www-dom@w3.org
http://www.w3.org/Bugs/Public/show_bug.cgi?id=14743 Summary: Indexing NodeList out of range should return undefined Product: WebAppsWG Version: unspecified Platform: All OS/Version: All Status: NEW Severity: normal Priority: P2 Component: DOM Core AssignedTo: annevk@opera.com ReportedBy: ayg@aryeh.name QAContact: member-webapi-cvs@w3.org CC: mike@w3.org, www-dom@w3.org Try this on Live DOM Viewer: <!DOCTYPE html> <script> try {w(document.childNodes[-1])} catch(e) {w(e)} try {w(document.childNodes.item(-1))} catch(e) {w(e)} try {w(document.childNodes[20])} catch(e) {w(e)} try {w(document.childNodes.item(20))} catch(e) {w(e)} </script> IE9: undefined, null, undefined, null Firefox 9.0a2: INDEX_SIZE_ERR, null, undefined, null Chrome 16 dev: undefined, INDEX_SIZE_ERR, undefined, null Opera 12.00: undefined, null, undefined, null Correct behavior is clearly IE/Opera, IMO. Throwing anywhere here is annoying because it means you can't use if (document.childNodes[i]) to test whether the child exists. The current spec says NodeList.prototype.item is a getter, and therefore as far as I can tell its behavior has to match actual indexing per WebIDL. The correct fix is probably to make item() not a getter, and define separate getting behavior that returns undefined. -- Configure bugmail: http://www.w3.org/Bugs/Public/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are on the CC list for the bug.
Received on Wednesday, 9 November 2011 18:47:23 UTC