From 883d67882ad9066d9340974cd052c97c0412f1f3 Mon Sep 17 00:00:00 2001 From: Ms2ger Date: Mon, 7 Apr 2014 17:56:31 +0200 Subject: [PATCH] Move SetAttributeNS onto JS. --- src/components/script/dom/element.rs | 27 +++++++++++++++++---------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/components/script/dom/element.rs b/src/components/script/dom/element.rs index c274deb96a6..6468aca641c 100644 --- a/src/components/script/dom/element.rs +++ b/src/components/script/dom/element.rs @@ -199,6 +199,8 @@ pub trait AttributeHandlers { name: DOMString, namespace: Namespace, prefix: Option, cb: |&JS| -> bool); fn SetAttribute(&mut self, name: DOMString, value: DOMString) -> ErrorResult; + fn SetAttributeNS(&mut self, namespace_url: Option, + name: DOMString, value: DOMString) -> ErrorResult; fn after_set_attr(&mut self, local_name: DOMString, value: DOMString); fn remove_attribute(&mut self, namespace: Namespace, name: DOMString) -> ErrorResult; @@ -306,6 +308,19 @@ impl AttributeHandlers for JS { self.set_attr(name, value) } + fn SetAttributeNS(&mut self, namespace_url: Option, + name: DOMString, value: DOMString) -> ErrorResult { + let name_type = xml_name_type(name); + match name_type { + InvalidXMLName => return Err(InvalidCharacter), + Name => return Err(NamespaceError), + QName => {} + } + + let namespace = Namespace::from_str(null_str_as_empty_ref(&namespace_url)); + self.set_attribute(namespace, name, value) + } + fn after_set_attr(&mut self, local_name: DOMString, value: DOMString) { let node: JS = NodeCast::from(self); match local_name.as_slice() { @@ -534,20 +549,12 @@ impl Element { } // http://dom.spec.whatwg.org/#dom-element-setattributens - pub fn SetAttributeNS(&mut self, + pub fn SetAttributeNS(&self, abstract_self: &mut JS, namespace_url: Option, name: DOMString, value: DOMString) -> ErrorResult { - let name_type = xml_name_type(name); - match name_type { - InvalidXMLName => return Err(InvalidCharacter), - Name => return Err(NamespaceError), - QName => {} - } - - let namespace = Namespace::from_str(null_str_as_empty_ref(&namespace_url)); - abstract_self.set_attribute(namespace, name, value) + abstract_self.SetAttributeNS(namespace_url, name, value) } // http://dom.spec.whatwg.org/#dom-element-removeattribute