We were already working with a contributor to remove NS_ASSERT and debug.js in https://bugzilla.mozilla.org/show_bug.cgi?id=1431050 and we were just replacing those few calls with simple exceptions. The usage is not particularly spread in the codebase and the benefits in ruining Nightly testers life with continuous modal dialogs (actually happened in the past) were not great.
console.assert may be a good replacement, we can leverage the existing bug to use that instead of simple exceptions. The bug is currently proceeding slower than hoped. Does console.assert also throw an exception? Cheers, Marco On Mon, Feb 26, 2018 at 6:37 PM, Brian Grinstead <bgrinst...@mozilla.com> wrote: > There have been some improvements to the console API for chrome callers > recently: > > * The WebIDL implementation is available as a global in JSMs - no need to > import Console.jsm (bug 1425574) > * Chrome console API calls print to stdout if > "browser.dom.window.dump.enabled" is true (bug 1439686) > * `console.assert` prints the callstack (bug 1439677) > > After these changes, I don't see a benefit to using `NS_ASSERT` instead of > `console.assert`. So I'd like to propose that we either: > > 1) Delete the debug.js module [0] and rewrite the ~100 callers of its > `NS_ASSERT` function [1] to use `console.assert` instead. > 2) Make the existing `NS_ASSERT` function an alias for `console.assert`. > > I’d like hear any feedback or objections before doing either, but my > preference is (1) so that we can unify chrome JS on using the WebIDL console > APIs. This is basically what we plan on doing with Console.jsm (bug 1430810). > > The main behavior difference I see is that in `NS_ASSERT` we early return > based on the update channel [2] before dumping to stdout, but after doing > `Cu.reportError`. So this means if the assertion runs in a release build then > it won't attempt to dump the message + stack. But since > "browser.dom.window.dump.enabled" will be false by default that case, > `console.assert` should have the same behavior. The difference would be if > you were running a release build with "browser.dom.window.dump.enabled" > flipped - in this case with `NS_ASSERT` you would not get a message in stdout > but with `console.assert` you would. > > Thanks, > Brian > > [0]: https://searchfox.org/mozilla-central/source/toolkit/modules/debug.js > [1]: > https://searchfox.org/mozilla-central/search?q=NS_ASSERT&case=true&path=js* > [2]: > https://searchfox.org/mozilla-central/rev/ecb86060b4c5a9808798b81a57e79e821bb47082/toolkit/modules/debug.js#41 > > _______________________________________________ > dev-platform mailing list > dev-platform@lists.mozilla.org > https://lists.mozilla.org/listinfo/dev-platform _______________________________________________ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform