本文整理汇总了C++中CallArgs::mutableThisv方法的典型用法代码示例。如果您正苦于以下问题:C++ CallArgs::mutableThisv方法的具体用法?C++ CallArgs::mutableThisv怎么用?C++ CallArgs::mutableThisv使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CallArgs
的用法示例。
在下文中一共展示了CallArgs::mutableThisv方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: wrapper
bool
CrossCompartmentWrapper::call(JSContext *cx, JSObject *wrapperArg, unsigned argc, Value *vp)
{
RootedObject wrapper(cx, wrapperArg);
RootedObject wrapped(cx, wrappedObject(wrapper));
CallArgs args = CallArgsFromVp(argc, vp);
{
AutoCompartment call(cx, wrapped);
args.setCallee(ObjectValue(*wrapped));
if (!cx->compartment->wrap(cx, args.mutableThisv()))
return false;
for (size_t n = 0; n < args.length(); ++n) {
if (!cx->compartment->wrap(cx, args.handleAt(n)))
return false;
}
if (!Wrapper::call(cx, wrapper, argc, vp))
return false;
}
return cx->compartment->wrap(cx, args.rval());
}
示例2: call
bool CrossCompartmentWrapper::call(JSContext* cx, HandleObject wrapper,
const CallArgs& args) const {
RootedObject wrapped(cx, wrappedObject(wrapper));
{
AutoRealm call(cx, wrapped);
args.setCallee(ObjectValue(*wrapped));
if (!cx->compartment()->wrap(cx, args.mutableThisv())) {
return false;
}
for (size_t n = 0; n < args.length(); ++n) {
if (!cx->compartment()->wrap(cx, args[n])) {
return false;
}
}
if (!Wrapper::call(cx, wrapper, args)) {
return false;
}
}
return cx->compartment()->wrap(cx, args.rval());
}