ladybird/Userland/Libraries/LibJS/Bytecode
Andreas Kling de8e4b1853 LibJS/Bytecode: Cache object own property accesses
The instructions GetById and GetByIdWithThis now remember the last-seen
Shape, and if we see the same object again, we reuse the property offset
from last time without doing a new lookup.

This allows us to use Object::get_direct(), bypassing the entire lookup
machinery and saving lots of time.

~23% speed-up on Kraken/ai-astar.js :^)
2023-07-09 12:54:06 +02:00
..
Pass LibJS/Bytecode: Generate bytecode for deleting super properties 2023-07-07 18:11:51 +02:00
ASTCodegen.cpp LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
BasicBlock.cpp Everywhere: Rename to_{string => deprecated_string}() where applicable 2022-12-06 08:54:33 +01:00
BasicBlock.h LibJS/Bytecode: Remove unnecessary variable environment stack 2023-07-02 18:30:02 +02:00
CodeGenerationError.cpp LibJS: Add to_string definitions to CodeGenerationError and ParserError 2023-02-17 09:14:23 -05:00
CodeGenerationError.h LibJS: Remove unused CodeGenerationError::to_deprecated_string 2023-02-17 09:14:23 -05:00
Executable.cpp Everywhere: Stop using NonnullOwnPtrVector 2023-03-06 23:46:35 +01:00
Executable.h LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Generator.cpp LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Generator.h LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
IdentifierTable.cpp AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
IdentifierTable.h AK+Everywhere: Rename FlyString to DeprecatedFlyString 2023-01-09 23:00:24 +00:00
Instruction.cpp LibJS: Move Instruction::length() to the Op.h header 2021-06-09 09:24:32 +02:00
Instruction.h LibJS/Bytecode: Generate bytecode for deleting super properties 2023-07-07 18:11:51 +02:00
Interpreter.cpp LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Interpreter.h LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Label.h Everywhere: Add sv suffix to strings relying on StringView(char const*) 2022-07-12 23:11:35 +02:00
Op.cpp LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
Op.h LibJS/Bytecode: Cache object own property accesses 2023-07-09 12:54:06 +02:00
PassManager.h AK: Rename Time to Duration 2023-05-24 23:18:07 +02:00
Register.h LibJS: Make Register comparable 2022-12-03 15:25:05 +00:00
StringTable.cpp AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00
StringTable.h AK+Everywhere: Rename String to DeprecatedString 2022-12-06 08:54:33 +01:00