本文整理汇总了C++中v8::Arguments::Callee方法的典型用法代码示例。如果您正苦于以下问题:C++ Arguments::Callee方法的具体用法?C++ Arguments::Callee怎么用?C++ Arguments::Callee使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类v8::Arguments
的用法示例。
在下文中一共展示了Arguments::Callee方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: clrFuncProxy
Handle<v8::Value> clrFuncProxy(const v8::Arguments& args)
{
DBG("clrFuncProxy");
HandleScope scope;
Handle<v8::External> correlator = Handle<v8::External>::Cast(args.Callee()->Get(v8::String::NewSymbol("_edgeContext")));
ClrFuncWrap* wrap = (ClrFuncWrap*)(correlator->Value());
ClrFunc^ clrFunc = wrap->clrFunc;
return scope.Close(clrFunc->Call(args[0], args[1]));
}
示例2:
v8::Handle<v8::Value> V8PerIsolateData::constructorOfToString(const v8::Arguments& args)
{
// The DOM constructors' toString functions grab the current toString
// for Functions by taking the toString function of itself and then
// calling it with the constructor as its receiver. This means that
// changes to the Function prototype chain or toString function are
// reflected when printing DOM constructors. The only wart is that
// changes to a DOM constructor's toString's toString will cause the
// toString of the DOM constructor itself to change. This is extremely
// obscure and unlikely to be a problem.
v8::Handle<v8::Value> value = args.Callee()->Get(v8::String::NewSymbol("toString"));
if (!value->IsFunction())
return v8::String::New("");
return v8::Handle<v8::Function>::Cast(value)->Call(args.This(), 0, 0);
}
示例3: DBG
Handle<Value> v8FuncCallback(const v8::Arguments& args)
{
DBG("v8FuncCallback");
HandleScope scope;
Handle<v8::External> correlator = Handle<v8::External>::Cast(args.Callee()->Get(v8::String::NewSymbol("_edgeContext")));
NodejsFuncInvokeContextWrap* wrap = (NodejsFuncInvokeContextWrap*)(correlator->Value());
NodejsFuncInvokeContext^ context = wrap->context;
if (!args[0]->IsUndefined() && !args[0]->IsNull())
{
context->CompleteWithError(gcnew System::Exception(exceptionV82stringCLR(args[0])));
}
else
{
context->CompleteWithResult(args[1]);
}
return scope.Close(Undefined());
}
示例4: obj
static v8::Handle<v8::Value> FunctionCallbackImpl(const v8::Arguments& args)
{
v8::HandleScope handle_scope;
JSExtension* handler = static_cast<JSExtension*>(v8::External::Cast(*(args.Data()))->Value());
ChromiumDLL::JSObjHandle* argv = new ChromiumDLL::JSObjHandle[args.Length()];
for(int i = 0; i < args.Length(); i++)
argv[i] = new JSObject(args[i]);
ChromiumDLL::JSObjHandle obj(new JSObject(args.This()));
v8::Handle<v8::Value> value = v8::Null();
v8::Local<v8::Function> funct = args.Callee();
v8::Handle<v8::Value> name = funct->GetName();
v8::String::AsciiValue str(name);
try
{
ChromiumDLL::JavaScriptFunctionArgs jsargs;
jsargs.function = *str;
jsargs.factory = &g_Factory;
jsargs.argc = args.Length();
jsargs.object = obj;
jsargs.argv = argv;
jsargs.context = nullptr;
ChromiumDLL::JSObjHandle ret = handler->m_pExtender->execute(&jsargs);
delete [] argv;
JSObject *native = dynamic_cast<JSObject*>(ret.get());
if (native)
value = native->getNative();
ret->delRef();
}
catch (std::exception& e)
{
delete [] argv;
value = v8::ThrowException(v8::String::New(e.what()));
}
return value;
}