function reject(promise, reason) {
    if (promise._state === PENDING) {
        promise._state = SETTLED;
        promise._data = reason;