From ffdc3f5b32a345b88eed774848924e862d47c093 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 28 Mar 2014 10:17:56 -0400 Subject: Turn on GC all the time. Fix rooting errors during parsing and storing timers. Fix borrow errors during tracing. --- src/components/script/dom/htmlscriptelement.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index bccaa740906..3be3739542a 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLScriptElementBinding; use dom::bindings::codegen::InheritTypes::HTMLScriptElementDerived; use dom::bindings::codegen::InheritTypes::ElementCast; -use dom::bindings::js::JS; +use dom::bindings::js::{JS, JSRef}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{HTMLScriptElementTypeId, Element, AttributeHandlers}; @@ -35,19 +35,19 @@ impl HTMLScriptElement { } } - pub fn new(localName: DOMString, document: &JS) -> JS { - let element = HTMLScriptElement::new_inherited(localName, document.clone()); + pub fn new(localName: DOMString, document: &JSRef) -> JS { + let element = HTMLScriptElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLScriptElementBinding::Wrap) } } impl HTMLScriptElement { - pub fn Src(&self, abstract_self: &JS) -> DOMString { - let element: JS = ElementCast::from(abstract_self); + pub fn Src(&self, abstract_self: &JSRef) -> DOMString { + let element: JS = ElementCast::from(&abstract_self.unrooted()); element.get_url_attribute("src") } - pub fn SetSrc(&mut self, _abstract_self: &JS, _src: DOMString) -> ErrorResult { + pub fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult { Ok(()) } -- cgit v1.2.3 From d7b96db33ca8f2b8a162df38e0f00e95f5ea6fa1 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Mon, 31 Mar 2014 18:41:28 -0400 Subject: Implement safe rooting strategy via Unrooted, Root, JSRef, and JS. --- src/components/script/dom/htmlscriptelement.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index 3be3739542a..808b05a12cf 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLScriptElementBinding; use dom::bindings::codegen::InheritTypes::HTMLScriptElementDerived; use dom::bindings::codegen::InheritTypes::ElementCast; -use dom::bindings::js::{JS, JSRef}; +use dom::bindings::js::{JS, JSRef, Unrooted}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{HTMLScriptElementTypeId, Element, AttributeHandlers}; @@ -35,7 +35,7 @@ impl HTMLScriptElement { } } - pub fn new(localName: DOMString, document: &JSRef) -> JS { + pub fn new(localName: DOMString, document: &JSRef) -> Unrooted { let element = HTMLScriptElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLScriptElementBinding::Wrap) } @@ -43,7 +43,7 @@ impl HTMLScriptElement { impl HTMLScriptElement { pub fn Src(&self, abstract_self: &JSRef) -> DOMString { - let element: JS = ElementCast::from(&abstract_self.unrooted()); + let element: &JSRef = ElementCast::from_ref(abstract_self); element.get_url_attribute("src") } -- cgit v1.2.3 From 76783b029e5e10da7fd61ab356a8f80a1eaf32e0 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 10 Apr 2014 21:29:54 -0400 Subject: Move WebIDL methods to traits implemented by JSRef types. --- src/components/script/dom/htmlscriptelement.rs | 60 ++++++++++++++++++-------- 1 file changed, 41 insertions(+), 19 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index 808b05a12cf..fabe876a10f 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -41,77 +41,99 @@ impl HTMLScriptElement { } } -impl HTMLScriptElement { - pub fn Src(&self, abstract_self: &JSRef) -> DOMString { +pub trait HTMLScriptElementMethods { + fn Src(&self, abstract_self: &JSRef) -> DOMString; + fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult; + fn Type(&self) -> DOMString; + fn SetType(&mut self, _type: DOMString) -> ErrorResult; + fn Charset(&self) -> DOMString; + fn SetCharset(&mut self, _charset: DOMString) -> ErrorResult; + fn Async(&self) -> bool; + fn SetAsync(&self, _async: bool) -> ErrorResult; + fn Defer(&self) -> bool; + fn SetDefer(&self, _defer: bool) -> ErrorResult; + fn CrossOrigin(&self) -> DOMString; + fn SetCrossOrigin(&mut self, _cross_origin: DOMString) -> ErrorResult; + fn Text(&self) -> DOMString; + fn SetText(&mut self, _text: DOMString) -> ErrorResult; + fn Event(&self) -> DOMString; + fn SetEvent(&mut self, _event: DOMString) -> ErrorResult; + fn HtmlFor(&self) -> DOMString; + fn SetHtmlFor(&mut self, _html_for: DOMString) -> ErrorResult; +} + +impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> { + fn Src(&self, abstract_self: &JSRef) -> DOMString { let element: &JSRef = ElementCast::from_ref(abstract_self); element.get_url_attribute("src") } - pub fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult { + fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult { Ok(()) } - pub fn Type(&self) -> DOMString { + fn Type(&self) -> DOMString { ~"" } - pub fn SetType(&mut self, _type: DOMString) -> ErrorResult { + fn SetType(&mut self, _type: DOMString) -> ErrorResult { Ok(()) } - pub fn Charset(&self) -> DOMString { + fn Charset(&self) -> DOMString { ~"" } - pub fn SetCharset(&mut self, _charset: DOMString) -> ErrorResult { + fn SetCharset(&mut self, _charset: DOMString) -> ErrorResult { Ok(()) } - pub fn Async(&self) -> bool { + fn Async(&self) -> bool { false } - pub fn SetAsync(&self, _async: bool) -> ErrorResult { + fn SetAsync(&self, _async: bool) -> ErrorResult { Ok(()) } - pub fn Defer(&self) -> bool { + fn Defer(&self) -> bool { false } - pub fn SetDefer(&self, _defer: bool) -> ErrorResult { + fn SetDefer(&self, _defer: bool) -> ErrorResult { Ok(()) } - pub fn CrossOrigin(&self) -> DOMString { + fn CrossOrigin(&self) -> DOMString { ~"" } - pub fn SetCrossOrigin(&mut self, _cross_origin: DOMString) -> ErrorResult { + fn SetCrossOrigin(&mut self, _cross_origin: DOMString) -> ErrorResult { Ok(()) } - pub fn Text(&self) -> DOMString { + fn Text(&self) -> DOMString { ~"" } - pub fn SetText(&mut self, _text: DOMString) -> ErrorResult { + fn SetText(&mut self, _text: DOMString) -> ErrorResult { Ok(()) } - pub fn Event(&self) -> DOMString { + fn Event(&self) -> DOMString { ~"" } - pub fn SetEvent(&mut self, _event: DOMString) -> ErrorResult { + fn SetEvent(&mut self, _event: DOMString) -> ErrorResult { Ok(()) } - pub fn HtmlFor(&self) -> DOMString { + fn HtmlFor(&self) -> DOMString { ~"" } - pub fn SetHtmlFor(&mut self, _html_for: DOMString) -> ErrorResult { + fn SetHtmlFor(&mut self, _html_for: DOMString) -> ErrorResult { Ok(()) } } + -- cgit v1.2.3 From 7daa97c7e5de3dac14b4d1c8a923448b025e3c09 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 10 Apr 2014 22:13:08 -0400 Subject: Remove abstract_self. --- src/components/script/dom/htmlscriptelement.rs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index fabe876a10f..4d7780d49f7 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -42,8 +42,8 @@ impl HTMLScriptElement { } pub trait HTMLScriptElementMethods { - fn Src(&self, abstract_self: &JSRef) -> DOMString; - fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult; + fn Src(&self) -> DOMString; + fn SetSrc(&mut self, _src: DOMString) -> ErrorResult; fn Type(&self) -> DOMString; fn SetType(&mut self, _type: DOMString) -> ErrorResult; fn Charset(&self) -> DOMString; @@ -63,12 +63,12 @@ pub trait HTMLScriptElementMethods { } impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> { - fn Src(&self, abstract_self: &JSRef) -> DOMString { - let element: &JSRef = ElementCast::from_ref(abstract_self); + fn Src(&self) -> DOMString { + let element: &JSRef = ElementCast::from_ref(self); element.get_url_attribute("src") } - fn SetSrc(&mut self, _abstract_self: &JSRef, _src: DOMString) -> ErrorResult { + fn SetSrc(&mut self, _src: DOMString) -> ErrorResult { Ok(()) } -- cgit v1.2.3 From 522d3f167b12fa79401eea5525c7b6133cae0f06 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 17 Apr 2014 17:08:00 -0400 Subject: s/Unrooted/Temporary/g --- src/components/script/dom/htmlscriptelement.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index 4d7780d49f7..b392fbb95d2 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLScriptElementBinding; use dom::bindings::codegen::InheritTypes::HTMLScriptElementDerived; use dom::bindings::codegen::InheritTypes::ElementCast; -use dom::bindings::js::{JS, JSRef, Unrooted}; +use dom::bindings::js::{JS, JSRef, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{HTMLScriptElementTypeId, Element, AttributeHandlers}; @@ -35,7 +35,7 @@ impl HTMLScriptElement { } } - pub fn new(localName: DOMString, document: &JSRef) -> Unrooted { + pub fn new(localName: DOMString, document: &JSRef) -> Temporary { let element = HTMLScriptElement::new_inherited(localName, document.unrooted()); Node::reflect_node(~element, document, HTMLScriptElementBinding::Wrap) } -- cgit v1.2.3 From 0f2d0b1dc3d98ef109627dda061c5a54ff06a91d Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Fri, 18 Apr 2014 00:12:52 -0400 Subject: Address review comments. --- src/components/script/dom/htmlscriptelement.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index b392fbb95d2..522a9244fa6 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::BindingDeclarations::HTMLScriptElementBinding; use dom::bindings::codegen::InheritTypes::HTMLScriptElementDerived; use dom::bindings::codegen::InheritTypes::ElementCast; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JSRef, Temporary}; use dom::bindings::error::ErrorResult; use dom::document::Document; use dom::element::{HTMLScriptElementTypeId, Element, AttributeHandlers}; @@ -29,14 +29,14 @@ impl HTMLScriptElementDerived for EventTarget { } impl HTMLScriptElement { - pub fn new_inherited(localName: DOMString, document: JS) -> HTMLScriptElement { + pub fn new_inherited(localName: DOMString, document: &JSRef) -> HTMLScriptElement { HTMLScriptElement { htmlelement: HTMLElement::new_inherited(HTMLScriptElementTypeId, localName, document) } } pub fn new(localName: DOMString, document: &JSRef) -> Temporary { - let element = HTMLScriptElement::new_inherited(localName, document.unrooted()); + let element = HTMLScriptElement::new_inherited(localName, document); Node::reflect_node(~element, document, HTMLScriptElementBinding::Wrap) } } -- cgit v1.2.3 From 91278da9dd55582401154e07f9eea34425a332c2 Mon Sep 17 00:00:00 2001 From: Josh Matthews Date: Thu, 24 Apr 2014 13:03:19 -0400 Subject: Address review comments. --- src/components/script/dom/htmlscriptelement.rs | 1 - 1 file changed, 1 deletion(-) (limited to 'src/components/script/dom/htmlscriptelement.rs') diff --git a/src/components/script/dom/htmlscriptelement.rs b/src/components/script/dom/htmlscriptelement.rs index 522a9244fa6..79b42ddc423 100644 --- a/src/components/script/dom/htmlscriptelement.rs +++ b/src/components/script/dom/htmlscriptelement.rs @@ -136,4 +136,3 @@ impl<'a> HTMLScriptElementMethods for JSRef<'a, HTMLScriptElement> { Ok(()) } } - -- cgit v1.2.3