proc fromJSGetProp[T](ctx: JSContext; this: JSValueConst; name: cstring; res: var T): Opt[bool] {....raises: [].}
proc toJS[T](ctx: JSContext; opt: Opt[T]): JSValue {....raises: [].}
proc toJSNew[T](ctx: JSContext; opt: Opt[T]; ctor: JSValueConst): JSValue {. ...raises: [].}
template `?`(res: FromJSResult) {..}
template `?`(res: JSClassID) {..}