mirror of
https://github.com/servo/servo.git
synced 2025-08-05 21:50:18 +01:00
Document.getElementById() should return null if the passed argument is empty.
This commit is contained in:
parent
e942cd901e
commit
4da0786951
3 changed files with 11 additions and 7 deletions
|
@ -153,6 +153,7 @@ impl<'a> DocumentHelpers for JSRef<'a, Document> {
|
|||
let node: &JSRef<Node> = NodeCast::from_ref(element);
|
||||
node.is_in_doc()
|
||||
});
|
||||
assert!(!id.is_empty());
|
||||
|
||||
let mut idmap = self.idmap.deref().borrow_mut();
|
||||
|
||||
|
|
|
@ -832,7 +832,7 @@ impl<'a> VirtualMethods for JSRef<'a, Element> {
|
|||
}
|
||||
"id" => {
|
||||
let node: &JSRef<Node> = NodeCast::from_ref(self);
|
||||
if node.is_in_doc() {
|
||||
if node.is_in_doc() && !value.is_empty() {
|
||||
let doc = document_from_node(self).root();
|
||||
doc.register_named_element(self, value.clone());
|
||||
}
|
||||
|
@ -855,7 +855,7 @@ impl<'a> VirtualMethods for JSRef<'a, Element> {
|
|||
}
|
||||
"id" => {
|
||||
let node: &JSRef<Node> = NodeCast::from_ref(self);
|
||||
if node.is_in_doc() {
|
||||
if node.is_in_doc() && !value.is_empty() {
|
||||
let doc = document_from_node(self).root();
|
||||
doc.unregister_named_element(self, value);
|
||||
}
|
||||
|
@ -885,7 +885,10 @@ impl<'a> VirtualMethods for JSRef<'a, Element> {
|
|||
match self.get_attribute(Null, "id").root() {
|
||||
Some(attr) => {
|
||||
let doc = document_from_node(self).root();
|
||||
doc.deref().register_named_element(self, attr.deref().Value());
|
||||
let value = attr.deref().Value();
|
||||
if !value.is_empty() {
|
||||
doc.deref().register_named_element(self, value);
|
||||
}
|
||||
}
|
||||
_ => ()
|
||||
}
|
||||
|
@ -902,7 +905,10 @@ impl<'a> VirtualMethods for JSRef<'a, Element> {
|
|||
match self.get_attribute(Null, "id").root() {
|
||||
Some(attr) => {
|
||||
let doc = document_from_node(self).root();
|
||||
doc.deref().unregister_named_element(self, attr.deref().Value());
|
||||
let value = attr.deref().Value();
|
||||
if !value.is_empty() {
|
||||
doc.deref().unregister_named_element(self, value);
|
||||
}
|
||||
}
|
||||
_ => ()
|
||||
}
|
||||
|
|
|
@ -1,8 +1,5 @@
|
|||
[Document-getElementById.html]
|
||||
type: testharness
|
||||
[Calling document.getElementById with an empty string argument.]
|
||||
expected: FAIL
|
||||
|
||||
[add id attribute via innerHTML]
|
||||
expected: FAIL
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue