本文整理汇总了C++中JSFunction::get方法的典型用法代码示例。如果您正苦于以下问题:C++ JSFunction::get方法的具体用法?C++ JSFunction::get怎么用?C++ JSFunction::get使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类JSFunction
的用法示例。
在下文中一共展示了JSFunction::get方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: create
JSPromiseDeferred* JSPromiseDeferred::create(ExecState* exec, JSGlobalObject* globalObject)
{
VM& vm = exec->vm();
JSFunction* resolver = createDeferredConstructionFunction(vm, globalObject);
JSPromise* promise = constructPromise(exec, globalObject, resolver);
JSValue resolve = resolver->get(exec, vm.propertyNames->resolvePrivateName);
JSValue reject = resolver->get(exec, vm.propertyNames->rejectPrivateName);
return JSPromiseDeferred::create(vm, promise, resolve, reject);
}
示例2: createJSPromiseDeferredFromConstructor
JSValue createJSPromiseDeferredFromConstructor(ExecState* exec, JSValue C)
{
// -- This implements the GetDeferred(C) abstract operation --
// 1. If IsConstructor(C) is false, throw a TypeError.
if (!C.isObject())
return throwTypeError(exec);
ConstructData constructData;
ConstructType constructType = getConstructData(C, constructData);
if (constructType == ConstructTypeNone)
return throwTypeError(exec);
VM& vm = exec->vm();
// 2. Let 'resolver' be a new built-in function object as defined in Deferred Construction Functions.
JSFunction* resolver = createDeferredConstructionFunction(vm, asObject(C)->globalObject());
// 3. Let 'promise' be the result of calling the [[Construct]] internal method of 'C' with
// an argument list containing the single item resolver.
MarkedArgumentBuffer constructArguments;
constructArguments.append(resolver);
JSObject* promise = construct(exec, C, constructType, constructData, constructArguments);
// 4. ReturnIfAbrupt(promise).
if (exec->hadException())
return jsUndefined();
// 5. Let 'resolve' be the value of resolver's [[Resolve]] internal slot.
JSValue resolve = resolver->get(exec, vm.propertyNames->resolvePrivateName);
// 6. If IsCallable(resolve) is false, throw a TypeError.
CallData resolveCallData;
CallType resolveCallType = getCallData(resolve, resolveCallData);
if (resolveCallType == CallTypeNone)
return throwTypeError(exec);
// 7. Let 'reject' be the value of resolver's [[Reject]] internal slot.
JSValue reject = resolver->get(exec, vm.propertyNames->rejectPrivateName);
// 8. If IsCallable(reject) is false, throw a TypeError.
CallData rejectCallData;
CallType rejectCallType = getCallData(reject, rejectCallData);
if (rejectCallType == CallTypeNone)
return throwTypeError(exec);
// 9. Return the Deferred { [[Promise]]: promise, [[Resolve]]: resolve, [[Reject]]: reject }.
return JSPromiseDeferred::create(exec->vm(), promise, resolve, reject);
}