serenity/Userland
Andreas Kling 63d8a1821e LibJS: Don't overwrite cached this value on async/generator reentry
When resuming execution of a suspended function, we must not overwrite
any cached `this` value with something from the ExecutionContext.

This was causing an empty JS::Value to leak into the VM when resuming
an async arrow function, since the "this mode" for such functions is
lexical and thus ExecutionContext will have an empty `this`.

It became a problem due to the bytecode optimization where we allow
ourselves to assume that `this` remains cached after we've executed a
ResolveThisBinding in this (or the first) basic block of the executable.

Fixes https://github.com/LadybirdBrowser/ladybird/issues/138

(cherry picked from commit a91bb72dabe54849657720e36e19a3d3b737055f)
2024-06-24 16:38:47 +02:00
..
Applets Keymap: Draw the current keymap text with the correct theme color 2024-03-02 19:24:53 +00:00
Applications SystemMonitor: Add an action to manually refresh process statistics 2024-06-23 21:20:37 +01:00
BuggieBox Meta+Userland: Make LibELF a proper library on Serenity 2024-04-26 19:08:13 -06:00
Demos Demos: Add sleep option to CatDog 2024-05-14 15:45:33 -06:00
DevTools Hackstudio: Add a window title when diff is opened 2024-06-09 14:13:29 -04:00
DynamicLoader DynamicLoader: Add an option to list all ELF loaded dependencies 2024-05-14 15:42:42 -06:00
Games Chess: Add time controls 2024-06-05 20:45:38 -04:00
Libraries LibJS: Don't overwrite cached this value on async/generator reentry 2024-06-24 16:38:47 +02:00
Services LibHTTP+LibCore+RequestServer: Use async streams for HTTP 2024-06-19 15:45:02 +02:00
Shell Everywhere: Remove uneeded short option argument where possible 2024-04-22 08:10:08 +02:00
Utilities Utilities/pkg: Move ports database handling from AvailablePort{.h,.cpp} 2024-06-23 00:59:54 +02:00
CMakeLists.txt