ladybird/Meta/Generators
Andreas Kling 4ac744082b LibJS: Cache dynamic environment coordinates
Dynamic environment binding opcodes lost the old coordinate warmup.
They were split away from the static coordinate opcodes. Hot closures
and eval-sensitive functions then resolved the same binding by name on
every execution, which regressed JS benchmark throughput badly.

Give each dynamic environment opcode a per-executable coordinate cache
slot. The cache keeps the bytecode stream immutable while letting both
interpreters take a direct declarative environment fast path after the
first lookup. Keep the existing eval invalidation behavior and only warm
caches for declarative-only chains so with environments continue to
observe object shadowing.

Reject cached bytecode that uses the no-cache sentinel for dynamic
environment coordinate cache operands, since execution indexes those
cache arrays unconditionally.

Rebaseline bytecode expectations for the instruction size changes. Add
coverage for with-object shadowing across repeated dynamic lookups and
for rejecting corrupt dynamic environment cache indices.
2026-05-19 15:54:23 +02:00
..
embed_as_string.py Meta: Move python code generators to a subdirectory 2026-04-23 07:31:19 -04:00
generate_dom_tree.py Meta: Don't use union operator syntax in generators 2026-04-30 09:32:22 +02:00
generate_encoding_indexes.py LibTextCodec: Update GB18030 for GB18030-2022 and import WPT tests 2026-05-09 11:44:42 +02:00
generate_ipc_definitions.py Meta: Combine Lexer's consume_specific_char and consume_specific_string 2026-04-29 12:24:00 +01:00
generate_libjs_bytecode_def_derived.py LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
generate_libwasm_spec_test.py Meta: Fix typechecking errors in generate_libwasm_spec_test 2026-05-13 08:13:51 -05:00
generate_libwasm_spec_test.sh Meta: Move python code generators to a subdirectory 2026-04-23 07:31:19 -04:00
generate_libweb_aria_roles.py Meta: Replace GenerateAriaRoles with a python generator 2026-04-29 17:28:09 +01:00
generate_libweb_css_descriptors.py Meta: Replace GenerateCSSDescriptors with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_enums.py Meta: Replace GenerateCSSEnums with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_environment_variables.py Meta: Replace GenerateCSSEnvironmentVariable with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_keyword.py Meta: Replace GenerateCSSKeyword with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_math_functions.py Meta: Replace GenerateCSSMathFunctions with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_media_feature_id.py Meta: Replace GenerateCSSMediaFeatureID with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_numeric_factory_methods.py Meta: Make CSS dimension loading reusable 2026-05-13 11:00:07 +01:00
generate_libweb_css_property_id.py Meta: Replace GenerateCSSPropertyID with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_pseudo_class.py Meta: Replace GenerateCSSPseudoClass with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_pseudo_element.py Meta: Replace GenerateCSSPseudoElement with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_style_properties.py Meta: Replace GenerateCSSStyleProperties with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_transform_functions.py Meta: Replace GenerateCSSTransformFunctions with a python generator 2026-04-25 12:02:49 +02:00
generate_libweb_css_units.py Meta: Make CSS dimension loading reusable 2026-05-13 11:00:07 +01:00
generate_libweb_css_value_types_parsing.py LibWeb: Generate CSS <paint> parsing 2026-05-13 11:26:20 +01:00
generate_libweb_html_named_character_references.py Meta: Replace GenerateNamedCharacterReferences with a python generator 2026-04-29 17:28:09 +01:00
generate_public_suffix_data.py Meta: Move python code generators to a subdirectory 2026-04-23 07:31:19 -04:00
generate_window_or_worker_interfaces.py Meta: Generate LibWeb Bindings/Forward.h from Python 2026-05-15 17:52:52 +01:00
libjs_bytecode_def.py Meta: Simplify tracking the current op in libjs_bytecode_def.py 2026-05-13 08:13:51 -05:00
wasm_unimplemented_tests.txt Meta: Move python code generators to a subdirectory 2026-04-23 07:31:19 -04:00