diff options
Diffstat (limited to 'components/script/dom')
-rw-r--r-- | components/script/dom/bindings/codegen/CodegenRust.py | 8 | ||||
-rw-r--r-- | components/script/dom/bindings/utils.rs | 12 |
2 files changed, 11 insertions, 9 deletions
diff --git a/components/script/dom/bindings/codegen/CodegenRust.py b/components/script/dom/bindings/codegen/CodegenRust.py index 27272370cc1..99d60e379b6 100644 --- a/components/script/dom/bindings/codegen/CodegenRust.py +++ b/components/script/dom/bindings/codegen/CodegenRust.py @@ -1768,17 +1768,21 @@ class CGDOMJSClass(CGThing): def define(self): args = { "domClass": DOMClass(self.descriptor), + "enumerateHook": "None", "finalizeHook": FINALIZE_HOOK_NAME, "flags": "0", "name": str_to_const_array(self.descriptor.interface.identifier.name), "outerObjectHook": self.descriptor.outerObjectHook, + "resolveHook": "None", "slots": "1", "traceHook": TRACE_HOOK_NAME, } if self.descriptor.isGlobal(): assert not self.descriptor.weakReferenceable + args["enumerateHook"] = "Some(js::jsapi::JS_EnumerateStandardClasses)" args["flags"] = "JSCLASS_IS_GLOBAL | JSCLASS_DOM_GLOBAL" args["slots"] = "JSCLASS_GLOBAL_SLOT_COUNT + 1" + args["resolveHook"] = "Some(js::jsapi::JS_ResolveStandardClass)" args["traceHook"] = "js::jsapi::JS_GlobalObjectTraceHook" elif self.descriptor.weakReferenceable: args["slots"] = "2" @@ -1793,8 +1797,8 @@ static Class: DOMJSClass = DOMJSClass { delProperty: None, getProperty: None, setProperty: None, - enumerate: None, - resolve: None, + enumerate: %(enumerateHook)s, + resolve: %(resolveHook)s, convert: None, finalize: Some(%(finalizeHook)s), call: None, diff --git a/components/script/dom/bindings/utils.rs b/components/script/dom/bindings/utils.rs index adc96c45305..d06dc10c8da 100644 --- a/components/script/dom/bindings/utils.rs +++ b/components/script/dom/bindings/utils.rs @@ -23,12 +23,11 @@ use js::glue::{RUST_JSID_TO_INT, UnwrapObject}; use js::jsapi::{CallArgs, CompartmentOptions, DOMCallbacks, GetGlobalForObjectCrossCompartment}; use js::jsapi::{HandleId, HandleObject, HandleValue, Heap, JSAutoCompartment, JSClass, JSContext}; use js::jsapi::{JSJitInfo, JSObject, JSTraceOp, JSTracer, JSVersion, JSWrapObjectCallbacks}; -use js::jsapi::{JS_DeletePropertyById1, JS_FireOnNewGlobalObject}; -use js::jsapi::{JS_ForwardGetPropertyTo, JS_GetClass, JS_GetProperty, JS_GetPrototype}; -use js::jsapi::{JS_GetReservedSlot, JS_HasProperty, JS_HasPropertyById, JS_InitStandardClasses}; -use js::jsapi::{JS_IsExceptionPending, JS_NewGlobalObject, JS_ObjectToOuterObject, JS_SetProperty}; -use js::jsapi::{JS_SetReservedSlot, MutableHandleValue, ObjectOpResult, OnNewGlobalHookOption}; -use js::jsapi::{RootedObject}; +use js::jsapi::{JS_DeletePropertyById1, JS_FireOnNewGlobalObject, JS_ForwardGetPropertyTo}; +use js::jsapi::{JS_GetClass, JS_GetProperty, JS_GetPrototype, JS_GetReservedSlot, JS_HasProperty}; +use js::jsapi::{JS_HasPropertyById, JS_IsExceptionPending, JS_NewGlobalObject}; +use js::jsapi::{JS_ObjectToOuterObject, JS_SetProperty, JS_SetReservedSlot}; +use js::jsapi::{MutableHandleValue, ObjectOpResult, OnNewGlobalHookOption, RootedObject}; use js::jsval::{JSVal}; use js::jsval::{PrivateValue, UndefinedValue}; use js::rust::{GCMethods, ToString}; @@ -334,7 +333,6 @@ pub fn create_dom_global(cx: *mut JSContext, PrivateValue(Box::into_raw(proto_array) as *const libc::c_void)); let _ac = JSAutoCompartment::new(cx, obj.ptr); - JS_InitStandardClasses(cx, obj.handle()); JS_FireOnNewGlobalObject(cx, obj.handle()); obj.ptr } |