I see. But you could restructure it by using a flag, which might help with stack traces. (I am not sure though; every time I test whether re-throwing breaks stack traces, I seem to get a different result.)

What I mean is, we currently have:

```js
try {
  x();
} catch (e) {
  y();
  throw e;
} finally {
  z();
}
```

and it could be

```js
var threw = true;
try {
  x();
  threw = false;
} finally {
  if (threw) {
    y();
  }
  z();
}
```