本文整理汇总了C++中js::CallArgs::array方法的典型用法代码示例。如果您正苦于以下问题:C++ CallArgs::array方法的具体用法?C++ CallArgs::array怎么用?C++ CallArgs::array使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类js::CallArgs
的用法示例。
在下文中一共展示了CallArgs::array方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitBlob
nsresult
DOMMultipartFileImpl::Initialize(nsISupports* aOwner,
JSContext* aCx,
JSObject* aObj,
const JS::CallArgs& aArgs)
{
if (!mIsFile) {
return InitBlob(aCx, aArgs.length(), aArgs.array(), GetXPConnectNative);
}
if (!nsContentUtils::IsCallerChrome()) {
return InitFile(aCx, aArgs.length(), aArgs.array());
}
if (aArgs.length() > 0) {
JS::Value* argv = aArgs.array();
if (argv[0].isObject()) {
JS::Rooted<JSObject*> obj(aCx, &argv[0].toObject());
if (JS_IsArrayObject(aCx, obj)) {
return InitFile(aCx, aArgs.length(), aArgs.array());
}
}
}
return InitChromeFile(aCx, aArgs.length(), aArgs.array());
}
示例2: InitBlob
NS_IMETHODIMP
nsDOMMultipartFile::Initialize(nsISupports* aOwner,
JSContext* aCx,
JSObject* aObj,
const JS::CallArgs& aArgs)
{
if (!mIsFile) {
return InitBlob(aCx, aArgs.length(), aArgs.array(), GetXPConnectNative);
}
return InitFile(aCx, aArgs.length(), aArgs.array());
}
示例3: funobj
bool
XPC_WN_CallMethod(JSContext* cx, unsigned argc, Value* vp)
{
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
MOZ_ASSERT(JS_TypeOfValue(cx, args.calleev()) == JSTYPE_FUNCTION, "bad function");
RootedObject funobj(cx, &args.callee());
RootedObject obj(cx, JS_THIS_OBJECT(cx, vp));
if (!obj)
return false;
obj = FixUpThisIfBroken(obj, funobj);
XPCCallContext ccx(cx, obj, funobj, JSID_VOIDHANDLE, args.length(),
args.array(), vp);
XPCWrappedNative* wrapper = ccx.GetWrapper();
THROW_AND_RETURN_IF_BAD_WRAPPER(cx, wrapper);
RefPtr<XPCNativeInterface> iface;
XPCNativeMember* member;
if (!XPCNativeMember::GetCallInfo(funobj, &iface, &member))
return Throw(NS_ERROR_XPC_CANT_GET_METHOD_INFO, cx);
ccx.SetCallInfo(iface, member, false);
return XPCWrappedNative::CallMethod(ccx);
}
示例4: JS_setInterval
bool JSGlobal::JS_setInterval(JSContext *cx, JS::CallArgs &args)
{
struct nidium_sm_timer *params;
int ms = 0, i;
int argc = args.length();
params = new nidium_sm_timer(cx);
if (!params) {
JS_ReportOutOfMemory(cx);
return false;
}
params->cx = cx;
params->global = m_Instance;
params->argc = nidium_max(0, argc - 2);
params->argv = new JS::PersistentRootedValue *[params->argc];
for (i = 0; i < argc - 2; i++) {
params->argv[i] = new JS::PersistentRootedValue(cx);
}
if (!JSUtils::ReportIfNotFunction(cx, args[0])) {
delete[] params->argv;
delete params;
return false;
}
params->func = args[0];
if (argc > 1 && !JS::ToInt32(cx, args[1], &ms)) {
ms = 0;
}
params->ms = nidium_max(8, ms);
for (i = 0; i < static_cast<int>(argc) - 2; i++) {
*params->argv[i] = args.array()[i + 2];
}
ape_timer_t *timer = APE_timer_create(
static_cast<ape_global *>(JS_GetContextPrivate(cx)), params->ms,
nidium_timerng_wrapper, static_cast<void *>(params));
APE_timer_unprotect(timer);
APE_timer_setclearfunc(timer, nidium_timer_deleted);
args.rval().setNumber(static_cast<double>(APE_timer_getid(timer)));
return true;
}
示例5: obj
bool
XPC_WN_Helper_Call(JSContext* cx, unsigned argc, Value* vp)
{
JS::CallArgs args = JS::CallArgsFromVp(argc, vp);
// N.B. we want obj to be the callee, not JS_THIS(cx, vp)
RootedObject obj(cx, &args.callee());
XPCCallContext ccx(cx, obj, nullptr, JSID_VOIDHANDLE, args.length(),
args.array(), args.rval().address());
if (!ccx.IsValid())
return false;
PRE_HELPER_STUB
Call(wrapper, cx, obj, args, &retval);
POST_HELPER_STUB
}