When would `e` not be an `Error` instance? If it has to to be JSON-ified over the thread anyway, why not just pass the fake Error object via the pipe?

```
} catch (e) {
  console.exception(e);
  let modifiedError = { message, fileName, lineNumber, stack, name } = e;
  pipe.emit('error', modifiedError)
}
```

This would let us get rid of the duplicate `isInstance` and some of the extra code in `content/worker.js` right?