Use .then(null, Cu.reportError); with Promise.jsm
This is a quick reminder to anyone writing or reviewing code that uses Promise.jsm. You should check that exceptions aren't swallowed, and this is typically done with a logging rejection handler. You should always use the handler unless you're handing off the promise to other code. For some examples: https://developer.mozilla.org/Mozilla/JavaScript_code_modules/Promise.jsm/Promise#Handling_errors_and_common_pitfalls As of now, this amounts to a pattern like: myPromise.then(value = { // ... }).then(null, Components.utils.reportError); Or when creating a task without returning the promise: Task.spawn(function () { // yield ... }).then(null, Components.utils.reportError); I admit that having to explicitly provide an error handler at the end of a promise chain may be considered less than optimal, but for now it is the recommended way in new code. We're discussing ways to make it less likely that exceptions are swallowed, in bug 902866: https://bugzilla.mozilla.org/show_bug.cgi?id=902866 Please reply in the bug if you have anything to add to the discussion. Cheers, Paolo ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Use .then(null, Cu.reportError); with Promise.jsm
Paolo Amadini wrote: This is a quick reminder to anyone writing or reviewing code that uses Promise.jsm. How do the other promise implementations in the tree compare in this respect? (For instance I suspect it might be feasible for DOM promises to report any pending exception when they get garbage collected.) -- Warning: May contain traces of nuts. ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Use .then(null, Cu.reportError); with Promise.jsm
On 8/9/13 5:54 AM, Neil wrote: (For instance I suspect it might be feasible for DOM promises to report any pending exception when they get garbage collected.) Oh, that is a _very_ interesting idea. I wonder whether we can get that specced, or at least allowed by the spec. -Boris ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Use .then(null, Cu.reportError); with Promise.jsm
On Fri, Aug 9, 2013 at 2:08 PM, Boris Zbarsky bzbar...@mit.edu wrote: Oh, that is a _very_ interesting idea. I wonder whether we can get that specced, or at least allowed by the spec. If it's just to the error console, we can do whatever we want. Do you have something else in mind? -- http://annevankesteren.nl/ ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform
Re: Use .then(null, Cu.reportError); with Promise.jsm
On 8/9/13 9:27 AM, Boris Zbarsky wrote: I think we should definitely report to the error console. I filed https://bugzilla.mozilla.org/show_bug.cgi?id=903419 -Boris ___ dev-platform mailing list dev-platform@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-platform