Yeah, I was originally overzealous about making the JsTokenToXxx methods private to js_types.cc, which led to the artificial JsRunnerContext construct. You're right that its methods ought to belong in the JsRunner implementations. I've also tinkered with the commentary about AbstractJsToken, and restrictions on its use, since it is indeed just a pointer to something on the stack.
Please take another look.
