* Electron version: All
* Operating system: All

### Expected behavior

`process.versions.electron` should be non-configurable

### Actual behavior

```js
process.versions.electron = '99.99.99'
```

Code such as the above will override the Electron version which can stop third party modules correctly recognising the Electron version.

### How to reproduce

Run the code above^^

The reason this is an issue is that other versions such as `process.versions.node` can not be configured / changed.
atom/common/node_bindings.cc
V(atom_common_asar)                        \
  V(atom_common_clipboard)                   \
  V(atom_common_crash_reporter)              \
  V(atom_common_features)                    \
  V(atom_common_native_image)                \
  V(atom_common_notification)                \
  V(atom_common_screen)                      \
  V(atom_common_shell)                       \
  V(atom_common_v8_util)                     \
  V(atom_renderer_ipc)                       \
  V(atom_renderer_web_frame)
#define ELECTRON_VIEW_MODULES(V) \
  V(atom_browser_box_layout)     \
  V(atom_browser_button)         \
  V(atom_browser_label_button)   \
  V(atom_browser_layout_manager) \
  V(atom_browser_md_text_button) \
  V(atom_browser_text_field)
#define ELECTRON_DESKTOP_CAPTURER_MODULE(V) V(atom_browser_desktop_capturer)
#define V(modname) void _register_##modname();
ELECTRON_BUILTIN_MODULES(V)
#if BUILDFLAG(ENABLE_VIEW_API)
ELECTRON_VIEW_MODULES(V)
#endif
#if BUILDFLAG(ENABLE_DESKTOP_CAPTURER)
ELECTRON_DESKTOP_CAPTURER_MODULE(V)
#endif
#undef V
namespace {
void stop_and_close_uv_loop(uv_loop_t* loop) {