diff options
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 12 | ||||
-rw-r--r-- | src/components/script/dom/htmldocument.rs | 9 | ||||
m--------- | src/support/spidermonkey/mozjs | 0 | ||||
m--------- | src/support/spidermonkey/rust-mozjs | 0 |
4 files changed, 14 insertions, 7 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 561466f00bf..4c28883ab13 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -2867,14 +2867,17 @@ class CGDefineDOMInterfaceMethod(CGAbstractMethod): //regexp_toShared: ptr::null(), defaultValue: ptr::null(), iteratorNext: ptr::null(), - finalize: ptr::null(), + finalize: %s, getElementIfPresent: ptr::null(), - getPrototypeOf: ptr::null() + getPrototypeOf: ptr::null(), + trace: %s }; (*page).js_info.get_mut_ref().dom_static.proxy_handlers.insert(PrototypeList::id::%s as uint, CreateProxyHandler(ptr::to_unsafe_ptr(&traps), ptr::to_unsafe_ptr(&Class) as *libc::c_void)); -""" % self.descriptor.name +""" % (FINALIZE_HOOK_NAME, + ('Some(%s)' % TRACE_HOOK_NAME) if self.descriptor.customTrace else 'None', + self.descriptor.name) else: body += """ (*page).js_info.get_ref().dom_static.attribute_ids.insert(PrototypeList::id::%s as uint, vec::cast_to_mut(vec::from_slice(sAttributes_ids))); @@ -4196,7 +4199,7 @@ class CGDescriptor(CGThing): #if hasLenientSetter: cgThings.append(CGGenericSetter(descriptor, # lenientThis=True)) - if descriptor.concrete and not descriptor.proxy: + if descriptor.concrete: if not descriptor.workers and descriptor.wrapperCache: #cgThings.append(CGAddPropertyHook(descriptor)) pass @@ -4208,7 +4211,6 @@ class CGDescriptor(CGThing): # Only generate a trace hook if the class wants a custom hook. if (descriptor.customTrace): cgThings.append(CGClassTraceHook(descriptor)) - pass if descriptor.interface.hasInterfaceObject(): cgThings.append(CGClassConstructHook(descriptor)) diff --git a/src/components/script/dom/htmldocument.rs b/src/components/script/dom/htmldocument.rs index 855231ea637..6e70ad236a5 100644 --- a/src/components/script/dom/htmldocument.rs +++ b/src/components/script/dom/htmldocument.rs @@ -3,7 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use dom::bindings::codegen::HTMLDocumentBinding; -use dom::bindings::utils::{DOMString, ErrorResult, Fallible}; +use dom::bindings::utils::{DOMString, ErrorResult, Fallible, Traceable}; use dom::bindings::utils::{CacheableWrapper, BindingObject, WrapperCache}; use dom::document::{AbstractDocument, Document, WrappableDocument, HTML}; use dom::element::HTMLHeadElementTypeId; @@ -11,7 +11,7 @@ use dom::htmlcollection::HTMLCollection; use dom::node::{AbstractNode, ScriptView, ElementNodeTypeId}; use dom::window::Window; -use js::jsapi::{JSObject, JSContext}; +use js::jsapi::{JSObject, JSContext, JSTracer}; use servo_util::tree::TreeNodeRef; @@ -212,3 +212,8 @@ impl BindingObject for HTMLDocument { } } +impl Traceable for HTMLDocument { + fn trace(&self, tracer: *mut JSTracer) { + self.parent.trace(tracer); + } +}
\ No newline at end of file diff --git a/src/support/spidermonkey/mozjs b/src/support/spidermonkey/mozjs -Subproject 15c494b9204bb4ecdfbeab142c0ea01e5f0c9a1 +Subproject 81aeed0b6159acdedf7dd530fb6c3bde5ddbb70 diff --git a/src/support/spidermonkey/rust-mozjs b/src/support/spidermonkey/rust-mozjs -Subproject 5b83f5f77a6215864738a5636a9bc9db2a09707 +Subproject 1a9a5c3c1462bd3b3e7905ee2834a5ba906f021 |