Issue 1:
exceptions.txt

Preflight Checklist

I have read the Contributing Guidelines for this project.

I agree to follow the Code of Conduct that this project adheres to.

I have searched the issue tracker for a feature request that matches the one I want to file, without success.

Electron Version

12.0.2,11.x

What operating system are you using?

Windows

Operating System Version

windows 7

What arch are you using?

ia32

Last Known Working Electron version

I do not know

Expected Behavior

Worked well as windows 10

Actual Behavior

crashed sometimes, not everytime

or the same as #28487

the contextIsolation is false

Testcase Gist URL

No response

Issue 2:
Preflight Checklist

I have read the Contributing Guidelines for this project.

I agree to follow the Code of Conduct that this project adheres to.

I have searched the issue tracker 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:

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.