1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 13:37:10 +09:00
ladybird/Libraries/LibJS/Bytecode
Aliaksandr Kalenik 95e1ec4abc LibJS: Skip caching get_by_id() if object's shape is changed by a getter
Fixes a bug that reproduces with the following steps:
1. Create an object with a getter for property "a" in its prototype,
   where the getter adds an "a" property to the object itself.
2. Call the "a" getter in a loop for the first time. This triggers
   caching of metadata indicating that the "a" property is located in
   the prototype chain.
3. Call the "a" getter in a loop for the second time. Oops, the cache
   says the getter is in the prototype chain, but the object now
   also has its own "a" property that was added by the first getter
   call.
2025-05-20 19:10:56 -04:00
..
ASTCodegen.cpp LibJS: Make generate_labelled_evaluation non-virtual if possible 2025-05-12 11:40:45 -06:00
BasicBlock.cpp
BasicBlock.h LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Builtins.cpp
Builtins.h LibJS: Add builtin for Math.random() 2025-04-03 13:56:39 +02:00
CodeGenerationError.cpp
CodeGenerationError.h
Executable.cpp LibGC+Everywhere: Factor out a LibGC from LibJS 2024-11-15 14:49:20 +01:00
Executable.h LibJS: Make GetById cache polymorphic 2025-05-07 00:27:11 +02:00
Generator.cpp LibJS: Preserve information about local variables declaration kind 2025-05-06 12:06:23 +02:00
Generator.h LibJS: Preserve information about local variables declaration kind 2025-05-06 12:06:23 +02:00
IdentifierTable.cpp LibJS: Use FlyString in PropertyKey instead of DeprecatedFlyString 2025-03-24 22:27:17 +00:00
IdentifierTable.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Instruction.cpp LibJS: Remove unused InstructionStreamIterator::source_code getter 2025-04-16 10:41:44 -06:00
Instruction.h LibJS: Optimize reading known-to-be-initialized var bindings 2025-05-04 02:31:18 +02:00
Interpreter.cpp LibJS: Skip caching get_by_id() if object's shape is changed by a getter 2025-05-20 19:10:56 -04:00
Interpreter.h Revert "LibJS: Add StackFrame to avoid indirection in VM register access" 2025-04-29 16:08:42 +02:00
Label.cpp
Label.h
Op.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
Operand.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00
RegexTable.cpp
RegexTable.h LibJS: Use u32 for RegexTableIndex 2025-04-06 02:05:27 +02:00
Register.h LibJS: Remove unused bytecode VM register reservation 2025-04-30 09:38:40 +02:00
ScopedOperand.cpp
ScopedOperand.h
StringTable.cpp LibJS: Make Optional<StringTableIndex> use less space 2025-04-06 02:05:27 +02:00
StringTable.h Meta: Enforce newlines around namespaces 2025-05-14 02:01:59 -06:00