Add ComJSEnv

Maybe call this `asyncRun` or `startRun`? Otherwise it's a bit confusing, given that `JSRunner` also has a method named `run()`, but they do not have the same spec.

Technically it's fine, since they are in two different traits. But still, it's confusing.