aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/Configuration.py
diff options
context:
space:
mode:
authorbors-servo <metajack+bors@gmail.com>2015-04-13 14:34:39 -0500
committerbors-servo <metajack+bors@gmail.com>2015-04-13 14:34:39 -0500
commit1f9c2f9b34dede8182f45655b03380f8c26f3475 (patch)
tree307f2ee1ea15bc8fc8ce418650bf4bef10f43516 /components/script/dom/bindings/codegen/Configuration.py
parent74c847a17fb560dd4cd62069778776f6f06df19f (diff)
parentd2b0d5e04084c936a457d0718f98f860c380026b (diff)
downloadservo-1f9c2f9b34dede8182f45655b03380f8c26f3475.tar.gz
servo-1f9c2f9b34dede8182f45655b03380f8c26f3475.zip
Auto merge of #3726 - ChrisParis:callback-constants, r=jdm
This addresses https://github.com/servo/servo/issues/3149. The immediate purpose is to support the constants in NodeFilter. The changes mostly follow the current Gecko Codegen.py. The main gist is that the generation of certain code artifacts is now gated by hasInterfaceObject() or hasInterfacePrototypeObject(), rather than by isCallback().
Diffstat (limited to 'components/script/dom/bindings/codegen/Configuration.py')
-rw-r--r--components/script/dom/bindings/codegen/Configuration.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py
index e6712357d35..5ea521e15b8 100644
--- a/components/script/dom/bindings/codegen/Configuration.py
+++ b/components/script/dom/bindings/codegen/Configuration.py
@@ -162,10 +162,12 @@ class Descriptor(DescriptorProvider):
self.concreteType = ifaceName
self.register = desc.get('register', True)
self.outerObjectHook = desc.get('outerObjectHook', 'None')
+ self.proxy = False
# If we're concrete, we need to crawl our ancestor interfaces and mark
# them as having a concrete descendant.
- self.concrete = desc.get('concrete', True)
+ self.concrete = (not self.interface.isCallback() and
+ desc.get('concrete', True))
self.operations = {
'IndexedGetter': None,
@@ -190,7 +192,6 @@ class Descriptor(DescriptorProvider):
addOperation('Stringifier', m)
if self.concrete:
- self.proxy = False
iface = self.interface
while iface:
for m in iface.members: