My Project
Files | Classes | Macros | Typedefs | Enumerations | Functions
JavaScript Native Interface

Files

file  jsni.h
 

Classes

struct  JSNIDataPropertyDescriptor
 
struct  JSNIAccessorPropertyDescriptor
 
struct  JSNIPropertyDescriptor
 
struct  JSNIErrorInfo
 
struct  _JSNIEnv
 JSNI environment structure. More...
 

Macros

#define JSNI_VERSION_1_0   0x00010000
 JSNI version 1.0. More...
 
#define JSNI_VERSION_1_1   0x00010001
 JSNI version 1.1. More...
 
#define JSNI_VERSION_2_0   0x00020000
 JSNI version 2.0. More...
 
#define JSNI_VERSION_2_1   0x00020001
 JSNI version 2.1.
 
#define JSNI_VERSION_2_2   0x00020002
 JSNI version 2.2.
 
#define JSNI_VERSION_2_3   0x00020003
 JSNI version 2.3.
 

Typedefs

typedef struct _JSValueRef * JSValueRef
 Reference type.
 
typedef struct _JSNIEnv JSNIEnv
 JSNI environment.
 
typedef void(* JSNIGCCallback) (JSNIEnv *, void *)
 GCCallback helper type.
 
typedef struct _JSNICallbackInfo * JSNICallbackInfo
 Callback helper type.
 
typedef void(* JSNICallback) (JSNIEnv *, const JSNICallbackInfo)
 Callback helper type.
 
typedef struct _JSGlobalValueRef * JSGlobalValueRef
 Global reference type.
 

Enumerations

enum  JsTypedArrayType {
  JsArrayTypeNone, JsArrayTypeInt8, JsArrayTypeUint8, JsArrayTypeUint8Clamped,
  JsArrayTypeInt16, JsArrayTypeUint16, JsArrayTypeInt32, JsArrayTypeUint32,
  JsArrayTypeFloat32, JsArrayTypeFloat64
}
 The type of a typed JavaScript array. More...
 
enum  JSNIPropertyAttributes { JSNINone = 0, JSNIReadOnly = 1 << 0, JSNIDontEnum = 1 << 1, JSNIDontDelete = 1 << 2 }
 
enum  JSNIErrorCode { JSNIOK, JSNIERR }
 

Functions

int JSNIGetVersion (JSNIEnv *env)
 Returns the version of the JSNI. More...
 
bool JSNIRegisterMethod (JSNIEnv *env, const JSValueRef recv, const char *name, JSNICallback callback)
 Registers a native callback function. More...
 
int JSNIGetArgsLengthOfCallback (JSNIEnv *env, JSNICallbackInfo info)
 Returns the number of arguments for the callback. More...
 
JSValueRef JSNIGetArgOfCallback (JSNIEnv *env, JSNICallbackInfo info, int id)
 Returns the argument for the callback. More...
 
JSValueRef JSNIGetThisOfCallback (JSNIEnv *env, JSNICallbackInfo info)
 Returns "this" JavaScript object of the JavaScript function which current callback associated with. More...
 
void * JSNIGetDataOfCallback (JSNIEnv *env, JSNICallbackInfo info)
 Get the raw data which is passed to this callback. More...
 
void JSNISetReturnValue (JSNIEnv *env, JSNICallbackInfo info, JSValueRef val)
 Sets the JavaScript return value for the callback. More...
 
bool JSNIIsUndefined (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is undefined. More...
 
JSValueRef JSNINewUndefined (JSNIEnv *env)
 Constructs a new Undefined JavaScript value. More...
 
bool JSNIIsNull (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is Null. More...
 
JSValueRef JSNINewNull (JSNIEnv *env)
 Constructs a new Null JavaScript value. More...
 
bool JSNIIsBoolean (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is Boolean. More...
 
bool JSNIToCBool (JSNIEnv *env, JSValueRef val)
 Converts the JavaScript value to C bool. More...
 
JSValueRef JSNINewBoolean (JSNIEnv *env, bool val)
 Constructs a new Boolean JavaScript value. More...
 
bool JSNIIsNumber (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is Number. More...
 
JSValueRef JSNINewNumber (JSNIEnv *env, double val)
 Constructs a new Number JavaScript value. More...
 
double JSNIToCDouble (JSNIEnv *env, JSValueRef val)
 Converts the JavaScript value to C double. More...
 
int32_t JSNIToInt32 (JSNIEnv *env, JSValueRef val)
 Converts the JavaScript value to int32. More...
 
uint32_t JSNIToUint32 (JSNIEnv *env, JSValueRef val)
 Converts the JavaScript value to uint32. More...
 
int64_t JSNIToInt64 (JSNIEnv *env, JSValueRef val)
 Converts the JavaScript value to int64. More...
 
bool JSNIIsSymbol (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is Symbol. More...
 
JSValueRef JSNINewSymbol (JSNIEnv *env, JSValueRef val)
 Constructs a new Symbol JavaScript value. More...
 
bool JSNIIsString (JSNIEnv *env, JSValueRef val)
 Tests whether the JavaScript value is String. More...
 
JSValueRef JSNINewStringFromUtf8 (JSNIEnv *env, const char *src, size_t length)
 Constructs a new String value from an array of characters in UTF-8 encoding. More...
 
size_t JSNIGetStringUtf8Length (JSNIEnv *env, JSValueRef string)
 Returns the length in bytes of the UTF-8 representation of a string. More...
 
size_t JSNIGetStringUtf8Chars (JSNIEnv *env, JSValueRef string, char *copy, size_t length)
 Copyies a JavaScript string into a UTF-8 encoding string buffer. More...
 
JSValueRef JSNINewString (JSNIEnv *env, const uint16_t *src, size_t length)
 Constructs a new String value from an array of characters in two bytes. More...
 
size_t JSNIGetStringLength (JSNIEnv *env, JSValueRef string)
 
size_t JSNIGetString (JSNIEnv *env, JSValueRef string, uint16_t *copy, size_t length)
 
bool JSNIIsObject (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is a JavaScript object. More...
 
bool JSNIIsEmpty (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is empty. More...
 
JSValueRef JSNINewObject (JSNIEnv *env)
 Constructs a JavaScript object. More...
 
bool JSNIHasProperty (JSNIEnv *env, JSValueRef object, const char *name)
 Tests whether a JavaScript object has a property named name. More...
 
JSValueRef JSNIGetProperty (JSNIEnv *env, JSValueRef object, const char *name)
 Returns the property of the JavaScript object. More...
 
bool JSNISetProperty (JSNIEnv *env, JSValueRef object, const char *name, JSValueRef property)
 Sets a property of a JavaScript object. More...
 
bool JSNIDefineProperty (JSNIEnv *env, JSValueRef object, const char *name, const JSNIPropertyDescriptor descriptor)
 Defines a new property directly on an object, or modifies an existing property on an object. More...
 
bool JSNIDeleteProperty (JSNIEnv *env, JSValueRef object, const char *name)
 Deletes the property of a JavaScript object. More...
 
JSValueRef JSNIGetPrototype (JSNIEnv *env, JSValueRef object)
 Returns a prototype of a JavaScript object. More...
 
JSValueRef JSNINewObjectWithInternalField (JSNIEnv *env, int count)
 Constructs a JavaScript object with internal field. Internal field is a raw C pointer which can not be get in JavaScript. More...
 
int JSNIInternalFieldCount (JSNIEnv *env, JSValueRef object)
 Gets the number of the internal field fo a JavaScript object. More...
 
void JSNISetInternalField (JSNIEnv *env, JSValueRef object, int index, void *field)
 Sets an internal field of a JavaScript object. More...
 
void * JSNIGetInternalField (JSNIEnv *env, JSValueRef object, int index)
 Gets an internal field of a JavaScript object. More...
 
bool JSNIIsFunction (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is Function. More...
 
JSValueRef JSNINewFunction (JSNIEnv *env, JSNICallback callback)
 Constructs a JavaScript function with callback. More...
 
JSValueRef JSNICallFunction (JSNIEnv *env, JSValueRef func, JSValueRef recv, int argc, JSValueRef *argv)
 Calls a JavaScript function. More...
 
bool JSNIIsArray (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is Array. More...
 
size_t JSNIGetArrayLength (JSNIEnv *env, JSValueRef array)
 Returns the number of elements in the array. More...
 
JSValueRef JSNINewArray (JSNIEnv *env, size_t initial_length)
 Constructs a JavaScript array with initial length: initial_length. More...
 
JSValueRef JSNIGetArrayElement (JSNIEnv *env, JSValueRef array, size_t index)
 Returns an element of a JavaScript array. More...
 
void JSNISetArrayElement (JSNIEnv *env, JSValueRef array, size_t index, JSValueRef value)
 Sets an element of a JavaScript array. More...
 
bool JSNIIsTypedArray (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is TypedArray. More...
 
JSValueRef JSNINewTypedArray (JSNIEnv *env, JsTypedArrayType type, void *data, size_t length)
 Constructs a JavaScript TypedArray object. More...
 
JsTypedArrayType JSNIGetTypedArrayType (JSNIEnv *env, JSValueRef typed_array)
 Returns the type of the JavaScript TypedArray value. More...
 
void * JSNIGetTypedArrayData (JSNIEnv *env, JSValueRef typed_array)
 Returns the pointer to the buffer of TypedArray data. More...
 
size_t JSNIGetTypedArrayLength (JSNIEnv *env, JSValueRef typed_array)
 Returns the number of elements in the TypedArray value. More...
 
void JSNIPushLocalScope (JSNIEnv *env)
 Creates a local reference scope, and then all local references will be allocated within this reference scope until the reference scope is deleted using PoplocalScope() or another local reference scope is created. More...
 
void JSNIPopLocalScope (JSNIEnv *env)
 Pops off the current local reference scope, frees all the local references in the local reference scope. More...
 
void JSNIPushEscapableLocalScope (JSNIEnv *env)
 Creates a local reference scope, and then all local references will be allocated within this reference scope until the reference scope is deleted using PopEscapableLocalScope() or another local reference scope is created. More...
 
JSValueRef JSNIPopEscapableLocalScope (JSNIEnv *env, JSValueRef val)
 Pops off the current local reference scope, frees all the local references in the local reference scope, and returns a local reference in the previous local scope for the given val JavaScript value. More...
 
JSGlobalValueRef JSNINewGlobalValue (JSNIEnv *env, JSValueRef val)
 Creates a new global reference to the JavaScript value referred to by the val argument. The global value must be explicitly disposed of by calling JSNIDeleteGlobalValue() or JSNIReleaseGlobalValue(). The global value will be alive untile calling JSNIDeleteGlobalValue() or JSNIReleaseGlobalValue() to dispose it. JSNIDeleteGlobalValue() dispose it immediately, whereas JSNIReleaseGlobalValue() dispose it when decrease the reference count to zero. More...
 
void JSNIDeleteGlobalValue (JSNIEnv *env, JSGlobalValueRef val)
 Deletes the global reference pointed by val. More...
 
size_t JSNIAcquireGlobalValue (JSNIEnv *env, JSGlobalValueRef val)
 Acquire the val means to increase the reference count of the val. Once the reference count of the val equals to zero, the val is available to be garbage collected. More...
 
size_t JSNIReleaseGlobalValue (JSNIEnv *env, JSGlobalValueRef val)
 Release the val means to decrease the reference count of the val. Once the reference count of the val equals to zero, the val is available to be garbage collected. More...
 
JSValueRef JSNIGetGlobalValue (JSNIEnv *env, JSGlobalValueRef val)
 Returns a local JSValueRef value from a JSGlobalValueRef value. More...
 
void JSNISetGCCallback (JSNIEnv *env, JSGlobalValueRef val, void *args, JSNIGCCallback callback)
 Sets a callback which will be called when the JavaScript value pointed by val is freed. The developer can pass an argument to callback by args. JSNISetGCCallback() is only valid when reference count is bigger than zero. More...
 
void JSNIThrowErrorException (JSNIEnv *env, const char *errmsg)
 Constructs an error object with the message specified by errmsg and causes that error to be thrown. It throws a JavaScript Exception. More...
 
void JSNIThrowTypeErrorException (JSNIEnv *env, const char *errmsg)
 Constructs an type error object with the message specified by errmsg and causes that type error to be thrown. It throws a JavaScript Exception. More...
 
void JSNIThrowRangeErrorException (JSNIEnv *env, const char *errmsg)
 Constructs an range error object with the message specified by errmsg and causes that type error to be thrown. It throws a JavaScript Exception. More...
 
JSNIErrorInfo JSNIGetLastErrorInfo (JSNIEnv *env)
 Tests whether there is error occured during pervious JSNI call. After calling JSNIGetLastErrorInfo(), if there is error occured, the error will be cleared. More...
 
bool JSNIHasException (JSNIEnv *env)
 Tests whether a JavaScript exception is being thrown. It's different with error get from JSNIGetLastErrorInfo. Eorror is defined by JSNI, whereas this is a JavaScript exception. More...
 
void JSNIClearException (JSNIEnv *env)
 Clear a JavaScript exception that is being thrown. If there is no exception, this routine has no effect. More...
 
JSValueRef JSNINewError (JSNIEnv *env, const char *errmsg)
 Constructs a JavaScript Error object. More...
 
JSValueRef JSNINewTypeError (JSNIEnv *env, const char *errmsg)
 Constructs a JavaScript TypeError object. More...
 
JSValueRef JSNINewRangeError (JSNIEnv *env, const char *errmsg)
 Constructs a JavaScript RangeError object. More...
 
void JSNIThrowErrorObject (JSNIEnv *env, JSValueRef error)
 Throw JavaScript Error object. More...
 
bool JSNIIsError (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is Error object. More...
 
JSValueRef JSNINewInstance (JSNIEnv *env, JSValueRef constructor, int argc, JSValueRef *argv)
 New an instance from a constructor. More...
 
bool JSNIInstanceOf (JSNIEnv *env, JSValueRef left, JSValueRef right)
 Tests whether left object is an instance of right object. More...
 
JSValueRef JSNIGetNewTarget (JSNIEnv *env, JSNICallbackInfo info)
 Gets the new.target value of the call. More...
 
bool JSNIStrictEquals (JSNIEnv *env, JSValueRef left, JSValueRef right)
 Tests whether the left JavaScript value is strict-equal to the right JavaScript value. More...
 
JSValueRef JSNINewArrayBuffer (JSNIEnv *env, size_t length)
 Constructs a JavaScript ArrayBuffer. More...
 
JSValueRef JSNINewArrayBufferExternalized (JSNIEnv *env, void *data, size_t length)
 Constructs a JavaScirpt ArrayBuffer with the externalized data. More...
 
bool JSNIIsArrayBuffer (JSNIEnv *env, JSValueRef val)
 Tests whether a JavaScript value is ArrayBuffer. More...
 
void * JSNIGetArrayBufferData (JSNIEnv *env, JSValueRef val)
 Gets the pointer to the buffer of ArrayBuffer data. More...
 
size_t JSNIGetArrayBufferLength (JSNIEnv *env, JSValueRef val)
 Gets the length of ArrayBuffer. More...
 
JSValueRef JSNIGetPropertyNames (JSNIEnv *env, JSValueRef val)
 Gets the names of the properties of the object. More...
 
int JSNIInit (JSNIEnv *env, JSValueRef exports)
 This function is called by JSNI, not part of JSNI.
 

Detailed Description

Macro Definition Documentation

◆ JSNI_VERSION_1_0

#define JSNI_VERSION_1_0   0x00010000

JSNI version 1.0.

Deprecated:
Version 1.0 is deprecated.

◆ JSNI_VERSION_1_1

#define JSNI_VERSION_1_1   0x00010001

JSNI version 1.1.

Deprecated:
Version 1.1 is deprecated.

◆ JSNI_VERSION_2_0

#define JSNI_VERSION_2_0   0x00020000

JSNI version 2.0.

2.0 is not compatibale with 1.1. Since 2.0, we should be compatible with old versions.

Enumeration Type Documentation

◆ JSNIErrorCode

Enumerator
JSNIOK 

No error

JSNIERR 

Generic error

◆ JSNIPropertyAttributes

Enumerator
JSNINone 

JSNINone means writable, enumerable and configurable

JSNIReadOnly 

Read-only property

JSNIDontEnum 

Not-enumerable property

JSNIDontDelete 

Not-configurable property

◆ JsTypedArrayType

The type of a typed JavaScript array.

Enumerator
JsArrayTypeNone 

Do not have a type.

JsArrayTypeInt8 

An int8 array.

JsArrayTypeUint8 

An uint8 array.

JsArrayTypeUint8Clamped 

An uint8 clamped array. JsArrayTypeUint8Clamped represents an array of 8-bit unsigned integers clamped to 0-255.

JsArrayTypeInt16 

An int16 array.

JsArrayTypeUint16 

An uint16 array.

JsArrayTypeInt32 

An int32 array.

JsArrayTypeUint32 

An uint32 array.

JsArrayTypeFloat32 

An float32 array.

JsArrayTypeFloat64 

An float64 array.

Function Documentation

◆ JSNIAcquireGlobalValue()

size_t JSNIAcquireGlobalValue ( JSNIEnv env,
JSGlobalValueRef  val 
)

Acquire the val means to increase the reference count of the val. Once the reference count of the val equals to zero, the val is available to be garbage collected.

Parameters
envThe JSNI environment pointer.
valA JSGlobalValueRef value.
Returns
The reference count.
Since
JSNI 2.1.

◆ JSNICallFunction()

JSValueRef JSNICallFunction ( JSNIEnv env,
JSValueRef  func,
JSValueRef  recv,
int  argc,
JSValueRef argv 
)

Calls a JavaScript function.

Parameters
envThe JSNI environment pointer.
funcA JavaScript funciton.
recvThe receiver the func belongs to.
argcThe arguments number.
argvA pointer to an array of JavaScript value.
Returns
Returns the JavaScript value returned from calling func.

◆ JSNIClearException()

void JSNIClearException ( JSNIEnv env)

Clear a JavaScript exception that is being thrown. If there is no exception, this routine has no effect.

Parameters
envThe JSNI environment pointer.
Returns
None.

◆ JSNIDefineProperty()

bool JSNIDefineProperty ( JSNIEnv env,
JSValueRef  object,
const char *  name,
const JSNIPropertyDescriptor  descriptor 
)

Defines a new property directly on an object, or modifies an existing property on an object.

Parameters
envThe JSNI environment pointer.
objectThe object on which to define the property.
nameThe name of the property to be defined or modified.
descriptorThe descriptor for the property being defined or modified.
Returns
Returns true on success.

◆ JSNIDeleteGlobalValue()

void JSNIDeleteGlobalValue ( JSNIEnv env,
JSGlobalValueRef  val 
)

Deletes the global reference pointed by val.

Parameters
envThe JSNI environment pointer.
valA JSGlobalValueRef value.
Returns
None.

◆ JSNIDeleteProperty()

bool JSNIDeleteProperty ( JSNIEnv env,
JSValueRef  object,
const char *  name 
)

Deletes the property of a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
nameA property name.
Returns
Returns true if the operation succeeds.

◆ JSNIGetArgOfCallback()

JSValueRef JSNIGetArgOfCallback ( JSNIEnv env,
JSNICallbackInfo  info,
int  id 
)

Returns the argument for the callback.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
idThe index of arguments.
Returns
Returns the argument.

◆ JSNIGetArgsLengthOfCallback()

int JSNIGetArgsLengthOfCallback ( JSNIEnv env,
JSNICallbackInfo  info 
)

Returns the number of arguments for the callback.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
Returns
Returns the number of arguments.

◆ JSNIGetArrayBufferData()

void* JSNIGetArrayBufferData ( JSNIEnv env,
JSValueRef  val 
)

Gets the pointer to the buffer of ArrayBuffer data.

Parameters
envThe JSNI environment pointer.
valA JavaScript ArrayBuffer.
Returns
Returns the pointer to the buffer of ArrayBuffer data.
Since
JSNI 2.3.

◆ JSNIGetArrayBufferLength()

size_t JSNIGetArrayBufferLength ( JSNIEnv env,
JSValueRef  val 
)

Gets the length of ArrayBuffer.

Parameters
envThe JSNI environment pointer.
valA JavaScript ArrayBuffer.
Returns
Returns the length of ArrayBuffer.
Since
JSNI 2.3.

◆ JSNIGetArrayElement()

JSValueRef JSNIGetArrayElement ( JSNIEnv env,
JSValueRef  array,
size_t  index 
)

Returns an element of a JavaScript array.

Parameters
envThe JSNI environment pointer.
arrayA JavaScript array.
indexArray index.
Returns
Returns a JavaScript value.

◆ JSNIGetArrayLength()

size_t JSNIGetArrayLength ( JSNIEnv env,
JSValueRef  array 
)

Returns the number of elements in the array.

Parameters
envThe JSNI environment pointer.
arrayA JavaScript array.
Returns
Returns the length of the array.

◆ JSNIGetDataOfCallback()

void* JSNIGetDataOfCallback ( JSNIEnv env,
JSNICallbackInfo  info 
)

Get the raw data which is passed to this callback.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
Returns
Returns the data.

◆ JSNIGetGlobalValue()

JSValueRef JSNIGetGlobalValue ( JSNIEnv env,
JSGlobalValueRef  val 
)

Returns a local JSValueRef value from a JSGlobalValueRef value.

Parameters
envThe JSNI environment pointer.
valA JSGlobalValueRef value.
Returns
Returns a local JSValueRef value.

◆ JSNIGetInternalField()

void* JSNIGetInternalField ( JSNIEnv env,
JSValueRef  object,
int  index 
)

Gets an internal field of a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
indexIndex of an internal field.
Returns
an internal field.

◆ JSNIGetLastErrorInfo()

JSNIErrorInfo JSNIGetLastErrorInfo ( JSNIEnv env)

Tests whether there is error occured during pervious JSNI call. After calling JSNIGetLastErrorInfo(), if there is error occured, the error will be cleared.

Parameters
envThe JSNI environment pointer.
Returns
Returns true if there is error occured during previous JSNI call.

◆ JSNIGetNewTarget()

JSValueRef JSNIGetNewTarget ( JSNIEnv env,
JSNICallbackInfo  info 
)

Gets the new.target value of the call.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
Returns
Returns the new.target of the call.
Since
JSNI 2.3.

◆ JSNIGetProperty()

JSValueRef JSNIGetProperty ( JSNIEnv env,
JSValueRef  object,
const char *  name 
)

Returns the property of the JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
nameA property name.
Returns
Returns the property of the JavaScript object.

◆ JSNIGetPropertyNames()

JSValueRef JSNIGetPropertyNames ( JSNIEnv env,
JSValueRef  val 
)

Gets the names of the properties of the object.

Parameters
envThe JSNI environment pointer.
valThe JavaScript object to get properties names from.
Returns
Returns an JavaScript array containning the names of the enumerable properties of the object.
Since
JSNI 2.3.

◆ JSNIGetPrototype()

JSValueRef JSNIGetPrototype ( JSNIEnv env,
JSValueRef  object 
)

Returns a prototype of a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
Returns
Returns a JavaScript value.

◆ JSNIGetStringUtf8Chars()

size_t JSNIGetStringUtf8Chars ( JSNIEnv env,
JSValueRef  string,
char *  copy,
size_t  length 
)

Copyies a JavaScript string into a UTF-8 encoding string buffer.

Parameters
envThe JSNI environment pointer.
stringA JavaScript string value.
copyThe buffer copied to.
lengthThe length copied to copy. It should be greater than the length of the string considering for string null terminator. If length equals -1, it will use the length of string.
Returns
Returns the size of copied.

◆ JSNIGetStringUtf8Length()

size_t JSNIGetStringUtf8Length ( JSNIEnv env,
JSValueRef  string 
)

Returns the length in bytes of the UTF-8 representation of a string.

Returns the number of charaters in this string.

Parameters
envThe JSNI environment pointer.
stringA JavaScript string value.
Returns
Returns the UTF-8 length of the string, excluding the null-terminator.
Parameters
envThe JSNI environment pointer.
stringA JavaScript string value.
Returns
Returns the number of charaters in this string.
Since
JSNI 2.2.

◆ JSNIGetThisOfCallback()

JSValueRef JSNIGetThisOfCallback ( JSNIEnv env,
JSNICallbackInfo  info 
)

Returns "this" JavaScript object of the JavaScript function which current callback associated with.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
Returns
Returns "this" JavaScript object..

◆ JSNIGetTypedArrayData()

void* JSNIGetTypedArrayData ( JSNIEnv env,
JSValueRef  typed_array 
)

Returns the pointer to the buffer of TypedArray data.

Parameters
envThe JSNI environment pointer.
typed_arrayA JavaScript TypedArray value.
Returns
Returns the pointer to the buffer of TypedArray data.

◆ JSNIGetTypedArrayLength()

size_t JSNIGetTypedArrayLength ( JSNIEnv env,
JSValueRef  typed_array 
)

Returns the number of elements in the TypedArray value.

Parameters
envThe JSNI environment pointer.
typed_arrayA JavaScript TypedArray value.
Returns
Returns the length of the TypedArray value.

◆ JSNIGetTypedArrayType()

JsTypedArrayType JSNIGetTypedArrayType ( JSNIEnv env,
JSValueRef  typed_array 
)

Returns the type of the JavaScript TypedArray value.

Parameters
envThe JSNI environment pointer.
typed_arrayA JavaScript TypedArray value.
Returns
Returns the type of the JavaScript TypedArray value.

◆ JSNIGetVersion()

int JSNIGetVersion ( JSNIEnv env)

Returns the version of the JSNI.

JSNI functions.

Parameters
envThe JSNI environment pointer.
Returns
Returns the version of the JSNI.

◆ JSNIHasException()

bool JSNIHasException ( JSNIEnv env)

Tests whether a JavaScript exception is being thrown. It's different with error get from JSNIGetLastErrorInfo. Eorror is defined by JSNI, whereas this is a JavaScript exception.

Parameters
envThe JSNI environment pointer.
Returns
Returns true if a JavaScript exception is being thrown.

◆ JSNIHasProperty()

bool JSNIHasProperty ( JSNIEnv env,
JSValueRef  object,
const char *  name 
)

Tests whether a JavaScript object has a property named name.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
nameA property name.
Returns
Returns true if object has property named name.

◆ JSNIInstanceOf()

bool JSNIInstanceOf ( JSNIEnv env,
JSValueRef  left,
JSValueRef  right 
)

Tests whether left object is an instance of right object.

Parameters
envThe JSNI environment pointer.
leftA JavaScript value to test.
rightA JavaScript value which represents a function constructor.
Returns
Returns true if left object is an instance of right object.
Since
JSNI 2.3.

◆ JSNIInternalFieldCount()

int JSNIInternalFieldCount ( JSNIEnv env,
JSValueRef  object 
)

Gets the number of the internal field fo a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
Returns
Returns the number of the internal internal field.

◆ JSNIIsArray()

bool JSNIIsArray ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is Array.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if val is Array.

◆ JSNIIsArrayBuffer()

bool JSNIIsArrayBuffer ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is ArrayBuffer.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the JavaScript value is ArrayBuffer.
Since
JSNI 2.3.

◆ JSNIIsBoolean()

bool JSNIIsBoolean ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is Boolean.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is Boolean.

◆ JSNIIsEmpty()

bool JSNIIsEmpty ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is empty.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if val is empty.

◆ JSNIIsError()

bool JSNIIsError ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is Error object.

Parameters
envThe JSNI environment pointer.
valA JavaScript Value.
Returns
Returns true if val is an Error object.
Since
JSNI 2.3.

◆ JSNIIsFunction()

bool JSNIIsFunction ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is Function.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if val is Function.

◆ JSNIIsNull()

bool JSNIIsNull ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is Null.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is Null.

◆ JSNIIsNumber()

bool JSNIIsNumber ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is Number.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is Number.

◆ JSNIIsObject()

bool JSNIIsObject ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is a JavaScript object.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if val is a JavaScript object.

◆ JSNIIsString()

bool JSNIIsString ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is String.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is String.

◆ JSNIIsSymbol()

bool JSNIIsSymbol ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is Symbol.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is Symbol.

◆ JSNIIsTypedArray()

bool JSNIIsTypedArray ( JSNIEnv env,
JSValueRef  val 
)

Tests whether a JavaScript value is TypedArray.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if val is TypedArray.

◆ JSNIIsUndefined()

bool JSNIIsUndefined ( JSNIEnv env,
JSValueRef  val 
)

Tests whether the JavaScript value is undefined.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns true if the value is undefined.

◆ JSNINewArray()

JSValueRef JSNINewArray ( JSNIEnv env,
size_t  initial_length 
)

Constructs a JavaScript array with initial length: initial_length.

Parameters
envThe JSNI environment pointer.
initial_lengthInitial array size.
Returns
Returns a JavaScript array object, or NULL if the operation fails.

◆ JSNINewArrayBuffer()

JSValueRef JSNINewArrayBuffer ( JSNIEnv env,
size_t  length 
)

Constructs a JavaScript ArrayBuffer.

Parameters
envThe JSNI environment pointer.
lengthThe ArrayBuffer length.
Returns
Returns a JavaSript ArrayBuffer.
Since
JSNI 2.3.

◆ JSNINewArrayBufferExternalized()

JSValueRef JSNINewArrayBufferExternalized ( JSNIEnv env,
void *  data,
size_t  length 
)

Constructs a JavaScirpt ArrayBuffer with the externalized data.

Parameters
envThe JSNI environment pointer.
dataThe externalized data.
lengthThe ArrayBuffer length.
Returns
Returns a JavaScript ArrayBuffer with an externalized data.
Since
JSNI 2.3.

◆ JSNINewBoolean()

JSValueRef JSNINewBoolean ( JSNIEnv env,
bool  val 
)

Constructs a new Boolean JavaScript value.

Parameters
envThe JSNI environment pointer.
valA bool value.
Returns
Returns a Boolean JavaScript value.

◆ JSNINewError()

JSValueRef JSNINewError ( JSNIEnv env,
const char *  errmsg 
)

Constructs a JavaScript Error object.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
JavaScript Error Object.
Since
JSNI 2.3.

◆ JSNINewFunction()

JSValueRef JSNINewFunction ( JSNIEnv env,
JSNICallback  nativeFunc 
)

Constructs a JavaScript function with callback.

Parameters
envThe JSNI environment pointer.
callbackA native callback function.
Returns
Returns a JavaScript function.

◆ JSNINewGlobalValue()

JSGlobalValueRef JSNINewGlobalValue ( JSNIEnv env,
JSValueRef  val 
)

Creates a new global reference to the JavaScript value referred to by the val argument. The global value must be explicitly disposed of by calling JSNIDeleteGlobalValue() or JSNIReleaseGlobalValue(). The global value will be alive untile calling JSNIDeleteGlobalValue() or JSNIReleaseGlobalValue() to dispose it. JSNIDeleteGlobalValue() dispose it immediately, whereas JSNIReleaseGlobalValue() dispose it when decrease the reference count to zero.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns a global value.

◆ JSNINewInstance()

JSValueRef JSNINewInstance ( JSNIEnv env,
JSValueRef  constructor,
int  argc,
JSValueRef argv 
)

New an instance from a constructor.

Parameters
envThe JSNI environment pointer.
constructorThe JavaScript function to be invoked as a constructor.
argcThe argument number to be passed to constructor.
argvThe argument array pointer to be passed to constructor.
Returns
Returns the constructed JavaScript object.
Since
JSNI 2.3.

◆ JSNINewNull()

JSValueRef JSNINewNull ( JSNIEnv env)

Constructs a new Null JavaScript value.

Parameters
envThe JSNI environment pointer.
Returns
Returns a Null JavaScript value.

◆ JSNINewNumber()

JSValueRef JSNINewNumber ( JSNIEnv env,
double  val 
)

Constructs a new Number JavaScript value.

Parameters
envThe JSNI environment pointer.
valA double value.
Returns
Returns a Number JavaScript value.

◆ JSNINewObject()

JSValueRef JSNINewObject ( JSNIEnv env)

Constructs a JavaScript object.

Parameters
envThe JSNI environment pointer.
Returns
Returns a JavaScript object.

◆ JSNINewObjectWithInternalField()

JSValueRef JSNINewObjectWithInternalField ( JSNIEnv env,
int  count 
)

Constructs a JavaScript object with internal field. Internal field is a raw C pointer which can not be get in JavaScript.

Parameters
envThe JSNI environment pointer.
countA number of internal fields.
Returns
Returns a JavaScript object.

◆ JSNINewRangeError()

JSValueRef JSNINewRangeError ( JSNIEnv env,
const char *  errmsg 
)

Constructs a JavaScript RangeError object.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
JavaScript RangeError Object.
Since
JSNI 2.3.

◆ JSNINewString()

JSValueRef JSNINewString ( JSNIEnv env,
const uint16_t *  src,
size_t  length 
)

Constructs a new String value from an array of characters in two bytes.

Parameters
envThe JSNI environment pointer.
srcThe pointer to a two bytes string.
lengthThe length of string to be created. It should exclude the null terminator. If length equals -1, it will use the length of src.
Returns
Returns a String value, or NULL if the string can not be constructed.
Since
JSNI 2.2.

◆ JSNINewStringFromUtf8()

JSValueRef JSNINewStringFromUtf8 ( JSNIEnv env,
const char *  src,
size_t  length 
)

Constructs a new String value from an array of characters in UTF-8 encoding.

Parameters
envThe JSNI environment pointer.
srcThe pointer to a UTF-8 string.
lengthThe length of string to be created. It should exclude the null terminator. If length equals -1, it will use the length of src.
Returns
Returns a String value, or NULL if the string can not be constructed.

◆ JSNINewSymbol()

JSValueRef JSNINewSymbol ( JSNIEnv env,
JSValueRef  name 
)

Constructs a new Symbol JavaScript value.

Parameters
envThe JSNI environment pointer.
valThe description of the symbol.
Returns
Returns a Symbol JavaScript value.

◆ JSNINewTypedArray()

JSValueRef JSNINewTypedArray ( JSNIEnv env,
JsTypedArrayType  type,
void *  data,
size_t  length 
)

Constructs a JavaScript TypedArray object.

Parameters
envThe JSNI environment pointer.
typeThe type of the array.
dataThe pointer to the data buffer of the array.
lengthThe length of the array.
Returns
Returns a JavaScript TypedArray object.

◆ JSNINewTypeError()

JSValueRef JSNINewTypeError ( JSNIEnv env,
const char *  errmsg 
)

Constructs a JavaScript TypeError object.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
JavaScript TypeError Object.
Since
JSNI 2.3.

◆ JSNINewUndefined()

JSValueRef JSNINewUndefined ( JSNIEnv env)

Constructs a new Undefined JavaScript value.

Parameters
envThe JSNI environment pointer.
Returns
Returns an Undefined JavaScript value.

◆ JSNIPopEscapableLocalScope()

JSValueRef JSNIPopEscapableLocalScope ( JSNIEnv env,
JSValueRef  val 
)

Pops off the current local reference scope, frees all the local references in the local reference scope, and returns a local reference in the previous local scope for the given val JavaScript value.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns a JavaScript value.

◆ JSNIPopLocalScope()

void JSNIPopLocalScope ( JSNIEnv env)

Pops off the current local reference scope, frees all the local references in the local reference scope.

Parameters
envThe JSNI environment pointer.
Returns
None.

◆ JSNIPushEscapableLocalScope()

void JSNIPushEscapableLocalScope ( JSNIEnv env)

Creates a local reference scope, and then all local references will be allocated within this reference scope until the reference scope is deleted using PopEscapableLocalScope() or another local reference scope is created.

Parameters
envThe JSNI environment pointer.
Returns
None.

◆ JSNIPushLocalScope()

void JSNIPushLocalScope ( JSNIEnv env)

Creates a local reference scope, and then all local references will be allocated within this reference scope until the reference scope is deleted using PoplocalScope() or another local reference scope is created.

Parameters
envThe JSNI environment pointer.
Returns
None.

◆ JSNIRegisterMethod()

bool JSNIRegisterMethod ( JSNIEnv env,
JSValueRef  recv,
const char *  name,
JSNICallback  callback 
)

Registers a native callback function.

Parameters
envThe JSNI environment pointer. registered JS function associated with the callback.
recvThe method receiver. It is passed through JSNIInit to receive the
nameA function name.
callbackA native callback function to be registered.
Returns
Returns true on success.

◆ JSNIReleaseGlobalValue()

size_t JSNIReleaseGlobalValue ( JSNIEnv env,
JSGlobalValueRef  val 
)

Release the val means to decrease the reference count of the val. Once the reference count of the val equals to zero, the val is available to be garbage collected.

Parameters
envThe JSNI environment pointer.
valA JSGlobalValueRef value.
Returns
The reference count.
Since
JSNI 2.1.

◆ JSNISetArrayElement()

void JSNISetArrayElement ( JSNIEnv env,
JSValueRef  array,
size_t  index,
JSValueRef  value 
)

Sets an element of a JavaScript array.

Parameters
envThe JSNI environment pointer.
arrayA JavaScript array.
indexA array index.
valueA new value.
Returns
None.

◆ JSNISetGCCallback()

void JSNISetGCCallback ( JSNIEnv env,
JSGlobalValueRef  global,
void *  args,
JSNIGCCallback  callback 
)

Sets a callback which will be called when the JavaScript value pointed by val is freed. The developer can pass an argument to callback by args. JSNISetGCCallback() is only valid when reference count is bigger than zero.

Parameters
envThe JSNI environment pointer.
valA JSGlobalValueRef value.
argsA pointer to an argument passed to callback.
callbackA function callback.
Returns
None.

◆ JSNISetInternalField()

void JSNISetInternalField ( JSNIEnv env,
JSValueRef  object,
int  index,
void *  field 
)

Sets an internal field of a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
indexIndex of an internal field. and it will not be freed when object is Garbage Collected.
fieldAn internal field. This is a raw C pointer,
Returns
None.

◆ JSNISetProperty()

bool JSNISetProperty ( JSNIEnv env,
JSValueRef  object,
const char *  name,
JSValueRef  property 
)

Sets a property of a JavaScript object.

Parameters
envThe JSNI environment pointer.
objectA JavaScript object.
nameA property name.
propertyA JavaScript value.
Returns
Returns true if the operation succeeds.

◆ JSNISetReturnValue()

void JSNISetReturnValue ( JSNIEnv env,
JSNICallbackInfo  info,
JSValueRef  val 
)

Sets the JavaScript return value for the callback.

Parameters
envThe JSNI environment pointer.
infoThe callback info.
valThe JavaScript value to return to JavaScript.
Returns
None.

◆ JSNIStrictEquals()

bool JSNIStrictEquals ( JSNIEnv env,
JSValueRef  left,
JSValueRef  right 
)

Tests whether the left JavaScript value is strict-equal to the right JavaScript value.

Parameters
envThe JSNI environment pointer.
leftThe left JavaScript value.
rightThe right JavaScript value.
Returns
Returns true if the left JavaScript value is strict-equal to the right JavaScript value.
Since
JSNI 2.3.

◆ JSNIThrowErrorException()

void JSNIThrowErrorException ( JSNIEnv env,
const char *  errmsg 
)

Constructs an error object with the message specified by errmsg and causes that error to be thrown. It throws a JavaScript Exception.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
None.

◆ JSNIThrowErrorObject()

void JSNIThrowErrorObject ( JSNIEnv env,
JSValueRef  error 
)

Throw JavaScript Error object.

Parameters
envThe JSNI environment pointer.
errorJavaScript Error Object.
Returns
None.
Since
JSNI 2.3.

◆ JSNIThrowRangeErrorException()

void JSNIThrowRangeErrorException ( JSNIEnv env,
const char *  errmsg 
)

Constructs an range error object with the message specified by errmsg and causes that type error to be thrown. It throws a JavaScript Exception.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
None.

◆ JSNIThrowTypeErrorException()

void JSNIThrowTypeErrorException ( JSNIEnv env,
const char *  errmsg 
)

Constructs an type error object with the message specified by errmsg and causes that type error to be thrown. It throws a JavaScript Exception.

Parameters
envThe JSNI environment pointer.
errmsgAn error message.
Returns
None.

◆ JSNIToCBool()

bool JSNIToCBool ( JSNIEnv env,
JSValueRef  val 
)

Converts the JavaScript value to C bool.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns the C bool value.

◆ JSNIToCDouble()

double JSNIToCDouble ( JSNIEnv env,
JSValueRef  val 
)

Converts the JavaScript value to C double.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns the C double value.

◆ JSNIToInt32()

int32_t JSNIToInt32 ( JSNIEnv env,
JSValueRef  val 
)

Converts the JavaScript value to int32.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns the int32 value.
Since
JSNI 2.2.

◆ JSNIToInt64()

int64_t JSNIToInt64 ( JSNIEnv env,
JSValueRef  val 
)

Converts the JavaScript value to int64.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns the int64 value.
Since
JSNI 2.2.

◆ JSNIToUint32()

uint32_t JSNIToUint32 ( JSNIEnv env,
JSValueRef  val 
)

Converts the JavaScript value to uint32.

Parameters
envThe JSNI environment pointer.
valA JavaScript value.
Returns
Returns the uint32 value.
Since
JSNI 2.2.