1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-26 19:17:35 +00:00
serenity/Userland/Libraries
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
..
LibArchive LibArchive: Ensure tar extended header length is within expected range 2023-10-03 15:39:20 +02:00
LibAudio LibAudio: Use mapped files for audio playback 2023-09-27 03:22:56 +02:00
LibC LibC+Kernel: Move GPU-related API methods to a LibC header file 2023-09-15 11:05:25 -06:00
LibCards LibCards: Keep markings visible on very dark or light backgrounds 2023-10-04 20:10:04 +02:00
LibChess Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibCMake LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
LibCodeComprehension AK: Make "foo"_string infallible 2023-08-07 16:03:27 +02:00
LibCompress LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibConfig Userland: Convert config listener callbacks to use StringView 2023-06-27 15:37:00 +01:00
LibCore Userland: Port lists of mime types to String 2023-09-29 14:40:21 +01:00
LibCoredump LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibCpp LibCpp: Add some missing accessors to AST nodes 2023-10-02 21:15:08 +02:00
LibCrypt Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibCrypto LibCrypto: Add Chacha20Poly1305 2023-09-26 13:22:04 +03:30
LibDebug LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibDesktop Userland: Make GUI::Window construction non-fallible 2023-09-17 16:47:28 -06:00
LibDeviceTree Everywhere: Remove unused DeprecatedString includes 2023-04-09 22:00:54 +02:00
LibDiff LibDiff: Fix wrong index used when prepending context lines 2023-09-11 12:10:50 +01:00
LibDNS LibDNS: Fix compilation with signed time_t 2023-09-06 11:41:16 -06:00
LibDSP Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibEDID LibC+Kernel: Move GPU-related API methods to a LibC header file 2023-09-15 11:05:25 -06:00
LibELF LibELF: Calculate size of relocation table correctly in all cases 2023-09-27 03:33:36 +02:00
LibFileSystem LibFileSystem: Replace PATH_MAX usage with heap allocation 2023-09-06 07:14:35 -06:00
LibFileSystemAccessClient LibFSAC+Userland: Pass options for FSAC::open_file() using a struct 2023-06-11 09:40:17 +01:00
LibGemini Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibGfx LibGfx/ILBMLoader: Add support for EHB mode 2023-10-03 16:09:55 -06:00
LibGL AK: Add to_radians and to_degrees math functions 2023-09-10 08:38:29 +01:00
LibGLSL LibGLSL: Add tests for GLSL parser 2023-08-18 15:29:48 +02:00
LibGPU LibGPU: Remove DeprecatedString usage 2023-01-30 13:49:52 -05:00
LibGUI LibGUI: Don't enter TableView edit mode when a control key is pressed 2023-10-02 21:38:09 +02:00
LibHTTP LibCompress: Let BrotliDecompressionStream take a MaybeOwned 2023-08-23 12:03:37 +01:00
LibIDL LibIDL: Fix bug where Type::is_json doesn't look at parent interface 2023-08-23 12:11:21 +01:00
LibImageDecoderClient Userland: Return empty if ImageDecoder client receives an invalid frame 2023-10-03 08:33:53 +02:00
LibIMAP LibIMAP+Mail: Rename MultiPartBody's mime_type to multipart_subtype 2023-09-09 11:19:37 -06:00
LibIPC Userland: Rename Core::Object to Core::EventReceiver 2023-08-06 20:39:51 +02:00
LibJS LibJS: Make array-like Put access on ordinary objects much faster 2023-10-05 16:57:45 +02:00
LibKeyboard Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibLine LibLine: Refresh the line after case-change operations 2023-08-07 22:51:49 +03:30
LibLocale LibLocale: Remove compact currency patterns 2023-09-04 18:22:28 +02:00
LibMain
LibManual Userland: Prefer _string over _short_string 2023-08-08 07:37:21 +02:00
LibMarkdown Userland: Fix absolute paths in man page links 2023-09-06 15:02:44 +01:00
LibPartition Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibPCIDB LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibPDF LibGfx: Convert FontDatabase APIs to use FlyString 2023-09-06 11:29:03 -04:00
LibProtocol Ladybird: Add WebSocket server for use by Lagom networking 2023-08-03 09:55:20 +02:00
LibPublicSuffix LibPublicSuffix: Add Library and Generators 2023-08-17 15:30:23 +01:00
LibRegex LibRegex: Don't add the Repeat instruction size to its jump target 2023-09-15 18:07:23 +03:30
LibSanitizer LibSanitizer: Add _abort variants of UBSan handlers 2023-08-13 05:14:07 +02:00
LibSoftGPU AK: Add to_radians and to_degrees math functions 2023-09-10 08:38:29 +01:00
LibSQL LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
LibSymbolication LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibSyntax LibSyntax+Userland: Make LibSyntax not depend on LibGUI 2023-08-29 07:57:39 -04:00
LibSystem Everywhere: Resolve conflicts with LibC and libc++ 2023-06-27 12:40:38 +02:00
LibTest LibJS: Stop propagating small OOM errors from the Error object 2023-09-09 13:03:25 -04:00
LibTextCodec LibTextCodec: Add "get output encoding" from the Encoding specification 2023-06-19 06:12:26 +02:00
LibThreading LibThreading: Make Thread keep itself alive while its action is running 2023-08-07 10:40:34 -06:00
LibTimeZone LibTimeZone: Include generated files before checked-in files 2023-09-17 19:22:29 -06:00
LibTLS LibTLS: Allow applications to provide a custom default CA Cert path 2023-08-02 05:44:43 +02:00
LibUnicode LibWeb: Implement text-transform: capitalize 2023-10-03 09:47:17 -04:00
LibUSBDB LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibVideo LibCore: Make MappedFile OwnPtr-based 2023-09-27 03:22:56 +02:00
LibVirtGPU Everywhere: Remove needless trailing semi-colons after functions 2023-07-08 10:32:56 +01:00
LibVT Userland: Compare event MIME type list with a StringView 2023-09-29 14:40:21 +01:00
LibWasm LibWasm: Make sure to place imported functions before the module's 2023-09-26 07:47:20 +03:30
LibWeb LibJS: Add Object::may_interfere_with_indexed_property_access() virtual 2023-10-05 16:57:45 +02:00
LibWebSocket LibWebSocket: Adds capability for receiving fragmented messages 2023-09-09 10:59:59 -06:00
LibWebView LibWeb+LibWebView+WebContent: Add support for meta theme-color 2023-10-03 16:17:43 -06:00
LibX86 LibX86: Remove i686 support 2022-12-28 11:53:41 +01:00
LibXML LibXML: Set parents for text and comment nodes 2023-08-18 08:58:51 +03:30
CMakeLists.txt LibPublicSuffix: Add Library and Generators 2023-08-17 15:30:23 +01:00