mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
Change bindings generation to make Exposed annotation aware of members/partial interfaces
This commit is contained in:
parent
2b84348372
commit
871239a3e3
25 changed files with 151 additions and 78 deletions
|
@ -3723,6 +3723,7 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
|||
IDLObjectWithIdentifier.__init__(self, location, None, identifier)
|
||||
IDLExposureMixins.__init__(self, location)
|
||||
self.tag = tag
|
||||
self.exposed = set()
|
||||
if extendedAttrDict is None:
|
||||
self._extendedAttrDict = {}
|
||||
else:
|
||||
|
@ -3756,12 +3757,16 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
|||
def getExtendedAttribute(self, name):
|
||||
return self._extendedAttrDict.get(name, None)
|
||||
|
||||
def exposedSet(self):
|
||||
return self.exposed
|
||||
|
||||
def finish(self, scope):
|
||||
# We better be exposed _somewhere_.
|
||||
if (len(self._exposureGlobalNames) == 0):
|
||||
print(self.identifier.name)
|
||||
assert len(self._exposureGlobalNames) != 0
|
||||
IDLExposureMixins.finish(self, scope)
|
||||
globalNameSetToExposureSet(scope, self._exposureGlobalNames, self.exposed)
|
||||
|
||||
def validate(self):
|
||||
if self.isAttr() or self.isMethod():
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
--- WebIDL.py
|
||||
+++ WebIDL.py
|
||||
@@ -3653,6 +3653,7 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
||||
IDLObjectWithIdentifier.__init__(self, location, None, identifier)
|
||||
IDLExposureMixins.__init__(self, location)
|
||||
self.tag = tag
|
||||
+ self.exposed = set()
|
||||
if extendedAttrDict is None:
|
||||
self._extendedAttrDict = {}
|
||||
else:
|
||||
@@ -3686,12 +3687,16 @@ class IDLInterfaceMember(IDLObjectWithIdentifier, IDLExposureMixins):
|
||||
def getExtendedAttribute(self, name):
|
||||
return self._extendedAttrDict.get(name, None)
|
||||
|
||||
+ def exposedSet(self):
|
||||
+ return self.exposed
|
||||
+
|
||||
def finish(self, scope):
|
||||
# We better be exposed _somewhere_.
|
||||
if (len(self._exposureGlobalNames) == 0):
|
||||
print self.identifier.name
|
||||
assert len(self._exposureGlobalNames) != 0
|
||||
IDLExposureMixins.finish(self, scope)
|
||||
+ globalNameSetToExposureSet(scope, self._exposureGlobalNames, self.exposed)
|
||||
|
||||
def validate(self):
|
||||
if self.isAttr() or self.isMethod():
|
|
@ -4,6 +4,7 @@ patch < debug.patch
|
|||
patch < callback-location.patch
|
||||
patch < union-typedef.patch
|
||||
patch < inline.patch
|
||||
patch < exposed-globals.patch
|
||||
|
||||
wget https://hg.mozilla.org/mozilla-central/archive/tip.tar.gz/dom/bindings/parser/tests/ -O tests.tar.gz
|
||||
rm -r tests
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue