An ES6 Promise polyfill