aboutsummaryrefslogtreecommitdiffstats
path: root/components
diff options
context:
space:
mode:
Diffstat (limited to 'components')
-rw-r--r--components/script/dom/bindings/trace.rs1
-rw-r--r--components/script/dom/bindings/utils.rs3
-rw-r--r--components/script/dom/blob.rs1
-rw-r--r--components/script/dom/characterdata.rs1
-rw-r--r--components/script/dom/comment.rs5
-rw-r--r--components/script/dom/console.rs1
-rw-r--r--components/script/dom/customevent.rs1
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs1
-rw-r--r--components/script/dom/documentfragment.rs5
-rw-r--r--components/script/dom/documenttype.rs3
-rw-r--r--components/script/dom/domexception.rs1
-rw-r--r--components/script/dom/domrect.rs5
-rw-r--r--components/script/dom/element.rs8
-rw-r--r--components/script/dom/event.rs1
-rw-r--r--components/script/dom/eventtarget.rs1
-rw-r--r--components/script/dom/file.rs1
-rw-r--r--components/script/dom/htmlelement.rs1
-rw-r--r--components/script/dom/location.rs1
-rw-r--r--components/script/dom/messageevent.rs1
-rw-r--r--components/script/dom/mouseevent.rs1
-rw-r--r--components/script/dom/navigator.rs1
-rw-r--r--components/script/dom/node.rs1
-rw-r--r--components/script/dom/nodeiterator.rs1
-rw-r--r--components/script/dom/nodelist.rs2
-rw-r--r--components/script/dom/performancetiming.rs2
-rw-r--r--components/script/dom/processinginstruction.rs1
-rw-r--r--components/script/dom/progressevent.rs1
-rw-r--r--components/script/dom/range.rs1
-rw-r--r--components/script/dom/screen.rs1
-rw-r--r--components/script/dom/text.rs1
-rw-r--r--components/script/dom/treewalker.rs1
-rw-r--r--components/script/dom/uievent.rs1
-rw-r--r--components/script/dom/urlsearchparams.rs1
-rw-r--r--components/script/dom/validitystate.rs1
-rw-r--r--components/script/dom/window.rs1
-rw-r--r--components/script/dom/workerglobalscope.rs1
-rw-r--r--components/script/dom/workerlocation.rs1
-rw-r--r--components/script/dom/workernavigator.rs1
-rw-r--r--components/script/dom/xmlhttprequesteventtarget.rs1
-rw-r--r--components/script/dom/xmlhttprequestupload.rs1
40 files changed, 53 insertions, 12 deletions
diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs
index 42d944e9781..b160508a761 100644
--- a/components/script/dom/bindings/trace.rs
+++ b/components/script/dom/bindings/trace.rs
@@ -83,6 +83,7 @@ pub fn trace_jsval(tracer: *mut JSTracer, description: &str, val: JSVal) {
}
/// Trace the `JSObject` held by `reflector`.
+#[allow(unrooted_must_root)]
pub fn trace_reflector(tracer: *mut JSTracer, description: &str, reflector: &Reflector) {
trace_object(tracer, description, reflector.get_jsobject())
}
diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs
index ae9a19a3a29..0f6ab2098fe 100644
--- a/components/script/dom/bindings/utils.rs
+++ b/components/script/dom/bindings/utils.rs
@@ -455,8 +455,9 @@ pub fn reflect_dom_object<T: Reflectable>
}
/// A struct to store a reference to the reflector of a DOM object.
-#[allow(raw_pointer_deriving)]
+#[allow(raw_pointer_deriving, unrooted_must_root)]
#[deriving(PartialEq)]
+#[must_root]
pub struct Reflector {
object: Cell<*mut JSObject>,
}
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index 1a7d2a21636..0bbdca9f93d 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -16,6 +16,7 @@ pub enum BlobType {
}
#[deriving(Encodable)]
+#[must_root]
pub struct Blob {
reflector_: Reflector,
type_: BlobType
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index ebb17cf6993..371d53884ff 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -18,6 +18,7 @@ use servo_util::str::DOMString;
use std::cell::RefCell;
#[deriving(Encodable)]
+#[must_root]
pub struct CharacterData {
pub node: Node,
pub data: Traceable<RefCell<DOMString>>,
diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs
index e50b24b2a58..dd070df87ac 100644
--- a/components/script/dom/comment.rs
+++ b/components/script/dom/comment.rs
@@ -17,6 +17,7 @@ use servo_util::str::DOMString;
/// An HTML comment.
#[deriving(Encodable)]
+#[must_root]
pub struct Comment {
pub characterdata: CharacterData,
}
@@ -35,8 +36,8 @@ impl Comment {
}
pub fn new(text: DOMString, document: &JSRef<Document>) -> Temporary<Comment> {
- let node = Comment::new_inherited(text, document);
- Node::reflect_node(box node, document, CommentBinding::Wrap)
+ Node::reflect_node(box Comment::new_inherited(text, document),
+ document, CommentBinding::Wrap)
}
pub fn Constructor(global: &GlobalRef, data: DOMString) -> Fallible<Temporary<Comment>> {
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs
index 3e74617ebcf..d761252eaef 100644
--- a/components/script/dom/console.rs
+++ b/components/script/dom/console.rs
@@ -10,6 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct Console {
pub reflector_: Reflector
}
diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs
index 159601783ac..5c3db95ff75 100644
--- a/components/script/dom/customevent.rs
+++ b/components/script/dom/customevent.rs
@@ -19,6 +19,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
#[deriving(Encodable)]
+#[must_root]
pub struct CustomEvent {
event: Event,
detail: Traceable<Cell<Traceable<JSVal>>>,
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 15bf075df44..54d7684a0c6 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -37,6 +37,7 @@ use native::task::NativeTaskBuilder;
use url::Url;
#[deriving(Encodable)]
+#[must_root]
pub struct DedicatedWorkerGlobalScope {
workerglobalscope: WorkerGlobalScope,
receiver: Untraceable<Receiver<ScriptMsg>>,
diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs
index 1f3fcb29424..c8d8b961113 100644
--- a/components/script/dom/documentfragment.rs
+++ b/components/script/dom/documentfragment.rs
@@ -19,6 +19,7 @@ use dom::nodelist::NodeList;
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct DocumentFragment {
pub node: Node,
}
@@ -38,8 +39,8 @@ impl DocumentFragment {
}
pub fn new(document: &JSRef<Document>) -> Temporary<DocumentFragment> {
- let node = DocumentFragment::new_inherited(document);
- Node::reflect_node(box node, document, DocumentFragmentBinding::Wrap)
+ Node::reflect_node(box DocumentFragment::new_inherited(document),
+ document, DocumentFragmentBinding::Wrap)
}
pub fn Constructor(global: &GlobalRef) -> Fallible<Temporary<DocumentFragment>> {
diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs
index 5f101942139..f0d6bba5bac 100644
--- a/components/script/dom/documenttype.rs
+++ b/components/script/dom/documenttype.rs
@@ -14,6 +14,7 @@ use servo_util::str::DOMString;
/// The `DOCTYPE` tag.
#[deriving(Encodable)]
+#[must_root]
pub struct DocumentType {
pub node: Node,
pub name: DOMString,
@@ -40,7 +41,7 @@ impl DocumentType {
system_id: system_id.unwrap_or("".to_string())
}
}
-
+ #[allow(unrooted_must_root)]
pub fn new(name: DOMString,
public_id: Option<DOMString>,
system_id: Option<DOMString>,
diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs
index 7d1ba33ffb8..633eaa452f0 100644
--- a/components/script/dom/domexception.rs
+++ b/components/script/dom/domexception.rs
@@ -60,6 +60,7 @@ impl DOMErrorName {
}
#[deriving(Encodable)]
+#[must_root]
pub struct DOMException {
pub code: DOMErrorName,
pub reflector_: Reflector
diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs
index 2cf75ee4eb9..cc2643ac4b5 100644
--- a/components/script/dom/domrect.rs
+++ b/components/script/dom/domrect.rs
@@ -11,6 +11,7 @@ use dom::window::Window;
use servo_util::geometry::Au;
#[deriving(Encodable)]
+#[must_root]
pub struct DOMRect {
reflector_: Reflector,
top: f32,
@@ -34,8 +35,8 @@ impl DOMRect {
pub fn new(window: &JSRef<Window>,
top: Au, bottom: Au,
left: Au, right: Au) -> Temporary<DOMRect> {
- let rect = DOMRect::new_inherited(top, bottom, left, right);
- reflect_dom_object(box rect, &Window(*window), DOMRectBinding::Wrap)
+ reflect_dom_object(box DOMRect::new_inherited(top, bottom, left, right),
+ &Window(*window), DOMRectBinding::Wrap)
}
}
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index e38b0ee82c2..ff7e4e1e925 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -42,6 +42,7 @@ use std::cell::{Cell, RefCell};
use std::mem;
#[deriving(Encodable)]
+#[must_root]
pub struct Element {
pub node: Node,
pub local_name: Atom,
@@ -160,8 +161,8 @@ impl Element {
}
pub fn new(local_name: DOMString, namespace: Namespace, prefix: Option<DOMString>, document: &JSRef<Document>) -> Temporary<Element> {
- let element = Element::new_inherited(ElementTypeId, local_name, namespace, prefix, document);
- Node::reflect_node(box element, document, ElementBinding::Wrap)
+ Node::reflect_node(box Element::new_inherited(ElementTypeId, local_name, namespace, prefix, document),
+ document, ElementBinding::Wrap)
}
}
@@ -173,6 +174,7 @@ pub trait RawLayoutElementHelpers {
impl RawLayoutElementHelpers for Element {
#[inline]
+ #[allow(unrooted_must_root)]
unsafe fn get_attr_val_for_layout(&self, namespace: &Namespace, name: &str)
-> Option<&'static str> {
// cast to point to T in RefCell<T> directly
@@ -188,6 +190,7 @@ impl RawLayoutElementHelpers for Element {
}
#[inline]
+ #[allow(unrooted_must_root)]
unsafe fn get_attr_atom_for_layout(&self, namespace: &Namespace, name: &str)
-> Option<Atom> {
// cast to point to T in RefCell<T> directly
@@ -203,6 +206,7 @@ impl RawLayoutElementHelpers for Element {
}
#[inline]
+ #[allow(unrooted_must_root)]
unsafe fn has_class_for_layout(&self, name: &str) -> bool {
let attrs: *const Vec<JS<Attr>> = mem::transmute(&self.attrs);
(*attrs).iter().find(|attr: & &JS<Attr>| {
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index 15709ad5bc1..075a660cf45 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -35,6 +35,7 @@ pub enum EventTypeId {
}
#[deriving(Encodable)]
+#[must_root]
pub struct Event {
pub type_id: EventTypeId,
reflector_: Reflector,
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index 4f2cba18def..689dd3096e2 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -62,6 +62,7 @@ pub struct EventListenerEntry {
}
#[deriving(Encodable)]
+#[must_root]
pub struct EventTarget {
pub type_id: EventTargetTypeId,
reflector_: Reflector,
diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs
index c4c07e03399..cfa6daab91b 100644
--- a/components/script/dom/file.rs
+++ b/components/script/dom/file.rs
@@ -11,6 +11,7 @@ use dom::blob::{Blob, BlobType, FileTypeId};
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct File {
pub blob: Blob,
pub name: DOMString,
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index 076ba5fddce..08ab88463c4 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -22,6 +22,7 @@ use servo_util::namespace;
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[allow(unrooted_must_root)]
pub struct HTMLElement {
pub element: Element
}
diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs
index e310c52d49e..0a1f6fd842f 100644
--- a/components/script/dom/location.rs
+++ b/components/script/dom/location.rs
@@ -15,6 +15,7 @@ use servo_util::str::DOMString;
use std::rc::Rc;
#[deriving(Encodable)]
+#[must_root]
pub struct Location {
reflector_: Reflector, //XXXjdm cycle: window->Location->window
page: Rc<Page>,
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs
index 13c8cf52dfd..9b6ab748256 100644
--- a/components/script/dom/messageevent.rs
+++ b/components/script/dom/messageevent.rs
@@ -20,6 +20,7 @@ use js::jsapi::JSContext;
use js::jsval::JSVal;
#[deriving(Encodable)]
+#[must_root]
pub struct MessageEvent {
event: Event,
data: Traceable<JSVal>,
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs
index aa750b501ba..f214f6de684 100644
--- a/components/script/dom/mouseevent.rs
+++ b/components/script/dom/mouseevent.rs
@@ -19,6 +19,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
#[deriving(Encodable)]
+#[must_root]
pub struct MouseEvent {
pub mouseevent: UIEvent,
pub screen_x: Traceable<Cell<i32>>,
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index d1d7596aa6e..12ac99ec2cd 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -11,6 +11,7 @@ use dom::window::Window;
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct Navigator {
pub reflector_: Reflector //XXXjdm cycle: window->navigator->window
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 90dd959e10f..b46adc488fd 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -68,6 +68,7 @@ use serialize::{Encoder, Encodable};
/// An HTML node.
#[deriving(Encodable)]
+#[must_root]
pub struct Node {
/// The JavaScript reflector for this node.
pub eventtarget: EventTarget,
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index f890f71cf4f..5febb54cd5a 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -9,6 +9,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
#[deriving(Encodable)]
+#[must_root]
pub struct NodeIterator {
pub reflector_: Reflector
}
diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs
index 0ebd2e0db25..322c70c3135 100644
--- a/components/script/dom/nodelist.rs
+++ b/components/script/dom/nodelist.rs
@@ -25,7 +25,6 @@ pub struct NodeList {
}
impl NodeList {
- #[allow(unrooted_must_root)]
pub fn new_inherited(list_type: NodeListType) -> NodeList {
NodeList {
list_type: list_type,
@@ -33,7 +32,6 @@ impl NodeList {
}
}
- #[allow(unrooted_must_root)]
pub fn new(window: &JSRef<Window>,
list_type: NodeListType) -> Temporary<NodeList> {
reflect_dom_object(box NodeList::new_inherited(list_type),
diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs
index f4331e06c0b..4e12942010b 100644
--- a/components/script/dom/performancetiming.rs
+++ b/components/script/dom/performancetiming.rs
@@ -10,6 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
#[deriving(Encodable)]
+#[must_root]
pub struct PerformanceTiming {
reflector_: Reflector,
navigationStart: u64,
@@ -26,6 +27,7 @@ impl PerformanceTiming {
}
}
+ #[allow(unrooted_must_root)]
pub fn new(window: &JSRef<Window>) -> Temporary<PerformanceTiming> {
let timing = PerformanceTiming::new_inherited(window.navigationStart,
window.navigationStartPrecise);
diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs
index 40e6ca63e04..26dd207f343 100644
--- a/components/script/dom/processinginstruction.rs
+++ b/components/script/dom/processinginstruction.rs
@@ -15,6 +15,7 @@ use servo_util::str::DOMString;
/// An HTML processing instruction node.
#[deriving(Encodable)]
+#[must_root]
pub struct ProcessingInstruction {
pub characterdata: CharacterData,
pub target: DOMString,
diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs
index d001785984f..03230615d3d 100644
--- a/components/script/dom/progressevent.rs
+++ b/components/script/dom/progressevent.rs
@@ -14,6 +14,7 @@ use dom::event::{Event, ProgressEventTypeId};
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct ProgressEvent {
event: Event,
length_computable: bool,
diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs
index 3ed02410a1e..b1f1ba7bf9c 100644
--- a/components/script/dom/range.rs
+++ b/components/script/dom/range.rs
@@ -12,6 +12,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::document::Document;
#[deriving(Encodable)]
+#[must_root]
pub struct Range {
reflector_: Reflector
}
diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs
index 0e184d94ec3..9b2155baadc 100644
--- a/components/script/dom/screen.rs
+++ b/components/script/dom/screen.rs
@@ -10,6 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
#[deriving(Encodable)]
+#[must_root]
pub struct Screen {
reflector_: Reflector,
}
diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs
index 1bbd25cb8ff..a8cbef5b852 100644
--- a/components/script/dom/text.rs
+++ b/components/script/dom/text.rs
@@ -17,6 +17,7 @@ use servo_util::str::DOMString;
/// An HTML text node.
#[deriving(Encodable)]
+#[must_root]
pub struct Text {
pub characterdata: CharacterData,
}
diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs
index dc192c359ce..89717cfb64f 100644
--- a/components/script/dom/treewalker.rs
+++ b/components/script/dom/treewalker.rs
@@ -9,6 +9,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
#[deriving(Encodable)]
+#[must_root]
pub struct TreeWalker {
pub reflector_: Reflector
}
diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs
index c91f0fdb787..e8e381425bc 100644
--- a/components/script/dom/uievent.rs
+++ b/components/script/dom/uievent.rs
@@ -18,6 +18,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
#[deriving(Encodable)]
+#[must_root]
pub struct UIEvent {
pub event: Event,
view: Cell<Option<JS<Window>>>,
diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs
index 63fffe6bbf5..e1d3d3e9902 100644
--- a/components/script/dom/urlsearchparams.rs
+++ b/components/script/dom/urlsearchparams.rs
@@ -22,6 +22,7 @@ use std::fmt::radix;
use std::ascii::OwnedStrAsciiExt;
#[deriving(Encodable)]
+#[must_root]
pub struct URLSearchParams {
data: Traceable<RefCell<HashMap<DOMString, Vec<DOMString>>>>,
reflector_: Reflector,
diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs
index c2901009c41..382a55fa8c6 100644
--- a/components/script/dom/validitystate.rs
+++ b/components/script/dom/validitystate.rs
@@ -9,6 +9,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
#[deriving(Encodable)]
+#[must_root]
pub struct ValidityState {
reflector_: Reflector,
state: u8,
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 23b6c71e029..d9c9cd5c6c6 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -73,6 +73,7 @@ impl TimerHandle {
}
#[deriving(Encodable)]
+#[must_root]
pub struct Window {
eventtarget: EventTarget,
pub script_chan: ScriptChan,
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index dcf205cf3a9..04cff550a03 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -30,6 +30,7 @@ pub enum WorkerGlobalScopeId {
}
#[deriving(Encodable)]
+#[must_root]
pub struct WorkerGlobalScope {
pub eventtarget: EventTarget,
worker_url: Untraceable<Url>,
diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs
index 0d32c211554..8154d4d01b7 100644
--- a/components/script/dom/workerlocation.rs
+++ b/components/script/dom/workerlocation.rs
@@ -15,6 +15,7 @@ use servo_util::str::DOMString;
use url::Url;
#[deriving(Encodable)]
+#[must_root]
pub struct WorkerLocation {
reflector_: Reflector,
url: Untraceable<Url>,
diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs
index e732696617d..4acdaa67ff3 100644
--- a/components/script/dom/workernavigator.rs
+++ b/components/script/dom/workernavigator.rs
@@ -11,6 +11,7 @@ use dom::workerglobalscope::WorkerGlobalScope;
use servo_util::str::DOMString;
#[deriving(Encodable)]
+#[must_root]
pub struct WorkerNavigator {
reflector_: Reflector,
}
diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs
index 06c42fbdc4e..5b3489edce0 100644
--- a/components/script/dom/xmlhttprequesteventtarget.rs
+++ b/components/script/dom/xmlhttprequesteventtarget.rs
@@ -12,6 +12,7 @@ use dom::eventtarget::{EventTarget, EventTargetHelpers, XMLHttpRequestTargetType
use dom::xmlhttprequest::XMLHttpRequestId;
#[deriving(Encodable)]
+#[must_root]
pub struct XMLHttpRequestEventTarget {
pub eventtarget: EventTarget,
}
diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs
index 477d382bffe..57e98ff62f8 100644
--- a/components/script/dom/xmlhttprequestupload.rs
+++ b/components/script/dom/xmlhttprequestupload.rs
@@ -12,6 +12,7 @@ use dom::xmlhttprequest::{XMLHttpRequestUploadTypeId};
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
#[deriving(Encodable)]
+#[must_root]
pub struct XMLHttpRequestUpload {
eventtarget: XMLHttpRequestEventTarget
}