ladybird/Userland
Andreas Kling 021a141b53 LibJS: Make array-like Put access on ordinary objects much faster
This patch adds a fast path to the PutByValue bytecode op that bypasses
a ton of things *if* a set of assumptions hold:

- The property key must be a non-negative Int32
- The base object must not interfere with indexed property access
- The base object must have simple indexed property storage
- The property key must already be present as an own property
- The existing value must not have any accessors defined

If this holds (which it should in many common cases), we can skip all
kinds of checks and poke directly at the property storage, saving time.

16% speed-up on the entire Kraken benchmark :^)
(including: 88% speed-up on Kraken/imaging-desaturate.js)
(including: 55% speed-up on Kraken/audio-fft.js)
(including: 54% speed-up on Kraken/audio-beat-detection.js)
2023-10-05 16:57:45 +02:00
..
Applets Userland: Make Window::set_main_widget() non-fallible 2023-09-21 10:20:23 +02:00
Applications Maps: Pad grid size to prevent missing tiles 2023-10-03 20:25:09 +02:00
BuggieBox checksum: Add support for BLAKE2b 2023-09-17 16:49:35 +03:30
Demos Userland: Use non-fallible EventReceiver::add() where possible 2023-09-25 10:58:31 +02:00
DevTools Userland: Compare event MIME type list with a StringView 2023-09-29 14:40:21 +01:00
DynamicLoader CMake: Use CMAKE_POSITION_INDEPENDENT_CODE instead of explicit -fpic 2023-09-18 10:26:42 +02:00
Games Hearts: Paint player names in white when background is a dark color 2023-10-04 20:10:04 +02:00
Libraries LibJS: Make array-like Put access on ordinary objects much faster 2023-10-05 16:57:45 +02:00
Services LibWeb+LibWebView+WebContent: Add support for meta theme-color 2023-10-03 16:17:43 -06:00
Shell Shell: Accept IoNumber as a valid redirection target 2023-10-02 21:21:38 +02:00
Utilities Utilities: Remove redundant target_link_libraries 2023-10-05 15:19:19 +02:00
CMakeLists.txt Userland: Add the BuggieBox program 2022-11-26 12:41:47 -07:00