ES6 Promise polyfill