summaryrefslogtreecommitdiff
path: root/third_party/WebIDL.py
diff options
context:
space:
mode:
authorAlon Zakai <alonzakai@gmail.com>2014-05-14 13:17:13 -0700
committerAlon Zakai <alonzakai@gmail.com>2014-05-14 13:17:13 -0700
commitd470387f096d6427720a9c8a61776fa3d276683e (patch)
tree83e0d3a798308ca139983a621ad96a19c0ecf60b /third_party/WebIDL.py
parentb915f42db8e2b454b8b07e0eb7f8a176fefdc534 (diff)
allow overriding functions with the same name in the parent in webidl binder
Diffstat (limited to 'third_party/WebIDL.py')
-rw-r--r--third_party/WebIDL.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/third_party/WebIDL.py b/third_party/WebIDL.py
index 867a7cbc..1ce44e06 100644
--- a/third_party/WebIDL.py
+++ b/third_party/WebIDL.py
@@ -649,13 +649,15 @@ class IDLInterface(IDLObjectWithScope):
# Flag the interface as being someone's consequential interface
iface.setIsConsequentialInterfaceOf(self)
additionalMembers = iface.originalMembers;
- for additionalMember in additionalMembers:
+ for additionalMember in additionalMembers[:]:
for member in self.members:
if additionalMember.identifier.name == member.identifier.name:
- raise WebIDLError(
- "Multiple definitions of %s on %s coming from 'implements' statements" %
- (member.identifier.name, self),
- [additionalMember.location, member.location])
+ # XXX emscripten: allow such name collisions, ignore parent
+ additionalMembers.remove(additionalMember)
+ #raise WebIDLError(
+ # "Multiple definitions of %s on %s coming from 'implements' statements" %
+ # (member.identifier.name, self),
+ # [additionalMember.location, member.location])
self.members.extend(additionalMembers)
iface.interfacesImplementingSelf.add(self)