1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-10 01:51:03 +09:00
ladybird/Libraries/LibJS/Bytecode
Andreas Kling a05be67e4a LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext
Instead of letting every [[Call]] implementation allocate an
ExecutionContext, we now make that a responsibility of the caller.

The main point of this exercise is to allow the Call instruction
to write function arguments directly into the callee ExecutionContext
instead of copying them later.

This makes function calls significantly faster:
- 10-20% faster on micro-benchmarks (depending on argument count)
- 4% speedup on Kraken
- 2% speedup on Octane
- 5% speedup on JetStream
2025-04-28 01:23:56 +02:00
..
ASTCodegen.cpp LibJS: Skip allocating locals for arguments that allowed to be local 2025-04-26 11:02:29 +02: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 LibJS: Add builtin for Math.random() 2025-04-03 13:56:39 +02: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: Add new operand type for function arguments 2025-04-26 11:02:29 +02:00
Generator.cpp LibJS: Mark arguments local as initialized after creating it 2025-04-28 01:23:56 +02:00
Generator.h LibJS: Skip allocating locals for arguments that allowed to be local 2025-04-26 11:02:29 +02:00
IdentifierTable.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
IdentifierTable.h LibJS: Make Optional<IdentifierTableIndex> use less space 2025-03-27 19:50:13 +00:00
Instruction.cpp LibJS: Remove unused InstructionStreamIterator::source_code getter 2025-04-16 10:41:44 -06:00
Instruction.h LibJS: Add new operand type for function arguments 2025-04-26 11:02:29 +02:00
Interpreter.cpp LibJS: Let invokers (callers) of [[Call]] allocate ExecutionContext 2025-04-28 01:23:56 +02:00
Interpreter.h LibJS: Add new operand type for function arguments 2025-04-26 11:02:29 +02: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 LibJS: Add new operand type for function arguments 2025-04-26 11:02:29 +02:00
Operand.h LibJS: Add new operand type for function arguments 2025-04-26 11:02:29 +02:00
RegexTable.cpp Everywhere: Hoist the Libraries folder to the top-level 2024-11-10 12:50:45 +01:00
RegexTable.h LibJS: Use u32 for RegexTableIndex 2025-04-06 02:05:27 +02: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 LibJS: Make Optional<StringTableIndex> use less space 2025-04-06 02:05:27 +02:00
StringTable.h LibJS: Make Optional<StringTableIndex> use less space 2025-04-06 02:05:27 +02:00