mirror of
https://github.com/LadybirdBrowser/ladybird
synced 2026-05-02 20:42:11 +02:00
Cache necessary data during parsing to eliminate HashMap operations in SharedFunctionInstanceData construction. Before: 2 HashMap copies + N HashMap insertions with hash computations After: Direct vector iteration with no hashing Build FunctionScopeData for function scopes in the parser containing: - functions_to_initialize: deduplicated var-scoped function decls - vars_to_initialize: var decls with is_parameter/is_function_name - var_names: HashTable for AnnexB extension checks - Pre-computed counts for environment size calculation - Flags for "arguments" handling Add ScopeNode::ensure_function_scope_data() to compute the data on-demand for edge cases that don't go through normal parser flow (synthetic class constructors, static initializers, module wrappers). Use this cached data directly in SFID with zero HashMap operations.
12 KiB
12 KiB