Ответ 1
Какой "родной"
Быть родным означает, что он написан внутри базы кода браузера, а не кода пользователя. Чтобы внедрить promises изначально в IE9, вам нужно будет получить копию исходного кода IE9 от Microsoft, закодировать их, скомпилировать и распространять. Хотя это выполнимо, что это не очень жизнеспособный вариант.
Использование promises сегодня
С другой стороны, существует несколько библиотек обещаний, которые существуют в userlevel. Совершенно возможно реализовать свое обещание - вот отличное сообщение в блоге о том, как.
Вы можете свободно включать библиотеку, например bluebird (bluebird) или Q, которые соответствуют этому API, и в дальнейшем будут продолжать работать с ES6 promises. Стоит отметить, что Bluebird, например, работает на IE6 +, поэтому в вашем случае не должно быть проблем.
Например здесь Angular реализация и здесь реализация jQuery - Angular больше читаемый, на мой взгляд.
Стандартная
Также обратите внимание, что в отличие от вышеприведенного кода promises стандартизованы спецификацией Promises/A + с такими библиотеками, как Angular, и библиотеки, такие как jQuery, работают над соответствием и, вероятно, будут в следующей версии. Родные promises также соответствуют стандарту и дополняют его.