### Preflight Checklist

- [X] I have read the [Contributing Guidelines](https://github.com/electron/electron/blob/master/CONTRIBUTING.md) for this project.
- [X] I agree to follow the [Code of Conduct](https://github.com/electron/electron/blob/master/CODE_OF_CONDUCT.md) that this project adheres to.
- [X] I have searched the [issue tracker](https://www.github.com/electron/electron/issues) for a feature request that matches the one I want to file, without success.

### Electron Version

11.4.5

### What operating system are you using?

Windows

### Operating System Version

Windows 10 version 1903

### What arch are you using?

ia32

### Last Known Working Electron version

9.4.4

### Expected Behavior

I would expect a `RangeError: Maximum call stack size exceeded` exception to be printed to the console. In other words, a Javascript stack overflow should not crash the renderer process.

### Actual Behavior

The renderer process crashes. Here's a piece of the symbolized dump:

```
Operating system: Windows NT
                  10.0.18362 329
CPU: x86
     AuthenticAMD family 16 model 2 stepping 3
     8 CPUs

GPU: UNKNOWN

Crash reason:  EXCEPTION_STACK_OVERFLOW
Crash address: 0x1c188f0
Process uptime: 5 seconds

Thread 0 (crashed)
 0  electron.exe!Builtins_InterpreterEntryTrampoline + 0x90
    eip = 0x01c188f0   esp = 0x0b373000   ebp = 0x0b373014   ebx = 0x0b901698
    esi = 0x5634f5bd   edi = 0x4e8a8591   eax = 0x50182329   ecx = 0x00000000
    edx = 0x50182329   efl = 0x00010246
    Found by: given as instruction pointer in context
 1  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b37301c   ebp = 0x0b373038
    Found by: previous frame's frame pointer
 2  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373040   ebp = 0x0b37305c
    Found by: previous frame's frame pointer
 3  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373064   ebp = 0x0b373080
    Found by: previous frame's frame pointer
 4  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373088   ebp = 0x0b3730a4
    Found by: previous frame's frame pointer
 5  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730ac   ebp = 0x0b3730c8
    Found by: previous frame's frame pointer
 6  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730d0   ebp = 0x0b3730ec
    Found by: previous frame's frame pointer
 7  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b3730f4   ebp = 0x0b373110
    Found by: previous frame's frame pointer
 8  electron.exe!Builtins_InterpreterEntryTrampoline + 0xc2
    eip = 0x01c18922   esp = 0x0b373118   ebp = 0x0b373134
    Found by: previous frame's frame pointer
(This goes on for 14k+ frames)
```

### Testcase Gist URL

https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332

### Additional Information

Here's the code snippet which triggers the crash:

```js
try {
	function run() {
		run();
	};
	run();
} catch (e) {
	console.error(e);
}
```

Another simple way to reproduce the crash is by running electron with `--remote-debugging-port` and pasting the snippet on devtools console.

The crash is reproducible on the following versions:

- 14.0.0-nightly.20210503
- 13.0.0-beta.20
- 12.0.6
- 11.4.5
- 10.4.5

It doesn't seem to be reproducible in windows 32-bit versions of node.js 14.16 or chrome 90.

In the gist I've added a script which will automatically download the proper electron version + symbols and run the app. Here's how it can be quickly reproduced with cmd.exe:

```
git clone https://gist.github.com/tarruda/654839161e411c1989ddf479bcbb5332 electron-win32bit-crash
cd electron-win32bit-crash
npm install
npm start
```

The bootstrap-run.js file can be edited to try different versions.
shell/app/electron_main.cc
} arguments;
  if (!arguments.argv)
    return -1;
#ifdef _DEBUG
  
  static const char kCI[] = "CI";
  if (IsEnvSet(kCI)) {
    _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_DEBUG | _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
    _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_DEBUG | _CRTDBG_MODE_FILE);
    _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
    _set_error_mode(_OUT_TO_STDERR);
  }
#endif
#if BUILDFLAG(ENABLE_RUN_AS_NODE)
  bool run_as_node =
      electron::fuses::IsRunAsNodeEnabled() && IsEnvSet(electron::kRunAsNode);
#else
  bool run_as_node = false;
#endif
  
  if (run_as_node || !IsEnvSet("ELECTRON_NO_ATTACH_CONSOLE"))
    base::RouteStdioToConsole(false);
  std::vector<char*> argv(arguments.argc);
  std::transform(arguments.argv, arguments.argv + arguments.argc, argv.begin(),
                 [](auto& a) { return _strdup(base::WideToUTF8(a).c_str()); });
#if BUILDFLAG(ENABLE_RUN_AS_NODE)
  if (electron::fuses::IsRunAsNodeEnabled() && run_as_node) {