yep. but deferreds are still optional. we may detect native promises by using `/\[native code\]/.test(Function.prototype.toString.call(Promise))` or something. i don't think this is reliable.