mirror of
https://github.com/servo/servo.git
synced 2025-07-24 15:50:21 +01:00
Lazily-define standard ECMAScript classes
This commit is contained in:
parent
787c4e568d
commit
2c4d5da866
2 changed files with 11 additions and 9 deletions
|
@ -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,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue