diff options
author | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-08-06 17:27:30 +0900 |
---|---|---|
committer | Tetsuharu OHZEKI <saneyuki.snyk@gmail.com> | 2014-08-06 17:40:47 +0900 |
commit | 4da0786951b78f8054a1a47cf7fa6c17ca709c22 (patch) | |
tree | b4588d21b01783af0d21fe21b80e0cd9e66dc2c2 /src/components/script/dom/element.rs | |
parent | e942cd901ef6b01635f40c7650216af65ecaf57f (diff) | |
download | servo-4da0786951b78f8054a1a47cf7fa6c17ca709c22.tar.gz servo-4da0786951b78f8054a1a47cf7fa6c17ca709c22.zip |
Document.getElementById() should return null if the passed argument is empty.
Diffstat (limited to 'src/components/script/dom/element.rs')
-rw-r--r-- | src/components/script/dom/element.rs | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index 354d6a66a1b..5bf72216d96 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -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); + } } _ => () } |