mirror of
https://github.com/RGBCube/serenity
synced 2025-05-20 13:35:07 +00:00
![]() - Replace the misleading abuse of the m_transitions_enabled flag for the fast path without lookup with a new m_initialized boolean that's set either by Heap::allocate() after calling the Object's initialize(), or by the GlobalObject in its special initialize_global_object(). This makes it work regardless of the shape's uniqueness. - When we're adding a new property past the initialization phase, there's no need to do a second metadata lookup to retrieve the storage value offset - it's known to always be the shape's property count minus one. Also, instead of doing manual storage resizing and assignment via indexing, just use Vector::append(). - When we didn't add a new property but are overwriting an existing one, the property count and therefore storage value offset doesn't change, so we don't have to retrieve it either. As a result, Object::set_shape() is now solely responsible for updating the m_shape pointer and is not resizing storage anymore, so I moved it into the header. |
||
---|---|---|
.. | ||
BlockAllocator.cpp | ||
BlockAllocator.h | ||
Cell.h | ||
CellAllocator.cpp | ||
CellAllocator.h | ||
DeferGC.h | ||
Handle.cpp | ||
Handle.h | ||
Heap.cpp | ||
Heap.h | ||
HeapBlock.cpp | ||
HeapBlock.h |