本文整理汇总了C++中CacheIRWriter::guardSpecificObject方法的典型用法代码示例。如果您正苦于以下问题:C++ CacheIRWriter::guardSpecificObject方法的具体用法?C++ CacheIRWriter::guardSpecificObject怎么用?C++ CacheIRWriter::guardSpecificObject使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CacheIRWriter
的用法示例。
在下文中一共展示了CacheIRWriter::guardSpecificObject方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: env
bool
GetPropIRGenerator::tryAttachModuleNamespace(CacheIRWriter& writer, HandleObject obj,
ObjOperandId objId)
{
MOZ_ASSERT(!emitted_);
if (!obj->is<ModuleNamespaceObject>())
return true;
Rooted<ModuleNamespaceObject*> ns(cx_, &obj->as<ModuleNamespaceObject>());
RootedModuleEnvironmentObject env(cx_);
RootedShape shape(cx_);
if (!ns->bindings().lookup(NameToId(name_), env.address(), shape.address()))
return true;
// Don't emit a stub until the target binding has been initialized.
if (env->getSlot(shape->slot()).isMagic(JS_UNINITIALIZED_LEXICAL))
return true;
if (IsIonEnabled(cx_))
EnsureTrackPropertyTypes(cx_, env, shape->propid());
emitted_ = true;
// Check for the specific namespace object.
writer.guardSpecificObject(objId, ns);
ObjOperandId envId = writer.loadObject(env);
EmitLoadSlotResult(writer, envId, env, shape);
return true;
}