Currently when a promise is rejected with a plain object instead of an Error Promise.reject({ code: 42, detail: 'oops' }), the catcher loses the object content - String(obj) produces "[object Object]".
The console catcher also falls back to event.reason?.message || String(event.reason), which either picks up an accidental message property or produces the same useless string.

Currently when a promise is rejected with a plain object instead of an Error
Promise.reject({ code: 42, detail: 'oops' }), the catcher loses the object content -String(obj)produces"[object Object]".The console catcher also falls back to
event.reason?.message || String(event.reason), which either picks up an accidentalmessageproperty or produces the same useless string.