this is not public api, and should not be relied apon. the only check for a promise is via `then`