Fix/catch

This fixes the case of:

```js
try {
} catch (ex) {
}
```

It treats the ex as being "function scoped" which isn't technically entirely true in modern browsers/node.js but is probably close enough.  Strictly speaking the catch block creates a block scoped variable (like you'd get with `let` in ES6).