new Promise(function(){throw 'test ex'});
I test it in ie9 Emulation. But no error throw.
Maybe a error can be throwed this way:
// some things bad happen, catched in `ex`
// now throw it
setTimeout(function(){throw ex},0);
I try to find where to insert these. But it's a little complex. Lots of callback >_<.