Class jac::FunctionWrapper
template <bool managed>
ClassList > jac > FunctionWrapper
A wrapper for JSValue with Function type with RAII. More...
#include <values.h>
Inherits the following classes: jac::ObjectWrapper
Public Functions
Type | Name |
---|---|
FunctionWrapper (ObjectWrapper< managed > value) Wrap an existing JSValue. If managed is true, JSValue will be freed when the Function is destroyed. |
|
FunctionWrapper (ContextRef ctx, JSValue val) |
|
Res | call (Args... args) Call the function. |
Value | callConstructor (Args... args) Call the function as a constructor. |
Res | callThis (Value thisVal, Args... args) Call the function with this set to a given object. |
Public Functions inherited from jac::ObjectWrapper
Type | Name |
---|---|
ObjectWrapper (ValueWrapper< managed > value) Wrap an existing JSValue. If managed is true, JSValue will be freed when the Object is destroyed. |
|
ObjectWrapper (ContextRef ctx, JSValue val) |
|
void | defineProperty (Id id, Value value, PropFlags flags=PropFlags::Default) Define a property of the object. |
void | deleteProperty (Id id) Delete a property of the object. |
T | get (Atom prop) Get a property of the object. |
T | get (const std::string & name) |
T | get (uint32_t idx) |
Object | getPrototype () Get the prototype of the object. |
bool | hasProperty (Id id) Check if the object has a property. |
Res | invoke (Atom key, Args... args) Invoke a method of the object. |
Res | invoke (const std::string & key, Args... args) |
Res | invoke (uint32_t idx, Args... args) |
void | set (Atom prop, T val) Set a property of the object. |
void | set (const std::string & name, T val) |
void | set (uint32_t idx, T val) |
void | setPrototype (Object proto) Set the prototype of the object. |
Public Functions inherited from jac::ValueWrapper
Type | Name |
---|---|
ValueWrapper (ContextRef ctx, JSValue val) Wrap an existing JSValue. If managed is true, JSValue will be freed when the Value is destroyed. |
|
ValueWrapper (const ValueWrapper & other) |
|
ValueWrapper (ValueWrapper && other) |
|
JSValue & | getVal () Get reference to the underlying JSValue. |
bool | isArray () Check if the Value is an array. |
bool | isFunction () Check if the Value is a function. |
bool | isNull () Check if the Value is null. |
bool | isObject () Check if the Value is an object. |
bool | isUndefined () Check if the Value is undefined. |
std::pair< ContextRef, JSValue > | loot () Release ownership of the JSValue. The JSValue will have to be freed manually. |
operator ValueWeak () |
|
ValueWrapper & | operator= (const ValueWrapper & other) |
ValueWrapper & | operator= (ValueWrapper && other) |
Value | stringify (int indent=0) Convert the Value to a JSON representation. |
T | to () Convert the Value to a specified type. |
StringView | toString () Convert the Value to a StringView . |
~ValueWrapper () |
Public Static Functions inherited from jac::ObjectWrapper
Type | Name |
---|---|
Object | create (ContextRef ctx) Create a new empty object. |
Public Static Functions inherited from jac::ValueWrapper
Type | Name |
---|---|
Value | from (ContextRef ctx, T val) Create a new Value by converting a given value. |
Value | fromJSON (ContextRef ctx, std::string json, std::string filename="<json>", bool extended=false) Create a new Value from a given JSON string. |
Value | null (ContextRef ctx) Create a new Value containing null. |
Value | undefined (ContextRef ctx) Create a new Value containing undefined. |
Protected Attributes inherited from jac::ValueWrapper
Type | Name |
---|---|
ContextRef | _ctx |
JSValue | _val |
Detailed Description
Template parameters:
managed
whether the JSValue should be freed when the wrapper is destroyed.
Public Functions Documentation
function FunctionWrapper [1/2]
Wrap an existing JSValue. If managed is true, JSValue will be freed when the Function is destroyed.
Note:
Used internally when directly working with QuickJS API. New Function should be created using FunctionFactory.
Parameters:
ctx
context to work inval
JSValue to wrap
function FunctionWrapper [2/2]
function call
Call the function.
Note:
The call will automatically convert the arguments to their JavaScript counterparts, the result will be converted to the specified type and Exceptions thrown in JS will be propagated to C++ as jac::Exception.
Template parameters:
Res
type to convert the result toArgs
types of the arguments
Parameters:
prop
the property identifierargs
the arguments
Returns:
The resulting value
function callConstructor
Call the function as a constructor.
Note:
The call will automatically convert the arguments to their JavaScript counterparts, the result will be converted to the specified type and Exceptions thrown in JS will be propagated to C++ as jac::Exception.
Template parameters:
Res
type to convert the result toArgs
types of the arguments
Parameters:
prop
the property identifierargs
the arguments
Returns:
The resulting value
function callThis
Call the function with this
set to a given object.
template<typename Res, typename... Args>
inline Res jac::FunctionWrapper::callThis (
Value thisVal,
Args... args
)
Note:
The call will automatically convert the arguments to their JavaScript counterparts, the result will be converted to the specified type and Exceptions thrown in JS will be propagated to C++ as jac::Exception.
Template parameters:
Res
type to convert the result toArgs
types of the arguments
Parameters:
prop
the property identifierargs
the arguments
Returns:
The resulting value
The documentation for this class was generated from the following file src/jac/machine/values.h