serenity/Userland
Timothy Flynn 18b9d02edd LibWeb: Implement setTimeout/setInterval with ESO according to the spec
Our setInterval implementation currently crashes on DuckDuckGo when it's
invoked with a string argument. In this path, we were creating a native
function to evaluate and execute that string. That evaluation was always
returning a Completion, but NativeFunction expects ThrowCompletionOr.
The conversion from Completion to ThrowCompletionOr would fail a VERIFY
because that conversion is only valid if the Completion is an error; but
we would trigger this conversion even on success.

This change re-implements setTimeout & setInterval in direct accordance
with the spec. So we avoid making that NativeFunction altogether, and
DDG can progress past its invocation to the timer. With this change, we
also have other features we did not previously support, such as passing
any number of arguments to the timers. This does not implement handling
of nesting levels yet.
2022-03-04 19:51:26 +01:00
..
Applets Userland: Rename WindowManagerServerConnection 2022-02-25 22:35:12 +01:00
Applications Spreadsheet: Ask about unsaved changes on "Open..." action activation 2022-03-04 11:56:52 -05:00
Demos Demos/CatDog: Show different messages depending on state 2022-03-02 18:10:02 +01:00
DevTools HackStudio: Propagate error from TerminalWrapper 2022-03-02 18:08:05 +01:00
DynamicLoader
Games LibGUI+Apps: Convert Statusbar Labels to Segments 2022-02-24 19:09:41 +01:00
Libraries LibWeb: Implement setTimeout/setInterval with ESO according to the spec 2022-03-04 19:51:26 +01:00
Services Libraries: Make CharacterBitmap instances at compile-time 2022-03-04 17:41:08 +01:00
Shell
Utilities reboot: Port to LibMain 2022-03-03 15:42:44 -08:00
CMakeLists.txt