本文整理汇总了C++中DynamicObject::GetTypeHandler方法的典型用法代码示例。如果您正苦于以下问题:C++ DynamicObject::GetTypeHandler方法的具体用法?C++ DynamicObject::GetTypeHandler怎么用?C++ DynamicObject::GetTypeHandler使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类DynamicObject
的用法示例。
在下文中一共展示了DynamicObject::GetTypeHandler方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: GetCurrentEnumerator
BOOL ForInObjectEnumerator::GetCurrentEnumerator()
{
Assert(object);
ScriptContext* scriptContext = GetScriptContext();
if (VirtualTableInfo<DynamicObject>::HasVirtualTable(object))
{
DynamicObject* dynamicObject = (DynamicObject*)object;
if (!dynamicObject->GetTypeHandler()->EnsureObjectReady(dynamicObject))
{
return false;
}
dynamicObject->GetDynamicType()->PrepareForTypeSnapshotEnumeration();
embeddedEnumerator.Initialize(dynamicObject, true);
currentEnumerator = &embeddedEnumerator;
return true;
}
if (!object->GetEnumerator(TRUE /*enumNonEnumerable*/, (Var *)¤tEnumerator, scriptContext, true /*preferSnapshotSemantics */, enumSymbols))
{
currentEnumerator = scriptContext->GetLibrary()->GetNullEnumerator();
return false;
}
return true;
}
示例2: IsWritableDataOnlyDetectionBitSet
bool RecyclableObject::IsWritableDataOnlyDetectionBitSet()
{
if (DynamicType::Is(this->GetTypeId()))
{
DynamicObject* obj = DynamicObject::FromVar(this);
return obj->GetTypeHandler()->IsWritableDataOnlyDetectionBitSet() ||
(obj->HasObjectArray() && obj->GetObjectArrayOrFlagsAsArray()->IsWritableDataOnlyDetectionBitSet());
}
return false;
}
示例3: HasOnlyWritableDataProperties
bool RecyclableObject::HasOnlyWritableDataProperties()
{
if (DynamicType::Is(this->GetTypeId()))
{
DynamicObject* obj = DynamicObject::FromVar(this);
return obj->GetTypeHandler()->GetHasOnlyWritableDataProperties() &&
(!obj->HasObjectArray() || obj->GetObjectArrayOrFlagsAsArray()->HasOnlyWritableDataProperties());
}
return true;
}
示例4: ClearWritableDataOnlyDetectionBit
void RecyclableObject::ClearWritableDataOnlyDetectionBit()
{
if (DynamicType::Is(this->GetTypeId()))
{
DynamicObject* obj = DynamicObject::FromVar(this);
obj->GetTypeHandler()->ClearWritableDataOnlyDetectionBit();
if (obj->HasObjectArray())
{
obj->GetObjectArrayOrFlagsAsArray()->ClearWritableDataOnlyDetectionBit();
}
}
}