本文整理汇总了C++中ObjectValueMap::lookup方法的典型用法代码示例。如果您正苦于以下问题:C++ ObjectValueMap::lookup方法的具体用法?C++ ObjectValueMap::lookup怎么用?C++ ObjectValueMap::lookup使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ObjectValueMap
的用法示例。
在下文中一共展示了ObjectValueMap::lookup方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: CallArgsFromVp
static JSBool
WeakMap_get(JSContext *cx, uintN argc, Value *vp)
{
CallArgs args = CallArgsFromVp(argc, vp);
bool ok;
JSObject *obj = NonGenericMethodGuard(cx, args, WeakMap_get, &WeakMapClass, &ok);
if (!obj)
return ok;
if (args.length() < 1) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_MORE_ARGS_NEEDED,
"WeakMap.get", "0", "s");
return false;
}
JSObject *key = NonNullObject(cx, &args[0]);
if (!key)
return false;
ObjectValueMap *map = GetObjectMap(obj);
if (map) {
ObjectValueMap::Ptr ptr = map->lookup(key);
if (ptr) {
args.rval() = ptr->value;
return true;
}
}
args.rval() = (args.length() > 1) ? args[1] : UndefinedValue();
return true;
}
示例2: CallArgsFromVp
static JSBool
WeakMap_delete(JSContext *cx, unsigned argc, Value *vp)
{
CallArgs args = CallArgsFromVp(argc, vp);
bool ok;
JSObject *obj = NonGenericMethodGuard(cx, args, WeakMap_delete, &WeakMapClass, &ok);
if (!obj)
return ok;
if (args.length() < 1) {
JS_ReportErrorNumber(cx, js_GetErrorMessage, NULL, JSMSG_MORE_ARGS_NEEDED,
"WeakMap.delete", "0", "s");
return false;
}
JSObject *key = GetKeyArg(cx, args);
if (!key)
return false;
ObjectValueMap *map = GetObjectMap(obj);
if (map) {
ObjectValueMap::Ptr ptr = map->lookup(key);
if (ptr) {
map->remove(ptr);
args.rval() = BooleanValue(true);
return true;
}
}
args.rval() = BooleanValue(false);
return true;
}
示例3: assertSameCompartment
JS::GetWeakMapEntry(JSContext *cx, HandleObject mapObj, HandleObject key,
MutableHandleValue rval)
{
CHECK_REQUEST(cx);
assertSameCompartment(cx, key);
rval.setUndefined();
ObjectValueMap *map = mapObj->as<WeakMapObject>().getMap();
if (!map)
return true;
if (ObjectValueMap::Ptr ptr = map->lookup(key)) {
// Read barrier to prevent an incorrectly gray value from escaping the
// weak map. See the comment before UnmarkGrayChildren in gc/Marking.cpp
ExposeValueToActiveJS(ptr->value().get());
rval.set(ptr->value());
}
return true;
}