diff options
author | Chris Manchester <cmanchester@mozilla.com> | 2015-02-25 17:06:29 -0800 |
---|---|---|
committer | Chris Manchester <cmanchester@mozilla.com> | 2015-02-27 18:28:01 -0800 |
commit | c81f1cc54134a3d542e3da08f00750955c986011 (patch) | |
tree | cab716cb4fe202e444183e07d30e93e46ff7c8ca /components/script/dom/bindings/codegen/Configuration.py | |
parent | 26567ef2e62597b359c179f8665213002e05da96 (diff) | |
download | servo-c81f1cc54134a3d542e3da08f00750955c986011.tar.gz servo-c81f1cc54134a3d542e3da08f00750955c986011.zip |
Add support for BinaryName attribute to servo's codegen (fixes #4435) r=jdm
Diffstat (limited to 'components/script/dom/bindings/codegen/Configuration.py')
-rw-r--r-- | components/script/dom/bindings/codegen/Configuration.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/components/script/dom/bindings/codegen/Configuration.py b/components/script/dom/bindings/codegen/Configuration.py index 8944070f09c..e6712357d35 100644 --- a/components/script/dom/bindings/codegen/Configuration.py +++ b/components/script/dom/bindings/codegen/Configuration.py @@ -251,6 +251,20 @@ class Descriptor(DescriptorProvider): else: add('all', [config], attribute) + self._binaryNames = desc.get('binaryNames', {}) + self._binaryNames.setdefault('__legacycaller', 'LegacyCall') + self._binaryNames.setdefault('__stringifier', 'Stringify') + + for member in self.interface.members: + if not member.isAttr() and not member.isMethod(): + continue + binaryName = member.getExtendedAttribute("BinaryName") + if binaryName: + assert isinstance(binaryName, list) + assert len(binaryName) == 1 + self._binaryNames.setdefault(member.identifier.name, + binaryName[0]) + # Build the prototype chain. self.prototypeChain = [] parent = interface @@ -260,6 +274,9 @@ class Descriptor(DescriptorProvider): config.maxProtoChainLength = max(config.maxProtoChainLength, len(self.prototypeChain)) + def binaryNameFor(self, name): + return self._binaryNames.get(name, name) + def getExtendedAttributes(self, member, getter=False, setter=False): def maybeAppendInfallibleToAttrs(attrs, throws): if throws is None: |