update promise shim