Err, so it seems a side-effect of this (which wasn't very obvious to me
when this was posted) is that it's now no longer possible to change a
.idl file for a JS component in an artifact build and have it "work".
Specifically, I ran into this when changing the return type of an extant
idl method for nsBlocklistService.js from `unsigned long` to `jsval`
(making the method async). I spent a good few hours being puzzled as to
how callsites using `await` were getting 0 when the callee was
(asynchronously) returning non-zero things, and why the logs from the
caller and callee were out of order. Turns out, xpconnect and friends
will happily silently convert things (in this case, a Promise object) to
match the declared return type (ending up with NaN/0).
TL;DR: the effect on artifact build users seems pretty unfortunate.
Given that we're also not supposed to be making new JS-implemented
webidl things, what's the long-term plan for artifact build support for
changing JS-implemented interfaces?
~ Gijs
On 04/04/2018 21:10, Andrew McCreight wrote:
I recently landed bug 1438688, which makes it so that we don't ship XPT
files any more, so they don't need to be added to a package-manifest.in
file. (Instead, the XPT information is compiled into the binary.) I think
it'll give you an error if you add it anyways, but I haven't tested it. We
still use XPT files during the build process, so you'll see them appear in
your build log spam as usual.
Andrew
_______________________________________________
dev-platform mailing list
dev-platform@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-platform