ladybird/Libraries/LibJS/Bytecode
Andreas Kling 357eeba49c LibJS: Reduce number of proxy traps called during for..in iteration
Before this change, we would enumerate all the keys with
[[OwnPropertyKeys]], and then do [[GetOwnPropertyDescriptor]] twice for
each key as we went through them.

We now only do one [[GetOwnPropertyDescriptor]] per key, which
drastically reduces the number of proxy traps when those are involved.
The new trap sequence matches what you get with V8, so I don't think
anyone will be unpleasantly surprised here.
2025-03-20 17:50:02 -05:00
..
ASTCodegen.cpp AK+Everywhere: Rename verify_cast to as 2025-01-21 11:34:06 -05:00
BasicBlock.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
BasicBlock.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Builtins.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Builtins.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
CodeGenerationError.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
CodeGenerationError.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Executable.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Executable.h LibJS: Let GetGlobal cache module environment lookups when possible 2025-03-20 12:51:21 -05:00
Generator.cpp LibJS: Elide empty lexical environments for parameter evaluation 2025-03-20 12:51:21 -05:00
Generator.h LibGC: Rename MarkedVector => RootVector 2024-12-26 19:10:44 +01:00
IdentifierTable.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
IdentifierTable.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Instruction.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Instruction.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Interpreter.cpp LibJS: Reduce number of proxy traps called during for..in iteration 2025-03-20 17:50:02 -05:00
Interpreter.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Label.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Label.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Op.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Operand.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexTable.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexTable.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
Register.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ScopedOperand.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
ScopedOperand.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
StringTable.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
StringTable.h Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00