Bug 338865 - Scriptable XPIDL iface inheriting from noscript iface should throw error. r=froydnj draft
authorAndrew McCreight <continuation@gmail.com>
Tue, 12 Sep 2017 15:03:14 -0700
changeset 663337 d422e69869ee0176ff8b3ba0c019a7c9a9192e0a
parent 663324 ba9347de869d3e207654600fcc6eae4179ab985e
child 731180 27ad694d9a492b060c76bb172ec74353abb6e8a0
push id79411
push userbmo:continuation@gmail.com
push dateTue, 12 Sep 2017 22:19:12 +0000
reviewersfroydnj
bugs338865
milestone57.0a1
Bug 338865 - Scriptable XPIDL iface inheriting from noscript iface should throw error. r=froydnj MozReview-Commit-ID: H6sF4Poz2V0
xpcom/idl-parser/xpidl/xpidl.py
--- a/xpcom/idl-parser/xpidl/xpidl.py
+++ b/xpcom/idl-parser/xpidl/xpidl.py
@@ -524,17 +524,17 @@ class Interface(object):
 
         parent.setName(self)
         if self.base is not None:
             realbase = parent.getName(self.base, self.location)
             if realbase.kind != 'interface':
                 raise IDLError("interface '%s' inherits from non-interface type '%s'" % (self.name, self.base), self.location)
 
             if self.attributes.scriptable and not realbase.attributes.scriptable:
-                print >>sys.stderr, IDLError("interface '%s' is scriptable but derives from non-scriptable '%s'" % (self.name, self.base), self.location, warning=True)
+                raise IDLError("interface '%s' is scriptable but derives from non-scriptable '%s'" % (self.name, self.base), self.location, warning=True)
 
             if self.attributes.scriptable and realbase.attributes.builtinclass and not self.attributes.builtinclass:
                 raise IDLError("interface '%s' is not builtinclass but derives from builtinclass '%s'" % (self.name, self.base), self.location)
 
         for member in self.members:
             member.resolve(self)
 
         # The number 250 is NOT arbitrary; this number is the maximum number of