1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-09 09:34:57 +09:00
ladybird/Libraries
Andreas Kling 7c26354563 LibJS: Avoid Value->PropertyKey->Value roundtrip in for..in iteration
Before this change, we would call [[OwnPropertyKeys]] on the target
objects, then convert the returned keys from Value into PropertyKey.
Then, when actually iterating, we'd convert them back into Value again.
This was particularly costly for numeric property keys, since we had
to go through string-from-number construction.

Now, we simply keep the original values returned by [[OwnPropertyKeys]]
around and use them for the enumeration.

1.09x speedup on MicroBench/for-in-indexed-properties.js
1.01x speedup on MicroBench/for-in-named-properties.js
2025-05-03 17:33:54 +02:00
..
LibCompress LibCompress: Refactor deflate de/compressor using zlib 2025-03-19 13:46:50 +01:00
LibCore LibCore+LibWebView: Restore was_exit_requested to EventLoop 2025-04-30 11:12:23 -04:00
LibCrypto LibCrypto: Remove unused big numbers modular functions 2025-04-28 12:05:26 +02:00
LibDevTools LibDevTools+LibWebView+WebContent: Report exceptions to DevTools 2025-03-27 14:14:02 +00:00
LibDiff Everywhere: Remove sv suffix from format string literals 2025-04-08 20:00:18 -04:00
LibDNS LibCore: Don't discard subsequent results in Socket::resolve_host 2025-02-28 15:14:35 +01:00
LibFileSystem LibCore: Add S_ISDIR, S_ISREG to System.h on Windows 2025-02-12 18:42:05 -07:00
LibGC LibGC: Add GC::RootHashMap<...> template container 2025-05-03 17:33:54 +02:00
LibGfx LibGfx: Add a helper for constructing a TTF font from temporary bytes 2025-05-03 12:01:43 +01:00
LibHTTP LibURL: Rename 'cannot have a base URL' to 'has an opaque path' 2025-04-06 08:24:54 -04:00
LibIDL LibIDL+LibWeb: Begin support for async iterator in IDL 2025-04-14 17:43:11 -04:00
LibImageDecoderClient Everywhere: Make TransportSocket non-movable 2025-04-09 15:27:52 +02:00
LibIPC LibIPC: Don't verify that socket is closed when getting EPIPE on send 2025-04-30 11:12:23 -04:00
LibJS LibJS: Avoid Value->PropertyKey->Value roundtrip in for..in iteration 2025-05-03 17:33:54 +02:00
LibLine LibLine: Use AK::Time instead of gettimeofday for history entries 2025-02-12 19:13:49 -07:00
LibMain
LibMedia Everywhere: Remove unused private fields 2025-04-04 12:40:07 +02:00
LibRegex LibRegex: Use the right offset when patching jumps through fork-trees 2025-04-27 12:16:15 +02:00
LibRequests LibRequests+RequestServer: Add an error code for bad content encoding 2025-04-20 16:50:37 +02:00
LibRIFF
LibSyntax
LibTest LibJS+LibWeb: Do not return error from VM::create 2025-04-25 14:07:51 +02:00
LibTextCodec AK+LibTextCodec: Stop using Utf16View endianness override 2025-04-16 10:04:50 +02:00
LibThreading LibThreading: Clean up pthread mutex attributes and mutex itself 2025-02-20 15:04:50 -07:00
LibTLS LibTLS: Call close() when we receive SSL_ERROR_ZERO_RETURN 2025-04-14 21:07:42 +02:00
LibUnicode LibUnicode: Avoid rejecting end-of-text position as a valid boundary 2025-04-11 15:30:17 -04:00
LibURL LibURL: Remove URL's valid state 2025-04-19 07:18:43 -04:00
LibWasm LibWasm: Make traps hold on to externally-managed data 2025-04-22 08:43:46 -06:00
LibWeb LibJS: Add and use PrimitiveString::length_in_utf16_code_units 2025-05-03 16:18:47 +02:00
LibWebSocket LibWebSocket: Remove meaningless const&& Message constructor 2025-03-09 11:14:20 -04:00
LibWebView LibWeb+LibWebVew+WebContent+UI: Add IPC to retrieve the system clipboard 2025-05-02 17:46:16 -04:00
LibXML LibXml: Notify listener when doctype is parsed 2025-01-20 14:48:19 +01:00