ES6 Promise shim