Closed
Bug 277774
Opened 20 years ago
Closed 20 years ago
e4x: setNamespace() changes namespace() but doesn't show up with namespaceDeclarations()
Categories
(Core :: JavaScript Engine, defect)
Tracking
()
RESOLVED
DUPLICATE
of bug 290056
People
(Reporter: martin.honnen, Unassigned)
Details
When I create an XML element in no namespace and then call setNamespace on it
the method namespace() returns that namespace but the method
namespaceDeclarations() returns an empty array.
I think the result of namespaceDeclarations() should reflect the added namespace
so I file this bug. Rhino shows the added namespace with namespaceDeclarations().
Test case:
function testNamespaces (xml) {
var result = '';
result += 'Checking ' + xml.toXMLString() + ' : \r\n';
result += '.namespace(): ' + xml.namespace() + '\r\n';
result += '.namespaceDeclarations().length: ' +
xml.namespaceDeclarations().length + '\r\n';
return result;
}
var xhtml1NS = new Namespace('http://www.w3.org/1999/xhtml');
var xhtml = <html />;
xhtml.setNamespace(xhtml1NS);
var result = testNamespaces(xhtml);
if (typeof alert == 'function') {
alert(result);
}
else if (typeof print == 'function') {
print(result);
}
Result with Spidermonkey:
Checking <html xmlns="http://www.w3.org/1999/xhtml"/> :
.namespace(): http://www.w3.org/1999/xhtml
.namespaceDeclarations().length: 0
Result with Rhino:
Checking <xht:html xmlns:xht="http://www.w3.org/1999/xhtml"/> :
.namespace(): http://www.w3.org/1999/xhtml
.namespaceDeclarations().length: 1
Comment 1•20 years ago
|
||
The ECMA-357 spec clearly does *not* [[AddInScopeNamespace]] or any similar thing for XML.prototype.setNamespace (13.4.4.36). Is this really a bug in SpiderMonkey, or in ECMA-357, or in Rhino? If the current spec is right, then it's a bug in Rhino. If the spec is wrong, we need an erratum (collected in bug 246441 via attachment), and we need a spec-fix. In particular, should the namespace have a prefix auto-generated for it? /be
Comment 2•20 years ago
|
||
I'm convinced this is a Rhino bug. SpiderMonkey follows the spec, which makes more sense if you consider that namespace() describes something that may not have been declared, while namespaceDeclarations() returns what was declared, and what was added by addNamespace. Someone please file a Rhino bug. /be
Status: NEW → RESOLVED
Closed: 20 years ago
Resolution: --- → INVALID
Comment 3•20 years ago
|
||
Bug 278112 is Rhino counterpart of this
Updated•20 years ago
|
Status: RESOLVED → REOPENED
Resolution: INVALID → ---
Comment 4•20 years ago
|
||
*** This bug has been marked as a duplicate of 290056 ***
Status: REOPENED → RESOLVED
Closed: 20 years ago → 20 years ago
Resolution: --- → DUPLICATE
You need to log in
before you can comment on or make changes to this bug.
Description
•