mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 08:57:34 +00:00
LibJS: Reorganize Shape members to reduce sizeof(Shape) a bit
This commit is contained in:
parent
26b430bee7
commit
2c956ac132
2 changed files with 10 additions and 8 deletions
|
@ -73,21 +73,21 @@ Shape::Shape(GlobalObject& global_object)
|
||||||
}
|
}
|
||||||
|
|
||||||
Shape::Shape(Shape& previous_shape, const StringOrSymbol& property_name, PropertyAttributes attributes, TransitionType transition_type)
|
Shape::Shape(Shape& previous_shape, const StringOrSymbol& property_name, PropertyAttributes attributes, TransitionType transition_type)
|
||||||
: m_global_object(previous_shape.m_global_object)
|
: m_attributes(attributes)
|
||||||
|
, m_transition_type(transition_type)
|
||||||
|
, m_global_object(previous_shape.m_global_object)
|
||||||
, m_previous(&previous_shape)
|
, m_previous(&previous_shape)
|
||||||
, m_property_name(property_name)
|
, m_property_name(property_name)
|
||||||
, m_attributes(attributes)
|
|
||||||
, m_prototype(previous_shape.m_prototype)
|
, m_prototype(previous_shape.m_prototype)
|
||||||
, m_transition_type(transition_type)
|
|
||||||
, m_property_count(transition_type == TransitionType::Put ? previous_shape.m_property_count + 1 : previous_shape.m_property_count)
|
, m_property_count(transition_type == TransitionType::Put ? previous_shape.m_property_count + 1 : previous_shape.m_property_count)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
Shape::Shape(Shape& previous_shape, Object* new_prototype)
|
Shape::Shape(Shape& previous_shape, Object* new_prototype)
|
||||||
: m_global_object(previous_shape.m_global_object)
|
: m_transition_type(TransitionType::Prototype)
|
||||||
|
, m_global_object(previous_shape.m_global_object)
|
||||||
, m_previous(&previous_shape)
|
, m_previous(&previous_shape)
|
||||||
, m_prototype(new_prototype)
|
, m_prototype(new_prototype)
|
||||||
, m_transition_type(TransitionType::Prototype)
|
|
||||||
, m_property_count(previous_shape.m_property_count)
|
, m_property_count(previous_shape.m_property_count)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
|
@ -103,6 +103,11 @@ private:
|
||||||
|
|
||||||
void ensure_property_table() const;
|
void ensure_property_table() const;
|
||||||
|
|
||||||
|
PropertyAttributes m_attributes { 0 };
|
||||||
|
TransitionType m_transition_type : 6 { TransitionType::Invalid };
|
||||||
|
bool m_unique : 1 { false };
|
||||||
|
mutable bool m_has_property_table : 1 { false };
|
||||||
|
|
||||||
GlobalObject& m_global_object;
|
GlobalObject& m_global_object;
|
||||||
|
|
||||||
mutable OwnPtr<HashMap<StringOrSymbol, PropertyMetadata>> m_property_table;
|
mutable OwnPtr<HashMap<StringOrSymbol, PropertyMetadata>> m_property_table;
|
||||||
|
@ -110,10 +115,7 @@ private:
|
||||||
HashMap<TransitionKey, Shape*> m_forward_transitions;
|
HashMap<TransitionKey, Shape*> m_forward_transitions;
|
||||||
Shape* m_previous { nullptr };
|
Shape* m_previous { nullptr };
|
||||||
StringOrSymbol m_property_name;
|
StringOrSymbol m_property_name;
|
||||||
PropertyAttributes m_attributes { 0 };
|
|
||||||
bool m_unique { false };
|
|
||||||
Object* m_prototype { nullptr };
|
Object* m_prototype { nullptr };
|
||||||
TransitionType m_transition_type { TransitionType::Invalid };
|
|
||||||
size_t m_property_count { 0 };
|
size_t m_property_count { 0 };
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue