diff options
71 files changed, 122 insertions, 139 deletions
diff --git a/components/script/devtools.rs b/components/script/devtools.rs index 271cc39ab35..cdc0537fa15 100644 --- a/components/script/devtools.rs +++ b/components/script/devtools.rs @@ -5,7 +5,7 @@ use devtools_traits::{EvaluateJSReply, NodeInfo, Modification, TimelineMarker, TimelineMarkerType}; use dom::bindings::conversions::FromJSValConvertible; use dom::bindings::conversions::StringificationBehavior; -use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary}; use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast}; use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use dom::bindings::codegen::Bindings::DOMRectBinding::{DOMRectMethods}; diff --git a/components/script/dom/activation.rs b/components/script/dom/activation.rs index 34bd440527c..047d3a5c4df 100644 --- a/components/script/dom/activation.rs +++ b/components/script/dom/activation.rs @@ -4,7 +4,7 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; -use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, Temporary, OptionalRootable, Rootable}; use dom::element::{Element, ActivationElementHelpers}; use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable}; use dom::eventtarget::EventTarget; diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs index d9fba643985..5df12e5aa63 100644 --- a/components/script/dom/attr.rs +++ b/components/script/dom/attr.rs @@ -7,8 +7,7 @@ use dom::bindings::codegen::Bindings::AttrBinding::{self, AttrMethods}; use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; -use dom::bindings::js::{OptionalRootable, OptionalRootedRootable}; -use dom::bindings::js::RootedReference; +use dom::bindings::js::{OptionalRootable, Rootable, RootedReference}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers}; use dom::node::Node; diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 6c0bef73c02..6b4acd64bd4 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -4733,8 +4733,8 @@ class CGBindingRoot(CGThing): 'dom::bindings::global::GlobalRef', 'dom::bindings::global::global_object_for_js_object', 'dom::bindings::js::{JS, JSRef, Root, RootedReference, Temporary, Unrooted}', - 'dom::bindings::js::{OptionalRootable, OptionalRootedRootable, ResultRootable}', - 'dom::bindings::js::{OptionalRootedReference, OptionalOptionalRootedRootable}', + 'dom::bindings::js::{OptionalOptionalRootable, OptionalRootable}', + 'dom::bindings::js::{OptionalRootedReference, ResultRootable, Rootable}', 'dom::bindings::utils::{create_dom_global, do_create_interface_objects}', 'dom::bindings::utils::ConstantSpec', 'dom::bindings::utils::{DOMClass}', @@ -5415,7 +5415,7 @@ class GlobalGenRoots(): descriptors = config.getDescriptors(register=True, isCallback=False) allprotos = [CGGeneric("#![allow(unused_imports)]\n"), CGGeneric("use dom::types::*;\n"), - CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Temporary};\n"), + CGGeneric("use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary};\n"), CGGeneric("use dom::bindings::trace::JSTraceable;\n"), CGGeneric("use dom::bindings::utils::Reflectable;\n"), CGGeneric("use js::jsapi::JSTracer;\n\n"), diff --git a/components/script/dom/bindings/error.rs b/components/script/dom/bindings/error.rs index 181d02f0353..3fe23eaca2a 100644 --- a/components/script/dom/bindings/error.rs +++ b/components/script/dom/bindings/error.rs @@ -6,6 +6,7 @@ use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::global::GlobalRef; +use dom::bindings::js::Rootable; use dom::domexception::{DOMException, DOMErrorName}; use util::str::DOMString; diff --git a/components/script/dom/bindings/global.rs b/components/script/dom/bindings/global.rs index 41fb88adf56..8297c2244a9 100644 --- a/components/script/dom/bindings/global.rs +++ b/components/script/dom/bindings/global.rs @@ -8,7 +8,7 @@ //! code that works in workers as well as window scopes. use dom::bindings::conversions::native_from_reflector_jsmanaged; -use dom::bindings::js::{JS, JSRef, Root, Unrooted}; +use dom::bindings::js::{JS, JSRef, Rootable, Root, Unrooted}; use dom::bindings::utils::{Reflectable, Reflector}; use dom::workerglobalscope::{WorkerGlobalScope, WorkerGlobalScopeHelpers}; use dom::window::{self, WindowHelpers}; diff --git a/components/script/dom/bindings/js.rs b/components/script/dom/bindings/js.rs index a6dc495fc04..e7f790fb1ab 100644 --- a/components/script/dom/bindings/js.rs +++ b/components/script/dom/bindings/js.rs @@ -31,17 +31,18 @@ //! the self value will not be collected for the duration of the method call. //! //! Both `Temporary<T>` and `JS<T>` do not allow access to their inner value -//! without explicitly creating a stack-based root via the `root` method. This -//! returns a `Root<T>`, which causes the JS-owned value to be uncollectable -//! for the duration of the `Root` object's lifetime. A `JSRef<T>` can be -//! obtained from a `Root<T>` by calling the `r` method. These `JSRef<T>` -//! values are not allowed to outlive their originating `Root<T>`, to ensure -//! that all interactions with the enclosed value only occur when said value is -//! uncollectable, and will cause static lifetime errors if misused. +//! without explicitly creating a stack-based root via the `root` method +//! through the `Rootable<T>` trait. This returns a `Root<T>`, which causes the +//! JS-owned value to be uncollectable for the duration of the `Root` object's +//! lifetime. A `JSRef<T>` can be obtained from a `Root<T>` by calling the `r` +//! method. These `JSRef<T>` values are not allowed to outlive their +//! originating `Root<T>`, to ensure that all interactions with the enclosed +//! value only occur when said value is uncollectable, and will cause static +//! lifetime errors if misused. //! //! Other miscellaneous helper traits: //! -//! - `OptionalRootable` and `OptionalRootedRootable`: make rooting `Option` +//! - `OptionalRootable` and `OptionalOptionalRootable`: make rooting `Option` //! values easy via a `root` method //! - `ResultRootable`: make rooting successful `Result` values easy //! - `TemporaryPushable`: allows mutating vectors of `JS<T>` with new elements @@ -108,9 +109,11 @@ impl<T: Reflectable> Unrooted<T> { pub unsafe fn unsafe_get(&self) -> *const T { *self.ptr } +} +impl<T: Reflectable> Rootable<T> for Unrooted<T> { /// Create a stack-bounded root for this value. - pub fn root(self) -> Root<T> { + fn root(&self) -> Root<T> { STACK_ROOTS.with(|ref collection| { let RootCollectionPtr(collection) = collection.get().unwrap(); unsafe { @@ -172,21 +175,18 @@ impl<T: Reflectable> Temporary<T> { Temporary::new(JS::from_rooted(root)) } - /// Create a stack-bounded root for this value. - pub fn root(&self) -> Root<T> { - STACK_ROOTS.with(|ref collection| { - let RootCollectionPtr(collection) = collection.get().unwrap(); - unsafe { - Root::new(&*collection, self.inner.ptr) - } - }) - } - unsafe fn inner(&self) -> JS<T> { self.inner.clone() } } +impl<T: Reflectable> Rootable<T> for Temporary<T> { + /// Create a stack-bounded root for this value. + fn root(&self) -> Root<T> { + self.inner.root() + } +} + /// A traced reference to a DOM object. Must only be used as a field in other /// DOM objects. #[must_root] @@ -264,9 +264,9 @@ impl LayoutJS<Node> { } } -impl<T: Reflectable> JS<T> { +impl<T: Reflectable> Rootable<T> for JS<T> { /// Root this JS-owned value to prevent its collection as garbage. - pub fn root(&self) -> Root<T> { + fn root(&self) -> Root<T> { STACK_ROOTS.with(|ref collection| { let RootCollectionPtr(collection) = collection.get().unwrap(); unsafe { @@ -475,12 +475,12 @@ impl<T: Reflectable> Assignable<T> for Temporary<T> { /// Root a rootable `Option` type (used for `Option<Temporary<T>>`) pub trait OptionalRootable<T> { /// Root the inner value, if it exists. - fn root(self) -> Option<Root<T>>; + fn root(&self) -> Option<Root<T>>; } -impl<T: Reflectable> OptionalRootable<T> for Option<Temporary<T>> { - fn root(self) -> Option<Root<T>> { - self.map(|inner| inner.root()) +impl<T: Reflectable, U: Rootable<T>> OptionalRootable<T> for Option<U> { + fn root(&self) -> Option<Root<T>> { + self.as_ref().map(|inner| inner.root()) } } @@ -496,61 +496,37 @@ impl<'a, T: Reflectable> OptionalUnrootable<T> for Option<JSRef<'a, T>> { } } -/// Root a rootable `Option` type (used for `Option<JS<T>>`) -pub trait OptionalRootedRootable<T> { - /// Root the inner value, if it exists. - fn root(&self) -> Option<Root<T>>; -} - -impl<T: Reflectable> OptionalRootedRootable<T> for Option<JS<T>> { - fn root(&self) -> Option<Root<T>> { - self.as_ref().map(|inner| inner.root()) - } -} - -impl<T: Reflectable> OptionalRootedRootable<T> for Option<Unrooted<T>> { - fn root(&self) -> Option<Root<T>> { - self.as_ref().map(|inner| inner.root()) - } -} - /// Root a rootable `Option<Option>` type (used for `Option<Option<JS<T>>>`) -pub trait OptionalOptionalRootedRootable<T> { +pub trait OptionalOptionalRootable<T> { /// Root the inner value, if it exists. fn root(&self) -> Option<Option<Root<T>>>; } -impl<T: Reflectable> OptionalOptionalRootedRootable<T> for Option<Option<JS<T>>> { +impl<T: Reflectable, U: OptionalRootable<T>> OptionalOptionalRootable<T> for Option<U> { fn root(&self) -> Option<Option<Root<T>>> { self.as_ref().map(|inner| inner.root()) } } -impl<T: Reflectable> OptionalOptionalRootedRootable<T> for Option<Option<Unrooted<T>>> { - fn root(&self) -> Option<Option<Root<T>>> { - self.as_ref().map(|inner| inner.root()) - } -} - - /// Root a rootable `Result` type (any of `Temporary<T>` or `JS<T>`) pub trait ResultRootable<T,U> { /// Root the inner value, if it exists. fn root(self) -> Result<Root<T>, U>; } -impl<T: Reflectable, U> ResultRootable<T, U> for Result<Temporary<T>, U> { +impl<T: Reflectable, U, V: Rootable<T>> ResultRootable<T, U> for Result<V, U> { fn root(self) -> Result<Root<T>, U> { self.map(|inner| inner.root()) } } -impl<T: Reflectable, U> ResultRootable<T, U> for Result<JS<T>, U> { - fn root(self) -> Result<Root<T>, U> { - self.map(|inner| inner.root()) - } +/// Root a rootable type. +pub trait Rootable<T> { + /// Root the value. + fn root(&self) -> Root<T>; } + /// Provides a facility to push unrooted values onto lists of rooted values. /// This is safe under the assumption that said lists are reachable via the GC /// graph, and therefore the new values are transitively rooted for the diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index 9c7063d38a2..369a4f11d88 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::PrototypeList::MAX_PROTO_CHAIN_LENGTH; use dom::bindings::conversions::{native_from_reflector_jsmanaged, is_dom_class}; use dom::bindings::error::{Error, ErrorResult, Fallible, throw_type_error}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{Temporary, Root}; +use dom::bindings::js::{Temporary, Root, Rootable}; use dom::browsercontext; use dom::window; use util::namespace; diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs index 328182e2942..ac2fb117ca1 100644 --- a/components/script/dom/browsercontext.rs +++ b/components/script/dom/browsercontext.rs @@ -5,8 +5,8 @@ use dom::bindings::conversions::native_from_reflector_jsmanaged; use dom::bindings::conversions::{ToJSValConvertible}; use dom::bindings::js::{JS, JSRef, Temporary, Root}; -use dom::bindings::js::{OptionalRootable, OptionalRootedRootable, ResultRootable}; -use dom::bindings::js::{OptionalRootedReference, OptionalOptionalRootedRootable}; +use dom::bindings::js::{OptionalRootable, OptionalOptionalRootable}; +use dom::bindings::js::{ResultRootable, Rootable}; use dom::bindings::proxyhandler::{get_property_descriptor, fill_property_descriptor}; use dom::bindings::utils::{Reflectable, WindowProxyHandler}; use dom::bindings::utils::get_array_index_from_id; diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs index 6eeb7d5627d..44e2ea33966 100644 --- a/components/script/dom/canvasrenderingcontext2d.rs +++ b/components/script/dom/canvasrenderingcontext2d.rs @@ -11,7 +11,7 @@ use dom::bindings::codegen::UnionTypes::StringOrCanvasGradientOrCanvasPattern; use dom::bindings::error::Error::{IndexSize, NotSupported, Type, InvalidState}; use dom::bindings::error::Fallible; use dom::bindings::global::{GlobalRef, GlobalField}; -use dom::bindings::js::{JS, JSRef, LayoutJS, Temporary}; +use dom::bindings::js::{JS, JSRef, LayoutJS, Rootable, Temporary}; use dom::bindings::num::Finite; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::canvasgradient::{CanvasGradient, CanvasGradientStyle, ToFillOrStrokeStyle}; diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs index 743e935db01..9f95d318890 100644 --- a/components/script/dom/comment.rs +++ b/components/script/dom/comment.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::CommentDerived; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/cssstyledeclaration.rs b/components/script/dom/cssstyledeclaration.rs index 654bafcca75..eb0e473ca41 100644 --- a/components/script/dom/cssstyledeclaration.rs +++ b/components/script/dom/cssstyledeclaration.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::CSSStyleDeclarationBinding::{self, CSSStyl use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast}; use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, OptionalRootedRootable, Temporary}; +use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::DocumentHelpers; use dom::element::{Element, ElementHelpers, StylePriority}; diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs index bb64e3075f8..f4a11be9dc2 100644 --- a/components/script/dom/customevent.rs +++ b/components/script/dom/customevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::EventBinding::EventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, CustomEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, MutHeap}; +use dom::bindings::js::{JSRef, MutHeap, Rootable, Temporary}; use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use js::jsapi::JSContext; diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs index debc435c05d..97c25e56b9c 100644 --- a/components/script/dom/dedicatedworkerglobalscope.rs +++ b/components/script/dom/dedicatedworkerglobalscope.rs @@ -11,7 +11,7 @@ use dom::bindings::codegen::InheritTypes::DedicatedWorkerGlobalScopeDerived; use dom::bindings::codegen::InheritTypes::{EventTargetCast, WorkerGlobalScopeCast}; use dom::bindings::error::ErrorResult; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, RootCollection}; +use dom::bindings::js::{JSRef, RootCollection, Rootable, Temporary}; use dom::bindings::refcounted::LiveDOMReferences; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::utils::Reflectable; diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs index d3a40abf753..1749177d22b 100644 --- a/components/script/dom/document.rs +++ b/components/script/dom/document.rs @@ -25,8 +25,8 @@ use dom::bindings::error::Error::{NotSupported, InvalidCharacter, Security}; use dom::bindings::error::Error::HierarchyRequest; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap}; -use dom::bindings::js::{OptionalRootable, OptionalRootedRootable}; -use dom::bindings::js::{RootedReference, Temporary}; +use dom::bindings::js::{OptionalRootable, Rootable, RootedReference}; +use dom::bindings::js::Temporary; use dom::bindings::js::TemporaryPushable; use dom::bindings::refcounted::Trusted; use dom::bindings::trace::RootedVec; diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs index 51f7fa48571..15ced7b57ae 100644 --- a/components/script/dom/documentfragment.rs +++ b/components/script/dom/documentfragment.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::DocumentFragmentDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; use dom::bindings::codegen::UnionTypes::NodeOrString; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::global::GlobalRef; use dom::document::Document; diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs index 6a871f992c2..56e5a3aec51 100644 --- a/components/script/dom/domimplementation.rs +++ b/components/script/dom/domimplementation.rs @@ -9,7 +9,8 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Root, Temporary, OptionalRootable}; +use dom::bindings::js::{JS, JSRef, OptionalRootable, Root, Rootable}; +use dom::bindings::js::Temporary; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::utils::validate_qualified_name; use dom::document::{Document, DocumentHelpers, IsHTMLDocument}; diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs index b8e59316128..65afb15e5fa 100644 --- a/components/script/dom/domparser.rs +++ b/components/script/dom/domparser.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::DOMParserBinding::DOMParserMethods; use dom::bindings::codegen::Bindings::DOMParserBinding::SupportedType::{Text_html, Text_xml}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers, IsHTMLDocument}; use dom::document::DocumentSource; diff --git a/components/script/dom/domstringmap.rs b/components/script/dom/domstringmap.rs index 72d9797ca4d..f48b4218aed 100644 --- a/components/script/dom/domstringmap.rs +++ b/components/script/dom/domstringmap.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::DOMStringMapBinding; use dom::bindings::codegen::Bindings::DOMStringMapBinding::DOMStringMapMethods; use dom::bindings::error::ErrorResult; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::node::window_from_node; use dom::htmlelement::{HTMLElement, HTMLElementCustomAttributeHelpers}; diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs index 2e118089697..7ee5e632900 100644 --- a/components/script/dom/domtokenlist.rs +++ b/components/script/dom/domtokenlist.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::DOMTokenListBinding::DOMTokenListMethods; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{InvalidCharacter, Syntax}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers}; use dom::node::window_from_node; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index ae3c11c4079..1fd18262a95 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -28,8 +28,8 @@ use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{InvalidCharacter, Syntax}; use dom::bindings::error::Error::NoModificationAllowed; use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap}; -use dom::bindings::js::{OptionalRootable, RootedReference, Temporary}; -use dom::bindings::js::TemporaryPushable; +use dom::bindings::js::{OptionalRootable, Rootable, RootedReference}; +use dom::bindings::js::{Temporary, TemporaryPushable}; use dom::bindings::trace::RootedVec; use dom::bindings::utils::{xml_name_type, validate_and_extract}; use dom::bindings::utils::XMLName::InvalidXMLName; diff --git a/components/script/dom/errorevent.rs b/components/script/dom/errorevent.rs index 5aed667e3b6..0be4acdb245 100644 --- a/components/script/dom/errorevent.rs +++ b/components/script/dom/errorevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::ErrorEventBinding::ErrorEventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, ErrorEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, MutHeap}; +use dom::bindings::js::{JSRef, MutHeap, Rootable, Temporary}; use js::jsapi::JSContext; use dom::bindings::trace::JSTraceable; diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs index 8a969fb3e9b..25b52b51849 100644 --- a/components/script/dom/event.rs +++ b/components/script/dom/event.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::EventBinding; use dom::bindings::codegen::Bindings::EventBinding::{EventConstants, EventMethods}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::eventtarget::{EventTarget, EventTargetHelpers}; use util::str::DOMString; diff --git a/components/script/dom/eventdispatcher.rs b/components/script/dom/eventdispatcher.rs index d4f23aea7bd..ca534ba0389 100644 --- a/components/script/dom/eventdispatcher.rs +++ b/components/script/dom/eventdispatcher.rs @@ -5,7 +5,7 @@ use dom::bindings::callback::ExceptionHandling::Report; use dom::bindings::codegen::Bindings::EventBinding::EventMethods; use dom::bindings::codegen::InheritTypes::{EventTargetCast, NodeCast}; -use dom::bindings::js::{JS, JSRef, OptionalRootable}; +use dom::bindings::js::{JS, JSRef, OptionalRootable, Rootable}; use dom::bindings::trace::RootedVec; use dom::eventtarget::{EventTarget, ListenerPhase}; use dom::event::{Event, EventPhase}; diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs index 74c8e8b2d85..7a13b77b986 100644 --- a/components/script/dom/htmlanchorelement.rs +++ b/components/script/dom/htmlanchorelement.rs @@ -13,7 +13,7 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLAnchorElementDerived, HTMLImageElementDerived}; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::codegen::InheritTypes::{MouseEventCast, NodeCast}; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary}; use dom::bindings::js::OptionalRootable; use dom::document::{Document, DocumentHelpers}; use dom::domtokenlist::DOMTokenList; diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs index bf11d11c43c..817da5043f0 100644 --- a/components/script/dom/htmlbodyelement.rs +++ b/components/script/dom/htmlbodyelement.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLBodyElementBinding::{self, HTMLBodyEle use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::EventTargetCast; use dom::bindings::codegen::InheritTypes::{HTMLBodyElementDerived, HTMLElementCast}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::utils::Reflectable; use dom::document::Document; use dom::element::ElementTypeId; diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs index de9433cce18..57ce2aed0f0 100644 --- a/components/script/dom/htmlbuttonelement.rs +++ b/components/script/dom/htmlbuttonelement.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding; use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElementMethods; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLButtonElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLButtonElementDerived, HTMLFieldSetElementDerived}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementTypeId}; use dom::element::ActivationElementHelpers; diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs index 5beb415f3e1..b9f2ba1cd7a 100644 --- a/components/script/dom/htmlcanvaselement.rs +++ b/components/script/dom/htmlcanvaselement.rs @@ -11,7 +11,8 @@ use dom::bindings::codegen::InheritTypes::HTMLCanvasElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; use dom::bindings::codegen::UnionTypes::CanvasRenderingContext2DOrWebGLRenderingContext; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap, Rootable}; +use dom::bindings::js::Temporary; use dom::bindings::js::Unrooted; use dom::bindings::utils::{Reflectable}; use dom::canvasrenderingcontext2d::{CanvasRenderingContext2D, LayoutCanvasRenderingContext2DHelpers}; diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs index 8e55dd99f2d..bbb96af7e02 100644 --- a/components/script/dom/htmlcollection.rs +++ b/components/script/dom/htmlcollection.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::HTMLCollectionBinding; use dom::bindings::codegen::Bindings::HTMLCollectionBinding::HTMLCollectionMethods; use dom::bindings::codegen::InheritTypes::{ElementCast, NodeCast}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::trace::JSTraceable; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{Element, AttributeHandlers, ElementHelpers}; diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs index 669f9c9d84f..d674af0cb59 100644 --- a/components/script/dom/htmldatalistelement.rs +++ b/components/script/dom/htmldatalistelement.rs @@ -6,7 +6,7 @@ use dom::bindings::codegen::Bindings::HTMLDataListElementBinding; use dom::bindings::codegen::Bindings::HTMLDataListElementBinding::HTMLDataListElementMethods; use dom::bindings::codegen::InheritTypes::{HTMLDataListElementDerived, HTMLOptionElementDerived}; use dom::bindings::codegen::InheritTypes::NodeCast; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::element::Element; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs index c0431b3856a..0b5fa1b5639 100644 --- a/components/script/dom/htmlelement.rs +++ b/components/script/dom/htmlelement.rs @@ -12,7 +12,7 @@ use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLFrameSetElementDerived}; use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLInputElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementDerived, HTMLBodyElementDerived}; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary}; use dom::bindings::error::ErrorResult; use dom::bindings::error::Error::Syntax; use dom::bindings::utils::Reflectable; diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs index 7bd4b7370a9..84c6d926bb6 100644 --- a/components/script/dom/htmlfieldsetelement.rs +++ b/components/script/dom/htmlfieldsetelement.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding; use dom::bindings::codegen::Bindings::HTMLFieldSetElementBinding::HTMLFieldSetElementMethods; use dom::bindings::codegen::InheritTypes::{HTMLFieldSetElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLLegendElementDerived}; -use dom::bindings::js::{JSRef, Temporary, RootedReference}; +use dom::bindings::js::{JSRef, Rootable, RootedReference, Temporary}; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementHelpers}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs index b4ba521c5a1..abb3ec98aa6 100644 --- a/components/script/dom/htmlformelement.rs +++ b/components/script/dom/htmlformelement.rs @@ -11,7 +11,7 @@ use dom::bindings::codegen::Bindings::HTMLButtonElementBinding::HTMLButtonElemen use dom::bindings::codegen::InheritTypes::{EventTargetCast, HTMLFormElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLInputElementCast, HTMLTextAreaElementCast, HTMLFormElementCast}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary}; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, AttributeHandlers}; use dom::event::{Event, EventHelpers, EventBubbles, EventCancelable}; diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 7327a6131f9..58096b18bea 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -14,7 +14,7 @@ use dom::bindings::conversions::ToJSValConvertible; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::NotSupported; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary}; use dom::customevent::CustomEvent; use dom::document::Document; use dom::element::Element; diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 47d7ce55bd0..62271ec8c84 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::Bindings::HTMLImageElementBinding; use dom::bindings::codegen::Bindings::HTMLImageElementBinding::HTMLImageElementMethods; use dom::bindings::codegen::InheritTypes::{NodeCast, ElementCast, EventTargetCast, HTMLElementCast, HTMLImageElementDerived}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, LayoutJS, Temporary}; +use dom::bindings::js::{JSRef, LayoutJS, Rootable, Temporary}; use dom::bindings::refcounted::Trusted; use dom::document::{Document, DocumentHelpers}; use dom::element::Element; diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs index e8cad95a519..85775dbae0e 100644 --- a/components/script/dom/htmlinputelement.rs +++ b/components/script/dom/htmlinputelement.rs @@ -16,8 +16,8 @@ use dom::bindings::codegen::InheritTypes::{HTMLInputElementDerived, HTMLFieldSet use dom::bindings::codegen::InheritTypes::KeyboardEventCast; use dom::bindings::global::GlobalRef; use dom::bindings::js::{Comparable, JS, JSRef, LayoutJS, MutNullableHeap}; -use dom::bindings::js::{OptionalRootable, OptionalRootedRootable}; -use dom::bindings::js::{ResultRootable, Root, RootedReference, Temporary}; +use dom::bindings::js::{OptionalRootable, ResultRootable, Root, Rootable}; +use dom::bindings::js::{RootedReference, Temporary}; use dom::document::{Document, DocumentHelpers}; use dom::element::{AttributeHandlers, Element}; use dom::element::{RawLayoutElementHelpers, ActivationElementHelpers}; diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs index 60e78b5bdad..1189b21af46 100644 --- a/components/script/dom/htmllinkelement.rs +++ b/components/script/dom/htmllinkelement.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLLinkElementBinding; use dom::bindings::codegen::Bindings::HTMLLinkElementBinding::HTMLLinkElementMethods; use dom::bindings::codegen::InheritTypes::HTMLLinkElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, Temporary}; use dom::bindings::js::{OptionalRootable, RootedReference}; use dom::document::Document; use dom::domtokenlist::DOMTokenList; diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs index a6d46a21c11..bb56ee67092 100644 --- a/components/script/dom/htmlobjectelement.rs +++ b/components/script/dom/htmlobjectelement.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::Bindings::HTMLObjectElementBinding; use dom::bindings::codegen::Bindings::HTMLObjectElementBinding::HTMLObjectElementMethods; use dom::bindings::codegen::InheritTypes::HTMLObjectElementDerived; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::element::Element; use dom::element::AttributeHandlers; diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs index cc0cfa654dd..4b3f3baf560 100644 --- a/components/script/dom/htmloptgroupelement.rs +++ b/components/script/dom/htmloptgroupelement.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding; use dom::bindings::codegen::Bindings::HTMLOptGroupElementBinding::HTMLOptGroupElementMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{HTMLOptGroupElementDerived, HTMLOptionElementDerived}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::element::AttributeHandlers; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs index fe68c61e70f..11c512b03e6 100644 --- a/components/script/dom/htmloptionelement.rs +++ b/components/script/dom/htmloptionelement.rs @@ -11,7 +11,7 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, ElementCast, HTMLE use dom::bindings::codegen::InheritTypes::{HTMLOptionElementDerived}; use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived}; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::characterdata::CharacterData; use dom::document::Document; use dom::element::{AttributeHandlers, Element, ElementHelpers}; diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs index 940a89dc043..b1f67343f36 100644 --- a/components/script/dom/htmloutputelement.rs +++ b/components/script/dom/htmloutputelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::HTMLOutputElementBinding; use dom::bindings::codegen::Bindings::HTMLOutputElementBinding::HTMLOutputElementMethods; use dom::bindings::codegen::InheritTypes::HTMLOutputElementDerived; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::element::ElementTypeId; diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs index f32dc7a9881..aaf36f95cb4 100644 --- a/components/script/dom/htmlscriptelement.rs +++ b/components/script/dom/htmlscriptelement.rs @@ -16,7 +16,8 @@ use dom::bindings::codegen::InheritTypes::{HTMLScriptElementDerived, HTMLScriptE use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::EventTargetCast; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, RootedReference}; +use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, Rootable}; +use dom::bindings::js::RootedReference; use dom::bindings::refcounted::Trusted; use dom::bindings::trace::JSTraceable; use dom::document::{Document, DocumentHelpers}; diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs index ee416ee9793..1d3ce090510 100644 --- a/components/script/dom/htmlselectelement.rs +++ b/components/script/dom/htmlselectelement.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::InheritTypes::{HTMLElementCast, NodeCast}; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLSelectElementDerived, HTMLFieldSetElementDerived}; use dom::bindings::codegen::UnionTypes::HTMLElementOrLong; use dom::bindings::codegen::UnionTypes::HTMLOptionElementOrHTMLOptGroupElement; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::element::{AttributeHandlers, Element}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs index ccbe79e21ef..93886218a62 100644 --- a/components/script/dom/htmlstyleelement.rs +++ b/components/script/dom/htmlstyleelement.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::HTMLStyleElementBinding; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLElementCast, HTMLStyleElementDerived, NodeCast}; -use dom::bindings::js::{JSRef, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, Temporary}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::element::{Element, ElementTypeId}; diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index fe65327a585..b206f45429b 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::HTMLTableElementBinding; use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTableCaptionElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLTableElementDerived, NodeCast}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; use dom::element::ElementTypeId; diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs index 936c67ae6a9..5e6724d5c63 100644 --- a/components/script/dom/htmltextareaelement.rs +++ b/components/script/dom/htmltextareaelement.rs @@ -13,7 +13,8 @@ use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLEle use dom::bindings::codegen::InheritTypes::{HTMLTextAreaElementDerived, HTMLFieldSetElementDerived}; use dom::bindings::codegen::InheritTypes::{KeyboardEventCast, TextDerived}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, LayoutJS, Temporary, OptionalRootable}; +use dom::bindings::js::{JSRef, LayoutJS, OptionalRootable, Rootable}; +use dom::bindings::js::Temporary; use dom::bindings::refcounted::Trusted; use dom::document::{Document, DocumentHelpers}; use dom::element::{Element, AttributeHandlers}; diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs index 411a67e71d5..c01262c1933 100644 --- a/components/script/dom/htmltitleelement.rs +++ b/components/script/dom/htmltitleelement.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::HTMLTitleElementBinding::HTMLTitleElementM use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::InheritTypes::{HTMLElementCast, HTMLTitleElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextCast}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::characterdata::CharacterDataHelpers; use dom::document::{Document, DocumentHelpers}; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/keyboardevent.rs b/components/script/dom/keyboardevent.rs index f6777cc258a..08a268678f0 100644 --- a/components/script/dom/keyboardevent.rs +++ b/components/script/dom/keyboardevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, KeyboardEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary, RootedReference}; +use dom::bindings::js::{JSRef, Temporary, Rootable, RootedReference}; use dom::bindings::utils::{Reflectable, reflect_dom_object}; use dom::event::{Event, EventTypeId}; use dom::uievent::UIEvent; diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs index 7e937baef18..97da0a3066a 100644 --- a/components/script/dom/location.rs +++ b/components/script/dom/location.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::LocationBinding; use dom::bindings::codegen::Bindings::LocationBinding::LocationMethods; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::str::USVString; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::urlhelper::UrlHelper; diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs index 09f0ac9eab0..b40d8c75d3d 100644 --- a/components/script/dom/messageevent.rs +++ b/components/script/dom/messageevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::MessageEventBinding::MessageEventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, MessageEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventHelpers, EventTypeId}; use dom::eventtarget::EventTarget; diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs index 71e95fb4b02..ccac8e331e9 100644 --- a/components/script/dom/mouseevent.rs +++ b/components/script/dom/mouseevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, UIEventCast, MouseEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference}; use dom::bindings::js::Temporary; use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable}; diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs index b0c7261e294..a134c8de233 100644 --- a/components/script/dom/namednodemap.rs +++ b/components/script/dom/namednodemap.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::NamedNodeMapBinding; use dom::bindings::codegen::Bindings::NamedNodeMapBinding::NamedNodeMapMethods; use dom::bindings::error::{Error, Fallible}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::element::{AttributeHandlers, Element, ElementHelpers}; use dom::window::Window; diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs index 32c44277d10..27e1a6edc19 100644 --- a/components/script/dom/node.rs +++ b/components/script/dom/node.rs @@ -24,10 +24,10 @@ use dom::bindings::conversions; use dom::bindings::error::{ErrorResult, Fallible}; use dom::bindings::error::Error::{NotFound, HierarchyRequest, Syntax}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, LayoutJS, OptionalRootable}; -use dom::bindings::js::{OptionalRootedRootable, MutNullableHeap}; -use dom::bindings::js::{ResultRootable, Root, RootedReference, Temporary}; -use dom::bindings::js::{TemporaryPushable, Unrooted}; +use dom::bindings::js::{JS, JSRef, LayoutJS, MutNullableHeap}; +use dom::bindings::js::{OptionalRootable, ResultRootable, Root, Rootable}; +use dom::bindings::js::{RootedReference, Temporary, TemporaryPushable}; +use dom::bindings::js::Unrooted; use dom::bindings::trace::JSTraceable; use dom::bindings::trace::RootedVec; use dom::bindings::utils::{Reflectable, reflect_dom_object}; diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs index 8826733cfa6..d7830deb9f4 100644 --- a/components/script/dom/nodelist.rs +++ b/components/script/dom/nodelist.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::NodeListBinding; use dom::bindings::codegen::Bindings::NodeListBinding::NodeListMethods; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::trace::RootedVec; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::node::{Node, NodeHelpers}; diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs index ef0238ea4fc..e2fb476c111 100644 --- a/components/script/dom/performance.rs +++ b/components/script/dom/performance.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::PerformanceBinding; use dom::bindings::codegen::Bindings::PerformanceBinding::PerformanceMethods; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::num::Finite; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::performancetiming::{PerformanceTiming, PerformanceTimingHelpers}; diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs index 57b46733982..8294fd4b3e5 100644 --- a/components/script/dom/progressevent.rs +++ b/components/script/dom/progressevent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::ProgressEventBinding::ProgressEventMethods use dom::bindings::codegen::InheritTypes::{EventCast, ProgressEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::utils::reflect_dom_object; use dom::event::{Event, EventTypeId}; use util::str::DOMString; diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs index 4d79b008402..f79e6685a28 100644 --- a/components/script/dom/range.rs +++ b/components/script/dom/range.rs @@ -7,7 +7,7 @@ use dom::bindings::codegen::Bindings::RangeBinding::RangeMethods; use dom::bindings::codegen::Bindings::WindowBinding::WindowMethods; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers}; diff --git a/components/script/dom/servohtmlparser.rs b/components/script/dom/servohtmlparser.rs index 22de46f4e3c..fbd89a27787 100644 --- a/components/script/dom/servohtmlparser.rs +++ b/components/script/dom/servohtmlparser.rs @@ -9,7 +9,7 @@ use dom::bindings::cell::DOMRefCell; use dom::bindings::codegen::Bindings::ServoHTMLParserBinding; use dom::bindings::global::GlobalRef; use dom::bindings::trace::JSTraceable; -use dom::bindings::js::{JS, JSRef, Temporary}; +use dom::bindings::js::{JS, JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers}; use dom::node::Node; diff --git a/components/script/dom/storage.rs b/components/script/dom/storage.rs index 13871b43c29..36beb11bc4e 100644 --- a/components/script/dom/storage.rs +++ b/components/script/dom/storage.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::StorageBinding; use dom::bindings::codegen::Bindings::StorageBinding::StorageMethods; use dom::bindings::global::{GlobalRef, GlobalField}; -use dom::bindings::js::{JSRef, Temporary, RootedReference}; +use dom::bindings::js::{JSRef, Temporary, Rootable, RootedReference}; use dom::bindings::refcounted::Trusted; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; diff --git a/components/script/dom/storageevent.rs b/components/script/dom/storageevent.rs index ba394df0ee8..860da7a4ad3 100644 --- a/components/script/dom/storageevent.rs +++ b/components/script/dom/storageevent.rs @@ -10,7 +10,7 @@ use dom::bindings::codegen::Bindings::StorageEventBinding::{StorageEventMethods} use dom::bindings::codegen::InheritTypes::{EventCast}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference}; use dom::bindings::js::Temporary; use dom::bindings::utils::{reflect_dom_object}; use dom::event::{Event, EventTypeId, EventBubbles, EventCancelable}; diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs index aa2289f822a..c8430c48809 100644 --- a/components/script/dom/text.rs +++ b/components/script/dom/text.rs @@ -11,7 +11,8 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, TextDerived}; use dom::bindings::codegen::InheritTypes::NodeCast; use dom::bindings::error::{Error, Fallible}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, OptionalRootable, RootedReference, Temporary}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, RootedReference}; +use dom::bindings::js::Temporary; use dom::characterdata::{CharacterData, CharacterDataHelpers}; use dom::document::Document; use dom::eventtarget::{EventTarget, EventTargetTypeId}; diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs index da0e0846a6d..29104f7dfde 100644 --- a/components/script/dom/treewalker.rs +++ b/components/script/dom/treewalker.rs @@ -10,7 +10,8 @@ use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilter; use dom::bindings::codegen::Bindings::NodeFilterBinding::NodeFilterConstants; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, OptionalRootable, Temporary, MutHeap}; +use dom::bindings::js::{JS, JSRef, MutHeap, OptionalRootable, Rootable}; +use dom::bindings::js::Temporary; use dom::bindings::utils::{Reflector, reflect_dom_object}; use dom::document::{Document, DocumentHelpers}; use dom::node::{Node, NodeHelpers}; diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs index eec08a0193b..f4271e501d8 100644 --- a/components/script/dom/uievent.rs +++ b/components/script/dom/uievent.rs @@ -8,7 +8,7 @@ use dom::bindings::codegen::Bindings::UIEventBinding::UIEventMethods; use dom::bindings::codegen::InheritTypes::{EventCast, UIEventDerived}; use dom::bindings::error::Fallible; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, RootedReference}; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, Rootable, RootedReference}; use dom::bindings::js::Temporary; use dom::bindings::utils::reflect_dom_object; diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs index d94a5d0f185..f19e936ce54 100644 --- a/components/script/dom/urlsearchparams.rs +++ b/components/script/dom/urlsearchparams.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams; use dom::bindings::codegen::UnionTypes::StringOrURLSearchParams::{eURLSearchParams, eString}; use dom::bindings::error::{Fallible}; use dom::bindings::global::GlobalRef; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::utils::{Reflector, reflect_dom_object}; use util::str::DOMString; diff --git a/components/script/dom/userscripts.rs b/components/script/dom/userscripts.rs index 08ed1836aaf..3f4a7e6f268 100644 --- a/components/script/dom/userscripts.rs +++ b/components/script/dom/userscripts.rs @@ -5,7 +5,7 @@ use dom::bindings::codegen::Bindings::NodeBinding::NodeMethods; use dom::bindings::codegen::Bindings::DocumentBinding::DocumentMethods; use dom::bindings::codegen::InheritTypes::NodeCast; -use dom::bindings::js::{JSRef, OptionalRootable, RootedReference}; +use dom::bindings::js::{JSRef, OptionalRootable, Rootable, RootedReference}; use dom::element::AttributeHandlers; use dom::htmlheadelement::HTMLHeadElement; use dom::node::{Node, NodeHelpers}; diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs index f8c468e14fc..70046185981 100644 --- a/components/script/dom/window.rs +++ b/components/script/dom/window.rs @@ -14,7 +14,7 @@ use dom::bindings::error::{report_pending_exception, Fallible}; use dom::bindings::error::Error::InvalidCharacter; use dom::bindings::global::GlobalRef; use dom::bindings::js::{JS, JSRef, MutNullableHeap, OptionalRootable}; -use dom::bindings::js::{RootedReference, Temporary}; +use dom::bindings::js::{Rootable, RootedReference, Temporary}; use dom::bindings::utils::{GlobalStaticData, Reflectable, WindowProxyHandler}; use dom::browsercontext::BrowserContext; use dom::console::Console; diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs index a36dee9a164..749ba34183a 100644 --- a/components/script/dom/worker.rs +++ b/components/script/dom/worker.rs @@ -9,7 +9,7 @@ use dom::bindings::codegen::InheritTypes::{EventCast, EventTargetCast}; use dom::bindings::error::{Fallible, ErrorResult}; use dom::bindings::error::Error::Syntax; use dom::bindings::global::{GlobalRef, GlobalField}; -use dom::bindings::js::{JSRef, Temporary}; +use dom::bindings::js::{JSRef, Rootable, Temporary}; use dom::bindings::refcounted::Trusted; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::trace::JSTraceable; diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs index 69295ea3f30..a64d57b7792 100644 --- a/components/script/dom/xmlhttprequest.rs +++ b/components/script/dom/xmlhttprequest.rs @@ -14,8 +14,8 @@ use dom::bindings::error::{Error, ErrorResult, Fallible}; use dom::bindings::error::Error::{InvalidState, InvalidAccess}; use dom::bindings::error::Error::{Network, Syntax, Security, Abort, Timeout}; use dom::bindings::global::{GlobalField, GlobalRef, GlobalRoot}; -use dom::bindings::js::{JS, JSRef, MutNullableHeap, Temporary}; -use dom::bindings::js::OptionalRootedRootable; +use dom::bindings::js::{JS, JSRef, MutNullableHeap, OptionalRootable}; +use dom::bindings::js::{Rootable, Temporary}; use dom::bindings::refcounted::Trusted; use dom::bindings::str::ByteString; use dom::bindings::utils::{Reflectable, reflect_dom_object}; diff --git a/components/script/parse/html.rs b/components/script/parse/html.rs index 21a37505b53..bd262ebe1f2 100644 --- a/components/script/parse/html.rs +++ b/components/script/parse/html.rs @@ -11,8 +11,8 @@ use dom::bindings::codegen::InheritTypes::{CharacterDataCast, DocumentTypeCast}; use dom::bindings::codegen::InheritTypes::{ElementCast, HTMLScriptElementCast}; use dom::bindings::codegen::InheritTypes::{HTMLFormElementDerived, NodeCast}; use dom::bindings::codegen::InheritTypes::ProcessingInstructionCast; -use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, Root}; -use dom::bindings::js::RootedReference; +use dom::bindings::js::{JS, JSRef, OptionalRootable, Root, Rootable}; +use dom::bindings::js::{RootedReference, Temporary}; use dom::bindings::trace::RootedVec; use dom::characterdata::CharacterDataHelpers; use dom::comment::Comment; diff --git a/components/script/script_task.rs b/components/script/script_task.rs index 0fbdf0f5926..e865976f2ae 100644 --- a/components/script/script_task.rs +++ b/components/script/script_task.rs @@ -24,8 +24,9 @@ use dom::bindings::codegen::Bindings::DocumentBinding::{DocumentMethods, Documen use dom::bindings::codegen::InheritTypes::{ElementCast, EventTargetCast, HTMLIFrameElementCast, NodeCast, EventCast}; use dom::bindings::conversions::FromJSValConvertible; use dom::bindings::conversions::StringificationBehavior; -use dom::bindings::js::{JS, JSRef, Temporary, OptionalRootable, RootedReference}; -use dom::bindings::js::{RootCollection, RootCollectionPtr}; +use dom::bindings::js::{JS, JSRef, OptionalRootable, RootCollection}; +use dom::bindings::js::{RootCollectionPtr, Rootable, RootedReference}; +use dom::bindings::js::Temporary; use dom::bindings::refcounted::{LiveDOMReferences, Trusted, TrustedReference}; use dom::bindings::structuredclone::StructuredCloneData; use dom::bindings::trace::{JSTraceable, trace_collections, RootedVec}; diff --git a/components/script/webdriver_handlers.rs b/components/script/webdriver_handlers.rs index 4d0aeca61cc..d021c28e38e 100644 --- a/components/script/webdriver_handlers.rs +++ b/components/script/webdriver_handlers.rs @@ -5,7 +5,7 @@ use webdriver_traits::{EvaluateJSReply}; use dom::bindings::conversions::FromJSValConvertible; use dom::bindings::conversions::StringificationBehavior; -use dom::bindings::js::OptionalRootable; +use dom::bindings::js::{OptionalRootable, Rootable}; use dom::window::ScriptHelpers; use dom::document::DocumentHelpers; use page::Page; |