Implement JSTraceable for more types.

This commit is contained in:
Ms2ger 2017-02-14 14:42:35 +01:00
parent 8ce9ca6243
commit 3613e8f231
3 changed files with 9 additions and 1 deletions

View file

@ -4103,6 +4103,7 @@ class CGUnionStruct(CGThing):
% (self.type, v["name"]) for v in templateVars
]
return ("""\
#[derive(JSTraceable)]
pub enum %s {
%s
}
@ -5881,6 +5882,7 @@ class CGDictionary(CGThing):
for m in self.memberInfo]
return (string.Template(
"#[derive(JSTraceable)]\n"
"pub struct ${selfName} {\n" +
"${inheritance}" +
"\n".join(memberDecls) + "\n" +

View file

@ -642,3 +642,9 @@ impl<T: DomObject> Drop for Root<T> {
}
}
}
unsafe impl<T: DomObject> JSTraceable for Root<T> {
unsafe fn trace(&self, _: *mut JSTracer) {
// Already traced.
}
}

View file

@ -23,7 +23,7 @@ use std::collections::HashMap;
use std::ops::Deref;
/// The `MozMap` (open-ended dictionary) type.
#[derive(Clone)]
#[derive(Clone, JSTraceable)]
pub struct MozMap<T> {
map: HashMap<DOMString, T>,
}