本文整理汇总了C++中GlobalObject::SetExistingProperty方法的典型用法代码示例。如果您正苦于以下问题:C++ GlobalObject::SetExistingProperty方法的具体用法?C++ GlobalObject::SetExistingProperty怎么用?C++ GlobalObject::SetExistingProperty使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类GlobalObject
的用法示例。
在下文中一共展示了GlobalObject::SetExistingProperty方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: SetProperty
BOOL ModuleRoot::SetProperty(PropertyId propertyId, Var value, PropertyOperationFlags flags, PropertyValueInfo* info)
{
PropertyIndex index = GetPropertyIndex(propertyId);
if (index != Constants::NoSlot)
{
if (this->IsWritable(propertyId) == FALSE)
{
JavascriptError::ThrowCantAssignIfStrictMode(flags, this->GetScriptContext());
if (!this->IsFixedProperty(propertyId))
{
PropertyValueInfo::Set(info, this, index, PropertyNone); // Try to cache property info even if not writable
}
else
{
PropertyValueInfo::SetNoCache(info, this);
}
return FALSE;
}
this->SetSlot(SetSlotArguments(propertyId, index, value));
if (!this->IsFixedProperty(propertyId))
{
PropertyValueInfo::Set(info, this, index);
}
else
{
PropertyValueInfo::SetNoCache(info, this);
}
return TRUE;
}
else if (this->hostObject && this->hostObject->HasProperty(propertyId))
{
return this->hostObject->SetProperty(propertyId, value, flags, NULL);
}
//
// Try checking the global object
// if the module root doesn't have the property and the host object also doesn't have it
//
GlobalObject* globalObj = this->GetLibrary()->GetGlobalObject();
BOOL setAttempted = TRUE;
if (globalObj->SetExistingProperty(propertyId, value, NULL, &setAttempted))
{
return TRUE;
}
//
// Set was attempted. But the set operation returned false.
// This happens, when the property is read only.
// In those scenarios, we should be setting the property with default attributes
//
if (setAttempted)
{
return FALSE;
}
return DynamicObject::SetProperty(propertyId, value, flags, info);
}