make JsExecutor cross-platform