Use native Promises when available