aboutsummaryrefslogtreecommitdiffstats
path: root/components/script/dom/bindings/codegen/parser/legacy-unenumerable-named-properties.patch
blob: 3472d054940cc98cbd6119dc531854ce98ca969d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
--- WebIDL.py
+++ WebIDL.py
@@ -1069,6 +1069,12 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):

             specialMembersSeen[memberType] = member

+        if (self.getExtendedAttribute("LegacyUnenumerableNamedProperties") and
+            "named getters" not in specialMembersSeen):
+            raise WebIDLError("[LegacyUnenumerableNamedProperties] used on an interface "
+                              "without a named getter",
+                              [self.location])
+
         if self._isOnGlobalProtoChain:
             # Make sure we have no named setters, creators, or deleters
             for memberType in ["setter", "creator", "deleter"]:
@@ -1417,7 +1423,8 @@ class IDLInterface(IDLObjectWithScope, IDLExposureMixins):
                   identifier == "UnsafeInPrerendering" or
                   identifier == "LegacyEventInit" or
                   identifier == "ProbablyShortLivingObject" or
-                  identifier == "Abstract"):
+                  identifier == "Abstract" or
+                  identifier == "LegacyUnenumerableNamedProperties"):
                 # Known extended attributes that do not take values
                 if not attr.noArguments():
                     raise WebIDLError("[%s] must take no arguments" % identifier,