Use native Promise when available.