本文整理汇总了C++中HandleObject::group方法的典型用法代码示例。如果您正苦于以下问题:C++ HandleObject::group方法的具体用法?C++ HandleObject::group怎么用?C++ HandleObject::group使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类HandleObject
的用法示例。
在下文中一共展示了HandleObject::group方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
bool
GetPropIRGenerator::tryAttachUnboxedArrayElement(HandleObject obj, ObjOperandId objId,
ValOperandId indexId)
{
MOZ_ASSERT(idVal_.isInt32());
if (!obj->is<UnboxedArrayObject>())
return false;
if (uint32_t(idVal_.toInt32()) >= obj->as<UnboxedArrayObject>().initializedLength())
return false;
writer.guardGroup(objId, obj->group());
JSValueType elementType = obj->group()->unboxedLayoutDontCheckGeneration().elementType();
Int32OperandId int32IndexId = writer.guardIsInt32(indexId);
writer.loadUnboxedArrayElementResult(objId, int32IndexId, elementType);
// Only monitor the result if its type might change.
if (elementType == JSVAL_TYPE_OBJECT)
writer.typeMonitorResult();
else
writer.returnFromIC();
return true;
}
示例2: maybeEmitIdGuard
bool
GetPropIRGenerator::tryAttachUnboxed(HandleObject obj, ObjOperandId objId, HandleId id)
{
if (!obj->is<UnboxedPlainObject>())
return false;
const UnboxedLayout::Property* property = obj->as<UnboxedPlainObject>().layout().lookup(id);
if (!property)
return false;
if (!cx_->runtime()->jitSupportsFloatingPoint)
return false;
maybeEmitIdGuard(id);
writer.guardGroup(objId, obj->group());
writer.loadUnboxedPropertyResult(objId, property->type,
UnboxedPlainObject::offsetOfData() + property->offset);
if (property->type == JSVAL_TYPE_OBJECT)
writer.typeMonitorResult();
else
writer.returnFromIC();
preliminaryObjectAction_ = PreliminaryObjectAction::Unlink;
return true;
}