ladybird/Libraries/LibJS/Bytecode
Andreas Kling 790386e114 LibJS: Preserve Promise job ordering across calls
Only drain the standalone Promise job queue when unwinding the outermost
bytecode execution. Draining after every nested run_executable() return
let sibling Promise reactions run before current-job reactions.

Plain async function returns were relying on that extra drain because
return values were compiled as implicit awaits. Resolve completed async
functions through the Promise resolving function instead, while keeping
the async generator return-await path.

Add Promise ordering coverage and update the asm inline-call regression
to check the pre-drain state.
2026-05-22 01:56:57 +02:00
..
AsmInterpreter LibJS: Preserve Promise job ordering across calls 2026-05-22 01:56:57 +02:00
BasicBlock.cpp LibJS: Stop worrying about Instruction destructors 2025-11-21 09:46:03 +01:00
BasicBlock.h LibJS: Drop source ranges from bytecode source maps 2026-05-14 09:41:03 +02: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: Preserve resolved assignment bindings 2026-05-22 01:56:57 +02:00
ClassBlueprint.h LibJS+LibWeb: Keep cached script source text lazy 2026-05-18 09:18:35 +02:00
Debug.h LibJS: Move bytecode interpreter state to VM 2026-04-13 18:29:43 +02:00
Executable.cpp LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
Executable.h LibJS: Cache dynamic environment coordinates 2026-05-19 15:54:23 +02:00
FormatOperand.h LibJS: Stop persisting basic_block_start_offsets on Executable 2026-05-14 12:08:12 +02:00
IdentifierTable.cpp LibJS+LibWeb+WebContent: Port JS::PropertyKey to UTF-16 2025-08-05 07:07:15 -04:00
IdentifierTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Instruction.cpp LibJS: Flatten Operand to 32-bit index in bytecode instruction stream 2025-12-09 21:44:13 -06:00
Instruction.h LibJS: Infer computed property function names 2026-05-22 01:56:57 +02:00
Interpreter.cpp LibJS: Preserve Promise job ordering across calls 2026-05-22 01:56:57 +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: Fix destructured primitive string const loops 2026-05-22 01:56:57 +02:00
PropertyKeyTable.cpp LibJS: Cache fully-formed PropertyKeys in Executable 2025-12-11 14:34:45 -06:00
PropertyKeyTable.h LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
PropertyNameIterator.cpp LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +02:00
PropertyNameIterator.h LibJS: Account runtime storage as external memory 2026-05-07 10:03:09 +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 LibJS: Account executable storage as external memory 2026-05-07 10:03:09 +02: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 LibJS: Pre-size bytecode materialization tables 2026-05-19 11:32:50 +02:00
Validator.cpp LibJS: Infer computed property function names 2026-05-22 01:56:57 +02:00
Validator.h LibJS: Store bytecode cache indexes instead of pointers 2026-05-18 20:35:14 +02:00