зеркало из https://github.com/mozilla/gecko-dev.git
20b03783b4
XPIDL has the requirement that [scriptable] interfaces with [notxpcom] methods or attributes are [builtinclass]. Currently, if you don't explicitly mark something builtinclass when it should be, then the XPIDL compiler will just silently treat it like builtinclass. This means that you can cause the JS implementation of an XPCOM to start failing without any warning by marking a method notxpcom. This patch instead makes it an error. A prior patch fixed the existing instances in the tree that relied on the implicit behavior. I also added a test that we reject such classes missing builtinclass at compile time, as well as classes that inherit from builtinclass interfaces without themselves being builtinclass. I left behind a part of the runtime test for this behavior, but now this test just ensures that you can't implement a [builtinclass] interface in JS. Differential Revision: https://phabricator.services.mozilla.com/D30984 --HG-- extra : moz-landing-system : lando |
||
---|---|---|
.. | ||
base | ||
build | ||
components | ||
doc | ||
ds | ||
glue | ||
idl-parser | ||
io | ||
libxpt/xptcall | ||
reflect | ||
rust | ||
string | ||
system | ||
tests | ||
threads | ||
windbgdlg | ||
xpidl | ||
moz.build | ||
xpcom-config.h.in | ||
xpcom-private.h.in |