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