JsContext
Stateful JS execution context. Keeps variables alive between eval calls, mimicking the Rhino "scope" object that extensions used to hold on to.
Instances are created via newJsContext, not by calling this constructor directly.
Parameters
wall-clock budget given to each eval call. Can still be changed after construction (e.g. from within newJsContext's initializer block) as long as it's set before the first eval/get/set call, since the underlying interpreter is built lazily from whatever values these hold at that point. Changes made afterward have no effect.
hard cap on statements/expressions executed per eval call, independent of wall-clock time. Same lazy-initialization caveat as maxExecutionTime applies.
the CoroutineScope this context's cancellation is tied to. Supplied automatically by newJsContext from the caller's own coroutine context.