author | Peter Van der Beken <peterv@propagandism.org> |
Wed, 25 Nov 2015 16:31:42 +0100 | |
changeset 275454 | df1a6fe663132fd8f6089a4413749263604783f1 |
parent 275453 | b7dd3ffbf52b18e9d58c27abb7ed67c4a2208686 |
child 275455 | 407dff8daf62624a60b2c485b4e2d97217b93d78 |
push id | 29755 |
push user | kwierso@gmail.com |
push date | Thu, 03 Dec 2015 23:53:56 +0000 |
treeherder | mozilla-central@9d8af4783710 [default view] [failures only] |
perfherder | [talos] [build metrics] [platform microbench] (compared to previous push) |
reviewers | bz |
bugs | 1227987 |
milestone | 45.0a1 |
first release with | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
last release without | nightly linux32
nightly linux64
nightly mac
nightly win32
nightly win64
|
--- a/dom/bindings/Codegen.py +++ b/dom/bindings/Codegen.py @@ -405,61 +405,27 @@ class CGDOMJSClass(CGThing): def __init__(self, descriptor): CGThing.__init__(self) self.descriptor = descriptor def declare(self): return "" def define(self): - traceHook = 'nullptr' callHook = LEGACYCALLER_HOOK_NAME if self.descriptor.operations["LegacyCaller"] else 'nullptr' objectMovedHook = OBJECT_MOVED_HOOK_NAME if self.descriptor.wrapperCache else 'nullptr' slotCount = INSTANCE_RESERVED_SLOTS + self.descriptor.interface.totalMembersInSlots classFlags = "JSCLASS_IS_DOMJSCLASS | " - classExtensionAndObjectOps = fill( - """ - { - false, /* isWrappedNative */ - nullptr, /* weakmapKeyDelegateOp */ - ${objectMoved} /* objectMovedOp */ - }, - JS_NULL_OBJECT_OPS - """, - objectMoved=objectMovedHook) if self.descriptor.isGlobal(): classFlags += "JSCLASS_DOM_GLOBAL | JSCLASS_GLOBAL_FLAGS_WITH_SLOTS(DOM_GLOBAL_SLOTS)" traceHook = "JS_GlobalObjectTraceHook" reservedSlots = "JSCLASS_GLOBAL_APPLICATION_SLOTS" - if self.descriptor.interface.identifier.name == "Window": - classExtensionAndObjectOps = fill( - """ - { - false, /* isWrappedNative */ - nullptr, /* weakmapKeyDelegateOp */ - ${objectMoved} /* objectMovedOp */ - }, - { - nullptr, /* lookupProperty */ - nullptr, /* defineProperty */ - nullptr, /* hasProperty */ - nullptr, /* getProperty */ - nullptr, /* setProperty */ - nullptr, /* getOwnPropertyDescriptor */ - nullptr, /* deleteProperty */ - nullptr, /* watch */ - nullptr, /* unwatch */ - nullptr, /* getElements */ - nullptr, /* enumerate */ - nullptr, /* funToString */ - } - """, - objectMoved=objectMovedHook) else: classFlags += "JSCLASS_HAS_RESERVED_SLOTS(%d)" % slotCount + traceHook = 'nullptr' reservedSlots = slotCount if self.descriptor.interface.getExtendedAttribute("NeedResolve"): resolveHook = RESOLVE_HOOK_NAME mayResolveHook = MAY_RESOLVE_HOOK_NAME enumerateHook = ENUMERATE_HOOK_NAME elif self.descriptor.isGlobal(): resolveHook = "mozilla::dom::ResolveGlobal" mayResolveHook = "mozilla::dom::MayResolveGlobal" @@ -482,17 +448,22 @@ class CGDOMJSClass(CGThing): ${resolve}, /* resolve */ ${mayResolve}, /* mayResolve */ ${finalize}, /* finalize */ ${call}, /* call */ nullptr, /* hasInstance */ nullptr, /* construct */ ${trace}, /* trace */ JS_NULL_CLASS_SPEC, - $*{classExtensionAndObjectOps} + { + false, /* isWrappedNative */ + nullptr, /* weakmapKeyDelegateOp */ + ${objectMoved} /* objectMovedOp */ + }, + JS_NULL_OBJECT_OPS }, $*{descriptor} }; static_assert(${instanceReservedSlots} == DOM_INSTANCE_RESERVED_SLOTS, "Must have the right minimal number of reserved slots."); static_assert(${reservedSlots} >= ${slotCount}, "Must have enough reserved slots."); """, @@ -500,17 +471,17 @@ class CGDOMJSClass(CGThing): flags=classFlags, addProperty=ADDPROPERTY_HOOK_NAME if wantsAddProperty(self.descriptor) else 'nullptr', enumerate=enumerateHook, resolve=resolveHook, mayResolve=mayResolveHook, finalize=FINALIZE_HOOK_NAME, call=callHook, trace=traceHook, - classExtensionAndObjectOps=classExtensionAndObjectOps, + objectMoved=objectMovedHook, descriptor=DOMClass(self.descriptor), instanceReservedSlots=INSTANCE_RESERVED_SLOTS, reservedSlots=reservedSlots, slotCount=slotCount) class CGDOMProxyJSClass(CGThing): """