aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--components/script/dom/attr.rs4
-rw-r--r--components/script/dom/blob.rs4
-rw-r--r--components/script/dom/browsercontext.rs4
-rw-r--r--components/script/dom/canvasrenderingcontext2d.rs4
-rw-r--r--components/script/dom/characterdata.rs4
-rw-r--r--components/script/dom/comment.rs4
-rw-r--r--components/script/dom/console.rs4
-rw-r--r--components/script/dom/customevent.rs4
-rw-r--r--components/script/dom/dedicatedworkerglobalscope.rs4
-rw-r--r--components/script/dom/document.rs4
-rw-r--r--components/script/dom/documentfragment.rs4
-rw-r--r--components/script/dom/documenttype.rs4
-rw-r--r--components/script/dom/domexception.rs4
-rw-r--r--components/script/dom/domimplementation.rs4
-rw-r--r--components/script/dom/domparser.rs4
-rw-r--r--components/script/dom/domrect.rs4
-rw-r--r--components/script/dom/domrectlist.rs4
-rw-r--r--components/script/dom/domtokenlist.rs4
-rw-r--r--components/script/dom/element.rs4
-rw-r--r--components/script/dom/event.rs4
-rw-r--r--components/script/dom/eventtarget.rs4
-rw-r--r--components/script/dom/file.rs4
-rw-r--r--components/script/dom/formdata.rs4
-rw-r--r--components/script/dom/htmlanchorelement.rs4
-rw-r--r--components/script/dom/htmlappletelement.rs4
-rw-r--r--components/script/dom/htmlaudioelement.rs4
-rw-r--r--components/script/dom/htmlbaseelement.rs4
-rw-r--r--components/script/dom/htmlbodyelement.rs4
-rw-r--r--components/script/dom/htmlbrelement.rs4
-rw-r--r--components/script/dom/htmlbuttonelement.rs4
-rw-r--r--components/script/dom/htmlcanvaselement.rs4
-rw-r--r--components/script/dom/htmlcollection.rs4
-rw-r--r--components/script/dom/htmldataelement.rs4
-rw-r--r--components/script/dom/htmldatalistelement.rs4
-rw-r--r--components/script/dom/htmldirectoryelement.rs4
-rw-r--r--components/script/dom/htmldivelement.rs4
-rw-r--r--components/script/dom/htmldlistelement.rs4
-rw-r--r--components/script/dom/htmlelement.rs4
-rw-r--r--components/script/dom/htmlembedelement.rs4
-rw-r--r--components/script/dom/htmlfieldsetelement.rs4
-rw-r--r--components/script/dom/htmlfontelement.rs4
-rw-r--r--components/script/dom/htmlformelement.rs4
-rw-r--r--components/script/dom/htmlframeelement.rs4
-rw-r--r--components/script/dom/htmlframesetelement.rs4
-rw-r--r--components/script/dom/htmlheadelement.rs4
-rw-r--r--components/script/dom/htmlheadingelement.rs4
-rw-r--r--components/script/dom/htmlhrelement.rs4
-rw-r--r--components/script/dom/htmlhtmlelement.rs4
-rw-r--r--components/script/dom/htmliframeelement.rs4
-rw-r--r--components/script/dom/htmlimageelement.rs4
-rw-r--r--components/script/dom/htmlinputelement.rs4
-rw-r--r--components/script/dom/htmllabelelement.rs4
-rw-r--r--components/script/dom/htmllegendelement.rs4
-rw-r--r--components/script/dom/htmllielement.rs4
-rw-r--r--components/script/dom/htmllinkelement.rs4
-rw-r--r--components/script/dom/htmlmapelement.rs4
-rw-r--r--components/script/dom/htmlmediaelement.rs4
-rw-r--r--components/script/dom/htmlmetaelement.rs4
-rw-r--r--components/script/dom/htmlmeterelement.rs4
-rw-r--r--components/script/dom/htmlmodelement.rs4
-rw-r--r--components/script/dom/htmlobjectelement.rs4
-rw-r--r--components/script/dom/htmlolistelement.rs4
-rw-r--r--components/script/dom/htmloptgroupelement.rs4
-rw-r--r--components/script/dom/htmloptionelement.rs4
-rw-r--r--components/script/dom/htmloutputelement.rs4
-rw-r--r--components/script/dom/htmlparagraphelement.rs4
-rw-r--r--components/script/dom/htmlparamelement.rs4
-rw-r--r--components/script/dom/htmlpreelement.rs4
-rw-r--r--components/script/dom/htmlprogresselement.rs4
-rw-r--r--components/script/dom/htmlquoteelement.rs4
-rw-r--r--components/script/dom/htmlscriptelement.rs4
-rw-r--r--components/script/dom/htmlselectelement.rs4
-rw-r--r--components/script/dom/htmlsourceelement.rs4
-rw-r--r--components/script/dom/htmlspanelement.rs4
-rw-r--r--components/script/dom/htmlstyleelement.rs4
-rw-r--r--components/script/dom/htmltablecaptionelement.rs4
-rw-r--r--components/script/dom/htmltablecellelement.rs4
-rw-r--r--components/script/dom/htmltablecolelement.rs4
-rw-r--r--components/script/dom/htmltabledatacellelement.rs4
-rw-r--r--components/script/dom/htmltableelement.rs4
-rw-r--r--components/script/dom/htmltableheadercellelement.rs4
-rw-r--r--components/script/dom/htmltablerowelement.rs4
-rw-r--r--components/script/dom/htmltablesectionelement.rs4
-rw-r--r--components/script/dom/htmltemplateelement.rs4
-rw-r--r--components/script/dom/htmltextareaelement.rs4
-rw-r--r--components/script/dom/htmltimeelement.rs4
-rw-r--r--components/script/dom/htmltitleelement.rs4
-rw-r--r--components/script/dom/htmltrackelement.rs4
-rw-r--r--components/script/dom/htmlulistelement.rs4
-rw-r--r--components/script/dom/htmlunknownelement.rs4
-rw-r--r--components/script/dom/htmlvideoelement.rs4
-rw-r--r--components/script/dom/location.rs4
-rw-r--r--components/script/dom/messageevent.rs4
-rw-r--r--components/script/dom/mouseevent.rs4
-rw-r--r--components/script/dom/namednodemap.rs4
-rw-r--r--components/script/dom/navigator.rs4
-rw-r--r--components/script/dom/node.rs4
-rw-r--r--components/script/dom/nodeiterator.rs4
-rw-r--r--components/script/dom/nodelist.rs4
-rw-r--r--components/script/dom/performance.rs4
-rw-r--r--components/script/dom/performancetiming.rs4
-rw-r--r--components/script/dom/processinginstruction.rs4
-rw-r--r--components/script/dom/progressevent.rs4
-rw-r--r--components/script/dom/range.rs4
-rw-r--r--components/script/dom/screen.rs4
-rw-r--r--components/script/dom/testbinding.rs4
-rw-r--r--components/script/dom/text.rs4
-rw-r--r--components/script/dom/treewalker.rs4
-rw-r--r--components/script/dom/uievent.rs4
-rw-r--r--components/script/dom/urlsearchparams.rs4
-rw-r--r--components/script/dom/validitystate.rs4
-rw-r--r--components/script/dom/window.rs4
-rw-r--r--components/script/dom/worker.rs4
-rw-r--r--components/script/dom/workerglobalscope.rs4
-rw-r--r--components/script/dom/workerlocation.rs4
-rw-r--r--components/script/dom/workernavigator.rs4
-rw-r--r--components/script/dom/xmlhttprequest.rs4
-rw-r--r--components/script/dom/xmlhttprequesteventtarget.rs4
-rw-r--r--components/script/dom/xmlhttprequestupload.rs4
119 files changed, 119 insertions, 357 deletions
diff --git a/components/script/dom/attr.rs b/components/script/dom/attr.rs
index f4dd6e85d7b..896c65d1c13 100644
--- a/components/script/dom/attr.rs
+++ b/components/script/dom/attr.rs
@@ -69,9 +69,7 @@ impl Str for AttrValue {
}
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Attr {
reflector_: Reflector,
local_name: Atom,
diff --git a/components/script/dom/blob.rs b/components/script/dom/blob.rs
index 5849b75ff10..f59c690360e 100644
--- a/components/script/dom/blob.rs
+++ b/components/script/dom/blob.rs
@@ -15,9 +15,7 @@ pub enum BlobType {
FileTypeId
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Blob {
reflector_: Reflector,
type_: BlobType
diff --git a/components/script/dom/browsercontext.rs b/components/script/dom/browsercontext.rs
index 9f6041710e3..1a64068bd9d 100644
--- a/components/script/dom/browsercontext.rs
+++ b/components/script/dom/browsercontext.rs
@@ -65,9 +65,7 @@ impl BrowserContext {
}
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct SessionHistoryEntry {
document: JS<Document>,
children: Vec<BrowserContext>
diff --git a/components/script/dom/canvasrenderingcontext2d.rs b/components/script/dom/canvasrenderingcontext2d.rs
index c9a19c3301c..0c665645af6 100644
--- a/components/script/dom/canvasrenderingcontext2d.rs
+++ b/components/script/dom/canvasrenderingcontext2d.rs
@@ -15,9 +15,7 @@ use geom::size::Size2D;
use canvas::canvas_render_task::{CanvasMsg, CanvasRenderTask, ClearRect, Close, FillRect, Recreate, StrokeRect};
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct CanvasRenderingContext2D {
reflector_: Reflector,
global: GlobalField,
diff --git a/components/script/dom/characterdata.rs b/components/script/dom/characterdata.rs
index 3a5ebcf6ab6..a5eec3d8dc1 100644
--- a/components/script/dom/characterdata.rs
+++ b/components/script/dom/characterdata.rs
@@ -15,9 +15,7 @@ use dom::eventtarget::{EventTarget, NodeTargetTypeId};
use dom::node::{CommentNodeTypeId, Node, NodeTypeId, TextNodeTypeId, ProcessingInstructionNodeTypeId, NodeHelpers};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct CharacterData {
node: Node,
data: DOMRefCell<DOMString>,
diff --git a/components/script/dom/comment.rs b/components/script/dom/comment.rs
index 8da33dab01f..e55483f39cd 100644
--- a/components/script/dom/comment.rs
+++ b/components/script/dom/comment.rs
@@ -16,9 +16,7 @@ use dom::node::{CommentNodeTypeId, Node};
use servo_util::str::DOMString;
/// An HTML comment.
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Comment {
characterdata: CharacterData,
}
diff --git a/components/script/dom/console.rs b/components/script/dom/console.rs
index a62d2ad4047..b2a10f0c071 100644
--- a/components/script/dom/console.rs
+++ b/components/script/dom/console.rs
@@ -9,9 +9,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Console {
reflector_: Reflector
}
diff --git a/components/script/dom/customevent.rs b/components/script/dom/customevent.rs
index b6549f28a16..3cad0e2ddba 100644
--- a/components/script/dom/customevent.rs
+++ b/components/script/dom/customevent.rs
@@ -17,9 +17,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct CustomEvent {
event: Event,
detail: Cell<JSVal>,
diff --git a/components/script/dom/dedicatedworkerglobalscope.rs b/components/script/dom/dedicatedworkerglobalscope.rs
index 902e0e44763..1e81f8d9e9f 100644
--- a/components/script/dom/dedicatedworkerglobalscope.rs
+++ b/components/script/dom/dedicatedworkerglobalscope.rs
@@ -36,9 +36,7 @@ use std::task::TaskBuilder;
use native::task::NativeTaskBuilder;
use url::Url;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DedicatedWorkerGlobalScope {
workerglobalscope: WorkerGlobalScope,
receiver: Receiver<ScriptMsg>,
diff --git a/components/script/dom/document.rs b/components/script/dom/document.rs
index 2a4f70fdf95..4843fe0207c 100644
--- a/components/script/dom/document.rs
+++ b/components/script/dom/document.rs
@@ -73,9 +73,7 @@ pub enum IsHTMLDocument {
NonHTMLDocument,
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Document {
node: Node,
window: JS<Window>,
diff --git a/components/script/dom/documentfragment.rs b/components/script/dom/documentfragment.rs
index 8b3b8e6bba6..65fa818e033 100644
--- a/components/script/dom/documentfragment.rs
+++ b/components/script/dom/documentfragment.rs
@@ -18,9 +18,7 @@ use dom::node::{DocumentFragmentNodeTypeId, Node, NodeHelpers, window_from_node}
use dom::nodelist::NodeList;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DocumentFragment {
node: Node,
}
diff --git a/components/script/dom/documenttype.rs b/components/script/dom/documenttype.rs
index 683b1c56ae0..f293208d1f9 100644
--- a/components/script/dom/documenttype.rs
+++ b/components/script/dom/documenttype.rs
@@ -13,9 +13,7 @@ use dom::node::{Node, DoctypeNodeTypeId, NodeHelpers};
use servo_util::str::DOMString;
/// The `DOCTYPE` tag.
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DocumentType {
node: Node,
name: DOMString,
diff --git a/components/script/dom/domexception.rs b/components/script/dom/domexception.rs
index 8dc4e8f89f4..f3fc0027620 100644
--- a/components/script/dom/domexception.rs
+++ b/components/script/dom/domexception.rs
@@ -61,9 +61,7 @@ impl DOMErrorName {
}
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMException {
code: DOMErrorName,
reflector_: Reflector
diff --git a/components/script/dom/domimplementation.rs b/components/script/dom/domimplementation.rs
index 7e23d86f2bc..e2761ea5456 100644
--- a/components/script/dom/domimplementation.rs
+++ b/components/script/dom/domimplementation.rs
@@ -22,9 +22,7 @@ use dom::node::Node;
use dom::text::Text;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMImplementation {
document: JS<Document>,
reflector_: Reflector,
diff --git a/components/script/dom/domparser.rs b/components/script/dom/domparser.rs
index 7b6bbae3e7c..0ce5487159a 100644
--- a/components/script/dom/domparser.rs
+++ b/components/script/dom/domparser.rs
@@ -14,9 +14,7 @@ use dom::document::{Document, HTMLDocument, NonHTMLDocument};
use dom::window::Window;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMParser {
window: JS<Window>, //XXXjdm Document instead?
reflector_: Reflector
diff --git a/components/script/dom/domrect.rs b/components/script/dom/domrect.rs
index 39e9c4cbb0e..258ca71ca1e 100644
--- a/components/script/dom/domrect.rs
+++ b/components/script/dom/domrect.rs
@@ -10,9 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
use servo_util::geometry::Au;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMRect {
reflector_: Reflector,
top: f32,
diff --git a/components/script/dom/domrectlist.rs b/components/script/dom/domrectlist.rs
index 88ec6d5e148..5b9565fc25e 100644
--- a/components/script/dom/domrectlist.rs
+++ b/components/script/dom/domrectlist.rs
@@ -10,9 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::domrect::DOMRect;
use dom::window::Window;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMRectList {
reflector_: Reflector,
rects: Vec<JS<DOMRect>>,
diff --git a/components/script/dom/domtokenlist.rs b/components/script/dom/domtokenlist.rs
index a23e5e49bac..a7326fa8e2d 100644
--- a/components/script/dom/domtokenlist.rs
+++ b/components/script/dom/domtokenlist.rs
@@ -15,9 +15,7 @@ use dom::node::window_from_node;
use servo_util::str::{DOMString, HTML_SPACE_CHARACTERS};
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct DOMTokenList {
reflector_: Reflector,
element: JS<Element>,
diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs
index d9f995720a8..e5be7b2c039 100644
--- a/components/script/dom/element.rs
+++ b/components/script/dom/element.rs
@@ -45,9 +45,7 @@ use std::mem;
use string_cache::{Atom, Namespace};
use url::UrlParser;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Element {
node: Node,
local_name: Atom,
diff --git a/components/script/dom/event.rs b/components/script/dom/event.rs
index 05b3d6af3a5..e61bd15a3b0 100644
--- a/components/script/dom/event.rs
+++ b/components/script/dom/event.rs
@@ -47,9 +47,7 @@ pub enum EventCancelable {
NotCancelable
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Event {
type_id: EventTypeId,
reflector_: Reflector,
diff --git a/components/script/dom/eventtarget.rs b/components/script/dom/eventtarget.rs
index e51272cff6b..3a764c66a9d 100644
--- a/components/script/dom/eventtarget.rs
+++ b/components/script/dom/eventtarget.rs
@@ -65,9 +65,7 @@ pub struct EventListenerEntry {
listener: EventListenerType
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct EventTarget {
type_id: EventTargetTypeId,
reflector_: Reflector,
diff --git a/components/script/dom/file.rs b/components/script/dom/file.rs
index cb42537f63f..d6a056cb04b 100644
--- a/components/script/dom/file.rs
+++ b/components/script/dom/file.rs
@@ -10,9 +10,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::blob::{Blob, BlobType, FileTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct File {
blob: Blob,
name: DOMString,
diff --git a/components/script/dom/formdata.rs b/components/script/dom/formdata.rs
index 140ff809125..cd6dbf65143 100644
--- a/components/script/dom/formdata.rs
+++ b/components/script/dom/formdata.rs
@@ -25,9 +25,7 @@ pub enum FormDatum {
FileData(JS<File>)
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct FormData {
data: RefCell<HashMap<DOMString, Vec<FormDatum>>>,
reflector_: Reflector,
diff --git a/components/script/dom/htmlanchorelement.rs b/components/script/dom/htmlanchorelement.rs
index aad63f98ba8..72c5d2fe7ae 100644
--- a/components/script/dom/htmlanchorelement.rs
+++ b/components/script/dom/htmlanchorelement.rs
@@ -21,9 +21,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLAnchorElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlappletelement.rs b/components/script/dom/htmlappletelement.rs
index eeb7eb35188..4360d288b2c 100644
--- a/components/script/dom/htmlappletelement.rs
+++ b/components/script/dom/htmlappletelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLAppletElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlaudioelement.rs b/components/script/dom/htmlaudioelement.rs
index 9eed3b6c1db..216b255816a 100644
--- a/components/script/dom/htmlaudioelement.rs
+++ b/components/script/dom/htmlaudioelement.rs
@@ -13,9 +13,7 @@ use dom::htmlmediaelement::HTMLMediaElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLAudioElement {
htmlmediaelement: HTMLMediaElement
}
diff --git a/components/script/dom/htmlbaseelement.rs b/components/script/dom/htmlbaseelement.rs
index 7bf12bb0822..a91b6bd9791 100644
--- a/components/script/dom/htmlbaseelement.rs
+++ b/components/script/dom/htmlbaseelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLBaseElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlbodyelement.rs b/components/script/dom/htmlbodyelement.rs
index 7c0c0c17711..948a7192aa0 100644
--- a/components/script/dom/htmlbodyelement.rs
+++ b/components/script/dom/htmlbodyelement.rs
@@ -20,9 +20,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLBodyElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlbrelement.rs b/components/script/dom/htmlbrelement.rs
index 74811afe074..e2716c39357 100644
--- a/components/script/dom/htmlbrelement.rs
+++ b/components/script/dom/htmlbrelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLBRElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlbuttonelement.rs b/components/script/dom/htmlbuttonelement.rs
index ec2377297f3..e5b7a0da216 100644
--- a/components/script/dom/htmlbuttonelement.rs
+++ b/components/script/dom/htmlbuttonelement.rs
@@ -20,9 +20,7 @@ use std::ascii::OwnedStrAsciiExt;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLButtonElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlcanvaselement.rs b/components/script/dom/htmlcanvaselement.rs
index 69a96a086fc..af239a55ebe 100644
--- a/components/script/dom/htmlcanvaselement.rs
+++ b/components/script/dom/htmlcanvaselement.rs
@@ -28,9 +28,7 @@ use std::default::Default;
static DefaultWidth: u32 = 300;
static DefaultHeight: u32 = 150;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLCanvasElement {
htmlelement: HTMLElement,
context: MutNullableJS<CanvasRenderingContext2D>,
diff --git a/components/script/dom/htmlcollection.rs b/components/script/dom/htmlcollection.rs
index abd8b6857aa..6b62904c830 100644
--- a/components/script/dom/htmlcollection.rs
+++ b/components/script/dom/htmlcollection.rs
@@ -29,9 +29,7 @@ pub enum CollectionTypeId {
Live(JS<Node>, Box<CollectionFilter+'static>)
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLCollection {
collection: CollectionTypeId,
reflector_: Reflector,
diff --git a/components/script/dom/htmldataelement.rs b/components/script/dom/htmldataelement.rs
index 58e2ad90f73..33dfbfd7bd7 100644
--- a/components/script/dom/htmldataelement.rs
+++ b/components/script/dom/htmldataelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLDataElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmldatalistelement.rs b/components/script/dom/htmldatalistelement.rs
index 3363997142b..210c22b33a3 100644
--- a/components/script/dom/htmldatalistelement.rs
+++ b/components/script/dom/htmldatalistelement.rs
@@ -16,9 +16,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId, window_from_node};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLDataListElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmldirectoryelement.rs b/components/script/dom/htmldirectoryelement.rs
index f1cd840e298..21c675458b9 100644
--- a/components/script/dom/htmldirectoryelement.rs
+++ b/components/script/dom/htmldirectoryelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLDirectoryElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmldivelement.rs b/components/script/dom/htmldivelement.rs
index d35ad9dc4be..899c35f571a 100644
--- a/components/script/dom/htmldivelement.rs
+++ b/components/script/dom/htmldivelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLDivElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmldlistelement.rs b/components/script/dom/htmldlistelement.rs
index 643f7e81263..38828fb3957 100644
--- a/components/script/dom/htmldlistelement.rs
+++ b/components/script/dom/htmldlistelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLDListElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlelement.rs b/components/script/dom/htmlelement.rs
index 00ea736a07f..36488d9a2f9 100644
--- a/components/script/dom/htmlelement.rs
+++ b/components/script/dom/htmlelement.rs
@@ -20,9 +20,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLElement {
element: Element
}
diff --git a/components/script/dom/htmlembedelement.rs b/components/script/dom/htmlembedelement.rs
index e8de6bbd08a..f99d0f821df 100644
--- a/components/script/dom/htmlembedelement.rs
+++ b/components/script/dom/htmlembedelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLEmbedElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlfieldsetelement.rs b/components/script/dom/htmlfieldsetelement.rs
index 4ec69852e95..d4be6a3f00e 100644
--- a/components/script/dom/htmlfieldsetelement.rs
+++ b/components/script/dom/htmlfieldsetelement.rs
@@ -21,9 +21,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::{DOMString, StaticStringVec};
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLFieldSetElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlfontelement.rs b/components/script/dom/htmlfontelement.rs
index 5f11a672cc4..3edf195f2dc 100644
--- a/components/script/dom/htmlfontelement.rs
+++ b/components/script/dom/htmlfontelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLFontElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlformelement.rs b/components/script/dom/htmlformelement.rs
index ed18eb109f2..49c3486a186 100644
--- a/components/script/dom/htmlformelement.rs
+++ b/components/script/dom/htmlformelement.rs
@@ -30,9 +30,7 @@ use url::UrlParser;
use url::form_urlencoded::serialize;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLFormElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlframeelement.rs b/components/script/dom/htmlframeelement.rs
index 76a8b190cb1..23448387033 100644
--- a/components/script/dom/htmlframeelement.rs
+++ b/components/script/dom/htmlframeelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLFrameElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlframesetelement.rs b/components/script/dom/htmlframesetelement.rs
index 168ab8f73ec..9afa3ca02ef 100644
--- a/components/script/dom/htmlframesetelement.rs
+++ b/components/script/dom/htmlframesetelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLFrameSetElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlheadelement.rs b/components/script/dom/htmlheadelement.rs
index 51cbf9f9b88..b4bff814681 100644
--- a/components/script/dom/htmlheadelement.rs
+++ b/components/script/dom/htmlheadelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLHeadElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlheadingelement.rs b/components/script/dom/htmlheadingelement.rs
index 1f91a89abee..c52c7cf7c0f 100644
--- a/components/script/dom/htmlheadingelement.rs
+++ b/components/script/dom/htmlheadingelement.rs
@@ -23,9 +23,7 @@ pub enum HeadingLevel {
Heading6,
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLHeadingElement {
htmlelement: HTMLElement,
level: HeadingLevel,
diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs
index 95400b2713d..ec71ea141bd 100644
--- a/components/script/dom/htmlhrelement.rs
+++ b/components/script/dom/htmlhrelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLHRElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlhtmlelement.rs b/components/script/dom/htmlhtmlelement.rs
index f3cd408a31d..dddde174b73 100644
--- a/components/script/dom/htmlhtmlelement.rs
+++ b/components/script/dom/htmlhtmlelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLHtmlElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs
index 108fbbe4dc2..230a78df5b2 100644
--- a/components/script/dom/htmliframeelement.rs
+++ b/components/script/dom/htmliframeelement.rs
@@ -39,9 +39,7 @@ enum SandboxAllowance {
AllowPopups = 0x20
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLIFrameElement {
htmlelement: HTMLElement,
size: Cell<Option<IFrameSize>>,
diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs
index c706fcfcd7e..0128ebe0a3e 100644
--- a/components/script/dom/htmlimageelement.rs
+++ b/components/script/dom/htmlimageelement.rs
@@ -24,9 +24,7 @@ use url::{Url, UrlParser};
use std::cell::RefCell;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLImageElement {
htmlelement: HTMLElement,
image: RefCell<Option<Url>>,
diff --git a/components/script/dom/htmlinputelement.rs b/components/script/dom/htmlinputelement.rs
index 776ff10244d..74864165e71 100644
--- a/components/script/dom/htmlinputelement.rs
+++ b/components/script/dom/htmlinputelement.rs
@@ -44,9 +44,7 @@ enum InputType {
InputPassword
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLInputElement {
htmlelement: HTMLElement,
input_type: Cell<InputType>,
diff --git a/components/script/dom/htmllabelelement.rs b/components/script/dom/htmllabelelement.rs
index 59fe5479f53..f1932dc3ad3 100644
--- a/components/script/dom/htmllabelelement.rs
+++ b/components/script/dom/htmllabelelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLLabelElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmllegendelement.rs b/components/script/dom/htmllegendelement.rs
index 2d4725528ab..5e98fa5b986 100644
--- a/components/script/dom/htmllegendelement.rs
+++ b/components/script/dom/htmllegendelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLLegendElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmllielement.rs b/components/script/dom/htmllielement.rs
index f4d789ec549..16bbd46833f 100644
--- a/components/script/dom/htmllielement.rs
+++ b/components/script/dom/htmllielement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLLIElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmllinkelement.rs b/components/script/dom/htmllinkelement.rs
index 13c4bf3b513..5abde3469e0 100644
--- a/components/script/dom/htmllinkelement.rs
+++ b/components/script/dom/htmllinkelement.rs
@@ -21,9 +21,7 @@ use std::ascii::StrAsciiExt;
use url::UrlParser;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLLinkElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlmapelement.rs b/components/script/dom/htmlmapelement.rs
index 0cca9e14a84..e11c6bdf5c0 100644
--- a/components/script/dom/htmlmapelement.rs
+++ b/components/script/dom/htmlmapelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLMapElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlmediaelement.rs b/components/script/dom/htmlmediaelement.rs
index 54ff9308672..3cc03a64d1c 100644
--- a/components/script/dom/htmlmediaelement.rs
+++ b/components/script/dom/htmlmediaelement.rs
@@ -12,9 +12,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::ElementNodeTypeId;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLMediaElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlmetaelement.rs b/components/script/dom/htmlmetaelement.rs
index 4a38ebfbc3a..fda51c6d277 100644
--- a/components/script/dom/htmlmetaelement.rs
+++ b/components/script/dom/htmlmetaelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLMetaElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlmeterelement.rs b/components/script/dom/htmlmeterelement.rs
index 76e2f9400d0..bb88e499444 100644
--- a/components/script/dom/htmlmeterelement.rs
+++ b/components/script/dom/htmlmeterelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLMeterElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlmodelement.rs b/components/script/dom/htmlmodelement.rs
index 0fa5e2e0cd2..e1cc1af706e 100644
--- a/components/script/dom/htmlmodelement.rs
+++ b/components/script/dom/htmlmodelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLModElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlobjectelement.rs b/components/script/dom/htmlobjectelement.rs
index a7de41d3599..4e4789ea3cc 100644
--- a/components/script/dom/htmlobjectelement.rs
+++ b/components/script/dom/htmlobjectelement.rs
@@ -25,9 +25,7 @@ use string_cache::Atom;
use url::Url;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLObjectElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlolistelement.rs b/components/script/dom/htmlolistelement.rs
index 82c67341c31..8b1fdbe01d1 100644
--- a/components/script/dom/htmlolistelement.rs
+++ b/components/script/dom/htmlolistelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLOListElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmloptgroupelement.rs b/components/script/dom/htmloptgroupelement.rs
index e7fe66c2e0d..fac03df2f77 100644
--- a/components/script/dom/htmloptgroupelement.rs
+++ b/components/script/dom/htmloptgroupelement.rs
@@ -18,9 +18,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLOptGroupElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmloptionelement.rs b/components/script/dom/htmloptionelement.rs
index 1493e5cecef..648ec90f605 100644
--- a/components/script/dom/htmloptionelement.rs
+++ b/components/script/dom/htmloptionelement.rs
@@ -22,9 +22,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::{DOMString, split_html_space_chars};
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLOptionElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmloutputelement.rs b/components/script/dom/htmloutputelement.rs
index 0b9f0b0d872..4622fe02f98 100644
--- a/components/script/dom/htmloutputelement.rs
+++ b/components/script/dom/htmloutputelement.rs
@@ -15,9 +15,7 @@ use dom::node::{Node, ElementNodeTypeId, window_from_node};
use dom::validitystate::ValidityState;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLOutputElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlparagraphelement.rs b/components/script/dom/htmlparagraphelement.rs
index 66a70b6963f..a6d7b346b3a 100644
--- a/components/script/dom/htmlparagraphelement.rs
+++ b/components/script/dom/htmlparagraphelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLParagraphElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlparamelement.rs b/components/script/dom/htmlparamelement.rs
index 7845a767512..a7ceff0b1b3 100644
--- a/components/script/dom/htmlparamelement.rs
+++ b/components/script/dom/htmlparamelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLParamElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlpreelement.rs b/components/script/dom/htmlpreelement.rs
index 89799212226..7a25822a569 100644
--- a/components/script/dom/htmlpreelement.rs
+++ b/components/script/dom/htmlpreelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLPreElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlprogresselement.rs b/components/script/dom/htmlprogresselement.rs
index 65db0e536af..18bd90869b6 100644
--- a/components/script/dom/htmlprogresselement.rs
+++ b/components/script/dom/htmlprogresselement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLProgressElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlquoteelement.rs b/components/script/dom/htmlquoteelement.rs
index f028b3d9c5d..5dcdd92250a 100644
--- a/components/script/dom/htmlquoteelement.rs
+++ b/components/script/dom/htmlquoteelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLQuoteElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlscriptelement.rs b/components/script/dom/htmlscriptelement.rs
index e4c268d5713..b970596fbdd 100644
--- a/components/script/dom/htmlscriptelement.rs
+++ b/components/script/dom/htmlscriptelement.rs
@@ -18,9 +18,7 @@ use dom::node::{Node, NodeHelpers, ElementNodeTypeId};
use servo_util::str::{DOMString, HTML_SPACE_CHARACTERS, StaticStringVec};
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLScriptElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlselectelement.rs b/components/script/dom/htmlselectelement.rs
index 011254600d3..39d14b11935 100644
--- a/components/script/dom/htmlselectelement.rs
+++ b/components/script/dom/htmlselectelement.rs
@@ -21,9 +21,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLSelectElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlsourceelement.rs b/components/script/dom/htmlsourceelement.rs
index 8a7578febdf..900b581f358 100644
--- a/components/script/dom/htmlsourceelement.rs
+++ b/components/script/dom/htmlsourceelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLSourceElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlspanelement.rs b/components/script/dom/htmlspanelement.rs
index fba53a8b795..2a5ff463513 100644
--- a/components/script/dom/htmlspanelement.rs
+++ b/components/script/dom/htmlspanelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLSpanElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlstyleelement.rs b/components/script/dom/htmlstyleelement.rs
index 46c631fc730..f4d6a315638 100644
--- a/components/script/dom/htmlstyleelement.rs
+++ b/components/script/dom/htmlstyleelement.rs
@@ -17,9 +17,7 @@ use layout_interface::{AddStylesheetMsg, LayoutChan};
use servo_util::str::DOMString;
use style::Stylesheet;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLStyleElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltablecaptionelement.rs b/components/script/dom/htmltablecaptionelement.rs
index e1ecf1914ce..90380f37eb9 100644
--- a/components/script/dom/htmltablecaptionelement.rs
+++ b/components/script/dom/htmltablecaptionelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableCaptionElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs
index 6bd2d735695..18795031400 100644
--- a/components/script/dom/htmltablecellelement.rs
+++ b/components/script/dom/htmltablecellelement.rs
@@ -18,9 +18,7 @@ use servo_util::str;
use std::cell::Cell;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableCellElement {
htmlelement: HTMLElement,
width: Cell<LengthOrPercentageOrAuto>,
diff --git a/components/script/dom/htmltablecolelement.rs b/components/script/dom/htmltablecolelement.rs
index 03caf0e22b8..f9761151dc1 100644
--- a/components/script/dom/htmltablecolelement.rs
+++ b/components/script/dom/htmltablecolelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableColElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltabledatacellelement.rs b/components/script/dom/htmltabledatacellelement.rs
index 11b8b117a2c..535f2e4ffd5 100644
--- a/components/script/dom/htmltabledatacellelement.rs
+++ b/components/script/dom/htmltabledatacellelement.rs
@@ -13,9 +13,7 @@ use dom::htmltablecellelement::HTMLTableCellElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableDataCellElement {
htmltablecellelement: HTMLTableCellElement,
}
diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs
index e33a44cdd58..b39c8ebb3e3 100644
--- a/components/script/dom/htmltableelement.rs
+++ b/components/script/dom/htmltableelement.rs
@@ -17,9 +17,7 @@ use dom::htmltablecaptionelement::HTMLTableCaptionElement;
use dom::node::{Node, NodeHelpers, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltableheadercellelement.rs b/components/script/dom/htmltableheadercellelement.rs
index eae776a6903..03ae8a83d7e 100644
--- a/components/script/dom/htmltableheadercellelement.rs
+++ b/components/script/dom/htmltableheadercellelement.rs
@@ -13,9 +13,7 @@ use dom::htmltablecellelement::HTMLTableCellElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableHeaderCellElement {
htmltablecellelement: HTMLTableCellElement,
}
diff --git a/components/script/dom/htmltablerowelement.rs b/components/script/dom/htmltablerowelement.rs
index 45f1f06fe28..64bd1e66c11 100644
--- a/components/script/dom/htmltablerowelement.rs
+++ b/components/script/dom/htmltablerowelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableRowElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltablesectionelement.rs b/components/script/dom/htmltablesectionelement.rs
index f4a26c709ec..d10e4b82b44 100644
--- a/components/script/dom/htmltablesectionelement.rs
+++ b/components/script/dom/htmltablesectionelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTableSectionElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltemplateelement.rs b/components/script/dom/htmltemplateelement.rs
index 9e959937ec6..c0a125109dc 100644
--- a/components/script/dom/htmltemplateelement.rs
+++ b/components/script/dom/htmltemplateelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTemplateElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltextareaelement.rs b/components/script/dom/htmltextareaelement.rs
index 37fd0544f4f..274c2b08ee1 100644
--- a/components/script/dom/htmltextareaelement.rs
+++ b/components/script/dom/htmltextareaelement.rs
@@ -18,9 +18,7 @@ use dom::virtualmethods::VirtualMethods;
use servo_util::str::DOMString;
use string_cache::Atom;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTextAreaElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltimeelement.rs b/components/script/dom/htmltimeelement.rs
index 4cf70e20214..3f21071fd2b 100644
--- a/components/script/dom/htmltimeelement.rs
+++ b/components/script/dom/htmltimeelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTimeElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmltitleelement.rs b/components/script/dom/htmltitleelement.rs
index 5e7d8fbd1b3..ef8b70aa4fa 100644
--- a/components/script/dom/htmltitleelement.rs
+++ b/components/script/dom/htmltitleelement.rs
@@ -16,9 +16,7 @@ use dom::node::{Node, NodeHelpers, ElementNodeTypeId};
use dom::text::Text;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTitleElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmltrackelement.rs b/components/script/dom/htmltrackelement.rs
index f1ae254b365..ae1a164ad05 100644
--- a/components/script/dom/htmltrackelement.rs
+++ b/components/script/dom/htmltrackelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLTrackElement {
htmlelement: HTMLElement,
}
diff --git a/components/script/dom/htmlulistelement.rs b/components/script/dom/htmlulistelement.rs
index bd417aef8ca..5909dbfc3ae 100644
--- a/components/script/dom/htmlulistelement.rs
+++ b/components/script/dom/htmlulistelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLUListElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlunknownelement.rs b/components/script/dom/htmlunknownelement.rs
index 1194346baa9..d8a338afb82 100644
--- a/components/script/dom/htmlunknownelement.rs
+++ b/components/script/dom/htmlunknownelement.rs
@@ -13,9 +13,7 @@ use dom::htmlelement::HTMLElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLUnknownElement {
htmlelement: HTMLElement
}
diff --git a/components/script/dom/htmlvideoelement.rs b/components/script/dom/htmlvideoelement.rs
index 6e7080aca68..4bec140ecf1 100644
--- a/components/script/dom/htmlvideoelement.rs
+++ b/components/script/dom/htmlvideoelement.rs
@@ -13,9 +13,7 @@ use dom::htmlmediaelement::HTMLMediaElement;
use dom::node::{Node, ElementNodeTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct HTMLVideoElement {
htmlmediaelement: HTMLMediaElement
}
diff --git a/components/script/dom/location.rs b/components/script/dom/location.rs
index 008a7deb3e9..79d1a9e404a 100644
--- a/components/script/dom/location.rs
+++ b/components/script/dom/location.rs
@@ -15,9 +15,7 @@ use servo_util::str::DOMString;
use std::rc::Rc;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Location {
reflector_: Reflector,
page: Rc<Page>,
diff --git a/components/script/dom/messageevent.rs b/components/script/dom/messageevent.rs
index 0f21a0b8096..a090a2f279e 100644
--- a/components/script/dom/messageevent.rs
+++ b/components/script/dom/messageevent.rs
@@ -18,9 +18,7 @@ use servo_util::str::DOMString;
use js::jsapi::JSContext;
use js::jsval::JSVal;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct MessageEvent {
event: Event,
data: JSVal,
diff --git a/components/script/dom/mouseevent.rs b/components/script/dom/mouseevent.rs
index 2ecfaa06ca5..a4d3a0a9e09 100644
--- a/components/script/dom/mouseevent.rs
+++ b/components/script/dom/mouseevent.rs
@@ -19,9 +19,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
use std::default::Default;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct MouseEvent {
mouseevent: UIEvent,
screen_x: Cell<i32>,
diff --git a/components/script/dom/namednodemap.rs b/components/script/dom/namednodemap.rs
index c0304510c68..1bfe7034198 100644
--- a/components/script/dom/namednodemap.rs
+++ b/components/script/dom/namednodemap.rs
@@ -11,9 +11,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::element::Element;
use dom::window::Window;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct NamedNodeMap {
reflector_: Reflector,
owner: JS<Element>,
diff --git a/components/script/dom/navigator.rs b/components/script/dom/navigator.rs
index f3ae6421564..5824817f895 100644
--- a/components/script/dom/navigator.rs
+++ b/components/script/dom/navigator.rs
@@ -11,9 +11,7 @@ use dom::navigatorinfo::NavigatorInfo;
use dom::window::Window;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Navigator {
reflector_: Reflector,
}
diff --git a/components/script/dom/node.rs b/components/script/dom/node.rs
index 5b2e3191ce6..c159eed0153 100644
--- a/components/script/dom/node.rs
+++ b/components/script/dom/node.rs
@@ -71,9 +71,7 @@ use uuid;
//
/// An HTML node.
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Node {
/// The JavaScript reflector for this node.
eventtarget: EventTarget,
diff --git a/components/script/dom/nodeiterator.rs b/components/script/dom/nodeiterator.rs
index 27656da9433..e6d2e982d43 100644
--- a/components/script/dom/nodeiterator.rs
+++ b/components/script/dom/nodeiterator.rs
@@ -8,9 +8,7 @@ use dom::bindings::global::GlobalRef;
use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct NodeIterator {
reflector_: Reflector
}
diff --git a/components/script/dom/nodelist.rs b/components/script/dom/nodelist.rs
index f2da3a0c4ba..9bac5ef2c9a 100644
--- a/components/script/dom/nodelist.rs
+++ b/components/script/dom/nodelist.rs
@@ -17,9 +17,7 @@ pub enum NodeListType {
Children(JS<Node>)
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct NodeList {
list_type: NodeListType,
reflector_: Reflector,
diff --git a/components/script/dom/performance.rs b/components/script/dom/performance.rs
index ae6fb7061cc..a8e6561f0d5 100644
--- a/components/script/dom/performance.rs
+++ b/components/script/dom/performance.rs
@@ -13,9 +13,7 @@ use time;
pub type DOMHighResTimeStamp = f64;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Performance {
reflector_: Reflector,
timing: JS<PerformanceTiming>,
diff --git a/components/script/dom/performancetiming.rs b/components/script/dom/performancetiming.rs
index 0c8b6a60008..7a93343e87b 100644
--- a/components/script/dom/performancetiming.rs
+++ b/components/script/dom/performancetiming.rs
@@ -9,9 +9,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct PerformanceTiming {
reflector_: Reflector,
navigationStart: u64,
diff --git a/components/script/dom/processinginstruction.rs b/components/script/dom/processinginstruction.rs
index 19017ae9050..7b2c5f22ba6 100644
--- a/components/script/dom/processinginstruction.rs
+++ b/components/script/dom/processinginstruction.rs
@@ -14,9 +14,7 @@ use dom::node::{Node, ProcessingInstructionNodeTypeId};
use servo_util::str::DOMString;
/// An HTML processing instruction node.
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct ProcessingInstruction {
characterdata: CharacterData,
target: DOMString,
diff --git a/components/script/dom/progressevent.rs b/components/script/dom/progressevent.rs
index 52d1f6f35ff..54b902994ea 100644
--- a/components/script/dom/progressevent.rs
+++ b/components/script/dom/progressevent.rs
@@ -13,9 +13,7 @@ use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::event::{Event, ProgressEventTypeId};
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct ProgressEvent {
event: Event,
length_computable: bool,
diff --git a/components/script/dom/range.rs b/components/script/dom/range.rs
index a611604e6bb..99b48cea700 100644
--- a/components/script/dom/range.rs
+++ b/components/script/dom/range.rs
@@ -11,9 +11,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::document::Document;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Range {
reflector_: Reflector
}
diff --git a/components/script/dom/screen.rs b/components/script/dom/screen.rs
index ad4250ee1c6..dd3bc911cc3 100644
--- a/components/script/dom/screen.rs
+++ b/components/script/dom/screen.rs
@@ -9,9 +9,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Screen {
reflector_: Reflector,
}
diff --git a/components/script/dom/testbinding.rs b/components/script/dom/testbinding.rs
index a409c70d1bf..073a5721fa1 100644
--- a/components/script/dom/testbinding.rs
+++ b/components/script/dom/testbinding.rs
@@ -18,9 +18,7 @@ use servo_util::str::DOMString;
use js::jsapi::JSContext;
use js::jsval::{JSVal, NullValue};
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct TestBinding {
reflector: Reflector,
global: GlobalField,
diff --git a/components/script/dom/text.rs b/components/script/dom/text.rs
index b8fea7c23cb..1843bf58d21 100644
--- a/components/script/dom/text.rs
+++ b/components/script/dom/text.rs
@@ -16,9 +16,7 @@ use dom::node::{Node, TextNodeTypeId};
use servo_util::str::DOMString;
/// An HTML text node.
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Text {
characterdata: CharacterData,
}
diff --git a/components/script/dom/treewalker.rs b/components/script/dom/treewalker.rs
index f9100dd15be..44a62f60baa 100644
--- a/components/script/dom/treewalker.rs
+++ b/components/script/dom/treewalker.rs
@@ -21,9 +21,7 @@ use dom::node::{Node, NodeHelpers};
use std::cell::Cell;
// http://dom.spec.whatwg.org/#interface-treewalker
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct TreeWalker {
reflector_: Reflector,
root_node: JS<Node>,
diff --git a/components/script/dom/uievent.rs b/components/script/dom/uievent.rs
index d5dd2cfc4df..6a55f6ccbf8 100644
--- a/components/script/dom/uievent.rs
+++ b/components/script/dom/uievent.rs
@@ -19,9 +19,7 @@ use servo_util::str::DOMString;
use std::cell::Cell;
use std::default::Default;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct UIEvent {
event: Event,
view: MutNullableJS<Window>,
diff --git a/components/script/dom/urlsearchparams.rs b/components/script/dom/urlsearchparams.rs
index 8174fafcc98..98cfc2a5792 100644
--- a/components/script/dom/urlsearchparams.rs
+++ b/components/script/dom/urlsearchparams.rs
@@ -20,9 +20,7 @@ use std::collections::hashmap::HashMap;
use std::fmt::radix;
use std::ascii::OwnedStrAsciiExt;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct URLSearchParams {
data: RefCell<HashMap<DOMString, Vec<DOMString>>>,
reflector_: Reflector,
diff --git a/components/script/dom/validitystate.rs b/components/script/dom/validitystate.rs
index ef76ac433e1..f8ce174229f 100644
--- a/components/script/dom/validitystate.rs
+++ b/components/script/dom/validitystate.rs
@@ -8,9 +8,7 @@ use dom::bindings::js::{JSRef, Temporary};
use dom::bindings::utils::{Reflectable, Reflector, reflect_dom_object};
use dom::window::Window;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct ValidityState {
reflector_: Reflector,
state: u8,
diff --git a/components/script/dom/window.rs b/components/script/dom/window.rs
index 2090cd0819d..044a6f6fabe 100644
--- a/components/script/dom/window.rs
+++ b/components/script/dom/window.rs
@@ -44,9 +44,7 @@ use std::default::Default;
use std::rc::Rc;
use time;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Window {
eventtarget: EventTarget,
script_chan: ScriptChan,
diff --git a/components/script/dom/worker.rs b/components/script/dom/worker.rs
index 0d549ca95f6..05a65318c69 100644
--- a/components/script/dom/worker.rs
+++ b/components/script/dom/worker.rs
@@ -31,9 +31,7 @@ use std::ptr;
pub struct TrustedWorkerAddress(pub *const c_void);
untraceable!(TrustedWorkerAddress)
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct Worker {
eventtarget: EventTarget,
refcount: Cell<uint>,
diff --git a/components/script/dom/workerglobalscope.rs b/components/script/dom/workerglobalscope.rs
index 69f2c926320..5c352739c98 100644
--- a/components/script/dom/workerglobalscope.rs
+++ b/components/script/dom/workerglobalscope.rs
@@ -32,9 +32,7 @@ pub enum WorkerGlobalScopeId {
DedicatedGlobalScope,
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct WorkerGlobalScope {
eventtarget: EventTarget,
worker_url: Url,
diff --git a/components/script/dom/workerlocation.rs b/components/script/dom/workerlocation.rs
index 145ba8c8f93..01583b54692 100644
--- a/components/script/dom/workerlocation.rs
+++ b/components/script/dom/workerlocation.rs
@@ -14,9 +14,7 @@ use servo_util::str::DOMString;
use url::Url;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct WorkerLocation {
reflector_: Reflector,
url: Url,
diff --git a/components/script/dom/workernavigator.rs b/components/script/dom/workernavigator.rs
index 6cc02c0e3fa..98e5672fa85 100644
--- a/components/script/dom/workernavigator.rs
+++ b/components/script/dom/workernavigator.rs
@@ -11,9 +11,7 @@ use dom::navigatorinfo::NavigatorInfo;
use dom::workerglobalscope::WorkerGlobalScope;
use servo_util::str::DOMString;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct WorkerNavigator {
reflector_: Reflector,
}
diff --git a/components/script/dom/xmlhttprequest.rs b/components/script/dom/xmlhttprequest.rs
index 1e96b701d1e..02f7070ad3c 100644
--- a/components/script/dom/xmlhttprequest.rs
+++ b/components/script/dom/xmlhttprequest.rs
@@ -102,9 +102,7 @@ enum SyncOrAsync<'a> {
}
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct XMLHttpRequest {
eventtarget: XMLHttpRequestEventTarget,
ready_state: Cell<XMLHttpRequestState>,
diff --git a/components/script/dom/xmlhttprequesteventtarget.rs b/components/script/dom/xmlhttprequesteventtarget.rs
index 0b9c9e7a75f..79e70123a4d 100644
--- a/components/script/dom/xmlhttprequesteventtarget.rs
+++ b/components/script/dom/xmlhttprequesteventtarget.rs
@@ -11,9 +11,7 @@ use dom::bindings::utils::{Reflectable, Reflector};
use dom::eventtarget::{EventTarget, EventTargetHelpers, XMLHttpRequestTargetTypeId};
use dom::xmlhttprequest::XMLHttpRequestId;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct XMLHttpRequestEventTarget {
eventtarget: EventTarget,
}
diff --git a/components/script/dom/xmlhttprequestupload.rs b/components/script/dom/xmlhttprequestupload.rs
index 7e11df328a8..78635ea306c 100644
--- a/components/script/dom/xmlhttprequestupload.rs
+++ b/components/script/dom/xmlhttprequestupload.rs
@@ -11,9 +11,7 @@ use dom::eventtarget::{EventTarget, XMLHttpRequestTargetTypeId};
use dom::xmlhttprequest::{XMLHttpRequestUploadTypeId};
use dom::xmlhttprequesteventtarget::XMLHttpRequestEventTarget;
-#[jstraceable]
-#[must_root]
-#[privatize]
+#[dom_struct]
pub struct XMLHttpRequestUpload {
eventtarget: XMLHttpRequestEventTarget
}