ladybird/Userland/Libraries
Max Wipfli 519a1cdc22 LibWeb: Change HTMLToken storage architecture
This completely changes how HTMLTokens store their data. Previously,
space was allocated for all token types separately. Now, the HTMLToken's
data is stored in just a String, two booleans and a Variant.

This change reduces sizeof(HTMLToken) from 68 to 32. Also, this reduces
raw tokenization time by around 20 to 50 percent, depending on the page.
Full document parsing time (with HTMLDocumentParser, on a local HTML
page without any dependency files) is reduced by between 4 and 20
percent, depending on the page.

Since tokenizing HTML pages can easily generated 50'000 tokens and more,
the storage has been designed in a way that avoids heap allocations
where possible, while trying to reduce the size of the tokens. The only
tokens which need to allocate on the heap are thus DOCTYPE tokens (max.
1 per document), and tag tokens (but only if they have attributes). This
way, only around 5 percent of all tokens generated need to allocate on
the heap (except for StringImpl allocations).
2021-07-17 16:24:57 +04:30
..
LibArchive LibArchive: Move method implementations away from header 2021-05-17 18:14:05 +01:00
LibAudio LibAudio: Use new Vector formatter 2021-07-13 17:40:07 +02:00
LibC LibC: Fix grp.h includes 2021-07-17 13:00:33 +02:00
LibCards LibCards: Support non-alternating colour patience games 2021-06-24 10:32:53 +02:00
LibChess LibChess: Compact the Defenitions of various chess related types 2021-06-22 23:09:42 +02:00
LibCompress LibCompress: Discard GZip NAME & COMMENT optional strings 2021-05-18 08:09:21 +02:00
LibCore LibCore+LibIMAP: Move Promise to LibCore 2021-07-15 11:11:14 +02:00
LibCoreDump LibDebug: Implement symbolication for x86_64 2021-07-13 23:19:33 +02:00
LibCpp LibCpp: Don't store entire ASTNode vector in each parser state 2021-07-13 23:20:09 +02:00
LibCrypt Everywhere: Add a blank line after copyright header where missing 2021-05-15 00:27:09 +01:00
LibCrypto LibCrypto: Add the >= operator to UnsignedBigInteger 2021-07-12 19:05:17 +01:00
LibDebug LibDebug: Implement symbolication for x86_64 2021-07-13 23:19:33 +02:00
LibDesktop LibDesktop: Add spawn() to AppFiles 2021-06-28 16:29:02 +02:00
LibDiff AK+Everywhere: Consolidate String::index_of() and String::find() 2021-05-24 11:59:18 +02:00
LibDl Toolchain+Userland: Enable TLS for x86_64 2021-07-04 01:07:28 +02:00
LibELF LibELF/DynamicLinker: Evaluate symbols in library insertion order (#8802) 2021-07-16 11:55:01 +02:00
LibGemini AK: Implement String::find_any_of() and StringView::find_any_of() 2021-07-02 21:54:21 +02:00
LibGfx LibGUI: Dither pattern should be independent from clipping rectangle 2021-07-15 19:46:42 +02:00
LibGL LibGL: Implement very basic version of glGetFloatv 2021-06-09 10:49:38 +02:00
LibGUI VimEditingEngine: Add support for repeats of J 2021-07-15 10:10:07 +02:00
LibHTTP LibHTTP: Finish the request up on TLS connection finish 2021-06-30 01:23:25 +04:30
LibImageDecoderClient Userland: Remove dummy IPC methods 2021-06-24 00:38:58 +02:00
LibIMAP LibCore+LibIMAP: Move Promise to LibCore 2021-07-15 11:11:14 +02:00
LibIPC LibIPC: Remove unnecessary template<> 2021-07-08 10:11:00 +02:00
LibJS LibJS: Implement Temporal.Duration.prototype.abs() 2021-07-16 21:59:13 +01:00
LibKeyboard LibKeyboard: Remove an unnecessary #include when building with KERNEL 2021-06-30 11:30:28 +02:00
LibLine AK: Implement String::find_any_of() and StringView::find_any_of() 2021-07-02 21:54:21 +02:00
LibM Everywhere: Add Clang pragmas 2021-07-08 10:11:00 +02:00
LibMarkdown LibMarkdown: Wrap non-inline code blocks in <pre> 2021-06-09 18:06:54 +01:00
LibPCIDB Everywhere: "file name" => "filename" 2021-04-29 22:16:18 +02:00
LibPDF LibPDF: Fix treating not finding the linearized dict as a fatal error 2021-07-16 20:44:10 +02:00
LibProtocol LibProtocol: Use URL class in RequestClient::start_request argument 2021-06-06 16:00:11 +02:00
LibPthread LibPthread+Kernel: Add pthread_kill() and the thread_kill syscall 2021-07-09 15:36:50 +02:00
LibRegex LibRegex: Consider EOF in the middle of a range an error 2021-07-13 07:04:06 +02:00
LibSanitizer LibSantizer: Read $UBSAN_OPTIONS to set deadliness on first print 2021-06-29 07:17:34 +04:30
LibSQL LibSQL+SQLServer: Build SQLServer system service 2021-07-08 17:55:59 +04:30
LibSymbolication LibSymbolication: Fix incorrect argument type for symbolicate() 2021-06-24 09:27:13 +02:00
LibSyntax LibWeb+LibSyntax: Implement nested syntax highlighters 2021-06-07 14:45:49 +04:30
LibSystem Everything: Move to SPDX license identifiers in all files. 2021-04-22 11:22:27 +02:00
LibTest LibTest: Clear core dump flag for CrashTest child processes 2021-07-06 17:22:45 +02:00
LibTextCodec LibTextCodec: Add Turkish (aka ISO-8859-9, Windows-1254) encoding 2021-06-23 16:32:47 +01:00
LibThreading Revert "LibThreading: Fix BackgroundAction result use-after-free" 2021-07-12 11:29:37 +02:00
LibTLS LibCrypto: Replace from_base{2,8,10,16}() & to_base10 with from_base(N) 2021-06-29 16:55:54 +01:00
LibTTF LibTTF: Port width calculation changes from BitmapFont 2021-07-11 14:12:59 +02:00
LibUSBDB LibUSBDB: Fix vendor id decoding 2021-06-18 19:41:25 +04:30
LibVideo LibVideo/VP9: Implement MV reading & rectify MV storage issues 2021-07-10 21:28:56 +02:00
LibVT Terminal: Put debug spam in unimplemented_control_code() behind a flag 2021-07-10 16:13:34 +02:00
LibWasm LibWasm: Remove a useless use of ScopeGuard 2021-07-17 01:13:39 +04:30
LibWeb LibWeb: Change HTMLToken storage architecture 2021-07-17 16:24:57 +04:30
LibWebSocket AK+Everywhere: Disallow constructing Functions from incompatible types 2021-06-06 00:27:30 +04:30
LibX86 Debugger: Compile on x86_64 2021-06-30 19:05:51 +02:00
CMakeLists.txt Userland/Libraries: Add LibUSBDB library 2021-06-18 17:04:57 +04:30