diff options
author | Sankha Narayan Guria <sankha93@gmail.com> | 2014-02-27 03:31:05 +0530 |
---|---|---|
committer | Sankha Narayan Guria <sankha93@gmail.com> | 2014-02-27 03:31:05 +0530 |
commit | 1e9fec9172364346937f375e315e1ce745662611 (patch) | |
tree | a55173568e6dd6a8b4cb4dfcc42ed81204d49874 /src/components/script/dom/htmlcollection.rs | |
parent | 47e6e6ec8f2dfbd56e50f9f2ec2762b85087d948 (diff) | |
parent | da16e54243e256dee927f720ce6b9903b62ec14e (diff) | |
download | servo-1e9fec9172364346937f375e315e1ce745662611.tar.gz servo-1e9fec9172364346937f375e315e1ce745662611.zip |
Merge master into this branch
Diffstat (limited to 'src/components/script/dom/htmlcollection.rs')
-rw-r--r-- | src/components/script/dom/htmlcollection.rs | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/src/components/script/dom/htmlcollection.rs b/src/components/script/dom/htmlcollection.rs index 32cdd52280c..f14ecd05db7 100644 --- a/src/components/script/dom/htmlcollection.rs +++ b/src/components/script/dom/htmlcollection.rs @@ -3,9 +3,10 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::HTMLCollectionBinding; +use dom::bindings::js::JS; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::bindings::utils::Fallible; -use dom::node::AbstractNode; +use dom::element::Element; use dom::window::Window; use servo_util::str::DOMString; @@ -13,14 +14,15 @@ use js::jsapi::{JSObject, JSContext}; use std::ptr; +#[deriving(Encodable)] pub struct HTMLCollection { - elements: ~[AbstractNode], + elements: ~[JS<Element>], reflector_: Reflector, - window: @mut Window, + window: JS<Window>, } impl HTMLCollection { - pub fn new_inherited(window: @mut Window, elements: ~[AbstractNode]) -> HTMLCollection { + pub fn new_inherited(window: JS<Window>, elements: ~[JS<Element>]) -> HTMLCollection { HTMLCollection { elements: elements, reflector_: Reflector::new(), @@ -28,18 +30,18 @@ impl HTMLCollection { } } - pub fn new(window: @mut Window, elements: ~[AbstractNode]) -> @mut HTMLCollection { - reflect_dom_object(@mut HTMLCollection::new_inherited(window, elements), - window, HTMLCollectionBinding::Wrap) + pub fn new(window: &JS<Window>, elements: ~[JS<Element>]) -> JS<HTMLCollection> { + reflect_dom_object(~HTMLCollection::new_inherited(window.clone(), elements), + window.get(), HTMLCollectionBinding::Wrap) } pub fn Length(&self) -> u32 { self.elements.len() as u32 } - pub fn Item(&self, index: u32) -> Option<AbstractNode> { + pub fn Item(&self, index: u32) -> Option<JS<Element>> { if index < self.Length() { - Some(self.elements[index]) + Some(self.elements[index].clone()) } else { None } @@ -49,7 +51,7 @@ impl HTMLCollection { Ok(ptr::null()) } - pub fn IndexedGetter(&self, index: u32, found: &mut bool) -> Option<AbstractNode> { + pub fn IndexedGetter(&self, index: u32, found: &mut bool) -> Option<JS<Element>> { *found = true; self.Item(index) } |