diff options
author | Ms2ger <ms2ger@gmail.com> | 2014-06-20 19:20:52 +0200 |
---|---|---|
committer | Ms2ger <ms2ger@gmail.com> | 2014-06-20 19:21:47 +0200 |
commit | 8df0f981fec91d069e5756f775152b6fbfd88686 (patch) | |
tree | 8e7a415c01d66242b7dd51f225f89ec2fae4ef7e /src/components/script/dom/bindings/codegen | |
parent | 5acbea51999ead858aa90266a5ab4473a3dd11da (diff) | |
download | servo-8df0f981fec91d069e5756f775152b6fbfd88686.tar.gz servo-8df0f981fec91d069e5756f775152b6fbfd88686.zip |
Keep calling the DefineDOMInterface method for NoInterfaceObject interfaces.
DefineDOMInterface also creates the proxy handler for proxy classes, so it
should be called in this case as well.
Diffstat (limited to 'src/components/script/dom/bindings/codegen')
-rw-r--r-- | src/components/script/dom/bindings/codegen/CodegenRust.py | 19 |
1 files changed, 7 insertions, 12 deletions
diff --git a/src/components/script/dom/bindings/codegen/CodegenRust.py b/src/components/script/dom/bindings/codegen/CodegenRust.py index 647fd50766f..293cdf0ca4d 100644 --- a/src/components/script/dom/bindings/codegen/CodegenRust.py +++ b/src/components/script/dom/bindings/codegen/CodegenRust.py @@ -2001,13 +2001,6 @@ class CGDefineDOMInterfaceMethod(CGAbstractMethod): return CGAbstractMethod.define(self) def definition_body(self): - if self.descriptor.interface.hasInterfacePrototypeObject(): - # We depend on GetProtoObject defining an interface constructor - # object as needed. - getter = "GetProtoObject" - else: - getter = "GetConstructorObject" - body = "" #XXXjdm This self.descriptor.concrete check shouldn't be necessary if not self.descriptor.concrete or self.descriptor.proxy: @@ -2049,10 +2042,13 @@ class CGDefineDOMInterfaceMethod(CGAbstractMethod): TRACE_HOOK_NAME, self.descriptor.name) - return (body + """ let cx = (**js_info.js_context).ptr; + if self.descriptor.interface.hasInterfaceObject(): + body += """ let cx = (**js_info.js_context).ptr; let global = window.reflector().get_jsobject(); assert!(global.is_not_null()); - assert!(%s(cx, global, global).is_not_null());""" % (getter)) + assert!(GetProtoObject(cx, global, global).is_not_null());""" + + return body def needCx(returnType, arguments, extendedAttributes, considerTypes): return (considerTypes and @@ -3867,8 +3863,7 @@ class CGDescriptor(CGThing): CGConstant(m for m in descriptor.interface.members if m.isConst()), public=True)) - if descriptor.interface.hasInterfaceObject(): - cgThings.append(CGDefineDOMInterfaceMethod(descriptor)) + cgThings.append(CGDefineDOMInterfaceMethod(descriptor)) if descriptor.concrete: if descriptor.proxy: @@ -4114,7 +4109,7 @@ class CGRegisterProtos(CGAbstractMethod): def _registerProtos(self): lines = [" codegen::Bindings::%sBinding::DefineDOMInterface(window, js_info);" % desc.name - for desc in self.config.getDescriptors(hasInterfaceObject=True, + for desc in self.config.getDescriptors(isCallback=False, register=True)] return '\n'.join(lines) + '\n' def definition_body(self): |