Input to a JSEnv.
A JSRun that has a communication channel to the running JS code.
A JavaScript execution environment.
A JavaScript execution environment.
This can run and interact with JavaScript code.
Any implementation is expected to be fully thread-safe.
A launched instance of a JSEnv.
Configuration provided when starting a JSEnv.
Input to a JSEnv.
Implementors of a JSEnv are expected to pattern match on this input type and handle the ones they support.
Note that this type is not sealed, so future versions of Scala.js may add additional input types. Older JSEnvs are expected to fail in this case with an UnsupportedInputException.