"catch" is a reserved word in ES3

I know, it looks ugly, but this way, `promise` will not throw a syntax error in ES3 browsers.