Refactoring type check operations using tag comparison

* type check operations based on tag comparison are updated to be aggresively inlined replacing virtual function calls
* Object, String and Symbol use pre-defined tag values while other uses vtable address as its tag value

Signed-off-by: HyukWoo Park <hyukwoo.park@samsung.com>
This commit is contained in:
HyukWoo Park 2020-04-07 13:55:48 +09:00 committed by Patrick Kim
commit d46a365326
18 changed files with 269 additions and 335 deletions

View file

@ -81,8 +81,6 @@ ObjectStructurePropertyName ObjectPropertyName::toObjectStructurePropertyNameUin
return ObjectStructurePropertyName(state, String::fromDouble(uint));
}
size_t g_objectRareDataTag;
ObjectRareData::ObjectRareData(Object* obj)
{
if (obj)
@ -421,9 +419,6 @@ void ObjectPropertyDescriptor::completePropertyDescriptor(ObjectPropertyDescript
// 8. Return Desc.
}
size_t g_objectTag;
Object::Object(ExecutionState& state)
: m_structure(state.context()->defaultStructureForObject())
, m_prototype(state.context()->globalObject()->objectPrototype())