1
0
Fork 0
mirror of https://github.com/LadybirdBrowser/ladybird.git synced 2025-06-08 05:27:14 +09:00
ladybird/Libraries/LibJS/Bytecode
Aliaksandr Kalenik 285bc005cb LibJS: Do more comprehensive check if next() fast path is possible
Before this change each built-in iterator object has a boolean
`m_next_method_was_redefined`. If user code later changed the iterator’s
prototype (e.g. `Object.setPrototypeOf()`), we still believed the
built-in fast-path was safe and skipped the user supplied override,
producing wrong results.

With this change
`BuiltinIterator::as_builtin_iterator_if_next_is_not_redefined()` looks
up the current `next` property and verifies that it is still the
built-in native function.
2025-06-02 00:15:36 +02:00
..
ASTCodegen.cpp LibJS: Always emit value in emit_named_evaluation_if_anonymous_function 2025-05-23 03:25:55 +02: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: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +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: Cache string constants in Generator::add_constant 2025-06-01 18:25:59 +02:00
Generator.h LibJS: Cache string constants in Generator::add_constant 2025-06-01 18:25:59 +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: Do more comprehensive check if next() fast path is possible 2025-06-02 00:15:36 +02:00
Interpreter.h LibJS: Add minimum changes to build on Windows and run js.exe 2025-05-29 03:26:23 -06:00
Label.cpp
Label.h
Op.h LibJS: Make Op::Return value required 2025-05-23 03:25:55 +02: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