ladybird/Libraries/LibJS/Bytecode
Andreas Kling a124af2abb LibJS: Migrate walk_env_chain and the binding handlers
Convert the walk_env_chain macro to take its outputs (target_env,
bind_index) as explicit parameters, then migrate every handler that
walks the environment chain: GetBinding, GetInitializedBinding,
InitializeLexicalBinding, SetLexicalBinding, and
GetCalleeAndThisFromEnvironment.

The macro's internal scratch (the EnvironmentCoordinate address, the
hops counter, the invalid-coord sentinel, and the screwed-by-eval
flag) is now declared as macro-local temps that the allocator places
without touching whatever the caller has live. Each handler picks
its own names for env / idx / binding / value, instead of remembering
that the macro happens to leave them in t3 and t2.
2026-04-26 13:29:56 +02:00
..
AsmInterpreter LibJS: Migrate walk_env_chain and the binding handlers 2026-04-26 13:29:56 +02:00
BasicBlock.cpp LibJS: Stop worrying about Instruction destructors 2025-11-21 09:46:03 +01:00
BasicBlock.h LibJS: Remove remaining C++ pipeline artifacts 2026-03-19 21:55:10 -05:00
BuiltinAbstractOperationsEnabled.h LibJS: Introduce NativeJavaScriptBackedFunction 2025-11-30 11:54:54 +01:00
Builtins.h LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
Bytecode.def LibJS: Add a String.fromCharCode builtin opcode 2026-04-12 19:15:50 +02:00
ClassBlueprint.h LibJS: Add ClassBlueprint data structures 2026-02-11 23:57:41 +01:00
Debug.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
Executable.cpp LibJS: Preserve source positions in bytecode source maps 2026-04-22 22:34:54 +02:00
Executable.h LibJS: Preserve source positions in bytecode source maps 2026-04-22 22:34:54 +02:00
FormatOperand.h LibJS: Improve bytecode executable dump format 2026-03-20 00:51:23 -05:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
Instruction.cpp LibJS: Flatten Operand to 32-bit index in bytecode instruction stream 2025-12-09 21:44:13 -06:00
Instruction.h Meta: Reformat QtCreator file-listing script for readability 2026-02-23 13:10:03 +01:00
Interpreter.cpp LibJS: Call RawNativeFunction directly from asm Call 2026-04-15 15:57:48 +02:00
Label.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Label.h LibJS: Revert Enable EXPLICIT_SYMBOL_EXPORT 2025-07-22 11:51:29 -04:00
Operand.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PropertyAccess.h LibJS: Remove dead C++ bytecode compilation functions 2026-03-19 21:55:10 -05:00
PropertyKeyTable.cpp LibJS: Cache fully-formed PropertyKeys in Executable 2025-12-11 14:34:45 -06:00
PropertyKeyTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00
PropertyNameIterator.cpp LibJS: Cache stable for-in iteration at bytecode sites 2026-04-10 15:12:53 +02:00
PropertyNameIterator.h LibJS: Cache stable for-in iteration at bytecode sites 2026-04-10 15:12:53 +02:00
PutKind.h LibJS: Consolidate Put bytecode instructions and reduce code bloat 2026-03-04 18:53:12 +01:00
RegexTable.cpp LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
RegexTable.h LibRegex: Add ECMAScriptRegex and migrate callers 2026-03-27 17:32:19 +01:00
Register.h LibJS: Replace implicit environment stack with explicit registers 2026-02-09 16:35:39 +01:00
StringTable.cpp LibJS+LibWeb: Port interned bytecode strings to UTF-16 2025-08-14 10:27:08 +02:00
StringTable.h AK: Add SentinelOptional 2026-03-20 12:03:36 +01:00