Closed
Bug 290481
Opened 20 years ago
Closed 20 years ago
E4X: descendants method called on XMLList returns list with the elements in the original list being included
Categories
(Core :: JavaScript Engine, defect, P1)
Core
JavaScript Engine
Tracking
()
VERIFIED
FIXED
mozilla1.8beta2
People
(Reporter: martin.honnen, Assigned: brendan)
Details
(Keywords: js1.5)
Attachments
(2 files)
|
574 bytes,
text/plain
|
Details | |
|
1.83 KB,
patch
|
brendan
:
review+
brendan
:
approval1.8b2+
|
Details | Diff | Splinter Review |
In my understanding calling the method descendants on an XMLList objects should
return a new XMLList with all the descendants of all the XML objects in the
original list. Spidermonkey however returns a list with all those descendants
but also includes the XML objects from the original list which I think is a bug.
Example test case:
var gods = <gods>
<god>
<name>Kibo</name>
</god>
<god>
<name>Xibo</name>
</god>
</gods>;
var godList = gods.god;
print('godList.length(): ' + godList.length());
for each (var xmlObject in godList) {
print('nodeKind(): ' + xmlObject.nodeKind() + '; name(): ' + xmlObject.name());
}
print('');
var descendantList = godList.descendants();
print('descendantList.length(): ' + descendantList.length());
for each (var xmlObject in descendantList) {
print('nodeKind(): ' + xmlObject.nodeKind() + '; name(): ' + xmlObject.name());
}
Output in Spidermonkey:
godList.length(): 2
nodeKind(): element; name(): god
nodeKind(): element; name(): god
descendantList.length(): 6
nodeKind(): element; name(): god
nodeKind(): element; name(): name
nodeKind(): text; name(): null
nodeKind(): element; name(): god
nodeKind(): element; name(): name
nodeKind(): text; name(): null
Output in Rhino (Rhino 1.6 release 1 2004 11 30)
godList.length(): 2
nodeKind(): element; name(): god
nodeKind(): element; name(): god
descendantList.length(): 4
nodeKind(): element; name(): name
nodeKind(): text; name(): null
nodeKind(): element; name(): name
nodeKind(): text; name(): null
I think the Rhino output is correct, there are four descendants, the two <name>
elements and the two text nodes inside of the <name> elements but the two <god>
elements should not be included in the descendants list.
| Reporter | ||
Comment 1•20 years ago
|
||
| Assignee | ||
Updated•20 years ago
|
Assignee: general → brendan
Flags: blocking1.8b2+
Keywords: js1.5
Priority: -- → P1
Target Milestone: --- → mozilla1.8beta2
| Assignee | ||
Updated•20 years ago
|
Status: NEW → ASSIGNED
OS: Windows XP → All
Hardware: PC → All
| Assignee | ||
Comment 2•20 years ago
|
||
I spaced out during the 7000+ line coding journey and didn't finish Descendants
by making it handle XMLList.
/be
| Assignee | ||
Updated•20 years ago
|
Attachment #180835 -
Flags: review+
Attachment #180835 -
Flags: approval1.8b2+
| Assignee | ||
Comment 3•20 years ago
|
||
Martin, thanks once again -- please keep filing bugs as fast as you find 'em ;-).
/be
Status: ASSIGNED → RESOLVED
Closed: 20 years ago
Resolution: --- → FIXED
Comment 4•20 years ago
|
||
updated test checked in:
Checking in 13.5.4.9.js;
/cvsroot/mozilla/js/tests/e4x/XMLList/13.5.4.9.js,v <-- 13.5.4.9.js
new revision: 1.4; previous revision: 1.3
test passed.
Status: RESOLVED → VERIFIED
Updated•20 years ago
|
Flags: testcase+
You need to log in
before you can comment on or make changes to this bug.
Description
•