JSVM
Overview
Provides standard JavaScript engine capabilities.
Function: The standard JS engine is a JavaScript code execution engine that strictly complies with the ECMAScript specification. It supports the standard library defined in the ECMAScript specification and provides comprehensive native APIs of C++ interaction JS. It uses the Just-In-Time (JIT) compiler to accelerate code execution and provide secure and efficient JS execution capabilities for applications. The capabilities of the standard JS engine are provided through a stable set of application binary interfaces (ABIs), that is, JSVM-API. JSVM-API can be dynamically linked to JS engine libraries of different versions to shield API differences between engines. JSVM-API provides capabilities such as engine lifecycle management, JS context management, JS code execution, JS/C++ interoperability, execution environment snapshot, and code cache.
Platform: ARM64.
Usage: Link libjsvm.so in the SDK and include the ark_runtime/jsvm.h header file in the C++ code.
The APIs are used to provide independent, standard, and complete JavaScript engine capabilities, including managing the engine lifecycle, compiling and running JS code, implementing JS/C++ cross-language invoking, and taking snapshots.
Since: 11
Summary
Files
| Name | Description |
|---|---|
| jsvm.h | Provides JSVM-API API definitions. |
| jsvm_types.h | Provides JSVM-API type definitions. |
Structs
| Name | Description |
|---|---|
| struct JSVM_CallbackStruct | Pointer to and data of the native callbacks provided by the user. These functions are exposed to JavaScript via JSVM-API. |
| struct JSVM_HeapStatistics | Heap statistics struct, which is used to store statistics about JavaScript heap memory usage. |
| struct JSVM_InitOptions | Options for initializing a JavaScript VM. |
| struct JSVM_CreateVMOptions | Options for creating a JavaScript VM. |
| struct JSVM_VMInfo | JavaScript VM information. |
| struct JSVM_PropertyDescriptor | Property descriptor. |
| struct JSVM_ExtendedErrorInfo | Extended error information. |
| struct JSVM_TypeTag | Type tag, stored as a 128-bit value of two unsigned 64-bit integers. This tag can be used as a UUID, so that JavaScript objects can be tagged, to ensure that their types remain unchanged. |
| struct JSVM_PropertyHandlerConfigurationStruct | Struct for triggering the corresponding callback when the getter, setter, deleter, or enumerator of an object is executed. |
| struct JSVM_ScriptOrigin | Source code information. |
Macros
| Name | Description |
|---|---|
| JSVM_VERSION_EXPERIMENTAL 2147483647 | |
| JSVM_VERSION 8 | |
| JSVM_EXTERN attribute((visibility("default"))) | |
| JSVM_AUTO_LENGTH SIZE_MAX | Automatic length. |
| EXTERN_C_START | |
| EXTERN_C_END | |
| JSVM_CDECL |
Types
| Name | Description |
|---|---|
| typedef uint16_t char16_t | |
| typedef struct JSVM_VM__ * JSVM_VM | JavaScript VM instance. |
| typedef struct JSVM_VMScope__ * JSVM_VMScope | JavaScript VM scope. |
| typedef struct JSVM_EnvScope__ * JSVM_EnvScope | Environment scope of the current VM instance. The environment is available to the VM instance of the thread only after the thread enters JSVM_EnvScope of the environment through OH_JSVM_OpenEnvScope. |
| typedef struct JSVM_Script__ * JSVM_Script | JavaScript code. |
| typedef struct JSVM_Env__ * JSVM_Env | Context of a specific VM state. It needs to be passed as a parameter when the native function is called and passed to any subsequent JSVM-API nested invoking. |
| typedef struct JSVM_CpuProfiler__ * JSVM_CpuProfiler | JavaScript CPU profiler. |
| typedef struct JSVM_Value__ * JSVM_Value | JavaScript value. |
| typedef struct JSVM_Ref__ * JSVM_Ref | Reference to the JavaScript value. |
| typedef struct JSVM_HandleScope__ * JSVM_HandleScope | Scope of the JavaScript value. It is used to control and modify the lifecycle of an object created in a specific scope. Typically, the JSVM-API value is created in the context of JSVM_HandleScope. When the native method is called from JavaScript, the default JSVM_HandleScope exists. If the user does not explicitly create a new JSVM_HandleScope, the JSVM-API value is created in the default JSVM_HandleScope. For any code call other than native method execution (for example, libuv callback), the module needs to create a scope before calling any function that may cause JavaScript value creation. JSVM_HandleScope is created using OH_JSVM_OpenHandleScope and destroyed using OH_JSVM_CloseHandleScope. Closing the scope represents indicating to the GC that all JSVM_Values created during the lifecycle of JSVM_HandleScope will no longer be referenced from the stack frame of the current heap. |
| typedef struct JSVM_EscapableHandleScope__ * JSVM_EscapableHandleScope | A special type of handle scope, which is used to return the value created in a specific handle scope to the parent scope. |
| typedef struct JSVM_CallbackInfo__ * JSVM_CallbackInfo | An opaque data type passed to the callback. It can be used to obtain additional information about the context in which the function is called. |
| typedef struct JSVM_Deferred__ * JSVM_Deferred | Promise deferred object. |
| typedef JSVM_CallbackStruct * JSVM_Callback | Pointer types of the native functions provided by user. These functions are exposed to JavaScript via JSVM-API. |
| typedef void(JSVM_CDECL * JSVM_Finalize) (JSVM_Env env, void *finalizeData, void *finalizeHint) | Function pointer type. It is passed in when a native object or data is associated with a JavaScript object. This function is called when the associated JavaScript object is reclaimed by the GC to execute the native cleanup action. |
| typedef bool(JSVM_CDECL * JSVM_OutputStream) (const char *data, int size, void *streamData) | Pointer to the callback of the ASCII output stream. data indicates the pointer to the output data. size indicates the size of the output data. void points to the end of the stream. streamData indicates the pointer passed to the API function together with the callback. The API function generates data to the output stream. If true is returned, the stream can continue to receive data. Otherwise, it aborts the stream. |
| typedef JSVM_PropertyHandlerConfigurationStruct * JSVM_PropertyHandlerCfg | Pointer type of the struct that contains the property listening callback. |
Enums
| Name | Description |
|---|---|
| JSVM_PropertyAttributes { JSVM_DEFAULT = 0, JSVM_WRITABLE = 1 << 0, JSVM_ENUMERABLE = 1 << 1, JSVM_CONFIGURABLE = 1 << 2, JSVM_STATIC = 1 << 10, JSVM_DEFAULT_METHOD = JSVM_WRITABLE | JSVM_CONFIGURABLE, JSVM_DEFAULT_JSPROPERTY = JSVM_WRITABLE | JSVM_ENUMERABLE | JSVM_CONFIGURABLE } |
Control over the behavior of JavaScript object properties. |
| JSVM_ValueType { JSVM_UNDEFINED, JSVM_NULL, JSVM_BOOLEAN, JSVM_NUMBER, JSVM_STRING, JSVM_SYMBOL, JSVM_OBJECT, JSVM_FUNCTION, JSVM_EXTERNAL, JSVM_BIGINT } |
JSVM_Value type. |
| JSVM_TypedarrayType { JSVM_INT8_ARRAY, JSVM_UINT8_ARRAY, JSVM_UINT8_CLAMPED_ARRAY, JSVM_INT16_ARRAY, JSVM_UINT16_ARRAY, JSVM_INT32_ARRAY, JSVM_UINT32_ARRAY, JSVM_FLOAT32_ARRAY, JSVM_FLOAT64_ARRAY, JSVM_BIGINT64_ARRAY, JSVM_BIGUINT64_ARRAY } |
TypedArray type. |
| JSVM_Status { JSVM_OK, JSVM_INVALID_ARG, JSVM_OBJECT_EXPECTED, JSVM_STRING_EXPECTED, JSVM_NAME_EXPECTED, JSVM_FUNCTION_EXPECTED, JSVM_NUMBER_EXPECTED, JSVM_BOOLEAN_EXPECTED, JSVM_ARRAY_EXPECTED, JSVM_GENERIC_FAILURE, JSVM_PENDING_EXCEPTION, JSVM_CANCELLED, JSVM_ESCAPE_CALLED_TWICE, JSVM_HANDLE_SCOPE_MISMATCH, JSVM_CALLBACK_SCOPE_MISMATCH, JSVM_QUEUE_FULL, JSVM_CLOSING, JSVM_BIGINT_EXPECTED, JSVM_DATE_EXPECTED, JSVM_ARRAYBUFFER_EXPECTED, JSVM_DETACHABLE_ARRAYBUFFER_EXPECTED, JSVM_WOULD_DEADLOCK, JSVM_NO_EXTERNAL_BUFFERS_ALLOWED, JSVM_CANNOT_RUN_JS } |
Complete status code indicating whether the JSVM-API call is successful or fails. |
| JSVM_KeyCollectionMode { JSVM_KEY_INCLUDE_PROTOTYPES, JSVM_KEY_OWN_ONLY } | Limited range of properties to be searched for. |
| JSVM_KeyFilter { JSVM_KEY_ALL_PROPERTIES = 0, JSVM_KEY_WRITABLE = 1, JSVM_KEY_ENUMERABLE = 1 << 1, JSVM_KEY_CONFIGURABLE = 1 << 2, JSVM_KEY_SKIP_STRINGS = 1 << 3, JSVM_KEY_SKIP_SYMBOLS = 1 << 4 } |
Property filter. You can use OR to construct a composite filter. |
| JSVM_KeyConversion { JSVM_KEY_KEEP_NUMBERS, JSVM_KEY_NUMBERS_TO_STRINGS } | Key conversion options. |
| JSVM_MemoryPressureLevel { JSVM_MEMORY_PRESSURE_LEVEL_NONE, JSVM_MEMORY_PRESSURE_LEVEL_MODERATE, JSVM_MEMORY_PRESSURE_LEVEL_CRITICAL } | Memory pressure level. |
| JSVM_RegExpFlags { JSVM_REGEXP_NONE = 0, JSVM_REGEXP_GLOBAL = 1 << 0, JSVM_REGEXP_IGNORE_CASE = 1 << 1, JSVM_REGEXP_MULTILINE = 1 << 2, JSVM_REGEXP_STICKY = 1 << 3, JSVM_REGEXP_UNICODE = 1 << 4, JSVM_REGEXP_DOT_ALL = 1 << 5, JSVM_REGEXP_LINEAR = 1 << 6, JSVM_REGEXP_HAS_INDICES = 1 << 7, JSVM_REGEXP_UNICODE_SETS = 1 << 8 } |
Regular expression flags. They can be used to enable a set of flags. |
| JSVM_InitializedFlag { JSVM_ZERO_INITIALIZED, JSVM_UNINITIALIZED } | Initialization flag. |
| JSVM_WasmOptLevel { JSVM_WASM_OPT_BASELINE = 10, JSVM_WASM_OPT_HIGH = 20 } | WebAssembly function optimization level. |
| JSVM_CacheType { JSVM_CACHE_TYPE_JS, JSVM_CACHE_TYPE_WASM } | Cache type. |
Functions
| Name | Description |
|---|---|
| EXTERN_C_START JSVM_EXTERN JSVM_Status OH_JSVM_Init (const JSVM_InitOptions *options) | Initializes a JavaScript VM. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateVM (const JSVM_CreateVMOptions *options, JSVM_VM *result) | Creates a VM instance. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DestroyVM (JSVM_VM vm) | Destroys a VM instance. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenVMScope (JSVM_VM vm, JSVM_VMScope *result) | Opens a new VM scope for a VM instance. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CloseVMScope (JSVM_VM vm, JSVM_VMScope scope) | Closes the VM scope of a VM instance. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateEnv (JSVM_VM vm, size_t propertyCount, const JSVM_PropertyDescriptor *properties, JSVM_Env *result) | Creates a new environment based on the optional properties of the new context. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateEnvFromSnapshot (JSVM_VM vm, size_t index, JSVM_Env *result) | Creates a new environment based on the startup snapshot of the VM. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DestroyEnv (JSVM_Env env) | Destroys the environment. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenEnvScope (JSVM_Env env, JSVM_EnvScope *result) | Opens a new environment scope. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CloseEnvScope (JSVM_Env env, JSVM_EnvScope scope) | Closes an environment scope. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetVM (JSVM_Env env, JSVM_VM *result) | Gets a VM instance. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CompileScript (JSVM_Env env, JSVM_Value script, const uint8_t *cachedData, size_t cacheDataLength, bool eagerCompile, bool *cacheRejected, JSVM_Script *result) | Compiles a string of JavaScript code and returns the compiled script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CompileScriptWithOrigin (JSVM_Env env, JSVM_Value script, const uint8_t *cachedData, size_t cacheDataLength, bool eagerCompile, bool *cacheRejected, JSVM_ScriptOrigin *origin, JSVM_Script *result) | Compiles a string of JavaScript code that contains source map information and returns the compiled script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CompileScriptWithOptions (JSVM_Env env, JSVM_Value script, size_t optionCount, JSVM_CompileOptions options[], JSVM_Value *result) | Compiles a string of JavaScript code and returns the compiled script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateCodeCache (JSVM_Env env, JSVM_Script script, const uint8_t **data, size_t *length) | Creates a code cache for the compiled script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_RunScript (JSVM_Env env, JSVM_Script script, JSVM_Value *result) | Runs a string of JavaScript code and returns its result, including the following precautions: Unlike eval, this function does not allow the script to access the current lexical scope, and therefore does not allow the script to access the module scope. This means that pseudo-global variables such as require will be unavailable. The script can access the global scope. The functions and variable declarations in the script will be added to the global object. Variable declarations using let and const are globally visible, but are not added to the global object. The value of this is global in the script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_SetInstanceData (JSVM_Env env, void *data, JSVM_Finalize finalizeCb, void *finalizeHint) | Sets instance data so that it is associated with the currently running JSVM environment. You can use OH_JSVM_GetInstanceData() to get data later. Any existing data set by a previous call to OH_JSVM_SetInstanceData() will be overwritten. If finalizeCb was previously provided, it will not be called. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetInstanceData (JSVM_Env env, void **data) | Gets instance data that has been set by OH_JSVM_SetInstanceData(). If no associated data is set, this function is called successfully and data is set to NULL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetLastErrorInfo (JSVM_Env env, const JSVM_ExtendedErrorInfo **result) | Gets the JSVM_ExtendedErrorInfo struct that contains information about the last error that occurred. The content of JSVM_ExtendedErrorInfo returned is valid only before the JSVM-API function is called for the same environment. This includes a call to OH_JSVM_IsExceptionPending, so you may often need to copy information for later use. The pointer returned in error_message points to a statically defined string, so if you copy it from the error_message field (which will be overwritten) before calling another JSVM-API function, you can safely use the pointer. |
| JSVM_EXTERN JSVM_Status OH_JSVM_Throw (JSVM_Env env, JSVM_Value error) | Throws the provided JavaScript value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ThrowError (JSVM_Env env, const char *code, const char *msg) | Throws a JavaScript Error with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ThrowTypeError (JSVM_Env env, const char *code, const char *msg) | Throws a JavaScript TypeError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ThrowRangeError (JSVM_Env env, const char *code, const char *msg) | Throws a JavaScript RangeError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ThrowSyntaxError (JSVM_Env env, const char *code, const char *msg) | Throws a JavaScript SyntaxError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsError (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the given JSVM_Value indicates an error. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value *result) | Creates a JavaScript Error with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateTypeError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value *result) | Creates a JavaScript TypeError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateRangeError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value *result) | Creates a JavaScript RangeError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateSyntaxError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value *result) | Creates a JavaScript SyntaxError with the provided text. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetAndClearLastException (JSVM_Env env, JSVM_Value *result) | Gets and clears the last exception. If pending occurs, a JavaScript exception is returned. Otherwise, NULL is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsExceptionPending (JSVM_Env env, bool *result) | Checks whether the last exception is caused by pending. If yes, true is returned. Otherwise, false is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenHandleScope (JSVM_Env env, JSVM_HandleScope *result) | Opens a new scope. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CloseHandleScope (JSVM_Env env, JSVM_HandleScope scope) | Closes the scope. Scopes must be closed in the reverse order of opening scopes. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenEscapableHandleScope (JSVM_Env env, JSVM_EscapableHandleScope *result) | Opens a new scope from which an object can be escalated to an external scope. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CloseEscapableHandleScope (JSVM_Env env, JSVM_EscapableHandleScope scope) | Closes the scope. Scopes must be closed in the reverse order of opening scopes. This JSVM_API can be called even if there is a suspended JavaScript exception. |
| JSVM_EXTERN JSVM_Status OH_JSVM_EscapeHandle (JSVM_Env env, JSVM_EscapableHandleScope scope, JSVM_Value escapee, JSVM_Value *result) | Escalates the handle to a JavaScript object so that it is valid through the lifecycle of the external scope. Each scope can be called only once. If it is called for multiple times, an error is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateReference (JSVM_Env env, JSVM_Value value, uint32_t initialRefcount, JSVM_Ref *result) | Creates a new reference with the specified reference count for the passed-in value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DeleteReference (JSVM_Env env, JSVM_Ref ref) | Deletes the passed-in reference. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ReferenceRef (JSVM_Env env, JSVM_Ref ref, uint32_t *result) | Increases the reference count and returns the new reference count. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ReferenceUnref (JSVM_Env env, JSVM_Ref ref, uint32_t *result) | Decreases the reference count and returns the new reference count. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetReferenceValue (JSVM_Env env, JSVM_Ref ref, JSVM_Value *result) | Gets the JSVM_Value returned by the JSVM-API , indicating the JavaScript value associated with JSVM_Ref. Otherwise, the result is NULL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateArray (JSVM_Env env, JSVM_Value *result) | Returns the JSVM-API value corresponding to the JavaScript Array type. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateArrayWithLength (JSVM_Env env, size_t length, JSVM_Value *result) | Returns the JSVM-API value corresponding to the JavaScript Array type. The length attribute of the array is set to the passed-in length parameter. However, there is no guarantee that the underlying buffer is pre-allocated by the VM when the array is created. This behavior is left to the underlying VM implementation. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateArraybuffer (JSVM_Env env, size_t byteLength, void **data, JSVM_Value *result) | Returns the JSVM-API value corresponding to the JavaScript ArrayBuffer type. ArrayBuffer is used to represent a fixed-length binary data buffer. It is usually used as the backup buffer of the TypedArray object. The allocated ArrayBuffer has an underlying byte buffer whose size is determined by the length argument. The underlying buffer can be returned to and operated by the caller. This buffer can only be written directly from the native code. To write data from JavaScript to this buffer, you need to create a TypedArray or DataView object. |
| JSVM_Status JSVM_CDECL OH_JSVM_AllocateArrayBufferBackingStoreData (size_t byteLength, JSVM_InitializedFlag initialized, void **data) | Allocates the BackingStore memory for the array buffer. |
| JSVM_Status JSVM_CDECL OH_JSVM_FreeArrayBufferBackingStoreData (void *data) | Frees the BackingStore memory allocated by OH_JSVM_AllocateArrayBufferBackingStoreData. |
| JSVM_Status JSVM_CDECL OH_JSVM_CreateArrayBufferFromBackingStoreData (JSVM_Env env, void *data, size_t backingStoreSize, size_t offset, size_t arrayBufferSize, JSVM_Value *result) | Creates an array buffer on the allocated BackingStore memory. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateDate (JSVM_Env env, double time, JSVM_Value *result) | Allocates a JavaScript Date object. This API does not process leap seconds. This is because ECMAScript complies with the POSIX time specifications and ignores leap seconds. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternal (JSVM_Env env, void *data, JSVM_Finalize finalizeCb, void *finalizeHint, JSVM_Value *result) | Allocates a JavaScript value with external data. This is used to pass external data through JavaScript code. You can use OH_JSVM_GetValueExternal to retrieve the value from the native code. This API adds a JSVM_Finalize callback, which is called when the newly created JavaScript object is garbage collected. The created value is not an object, so it does not support additional attributes. It is considered as a unique value type: Calling OH_JSVM_Typeof() with an external value generates JSVM_EXTERNAL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateObject (JSVM_Env env, JSVM_Value *result) | Allocates a default JavaScript object. This function is equivalent to executing new Object() in JavaScript. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateSymbol (JSVM_Env env, JSVM_Value description, JSVM_Value *result) | Creates a JavaScript symbol value from a UTF8-encoded C string. |
| JSVM_EXTERN JSVM_Status OH_JSVM_SymbolFor (JSVM_Env env, const char *utf8description, size_t length, JSVM_Value *result) | Searches the global registry for an existing symbol with the given description. If the symbol already exists, it is returned. Otherwise, a new symbol is created in the registry. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateTypedarray (JSVM_Env env, JSVM_TypedarrayType type, size_t length, JSVM_Value arraybuffer, size_t byteOffset, JSVM_Value *result) | Creates a JavaScript TypedArray object based on an existing ArrayBuffer object. The TypedArray object provides an array-like view on the underlying data buffer, where each element has the same underlying binary scalar data type. The requirement is as follows: (length* Element size) + byteOffset ≤ Size of the passed-in array (in bytes). Otherwise, a RangeError is thrown. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateDataview (JSVM_Env env, size_t length, JSVM_Value arraybuffer, size_t byteOffset, JSVM_Value *result) | Creates a JavaScript DataView object based on an existing ArrayBuffer object. The DataView object provides an array-like view on the underlying data buffer, where elements can have different sizes and types. The requirement is as follows: length in binary + byteOffset ≤ Size of the passed-in array (in bytes). Otherwise, a RangeError is thrown. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt32 (JSVM_Env env, int32_t value, JSVM_Value *result) | Creates a JavaScript number object from a C int32_t object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateUint32 (JSVM_Env env, uint32_t value, JSVM_Value *result) | Creates a JavaScript number object from a C uint32_t object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt64 (JSVM_Env env, int64_t value, JSVM_Value *result) | Creates a JavaScript number object from a C int64_t object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateDouble (JSVM_Env env, double value, JSVM_Value *result) | Creates a JavaScript number object from a C double object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintInt64 (JSVM_Env env, int64_t value, JSVM_Value *result) | Creates a JavaScript BigInt object from a C int64_t object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintUint64 (JSVM_Env env, uint64_t value, JSVM_Value *result) | Creates a JavaScript BigInt object from a C uint64_t object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintWords (JSVM_Env env, int signBit, size_t wordCount, const uint64_t *words, JSVM_Value *result) | Creates a JavaScript BigInt value from a group of C uint64_t words. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringLatin1 (JSVM_Env env, const char *str, size_t length, JSVM_Value *result) | Creates a JavaScript string from a C string encoded using ISO-8859-1. Copies a native string. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf16 (JSVM_Env env, const char16_t *str, size_t length, JSVM_Value *result) | Creates a JavaScript string from a C string encoded using UTF16-LE. Copies a native string. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf8 (JSVM_Env env, const char *str, size_t length, JSVM_Value *result) | Creates a JavaScript string from a C string encoded using UTF8. Copies a native string. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetArrayLength (JSVM_Env env, JSVM_Value value, uint32_t *result) | Gets the length of an array. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetArraybufferInfo (JSVM_Env env, JSVM_Value arraybuffer, void **data, size_t *byteLength) | Gets the underlying data buffer of the ArrayBuffer and its length. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetPrototype (JSVM_Env env, JSVM_Value object, JSVM_Value *result) | Gets the prototype of an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetTypedarrayInfo (JSVM_Env env, JSVM_Value typedarray, JSVM_TypedarrayType *type, size_t *length, void **data, JSVM_Value *arraybuffer, size_t *byteOffset) | Gets the properties of a typed array. If any property is not required, its output parameter can be NULL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetDataviewInfo (JSVM_Env env, JSVM_Value dataview, size_t *bytelength, void **data, JSVM_Value *arraybuffer, size_t *byteOffset) | Gets the proprieties of a DataView. If any property is not required, its output parameter can be set to NULL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetDateValue (JSVM_Env env, JSVM_Value value, double *result) | Gets the C double-precision primitive equivalent of a given JavaScript date. If this API is successfully called, JSVM_OK is returned. If a JSVM_Value of a non-JavaScript date type is passed in, JSVM_DATA_EXPECTED is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBool (JSVM_Env env, JSVM_Value value, bool *result) | Gets the C Boolean primitive equivalent of a given JavaScript Boolean. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueDouble (JSVM_Env env, JSVM_Value value, double *result) | Gets the C double-precision primitive equivalent of a given JavaScript number. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintInt64 (JSVM_Env env, JSVM_Value value, int64_t *result, bool *lossless) | Gets the C int64_t primitive equivalent of a given JavaScript BigInt. If necessary, it truncates the value and sets lossless to false. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintUint64 (JSVM_Env env, JSVM_Value value, uint64_t *result, bool *lossless) | Gets the C uint64_t primitive equivalent of a given JavaScript BigInt. If necessary, it truncates the value and sets lossless to false. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintWords (JSVM_Env env, JSVM_Value value, int *signBit, size_t *wordCount, uint64_t *words) | Gets the sign bit, 64-bit little-endian array, and number of elements in the array from a BigInt value. Both signBit and words can be set to NULL. In this case, only wordCount is obtained. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueExternal (JSVM_Env env, JSVM_Value value, void **result) | Gets the external data pointer previously passed to OH_JSVM_CreateExternal(). |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueInt32 (JSVM_Env env, JSVM_Value value, int32_t *result) | Gets the C int32 primitive equivalent of a given JavaScript number. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueInt64 (JSVM_Env env, JSVM_Value value, int64_t *result) | Gets the C int64 primitive equivalent of a given JavaScript number. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringLatin1 (JSVM_Env env, JSVM_Value value, char *buf, size_t bufsize, size_t *result) | Gets an ISO-8859-1 encoded string corresponding to the passed-in value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf8 (JSVM_Env env, JSVM_Value value, char *buf, size_t bufsize, size_t *result) | Gets a UTF8-encoded string corresponding to the passed-in value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf16 (JSVM_Env env, JSVM_Value value, char16_t *buf, size_t bufsize, size_t *result) | Gets a UTF16-encoded string based on the passed-in value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetValueUint32 (JSVM_Env env, JSVM_Value value, uint32_t *result) | Gets the C uint_32 primitive equivalent of a given JavaScript number. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetBoolean (JSVM_Env env, bool value, JSVM_Value *result) | Gets a JavaScript singleton object that is used to represent the given Boolean value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetGlobal (JSVM_Env env, JSVM_Value *result) | Gets the global object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetNull (JSVM_Env env, JSVM_Value *result) | Gets the null object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetUndefined (JSVM_Env env, JSVM_Value *result) | Gets the undefined object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToBool (JSVM_Env env, JSVM_Value value, JSVM_Value *result) | Implements the abstract operation ToBoolean(). |
| JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToNumber (JSVM_Env env, JSVM_Value value, JSVM_Value *result) | Implements the abstract operation ToNumber(). If the passed-in value is an object, the function may run JavaScript code. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToObject (JSVM_Env env, JSVM_Value value, JSVM_Value *result) | Implements the abstract operation ToObject(). |
| JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToString (JSVM_Env env, JSVM_Value value, JSVM_Value *result) | Implements the abstract operation ToString(). If the passed-in value is an object, the function may run JavaScript code. |
| JSVM_EXTERN JSVM_Status OH_JSVM_Typeof (JSVM_Env env, JSVM_Value value, JSVM_ValueType *result) | Provides behavior similar to calling the typeof operator on a defined object. The difference is that this function supports the detection of external values; it detects null as a separate type, while ECMAScript typeof is used to detect objects. If the value type is invalid, an error is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_Instanceof (JSVM_Env env, JSVM_Value object, JSVM_Value constructor, bool *result) | Provides behavior similar to calling the instanceof operator on an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsArray (JSVM_Env env, JSVM_Value value, bool *result) | Provides behavior similar to calling IsArray on an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsArraybuffer (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the passed-in object is ArrayBuffer. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsDate (JSVM_Env env, JSVM_Value value, bool *isDate) | Checks whether the passed-in object is a date. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsTypedarray (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the passed-in object is a typed array. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsDataview (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the passed-in object is a DataView. |
| JSVM_EXTERN JSVM_Status OH_JSVM_StrictEquals (JSVM_Env env, JSVM_Value lhs, JSVM_Value rhs, bool *result) | Provides behavior similar to calling the strict equality algorithm. |
| JSVM_EXTERN JSVM_Status OH_JSVM_Equals (JSVM_Env env, JSVM_Value lhs, JSVM_Value rhs, bool *result) | Provides behavior similar to calling the loose equality algorithm. Regardless of the JavaScript value type, true is returned as long as the values are equal. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DetachArraybuffer (JSVM_Env env, JSVM_Value arraybuffer) | Provides behavior similar to calling the ArrayBuffer detach operation. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsDetachedArraybuffer (JSVM_Env env, JSVM_Value value, bool *result) | Provides behavior similar to calling the ArrayBuffer IsDetachedBuffer operation. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetPropertyNames (JSVM_Env env, JSVM_Value object, JSVM_Value *result) | Gets the names of enumerable properties of an object as an array of characters. The properties of the object whose key is a symbol are not included. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetAllPropertyNames (JSVM_Env env, JSVM_Value object, JSVM_KeyCollectionMode keyMode, JSVM_KeyFilter keyFilter, JSVM_KeyConversion keyConversion, JSVM_Value *result) | Gets an array containing the names of the available properties of this object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_SetProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, JSVM_Value value) | Sets a property for the passed-in object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, JSVM_Value *result) | Gets the requested property from the passed-in object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_HasProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool *result) | Checks whether the passed-in object has the property with the specified name. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DeleteProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool *result) | Deletes the property of the key from the object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_HasOwnProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool *result) | Checks whether the passed-in object has its own property. The key must be a string or symbol. Otherwise, an error is thrown. The JSVM-API does not perform any conversion between data types. |
| JSVM_EXTERN JSVM_Status OH_JSVM_SetNamedProperty (JSVM_Env env, JSVM_Value object, const char *utf8name, JSVM_Value value) | This method is equivalent to calling OH_JSVM_SetProperty, where the JSVM_Value is created using the character string passed through utf8Name. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetNamedProperty (JSVM_Env env, JSVM_Value object, const char *utf8name, JSVM_Value *result) | This method is equivalent to calling OH_JSVM_GetProperty, where the JSVM_Value is created using the character string passed through utf8Name. |
| JSVM_EXTERN JSVM_Status OH_JSVM_HasNamedProperty (JSVM_Env env, JSVM_Value object, const char *utf8name, bool *result) | This method is equivalent to calling OH_JSVM_HasProperty, where the JSVM_Value is created using the character string passed through utf8Name. |
| JSVM_EXTERN JSVM_Status OH_JSVM_SetElement (JSVM_Env env, JSVM_Value object, uint32_t index, JSVM_Value value) | Sets an element on the passed-in object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetElement (JSVM_Env env, JSVM_Value object, uint32_t index, JSVM_Value *result) | Gets the element at the requested index. |
| JSVM_EXTERN JSVM_Status OH_JSVM_HasElement (JSVM_Env env, JSVM_Value object, uint32_t index, bool *result) | Checks whether an object has an element at the specified index. If yes, the JSVM-API returns true. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DeleteElement (JSVM_Env env, JSVM_Value object, uint32_t index, bool *result) | Deletes the element at the specified index from an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DefineProperties (JSVM_Env env, JSVM_Value object, size_t propertyCount, const JSVM_PropertyDescriptor *properties) | Defines properties on a given object by using property descriptors. Through an array of property descriptors, this API sets the properties in the array in turn for the object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ObjectFreeze (JSVM_Env env, JSVM_Value object) | Freezes the given object. This prevents additions or deletions of properties, enumerability, configurability, or writeability change of properties, or value change of properties. It also prevents prototype change of an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSeal (JSVM_Env env, JSVM_Value object) | Seals a specified object. This prevents additions of properties and marks existing properties non-configurable. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CallFunction (JSVM_Env env, JSVM_Value recv, JSVM_Value func, size_t argc, const JSVM_Value *argv, JSVM_Value *result) | Supports calling JavaScript function objects from native code, which is the main mechanism for JavaScript to call back from native code. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateFunction (JSVM_Env env, const char *utf8name, size_t length, JSVM_Callback cb, JSVM_Value *result) | Supports creating function objects in native code, which is the main mechanism for JavaScript to call native code. After this call, the newly created function is no longer automatically visible in the script. Instead, the setting property must be displayed on any object visible to JavaScript in order to access the function from the script. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetCbInfo (JSVM_Env env, JSVM_CallbackInfo cbinfo, size_t *argc, JSVM_Value *argv, JSVM_Value *thisArg, void **data) | Gets detailed information about the callback, such as the parameter from the given callback information and the this pointer. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetNewTarget (JSVM_Env env, JSVM_CallbackInfo cbinfo, JSVM_Value *result) | Gets the new target called by the constructor. If the current callback is not a constructor call, the result is NULL. |
| JSVM_EXTERN JSVM_Status OH_JSVM_NewInstance (JSVM_Env env, JSVM_Value constructor, size_t argc, const JSVM_Value *argv, JSVM_Value *result) | Instantiates a new JavaScript value by using the constructor represented by the given JSVM_Value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DefineClass (JSVM_Env env, const char *utf8name, size_t length, JSVM_Callback constructor, size_t propertyCount, const JSVM_PropertyDescriptor *properties, JSVM_Value *result) | Defines a JavaScript class. |
| JSVM_EXTERN JSVM_Status OH_JSVM_Wrap (JSVM_Env env, JSVM_Value jsObject, void *nativeObject, JSVM_Finalize finalizeCb, void *finalizeHint, JSVM_Ref *result) | Wraps a native instance in the JavaScript object. The native instance can be obtained using OH_JSVM_Unwrap(). |
| JSVM_EXTERN JSVM_Status OH_JSVM_Unwrap (JSVM_Env env, JSVM_Value jsObject, void **result) | When the JavaScript code calls a method of a class or property accessor, the corresponding JSVM_Callback is called. If the callback is for an instance method or accessor, the this argument of the callback is the wrapper object. Then you can obtain the C++ instance as the call target by calling OH_JSVM_Unwrap() of the wrapper object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_RemoveWrap (JSVM_Env env, JSVM_Value jsObject, void **result) | Removes the wrap of the native instance, which is previously wrapped in js_object by OH_JSVM_Wrap(). If the finalize callback is associated with wrap, it will not be called when the JavaScript object is garbage collected. |
| JSVM_EXTERN JSVM_Status OH_JSVM_TypeTagObject (JSVM_Env env, JSVM_Value value, const JSVM_TypeTag *typeTag) | Associates the value of the typeTag pointer with a JavaScript object or an external value. You can call OH_JSVM_CheckObjectTypeTag() to check the type of the tag attached to the object, to ensure that the object type is correct. If the object already has an associated type tag, JSVM_INVALID_ARG is returned. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CheckObjectTypeTag (JSVM_Env env, JSVM_Value value, const JSVM_TypeTag *typeTag, bool *result) | Compares the typeTag with the tag on a JavaScript object or external value. If they are the same tag, result is set to true. Otherwise, result is set to false. |
| JSVM_EXTERN JSVM_Status OH_JSVM_AddFinalizer (JSVM_Env env, JSVM_Value jsObject, void *finalizeData, JSVM_Finalize finalizeCb, void *finalizeHint, JSVM_Ref *result) | Adds the JSVM_Finalize callback to a JavaScript object. This callback is called when the JavaScript object is garbage collected. OH_JSVM_AddFinalizer can be called multiple times on a single JavaScript object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetVersion (JSVM_Env env, uint32_t *result) | Gets the latest JSVM-API version supported by the JSVM runtime. New JSVM-API APIs will be added to support more functions. With this API, the new functions of a certain JSVM version can be used, or callbacks are provided. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetVMInfo (JSVM_VMInfo *result) | Gets the VM information. |
| JSVM_EXTERN JSVM_Status OH_JSVM_AdjustExternalMemory (JSVM_Env env, int64_t changeInBytes, int64_t *result) | Notifies the underlying VM of the size of externally allocated memory that remains active due to the JavaScript object. Registering externally allocated memory triggers global garbage collection more frequently than in other ways. |
| JSVM_EXTERN JSVM_Status OH_JSVM_MemoryPressureNotification (JSVM_Env env, JSVM_MemoryPressureLevel level) | Notifies the VM of insufficient system memory and selectively triggers garbage collection. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreatePromise (JSVM_Env env, JSVM_Deferred *deferred, JSVM_Value *promise) | Creates a deferred object and a JavaScript promise. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ResolveDeferred (JSVM_Env env, JSVM_Deferred deferred, JSVM_Value resolution) | Resolves a JavaScript promise by using the associated deferred object. It can only be used to resolve the JavaScript promise of the corresponding available deferred object. This means that promise must be created using OH_JSVM_CreatePromise(), and the object returned from this call must be retained so that it can be passed to this API. |
| JSVM_EXTERN JSVM_Status OH_JSVM_RejectDeferred (JSVM_Env env, JSVM_Deferred deferred, JSVM_Value rejection) | Rejects a JavaScript promise by using the associated deferred object. It can only be used to reject the JavaScript promise of the corresponding available deferred object. This means that promise must be created using OH_JSVM_CreatePromise(), and the object returned from this call must be retained so that it can be passed to this API. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsPromise (JSVM_Env env, JSVM_Value value, bool *isPromise) | Checks whether a promise object is a native promise object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_JsonParse (JSVM_Env env, JSVM_Value jsonString, JSVM_Value *result) | Parses a JSON string and returns the parsed value. |
| JSVM_EXTERN JSVM_Status OH_JSVM_JsonStringify (JSVM_Env env, JSVM_Value jsonObject, JSVM_Value *result) | Converts an object into a JSON string and returns the converted string. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateSnapshot (JSVM_VM vm, size_t contextCount, const JSVM_Env *contexts, const char **blobData, size_t *blobSize) | Creates a VM startup snapshot. |
| JSVM_EXTERN JSVM_Status OH_JSVM_GetHeapStatistics (JSVM_VM vm, JSVM_HeapStatistics *result) | Gets heap statistics of a VM. |
| JSVM_EXTERN JSVM_Status OH_JSVM_StartCpuProfiler (JSVM_VM vm, JSVM_CpuProfiler *result) | Creates and starts a CPU profiler. |
| JSVM_EXTERN JSVM_Status OH_JSVM_StopCpuProfiler (JSVM_VM vm, JSVM_CpuProfiler profiler, JSVM_OutputStream stream, void *streamData) | Stops the CPU profiler and outputs the result to a stream. |
| JSVM_EXTERN JSVM_Status OH_JSVM_TakeHeapSnapshot (JSVM_VM vm, JSVM_OutputStream stream, void *streamData) | Takes a heap snapshot and outputs it to a stream. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspector (JSVM_Env env, const char *host, uint16_t port) | Opens an inspector on the specified host and port for debugging JavaScript code. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CloseInspector (JSVM_Env env) | Closes all remaining inspector connections. |
| JSVM_EXTERN JSVM_Status OH_JSVM_WaitForDebugger (JSVM_Env env, bool breakNextLine) | Waits for the host to set up a socket connection with an inspector. After the connection is set up, the application continues to run. Runtime.runIfWaitingForDebugger is sent. |
| JSVM_EXTERN JSVM_Status OH_JSVM_DefineClassWithPropertyHandler (JSVM_Env env, const char *utf8name, size_t length, JSVM_Callback constructor, size_t propertyCount, const JSVM_PropertyDescriptor *properties, JSVM_PropertyHandlerCfg propertyHandlerCfg, JSVM_Callback callAsFunctionCallback, JSVM_Value *result) | Defines a set of JavaScript class property operations including getter(), setter(), deleter(), and enumerator() with the given class name, constructor, properties, and callback handler, which are called as callbacks. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsUndefined (JSVM_Env env, JSVM_Value value, bool *isUndefined) | Checks whether the value passed in is Undefined. This API is equivalent to executing JavaScript code value === undefined. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsNull (JSVM_Env env, JSVM_Value value, bool *isNull) | Checks whether the value passed in is a Null object. This API is equivalent to executing JavaScript code value === null. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsNullOrUndefined (JSVM_Env env, JSVM_Value value, bool *isNullOrUndefined) | Checks whether the value passed in is Null or Undefined. This API is equivalent to executing JavaScript code value == null. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsBoolean (JSVM_Env env, JSVM_Value value, bool *isBoolean) | Checks whether the value passed in is a Boolean value. This API is equivalent to executing JavaScript code typeof value === 'boolean'. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsNumber (JSVM_Env env, JSVM_Value value, bool *isNumber) | Checks whether the value passed in is a number. This API is equivalent to executing JavaScript code typeof value === 'number'. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsString (JSVM_Env env, JSVM_Value value, bool *isString) | Checks whether the value passed in is a string. This API is equivalent to executing JavaScript code typeof value === 'string'. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbol (JSVM_Env env, JSVM_Value value, bool *isSymbol) | Checks whether the value passed in is a symbol. This API is equivalent to executing JavaScript code typeof value === 'symbol'. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsFunction (JSVM_Env env, JSVM_Value value, bool *isFunction) | Checks whether the value passed in is a function. This API is equivalent to executing JavaScript code typeof value === 'function'. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsObject (JSVM_Env env, JSVM_Value value, bool *isObject) | Checks whether the value passed in is an object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsBigInt (JSVM_Env env, JSVM_Value value, bool *isBigInt) | Checks whether the value passed in is a BigInt. This API is equivalent to executing JS code typeof value === 'bigint'. |
| JSVM_Status JSVM_CDECL OH_JSVM_CreateMap (JSVM_Env env, JSVM_Value *result) | Returns the JavaScript value corresponding to the JavaScript Map type. |
| JSVM_Status JSVM_CDECL OH_JSVM_IsMap (JSVM_Env env, JSVM_Value value, bool *isMap) | Checks whether the value passed in is a map. |
| JSVM_Status JSVM_CDECL OH_JSVM_IsConstructor (JSVM_Env env, JSVM_Value value, bool *isConstructor) | Checks whether the value passed in is a constructor. |
| JSVM_Status JSVM_CDECL OH_JSVM_CreateRegExp (JSVM_Env env, JSVM_Value value, JSVM_RegExpFlags flags, JSVM_Value *result) | Returns the JavaScript value of the regular expression corresponding to the input. An exception may be thrown. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ObjectGetPrototypeOf (JSVM_Env env, JSVM_Value object, JSVM_Value *result) | Gets the prototype of a JavaScript object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSetPrototypeOf (JSVM_Env env, JSVM_Value object, JSVM_Value prototype) | Sets the prototype of a JavaScript object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateSet (JSVM_Env env, JSVM_Value *result) | Creates a JavaScript Set object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsSet (JSVM_Env env, JSVM_Value value, bool *isSet) | Checks whether the specified object is of the Set type. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToBigInt (JSVM_Env env, JSVM_Value value, JSVM_Value *result) | Implements the abstract operation ToBigInt(). |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsRegExp (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the value passed in is a JavaScript RegExp object. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateFunctionWithScript (JSVM_Env env, const char *funcName, size_t length, size_t argc, const JSVM_Value *argv, JSVM_Value script, JSVM_Value *result) | Creates a function with the given JavaScript as the function body. |
| JSVM_EXTERN JSVM_Status OH_JSVM_PumpMessageLoop (JSVM_VM vm, bool *result) | Starts the running of the task queue in the VM. The task queue can be executed through an external event loop. |
| JSVM_EXTERN JSVM_Status OH_JSVM_PerformMicrotaskCheckpoint (JSVM_VM vm) | Checks whether there are micro tasks waiting in the queue. If yes, execute them. |
| JSVM_EXTERN JSVM_Status OH_JSVM_RetainScript (JSVM_Env env, JSVM_Script script) | Retains a JSVM_Script and extends its lifecycle beyond the current scope. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseScript (JSVM_Env env, JSVM_Script script) | Releases the script retained by OH_JSVM_RetainScript. The released script cannot be used again. |
| JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspectorWithName (JSVM_Env env, int pid, const char *name) | Opens an inspector with the specified name, in order to open the UNIX domain port corresponding to the PID. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmModule (JSVM_Env env, const uint8_t *wasmBytecode, size_t wasmBytecodeLength, const uint8_t *cacheData, size_t cacheDataLength, bool *cacheRejected, JSVM_Value *wasmModule) | Compiles WebAssembly bytecode to get a WebAssembly module. If the WebAssembly cache is provided, it will be deserialized first. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmFunction (JSVM_Env env, JSVM_Value wasmModule, uint32_t functionIndex, JSVM_WasmOptLevel optLevel) | Compiles the function with the specified index in the WebAssembly module at a specified optimization level. |
| JSVM_EXTERN JSVM_Status OH_JSVM_IsWasmModuleObject (JSVM_Env env, JSVM_Value value, bool *result) | Checks whether the given JSVM_Value is a WebAssembly module. |
| JSVM_EXTERN JSVM_Status OH_JSVM_CreateWasmCache (JSVM_Env env, JSVM_Value wasmModule, const uint8_t **data, size_t *length) | Creates a WebAssembly cache. |
| JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseCache (JSVM_Env env, const uint8_t *cacheData, JSVM_CacheType cacheType) | Releases the cache of a specified type. |
Macro Description
JSVM_AUTO_LENGTH
#define JSVM_AUTO_LENGTH SIZE_MAX
Description
Automatic length.
Since: 11
Type Description
JSVM_Callback
typedef JSVM_CallbackStruct* JSVM_Callback
Description
Pointer types of the native functions provided by user. These functions are exposed to JavaScript via JSVM-API.
Since: 11
JSVM_CallbackInfo
typedef struct JSVM_CallbackInfo__* JSVM_CallbackInfo
Description
An opaque data type passed to the callback. It can be used to obtain additional information about the context in which the function is called.
Since: 11
JSVM_CpuProfiler
typedef struct JSVM_CpuProfiler__* JSVM_CpuProfiler
Description
JavaScript CPU profiler.
Since: 12
JSVM_Deferred
typedef struct JSVM_Deferred__* JSVM_Deferred
Description
Promise deferred object.
Since: 11
JSVM_Env
typedef struct JSVM_Env__* JSVM_Env
Description
Context of a specific VM state. It needs to be passed as a parameter when the native function is called and passed to any subsequent JSVM-API nested invoking.
Since: 11
JSVM_EnvScope
typedef struct JSVM_EnvScope__* JSVM_EnvScope
Description
Environment scope of the current VM instance. The environment is available to the VM instance of the thread only after the thread enters JSVM_EnvScope of the environment through OH_JSVM_OpenEnvScope.
Since: 11
JSVM_EscapableHandleScope
typedef struct JSVM_EscapableHandleScope__* JSVM_EscapableHandleScope
Description
A special type of handle scope, which is used to return the value created in a specific handle scope to the parent scope.
Since: 11
JSVM_Finalize
typedef void(JSVM_CDECL* JSVM_Finalize) (JSVM_Env env, void *finalizeData, void *finalizeHint)
Description
Function pointer type. It is passed in when a native object or data is associated with a JavaScript object. This function is called when the associated JavaScript object is reclaimed by the GC to execute the native cleanup action.
Since: 11
JSVM_HandleScope
typedef struct JSVM_HandleScope__* JSVM_HandleScope
Description
Scope of the JavaScript value. It is used to control and modify the lifecycle of an object created in a specific scope. Typically, the JSVM-API value is created in the context of JSVM_HandleScope. When the native method is called from JavaScript, the default JSVM_HandleScope exists. If the user does not explicitly create a new JSVM_HandleScope, the JSVM-API value is created in the default JSVM_HandleScope. For any code call other than native method execution (for example, libuv callback), the module needs to create a scope before calling any function that may cause JavaScript value creation. JSVM_HandleScope is created using OH_JSVM_OpenHandleScope and destroyed using OH_JSVM_CloseHandleScope. Closing the scope represents indicating to the GC that all JSVM_Values created during the lifecycle of JSVM_HandleScope will no longer be referenced from the stack frame of the current heap.
Since: 11
JSVM_OutputStream
typedef bool(JSVM_CDECL* JSVM_OutputStream) (const char *data, int size, void *streamData)
Description
Pointer to the callback of the ASCII output stream. data indicates the pointer to the output data. size indicates the size of the output data. void points to the end of the stream. streamData indicates the pointer passed to the API function together with the callback. The API function generates data to the output stream. If true is returned, the stream can continue to receive data. Otherwise, it aborts the stream.
Since: 12
JSVM_PropertyHandlerCfg
typedef JSVM_PropertyHandlerConfigurationStruct* JSVM_PropertyHandlerCfg
Description
Pointer type of the struct that contains the property listening callback.
Since: 12
JSVM_Ref
typedef struct JSVM_Ref__* JSVM_Ref
Description
Reference to the JavaScript value.
Since: 11
JSVM_Script
typedef struct JSVM_Script__* JSVM_Script
Description
JavaScript code.
Since: 11
JSVM_Value
typedef struct JSVM_Value__* JSVM_Value
Description
JavaScript value.
Since: 11
JSVM_VM
typedef struct JSVM_VM__* JSVM_VM
Description
JavaScript VM instance.
Since: 11
JSVM_VMScope
typedef struct JSVM_VMScope__* JSVM_VMScope
Description
JavaScript VM scope.
Since: 11
Enum Description
JSVM_CacheType
enum JSVM_CacheType
Description
Cache type.
Since: 12
| Value | Description |
|---|---|
| JSVM_CACHE_TYPE_JS | JavaScript cache, which is generated by OH_JSVM_CreateCodeCache. |
| JSVM_CACHE_TYPE_WASM | WebAssembly cache, which is generated by OH_JSVM_CreateWasmCache. |
JSVM_InitializedFlag
enum JSVM_InitializedFlag
Description
Initialization flag.
Since: 12
| Value | Description |
|---|---|
| JSVM_ZERO_INITIALIZED | Initialized to 0. |
| JSVM_UNINITIALIZED | No initialization. |
JSVM_KeyCollectionMode
enum JSVM_KeyCollectionMode
Description
Limited range of properties to be searched for.
Since: 11
| Value | Description |
|---|---|
| JSVM_KEY_INCLUDE_PROTOTYPES | Includes properties on the prototype chain of the object. |
| JSVM_KEY_OWN_ONLY | Includes only the object's own properties. |
JSVM_KeyConversion
enum JSVM_KeyConversion
Description
Key conversion options.
Since: 11
| Value | Description |
|---|---|
| JSVM_KEY_KEEP_NUMBERS | Gets the numbers of integer indexes. |
| JSVM_KEY_NUMBERS_TO_STRINGS | Converts integer indexes to strings. |
JSVM_KeyFilter
enum JSVM_KeyFilter
Description
Property filter. You can use OR to construct a composite filter.
Since: 11
| Value | Description |
|---|---|
| JSVM_KEY_ALL_PROPERTIES | Key of all properties. |
| JSVM_KEY_WRITABLE | Writable key. |
| JSVM_KEY_ENUMERABLE | Enumerable key. |
| JSVM_KEY_CONFIGURABLE | Configurable key. |
| JSVM_KEY_SKIP_STRINGS | Key that skips strings. |
| JSVM_KEY_SKIP_SYMBOLS | Key that skips symbols. |
JSVM_MemoryPressureLevel
enum JSVM_MemoryPressureLevel
Description
Memory pressure level.
Since: 11
| Value | Description |
|---|---|
| JSVM_MEMORY_PRESSURE_LEVEL_NONE | No pressure. |
| JSVM_MEMORY_PRESSURE_LEVEL_MODERATE | Moderate pressure. |
| JSVM_MEMORY_PRESSURE_LEVEL_CRITICAL | Critical pressure. |
JSVM_PropertyAttributes
enum JSVM_PropertyAttributes
Description
Control over the behavior of JavaScript object properties.
Since: 11
| Value | Description |
|---|---|
| JSVM_DEFAULT | No explicit attribute set on the property. |
| JSVM_WRITABLE | Writable property. |
| JSVM_ENUMERABLE | Enumerable property. |
| JSVM_CONFIGURABLE | Configurable property. |
| JSVM_STATIC | Static property of the class, instead of the default instance property. Used only by OH_JSVM_DefineClass. |
| JSVM_DEFAULT_METHOD | Configurable, writable, but not enumerable property, like a method in a JavaScript class. |
| JSVM_DEFAULT_JSPROPERTY | Writable, enumerable, and configurable property, like a property set by value assignment in JavaScript. |
JSVM_RegExpFlags
enum JSVM_RegExpFlags
Description
Regular expression flags. They can be used to enable a set of flags.
Since: 12
| Value | Description |
|---|---|
| JSVM_REGEXP_NONE | None mode. |
| JSVM_REGEXP_GLOBAL | Global mode. |
| JSVM_REGEXP_IGNORE_CASE | Ignore Case mode. |
| JSVM_REGEXP_MULTILINE | Multiline mode. |
| JSVM_REGEXP_STICKY | Sticky mode. |
| JSVM_REGEXP_UNICODE | Unicode mode. |
| JSVM_REGEXP_DOT_ALL | dotAll mode. |
| JSVM_REGEXP_LINEAR | Linear mode. |
| JSVM_REGEXP_HAS_INDICES | Has Indices mode. |
| JSVM_REGEXP_UNICODE_SETS | Unicode Sets mode. |
JSVM_Status
enum JSVM_Status
Description
Complete status code indicating whether the JSVM-API call is successful or fails.
Since: 11
| Value | Description |
|---|---|
| JSVM_OK | Successful. |
| JSVM_INVALID_ARG | Invalid. |
| JSVM_OBJECT_EXPECTED | Object expected. |
| JSVM_STRING_EXPECTED | String expected. |
| JSVM_NAME_EXPECTED | Name expected. |
| JSVM_FUNCTION_EXPECTED | Function expected. |
| JSVM_NUMBER_EXPECTED | Number expected. |
| JSVM_BOOLEAN_EXPECTED | Boolean expected. |
| JSVM_ARRAY_EXPECTED | Array expected. |
| JSVM_GENERIC_FAILURE | Generic failure. |
| JSVM_PENDING_EXCEPTION | Pending exception. |
| JSVM_CANCELLED | Canceled. |
| JSVM_ESCAPE_CALLED_TWICE | Escape called twice. |
| JSVM_HANDLE_SCOPE_MISMATCH | Handle scope mismatch. |
| JSVM_CALLBACK_SCOPE_MISMATCH | Callback scope mismatch. |
| JSVM_QUEUE_FULL | Full queue. |
| JSVM_CLOSING | Closing. |
| JSVM_BIGINT_EXPECTED | Bigint expected. |
| JSVM_DATE_EXPECTED | Date expected. |
| JSVM_ARRAYBUFFER_EXPECTED | ArrayBuffer expected. |
| JSVM_DETACHABLE_ARRAYBUFFER_EXPECTED | Detachable array buffer expected. |
| JSVM_WOULD_DEADLOCK | Would be in deadlock. |
| JSVM_NO_EXTERNAL_BUFFERS_ALLOWED | No external buffers allowed. |
| JSVM_CANNOT_RUN_JS | Cannot run JavaSript. |
JSVM_TypedarrayType
enum JSVM_TypedarrayType
Description
TypedArray type.
Since: 11
| Value | Description |
|---|---|
| JSVM_INT8_ARRAY | int8 type. |
| JSVM_UINT8_ARRAY | uint8 type. |
| JSVM_UINT8_CLAMPED_ARRAY | Fixed uint8 type. |
| JSVM_INT16_ARRAY | int16 type. |
| JSVM_UINT16_ARRAY | uint16 type. |
| JSVM_INT32_ARRAY | int32 type. |
| JSVM_UINT32_ARRAY | uint32 type. |
| JSVM_FLOAT32_ARRAY | Float32 type. |
| JSVM_FLOAT64_ARRAY | float64 type. |
| JSVM_BIGINT64_ARRAY | bigint64 type. |
| JSVM_BIGUINT64_ARRAY | biguint64 type. |
JSVM_ValueType
enum JSVM_ValueType
Description
JSVM_Value type.
Since: 11
| Value | Description |
|---|---|
| JSVM_UNDEFINED | Unknown. |
| JSVM_NULL | Null. |
| JSVM_BOOLEAN | Boolean. |
| JSVM_NUMBER | Number. |
| JSVM_STRING | String. |
| JSVM_SYMBOL | Symbol. |
| JSVM_OBJECT | Object. |
| JSVM_FUNCTION | Function. |
| JSVM_EXTERNAL | External. |
| JSVM_BIGINT | BigInt. |
JSVM_WasmOptLevel
enum JSVM_WasmOptLevel
Description
WebAssembly function optimization level.
Since: 12
| Value | Description |
|---|---|
| JSVM_WASM_OPT_BASELINE | Baseline optimization level. |
| JSVM_WASM_OPT_HIGH | High optimization level. |
Function Description
OH_JSVM_AddFinalizer()
JSVM_EXTERN JSVM_Status OH_JSVM_AddFinalizer (JSVM_Env env, JSVM_Value jsObject, void * finalizeData, JSVM_Finalize finalizeCb, void * finalizeHint, JSVM_Ref * result )
Description
Adds the JSVM_Finalize callback to a JavaScript object. This callback is called when the JavaScript object is garbage collected. OH_JSVM_AddFinalizer can be called multiple times on a single JavaScript object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsObject | JavaScript object associated with native data. |
| finalizeData | Optional data to be passed to finalizeCb. |
| finalizeCb | Native callback used to release native data when a JavaScript object is garbage collected. JSVM_Finalize provides more details. |
| finalizeHint | Optional context hint passed to the finalize callback. |
| result | Optional reference to a JavaScript object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_AdjustExternalMemory()
JSVM_EXTERN JSVM_Status OH_JSVM_AdjustExternalMemory (JSVM_Env env, int64_t changeInBytes, int64_t * result )
Description
Notifies the underlying VM of the size of externally allocated memory that remains active due to the JavaScript object. Registering externally allocated memory triggers global garbage collection more frequently than in other ways.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| changeInBytes | Change in the size of externally allocated memory that remains active due to the JavaScript object. |
| result | Adjustment value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_AllocateArrayBufferBackingStoreData()
JSVM_Status JSVM_CDECL OH_JSVM_AllocateArrayBufferBackingStoreData (size_t byteLength, JSVM_InitializedFlag initialized, void ** data )
Description
Allocates the BackingStore memory for the array buffer.
Since: 12
Parameters
| Name | Description |
|---|---|
| byteLength | Size of the BackingStore memory. |
| initialized | Mode of initializing the BackingStore memory. |
| data | Pointer to the address of allocated BackingStore memory. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that data is a null pointer.
JSVM_GENERIC_FAILURE indicates memory allocation failure.
OH_JSVM_CallFunction()
JSVM_EXTERN JSVM_Status OH_JSVM_CallFunction (JSVM_Env env, JSVM_Value recv, JSVM_Value func, size_t argc, const JSVM_Value * argv, JSVM_Value * result )
Description
Supports calling JavaScript function objects from native code, which is the main mechanism for JavaScript to call back from native code.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| recv | Value of this passed to the callee. |
| func | JavaScript function to be called. |
| argc | Number of elements in the argv array. |
| argv | JSVM_values array, representing the JavaScript values to be passed to the function as arguments. |
| result | Returned JavaScript object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_PENDING_EXCEPTION indicates that a JavaScript exception occurs during the execution.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CheckObjectTypeTag()
JSVM_EXTERN JSVM_Status OH_JSVM_CheckObjectTypeTag (JSVM_Env env, JSVM_Value value, const JSVM_TypeTag * typeTag, bool * result )
Description
Compares the typeTag with the tag on a JavaScript object or external value. If they are the same tag, result is set to true. Otherwise, result is set to false.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript object or external value of the type tag to be checked. |
| typeTag | Tag used to compare any tags found on an object. |
| result | Indicating whether the specified type tag matches the type tag on the object. If the same type tag cannot be found on the object, false is returned. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CloseEnvScope()
JSVM_EXTERN JSVM_Status OH_JSVM_CloseEnvScope (JSVM_Env env, JSVM_EnvScope scope )
Description
Closes an environment scope.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| scope | Environment scope to be closed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CloseEscapableHandleScope()
JSVM_EXTERN JSVM_Status OH_JSVM_CloseEscapableHandleScope (JSVM_Env env, JSVM_EscapableHandleScope scope )
Description
Closes the scope. Scopes must be closed in the reverse order of opening scopes. This JSVM_API can be called even if there is a suspended JavaScript exception.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| scope | Scope to be closed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_HANDLE_SCOPE_MISMATCH indicates execution failure.
OH_JSVM_CloseHandleScope()
JSVM_EXTERN JSVM_Status OH_JSVM_CloseHandleScope (JSVM_Env env, JSVM_HandleScope scope )
Description
Closes the scope. Scopes must be closed in the reverse order of opening scopes.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| scope | Scope to be closed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CloseInspector()
JSVM_EXTERN JSVM_Status OH_JSVM_CloseInspector (JSVM_Env env)
Description
Closes all remaining inspector connections.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CloseVMScope()
JSVM_EXTERN JSVM_Status OH_JSVM_CloseVMScope (JSVM_VM vm, JSVM_VMScope scope )
Description
Closes the VM scope of a VM instance.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | Target VM instance. |
| scope | VM scope to be stopped. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CoerceToBigInt()
JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToBigInt (JSVM_Env env, JSVM_Value value, JSVM_Value * result )
Description
Implements the abstract operation ToBigInt().
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be forcibly converted. |
| result | JavaScript value that is successfully converted to a BigInt type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_BIGINT_EXPECTED indicates that the passed-in JavaScript value is now not of the BitInt type.
OH_JSVM_CoerceToBool()
JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToBool (JSVM_Env env, JSVM_Value value, JSVM_Value * result )
Description
Implements the abstract operation ToBoolean().
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be forcibly converted. |
| result | Forced JavaScript Boolean. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CoerceToNumber()
JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToNumber (JSVM_Env env, JSVM_Value value, JSVM_Value * result )
Description
Implements the abstract operation ToNumber(). If the passed-in value is an object, the function may run JavaScript code.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be forcibly converted. |
| result | Forced JavaScript number. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CoerceToObject()
JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToObject (JSVM_Env env, JSVM_Value value, JSVM_Value * result )
Description
Implements the abstract operation ToObject().
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be forcibly converted. |
| result | Forced JavaScript object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CoerceToString()
JSVM_EXTERN JSVM_Status OH_JSVM_CoerceToString (JSVM_Env env, JSVM_Value value, JSVM_Value * result )
Description
Implements the abstract operation ToString(). If the passed-in value is an object, the function may run JavaScript code.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be forcibly converted. |
| result | Forced JavaScript string. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CompileScript()
JSVM_EXTERN JSVM_Status OH_JSVM_CompileScript (JSVM_Env env, JSVM_Value script, const uint8_t * cachedData, size_t cacheDataLength, bool eagerCompile, bool * cacheRejected, JSVM_Script * result )
Description
Compiles a string of JavaScript code and returns the compiled script.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| script | JavaScript code that includes the script to be compiled. |
| cachedData | Optional. Code cache data of the script. |
| cacheDataLength | Length of the cachedData array. |
| eagerCompile | Whether to compile the script immediately. |
| cacheRejected | Whether the code cache is rejected by compilation. |
| result | Compiled script. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CompileScriptWithOptions()
JSVM_EXTERN JSVM_Status OH_JSVM_CompileScriptWithOptions (JSVM_Env env, JSVM_Value script, size_t optionCount, JSVM_CompileOptions options[], JSVM_Value * result )
Description
Compiles a string of JavaScript code and returns the compiled script.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| script | JavaScript code that includes the script to be compiled. |
| optionCount | Length of the passed-in option array. |
| options | Option array, which stores all compilation options. |
| result | Compiled script. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CompileScriptWithOrigin()
JSVM_EXTERN JSVM_Status OH_JSVM_CompileScriptWithOrigin (JSVM_Env env, JSVM_Value script, const uint8_t * cachedData, size_t cacheDataLength, bool eagerCompile, bool * cacheRejected, JSVM_ScriptOrigin * origin, JSVM_Script * result )
Description
Compiles a string of JavaScript code that contains source map information and returns the compiled script.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| script | JavaScript code that includes the script to be compiled. |
| cachedData | Optional. Code cache data of the script. |
| cacheDataLength | Length of the cachedData array. |
| eagerCompile | Whether to compile the script immediately. |
| cacheRejected | Whether the code cache is rejected by compilation. |
| origin | Source code information, including the source map location and source code file name. |
| result | Compiled script. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
JSVM_GENERIC_FAILURE indicates execution failure.
OH_JSVM_CompileWasmFunction()
JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmFunction (JSVM_Env env, JSVM_Value wasmModule, uint32_t functionIndex, JSVM_WasmOptLevel optLevel )
Description
Compiles the function with the specified index in the WebAssembly module at a specified optimization level.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| wasmModule | WebAssembly module where the function to be compiled is located. |
| functionIndex | Index of the function to be compiled. The index must be within the valid range. |
| optLevel | Optimization level. Currently, only the high optimization level is supported. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that the env or wasmModule argument is null, or wasmModule is not a real WebAssembly module.
JSVM_GENERIC_FAILURE indicates that the function index is out of range or the compilation fails.
JSVM_PENDING_EXCEPTION indicates that an exception occurs.
OH_JSVM_CompileWasmModule()
JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmModule (JSVM_Env env, const uint8_t * wasmBytecode, size_t wasmBytecodeLength, const uint8_t * cacheData, size_t cacheDataLength, bool * cacheRejected, JSVM_Value * wasmModule )
Description
Compiles WebAssembly bytecode to get a WebAssembly module. If the WebAssembly cache is provided, it will be deserialized first.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| wasmBytecode | WebAssembly bytecode. |
| wasmBytecodeLength | Length of the WebAssembly bytecode, in bytes. |
| cacheData | Optional WebAssembly cache. |
| cacheDataLength | Optional WebAssembly cache length, in bytes. |
| cacheRejected | Output parameter, indicating whether the provided WebAssembly cache is rejected by the engine. |
| wasmModule | Output parameter, which indicates the generated WebAssembly module. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that the env or wasmBytecode argument is null, or the data length argument passed in is invalid.
JSVM_GENERIC_FAILURE indicates that the compilation fails.
JSVM_PENDING_EXCEPTION indicates that an exception occurs.
OH_JSVM_CreateArray()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArray (JSVM_Env env, JSVM_Value * result )
Description
Returns the JSVM-API value corresponding to the JavaScript Array type.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JSVM_Value of the JavaScript array. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateArraybuffer()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArraybuffer (JSVM_Env env, size_t byteLength, void ** data, JSVM_Value * result )
Description
Returns the JSVM-API value corresponding to the JavaScript ArrayBuffer type. ArrayBuffer is used to represent a fixed-length binary data buffer. It is usually used as the backup buffer of the TypedArray object. The allocated ArrayBuffer has an underlying byte buffer whose size is determined by the length argument. The underlying buffer can be returned to and operated by the caller. This buffer can only be written directly from the native code. To write data from JavaScript to this buffer, you need to create a TypedArray or DataView object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| byteLength | Length of the array buffer to be created, in bytes. |
| data | Pointer to the underlying byte buffer of the ArrayBuffer. data can be ignored by passing NULL to it. |
| result | JSVM_Value of the JavaScript ArrayBuffer. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateArrayBufferFromBackingStoreData()
JSVM_Status JSVM_CDECL OH_JSVM_CreateArrayBufferFromBackingStoreData (JSVM_Env env, void * data, size_t backingStoreSize, size_t offset, size_t arrayBufferSize, JSVM_Value * result )
Description
Creates an array buffer on the allocated BackingStore memory.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| data | Allocated BackingStore memory. |
| backingStoreSize | Size of the BackingStore memory. |
| offset | Relative offset between the start position of the array buffer in the memory and the memory header, in bytes. |
| arrayBufferSize | Size of the array buffer, in bytes. |
| result | Pointer to the array buffer address |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that one of the following exceptions is triggered:
-
offset + arrayBufferSize > backingStoreSize
-
backingStoreSize or arrayBufferSize = 0
-
data or result is null.
OH_JSVM_CreateArrayWithLength()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArrayWithLength (JSVM_Env env, size_t length, JSVM_Value * result )
Description
Returns the JSVM-API value corresponding to the JavaScript Array type. The length attribute of the array is set to the passed-in length parameter. However, there is no guarantee that the underlying buffer is pre-allocated by the VM when the array is created. This behavior is left to the underlying VM implementation.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| length | Initial length of the array. |
| result | JSVM_Value of the JavaScript array. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateBigintInt64()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintInt64 (JSVM_Env env, int64_t value, JSVM_Value * result )
Description
Creates a JavaScript BigInt object from a C int64_t object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Integer value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript BigInt type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateBigintUint64()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintUint64 (JSVM_Env env, uint64_t value, JSVM_Value * result )
Description
Creates a JavaScript BigInt object from a C uint64_t object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Unsigned integer value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript BigInt type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateBigintWords()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintWords (JSVM_Env env, int signBit, size_t wordCount, const uint64_t * words, JSVM_Value * result )
Description
Creates a JavaScript BigInt value from a group of C uint64_t words.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| signBit | Whether the generated BigInt is positive or negative. |
| wordCount | Length of the words array. |
| words | uint64_t little-endian words array. |
| result | JSVM_Value of the JavaScript BigInt type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CreateCodeCache()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateCodeCache (JSVM_Env env, JSVM_Script script, const uint8_t ** data, size_t * length )
Description
Creates a code cache for the compiled script.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| script | Target compilation script. |
| data | Code cache data |
| length | Length of the code cache data. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure.
OH_JSVM_CreateDataview()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDataview (JSVM_Env env, size_t length, JSVM_Value arraybuffer, size_t byteOffset, JSVM_Value * result )
Description
Creates a JavaScript DataView object based on an existing ArrayBuffer object. The DataView object provides an array-like view on the underlying data buffer, where elements can have different sizes and types. The requirement is as follows: length in binary + byteOffset ≤ Size of the passed-in array (in bytes). Otherwise, a RangeError is thrown.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| length | Number of elements in a DataView. |
| arraybuffer | ArrayBuffer at the bottom layer of the DataView. |
| byteOffset | Byte offset in the ArrayBuffer, indicating the start position of mapping a DataView. |
| result | JSVM_Value of the JavaScript DataView object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateDate()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDate (JSVM_Env env, double time, JSVM_Value * result )
Description
Allocates a JavaScript Date object. This API does not process leap seconds. This is because ECMAScript complies with the POSIX time specifications and ignores leap seconds.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| time | ECMAScript time since 00:00:00 UTC on January 1, 1970, in milliseconds. |
| result | JSVM_Value of the JavaScript Date object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure.
OH_JSVM_CreateDouble()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDouble (JSVM_Env env, double value, JSVM_Value * result )
Description
Creates a JavaScript number object from a C double object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Double-precision value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript number type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateEnv()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateEnv (JSVM_VM vm, size_t propertyCount, const JSVM_PropertyDescriptor * properties, JSVM_Env * result )
Description
Creates a new environment based on the optional properties of the new context.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | VM instance, in which the new environment will be created. |
| propertyCount | Number of elements in the property array. |
| properties | Array of property descriptors. |
| result | New environment. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateEnvFromSnapshot()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateEnvFromSnapshot (JSVM_VM vm, size_t index, JSVM_Env * result )
Description
Creates a new environment based on the startup snapshot of the VM.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | VM instance, in which the new environment will be created. |
| index | Index of the environment in the snapshot. |
| result | New environment. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CreateError()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value * result )
Description
Creates a JavaScript Error with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | (Optional) JSVM_Value, which is a string with the associated error code. |
| msg | Message that references the JavaScript string as an error. |
| result | Created error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_CreateExternal()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternal (JSVM_Env env, void * data, JSVM_Finalize finalizeCb, void * finalizeHint, JSVM_Value * result )
Description
Allocates a JavaScript value with external data. This is used to pass external data through JavaScript code. You can use OH_JSVM_GetValueExternal to retrieve the value from the native code. This API adds a JSVM_Finalize callback, which is called when the newly created JavaScript object is garbage collected. The created value is not an object, so it does not support additional attributes. It is considered as a unique value type: Calling OH_JSVM_Typeof() with an external value generates JSVM_EXTERNAL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| data | Raw pointer to external data. |
| finalizeCb | Optional callback called to collect external values. JSVM_Finalize provides more details. |
| finalizeHint | Optional hint passed to the finalize callback during collection. |
| result | JSVM_Value of an external value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateFunction()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateFunction (JSVM_Env env, const char * utf8name, size_t length, JSVM_Callback cb, JSVM_Value * result )
Description
Supports creating function objects in native code, which is the main mechanism for JavaScript to call native code. After this call, the newly created function is no longer automatically visible in the script. Instead, the setting property must be displayed on any object visible to JavaScript in order to access the function from the script.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| utf8Name | Optional name of the function encoded as UTF8. This is visible in JavaScript as the name property of the new function object. |
| length | Length of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated). |
| cb | Native function that needs to be called when the function object is called. For details, see JSVM_Callback. |
| result | JavaScript function object of the new function. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateFunctionWithScript()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateFunctionWithScript (JSVM_Env env, const char * funcName, size_t length, size_t argc, const JSVM_Value * argv, JSVM_Value script, JSVM_Value * result )
Description
Creates a function with the given JavaScript as the function body.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| funcName | A string containing the function name. If NULL is passed to it, an anonymous function is created. |
| length | Length of funcName (in bytes) or JSVM_AUTO_LENGTH (if null-terminated). |
| argc | Number of elements in the argv array. |
| argv | JSVM_values array, representing the JavaScript values to be passed to the function as arguments. |
| script | JavaScript string that is used as the function body. |
| result | JSVM_Value of the JavaScript function object of the newly created function. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates that the passed-in JavaScript fails to be compiled.
OH_JSVM_CreateInt32()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt32 (JSVM_Env env, int32_t value, JSVM_Value * result )
Description
Creates a JavaScript number object from a C int32_t object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Integer value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript number type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateInt64()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt64 (JSVM_Env env, int64_t value, JSVM_Value * result )
Description
Creates a JavaScript number object from a C int64_t object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Integer value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript number type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateMap()
JSVM_Status JSVM_CDECL OH_JSVM_CreateMap (JSVM_Env env, JSVM_Value * result )
Description
Returns the JavaScript value corresponding to the JavaScript Map type.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JSVM_Value of the JavaScript map. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_CreateObject()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateObject (JSVM_Env env, JSVM_Value * result )
Description
Allocates a default JavaScript object. This function is equivalent to executing new Object() in JavaScript.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JSVM_Value of the JavaScript object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreatePromise()
JSVM_EXTERN JSVM_Status OH_JSVM_CreatePromise (JSVM_Env env, JSVM_Deferred * deferred, JSVM_Value * promise )
Description
Creates a deferred object and a JavaScript promise.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| deferred | New deferred object, which can be passed to OH_JSVM_ResolveDeferred() or OH_JSVM_RejectDeferred() to resolve resp. or reject the promise. |
| promise | JavaScript promise associated with the deferred object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CreateRangeError()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateRangeError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value * result )
Description
Creates a JavaScript RangeError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | (Optional) JSVM_Value, which is a string with the associated error code. |
| msg | Message that references the JavaScript string as an error. |
| result | Created error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_CreateReference()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateReference (JSVM_Env env, JSVM_Value value, uint32_t initialRefcount, JSVM_Ref * result )
Description
Creates a new reference with the specified reference count for the passed-in value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value for which a reference is being created. |
| initialRefcount | Initial reference count of a new reference. |
| result | Points to a new reference. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateRegExp()
JSVM_Status JSVM_CDECL OH_JSVM_CreateRegExp (JSVM_Env env, JSVM_Value value, JSVM_RegExpFlags flags, JSVM_Value * result )
Description
Returns the JavaScript value of the regular expression corresponding to the input. An exception may be thrown.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript string to be converted to a regular expression. |
| flags | Regular expression flags. |
| result | JSVM_Value of JavaScript RegExp. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_PENDING_EXCPTION indicates that an exception is thrown during API running.
OH_JSVM_CreateSet()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateSet (JSVM_Env env, JSVM_Value * result )
Description
Creates a JavaScript Set object.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | Created JavaScript Set object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_CreateSnapshot()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateSnapshot (JSVM_VM vm, size_t contextCount, const JSVM_Env * contexts, const char ** blobData, size_t * blobSize )
Description
Creates a VM startup snapshot.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | Target environment in which the API will be called. |
| contextCount | Number of contexts. |
| contexts | Array of contexts to be added to the snapshot. |
| blobData | Snapshot data. |
| blobSize | Size of snapshot data. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_CreateStringLatin1()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringLatin1 (JSVM_Env env, const char * str, size_t length, JSVM_Value * result )
Description
Creates a JavaScript string from a C string encoded using ISO-8859-1. Copies a native string.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| str | Buffer of an ISO-8859-1-encoded string. |
| length | Length of a string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH. |
| result | JSVM_Value of the JavaScript string. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateStringUtf16()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf16 (JSVM_Env env, const char16_t * str, size_t length, JSVM_Value * result )
Description
Creates a JavaScript string from a C string encoded using UTF16-LE. Copies a native string.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| str | Buffer of a UTF16-LE-encoded string. |
| length | Length of a string in 2-byte code. If it is null-terminated, the value is JSVM_AUTO_LENGTH. |
| result | JSVM_Value of the JavaScript string. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateStringUtf8()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf8 (JSVM_Env env, const char * str, size_t length, JSVM_Value * result )
Description
Creates a JavaScript string from a C string encoded using UTF8. Copies a native string.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| str | Buffer of a UTF8-encoded string. |
| length | Length of a string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH. |
| result | JSVM_Value of the JavaScript string. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateSymbol()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateSymbol (JSVM_Env env, JSVM_Value description, JSVM_Value * result )
Description
Creates a JavaScript symbol value from a UTF8-encoded C string.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| description | Optional JSVM_Value, which refers to the JavaScript string to be set to the symbol description. |
| result | JSVM_Value of the JavaScript symbol. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_CreateSyntaxError()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateSyntaxError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value * result )
Description
Creates a JavaScript SyntaxError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | (Optional) JSVM_Value, which is a string with the associated error code. |
| msg | Message that references the JavaScript string as an error. |
| result | Created error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
*
OH_JSVM_CreateTypedarray()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateTypedarray (JSVM_Env env, JSVM_TypedarrayType type, size_t length, JSVM_Value arraybuffer, size_t byteOffset, JSVM_Value * result )
Description
Creates a JavaScript TypedArray object based on an existing ArrayBuffer object. The TypedArray object provides an array-like view on the underlying data buffer, where each element has the same underlying binary scalar data type. The requirement is as follows: (length* Element size) + byteOffset ≤ Size of the passed-in array (in bytes). Otherwise, a RangeError is thrown.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| type | Scalar data type of an element in TypedArray. |
| length | Number of elements in TypedArray. |
| arraybuffer | ArrayBuffer, which is the basis of TypedArray. |
| byteOffset | Byte offset for the start position of mapping TypedArray in the ArrayBuffer. |
| result | JSVM_Value of the JavaScript TypedArray. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_CreateTypeError()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateTypeError (JSVM_Env env, JSVM_Value code, JSVM_Value msg, JSVM_Value * result )
Description
Creates a JavaScript TypeError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | (Optional) JSVM_Value, which is a string with the associated error code. |
| msg | Message that references the JavaScript string as an error. |
| result | Created error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_CreateUint32()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateUint32 (JSVM_Env env, uint32_t value, JSVM_Value * result )
Description
Creates a JavaScript number object from a C uint32_t object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Unsigned integer value to be represented in JavaScript. |
| result | JSVM_Value of the JavaScript number type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_CreateVM()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateVM (const JSVM_CreateVMOptions * options, JSVM_VM * result )
Description
Creates a VM instance.
Since: 11
Parameters
| Name | Description |
|---|---|
| options | Options for creating a VM instance. |
| result | New VM instance. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_CreateWasmCache()
JSVM_EXTERN JSVM_Status OH_JSVM_CreateWasmCache (JSVM_Env env, JSVM_Value wasmModule, const uint8_t ** data, size_t * length )
Description
Creates a WebAssembly cache.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| wasmModule | Compiled WebAssembly module. |
| data | Output parameter, indicating the generated WebAssembly cache. |
| length | Output parameter, indicating the length of the generated WebAssembly cache, in bytes. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates a null pointer argument.
JSVM_GENERIC_FAILURE indicates cache generation failure.
OH_JSVM_DefineClass()
JSVM_EXTERN JSVM_Status OH_JSVM_DefineClass (JSVM_Env env, const char * utf8name, size_t length, JSVM_Callback constructor, size_t propertyCount, const JSVM_PropertyDescriptor * properties, JSVM_Value * result )
Description
Defines a JavaScript class.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| utf8name | Name of the JavaScript constructor. You are advised to use the C++ class name when wrapping a C++ class. |
| length | Length of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated). |
| constructor | Callback used to create the constructor of a class. When a C++ class is wrapped, this method must comply with JSVM_Callback. It is a static member of the callback signature. C++ class constructors cannot be used. For details, see JSVM_Callback. |
| propertyCount | Number of items in the properties array. |
| properties | Attribute descriptor of a class, which is used to define the properties and methods of the class. |
| result | JSVM_Value of the constructor of a class. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_DefineClassWithPropertyHandler()
JSVM_EXTERN JSVM_Status OH_JSVM_DefineClassWithPropertyHandler (JSVM_Env env, const char * utf8name, size_t length, JSVM_Callback constructor, size_t propertyCount, const JSVM_PropertyDescriptor * properties, JSVM_PropertyHandlerCfg propertyHandlerCfg, JSVM_Callback callAsFunctionCallback, JSVM_Value * result )
Description
Defines a set of JavaScript class property operations including getter(), setter(), deleter(), and enumerator() with the given class name, constructor, properties, and callback handler, which are called as callbacks.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| utf8name | Name of the JavaScript class constructor. |
| length | Length of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated). |
| constructor | Callback used to create the constructor of a class. This method must be of the JSVM_Callback type. The callback in the constructor must be a static member. C++ class constructors cannot be used. For details, see JSVM_Callback. |
| propertyCount | Number of items in the properties array. |
| properties | Properties, accessors, and methods of the property descriptor array class of static data and instance data. For details, see JSVM_PropertyDescriptor. |
| propertyHandlerCfg | Callback triggered when an instance object property is accessed. |
| callAsFunctionCallback | Callback triggered when an instance object is called as a function. |
| result | JSVM_Value of the constructor of a JavaScript class. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_DefineProperties()
JSVM_EXTERN JSVM_Status OH_JSVM_DefineProperties (JSVM_Env env, JSVM_Value object, size_t propertyCount, const JSVM_PropertyDescriptor * properties )
Description
Defines properties on a given object by using property descriptors. Through an array of property descriptors, this API sets the properties in the array in turn for the object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose properties are to be searched for. |
| propertyCount | Number of elements in the properties array. |
| properties | Array of property descriptors. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_DeleteElement()
JSVM_EXTERN JSVM_Status OH_JSVM_DeleteElement (JSVM_Env env, JSVM_Value object, uint32_t index, bool * result )
Description
Deletes the element at the specified index from an object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| index | Index of the property to be deleted. |
| result | Whether an element is successfully deleted. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_DeleteProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_DeleteProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool * result )
Description
Deletes the property of the key from the object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| key | Name of the property to be deleted. |
| result | Whether the property is successfully deleted. result can be ignored by passing NULL to it. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_DeleteReference()
JSVM_EXTERN JSVM_Status OH_JSVM_DeleteReference (JSVM_Env env, JSVM_Ref ref )
Description
Deletes the passed-in reference.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| ref | JSVM_Ref to be deleted. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_DestroyEnv()
JSVM_EXTERN JSVM_Status OH_JSVM_DestroyEnv (JSVM_Env env)
Description
Destroys the environment.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment to be destroyed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_DestroyVM()
JSVM_EXTERN JSVM_Status OH_JSVM_DestroyVM (JSVM_VM vm)
Description
Destroys a VM instance.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | VM instance to be destroyed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_DetachArraybuffer()
JSVM_EXTERN JSVM_Status OH_JSVM_DetachArraybuffer (JSVM_Env env, JSVM_Value arraybuffer )
Description
Provides behavior similar to calling the ArrayBuffer detach operation.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| arraybuffer | JavaScript ArrayBuffer to be detached. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_DETACHABLE_ARRAYBUFFER_EXPECTED indicates that the argument is not analyzable ArrayBuffer.
OH_JSVM_Equals()
JSVM_EXTERN JSVM_Status OH_JSVM_Equals (JSVM_Env env, JSVM_Value lhs, JSVM_Value rhs, bool * result )
Description
Provides behavior similar to calling the loose equality algorithm. Regardless of the JavaScript value type, true is returned as long as the values are equal.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| lhs | JavaScript value to be checked. |
| rhs | JavaScript value to be checked. |
| result | Whether two JSVM_Value objects are equal. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_EscapeHandle()
JSVM_EXTERN JSVM_Status OH_JSVM_EscapeHandle (JSVM_Env env, JSVM_EscapableHandleScope scope, JSVM_Value escapee, JSVM_Value * result )
Description
Escalates the handle to a JavaScript object so that it is valid through the lifecycle of the external scope. Each scope can be called only once. If it is called for multiple times, an error is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| scope | Current scope. |
| escapee | JavaScript object to be escalated. |
| result | Handle to the escalated object in the external scope. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_ESCAPE_CALLED_TWICE indicates that the scope object has been closed.
OH_JSVM_FreeArrayBufferBackingStoreData()
JSVM_Status JSVM_CDECL OH_JSVM_FreeArrayBufferBackingStoreData (void * data)
Description
Frees the BackingStore memory allocated by OH_JSVM_AllocateArrayBufferBackingStoreData.
Since: 12
Parameters
| Name | Description |
|---|---|
| data | Allocated BackingStore memory. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that data is a null pointer.
OH_JSVM_GetAllPropertyNames()
JSVM_EXTERN JSVM_Status OH_JSVM_GetAllPropertyNames (JSVM_Env env, JSVM_Value object, JSVM_KeyCollectionMode keyMode, JSVM_KeyFilter keyFilter, JSVM_KeyConversion keyConversion, JSVM_Value * result )
Description
Gets an array containing the names of the available properties of this object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object from which the properties are retrieved. |
| keyMode | Whether to retrieve the prototype properties. |
| keyFilter | Properties to be retrieved (enumerated/readable/writable). |
| keyConversion | Whether to convert a number property key to a string. |
| result | An array of JavaScript values, which are the property names of an object. You can use OH_JSVM_GetArrayLength and OH_JSVM_GetElement to iterate the result. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_GetAndClearLastException()
JSVM_EXTERN JSVM_Status OH_JSVM_GetAndClearLastException (JSVM_Env env, JSVM_Value * result )
Description
Gets and clears the last exception. If pending occurs, a JavaScript exception is returned. Otherwise, NULL is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | An exception is returned if pending occurs. Otherwise, NULL is returned. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetArraybufferInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetArraybufferInfo (JSVM_Env env, JSVM_Value arraybuffer, void ** data, size_t * byteLength )
Description
Gets the underlying data buffer of the ArrayBuffer and its length.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| arraybuffer | ArrayBuffer to be queried. |
| data | Underlying data buffer of the ArrayBuffer. If byte_length is 0, the value may be NULL or any other pointer value. |
| byteLength | Length of the underlying data buffer, in bytes. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_GetArrayLength()
JSVM_EXTERN JSVM_Status OH_JSVM_GetArrayLength (JSVM_Env env, JSVM_Value value, uint32_t * result )
Description
Gets the length of an array.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript array whose length is to be queried. |
| result | uint32 indicates the array length. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_ARRAY_EXPECTED indicates that the argument is not an array.
OH_JSVM_GetBoolean()
JSVM_EXTERN JSVM_Status OH_JSVM_GetBoolean (JSVM_Env env, bool value, JSVM_Value * result )
Description
Gets a JavaScript singleton object that is used to represent the given Boolean value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Boolean value to be retrieved. |
| result | JavaScript Boolean singleton to be retrieved. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetCbInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetCbInfo (JSVM_Env env, JSVM_CallbackInfo cbinfo, size_t * argc, JSVM_Value * argv, JSVM_Value * thisArg, void ** data )
Description
Gets detailed information about the callback, such as the parameter from the given callback information and the this pointer.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| cbinfo | Callback information. |
| argc | Used to specify the length of the provided argv array and receive the actual number of arguments. argc can be ignored by passing NULL to it. |
| argv | C array of JSVM_Value, which is used to store copied arguments. If the number of arguments exceeds the provided number, only a requested number of arguments are copied. If fewer parameters are provided than declared, the rest of argv is filled with undefined JSVM_Values. argv can be ignored by passing NULL to it. |
| thisArg | JavaScript this argument. thisArg can be ignored by passing NULL to it. |
| data | Pointer to the callback data. data can be ignored by passing NULL to it. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetDataviewInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetDataviewInfo (JSVM_Env env, JSVM_Value dataview, size_t * bytelength, void ** data, JSVM_Value * arraybuffer, size_t * byteOffset )
Description
Gets the proprieties of a DataView. If any property is not required, its output parameter can be set to NULL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| dataview | DataView whose properties are to be queried. |
| bytelength | Number of bytes in a DataView. |
| data | Data buffer in a DataView. If bytelength is 0, this value may be NULL or any other pointer value. |
| arraybuffer | ArrayBuffer, which is the basis of DataView. |
| byteOffset | Byte offset for the start position of mapping DataView in the data buffer. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_GetDateValue()
JSVM_EXTERN JSVM_Status OH_JSVM_GetDateValue (JSVM_Env env, JSVM_Value value, double * result )
Description
Gets the C double-precision primitive equivalent of a given JavaScript date. If this API is successfully called, JSVM_OK is returned. If a JSVM_Value of a non-JavaScript date type is passed in, JSVM_DATA_EXPECTED is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript date. |
| result | Time value of the double type, expressed as the number of milliseconds since 00:00:00 UTC on January 1, 1970. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_DATE_EXPECTED indicates that the argument is not a date.
OH_JSVM_GetElement()
JSVM_EXTERN JSVM_Status OH_JSVM_GetElement (JSVM_Env env, JSVM_Value object, uint32_t index, JSVM_Value * result )
Description
Gets the element at the requested index.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose property is to be searched for. |
| index | Index of the property to be obtained. |
| result | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_GetGlobal()
JSVM_EXTERN JSVM_Status OH_JSVM_GetGlobal (JSVM_Env env, JSVM_Value * result )
Description
Gets the global object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JavaScript global object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetHeapStatistics()
JSVM_EXTERN JSVM_Status OH_JSVM_GetHeapStatistics (JSVM_VM vm, JSVM_HeapStatistics * result )
Description
Gets heap statistics of a VM.
Since: 12
Parameters
| Name | Description |
|---|---|
| vm | VM that returns heap statistics. |
| result | Heap statistics. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetInstanceData()
JSVM_EXTERN JSVM_Status OH_JSVM_GetInstanceData (JSVM_Env env, void ** data )
Description
Gets instance data that has been set by OH_JSVM_SetInstanceData(). If no associated data is set, this function is called successfully and data is set to NULL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| data | Data that has been by OH_JSVM_SetInstanceData(), associated with the current JSVM environment. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetLastErrorInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetLastErrorInfo (JSVM_Env env, const JSVM_ExtendedErrorInfo ** result )
Description
Gets the JSVM_ExtendedErrorInfo struct that contains information about the last error that occurred. The content of JSVM_ExtendedErrorInfo returned is valid only before the JSVM-API function is called for the same environment. This includes a call to OH_JSVM_IsExceptionPending, so you may often need to copy information for later use. The pointer returned in error_message points to a statically defined string, so if you copy it from the error_message field (which will be overwritten) before calling another JSVM-API function, you can safely use the pointer.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JSVM_ExtendedErrorInfo struct that contains more information about the error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetNamedProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_GetNamedProperty (JSVM_Env env, JSVM_Value object, const char * utf8name, JSVM_Value * result )
Description
This method is equivalent to calling OH_JSVM_GetProperty, where the JSVM_Value is created using the character string passed through utf8Name.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object from which the property is retrieved. |
| utf8Name | Name of the property to be obtained. |
| result | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_GetNewTarget()
JSVM_EXTERN JSVM_Status OH_JSVM_GetNewTarget (JSVM_Env env, JSVM_CallbackInfo cbinfo, JSVM_Value * result )
Description
Gets the new target called by the constructor. If the current callback is not a constructor call, the result is NULL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| cbinfo | Callback information. |
| result | New target called by the constructor. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetNull()
JSVM_EXTERN JSVM_Status OH_JSVM_GetNull (JSVM_Env env, JSVM_Value * result )
Description
Gets the null object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JavaScript null object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_GetProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, JSVM_Value * result )
Description
Gets the requested property from the passed-in object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object from which the property is retrieved. |
| key | Name of the property to be retrieved. |
| result | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_GetPropertyNames()
JSVM_EXTERN JSVM_Status OH_JSVM_GetPropertyNames (JSVM_Env env, JSVM_Value object, JSVM_Value * result )
Description
Gets the names of enumerable properties of an object as an array of characters. The properties of the object whose key is a symbol are not included.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose property is to be searched for. |
| result | An array of JavaScript values, which are the property names of an object. You can use OH_JSVM_GetArrayLength and OH_JSVM_GetElement to iterate the result. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetPrototype()
JSVM_EXTERN JSVM_Status OH_JSVM_GetPrototype (JSVM_Env env, JSVM_Value object, JSVM_Value * result )
Description
Gets the prototype of an object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | JavaScript object whose prototype is to be returned. This will return the equivalent of Object.getPrototypeOf (different from the prototype property of the function). |
| result | Prototype of a given object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetReferenceValue()
JSVM_EXTERN JSVM_Status OH_JSVM_GetReferenceValue (JSVM_Env env, JSVM_Ref ref, JSVM_Value * result )
Description
Gets the JSVM_Value returned by the JSVM-API , indicating the JavaScript value associated with JSVM_Ref. Otherwise, the result is NULL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| ref | JSVM_Ref for requesting the corresponding value. |
| result | JSVM_Value referenced by JSVM_Ref. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetTypedarrayInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetTypedarrayInfo (JSVM_Env env, JSVM_Value typedarray, JSVM_TypedarrayType * type, size_t * length, void ** data, JSVM_Value * arraybuffer, size_t * byteOffset )
Description
Gets the properties of a typed array. If any property is not required, its output parameter can be NULL.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| typedarray | TypedArray whose properties are to be queried. |
| type | Scalar data type of an element in TypedArray. |
| length | Number of elements in the TypedArray. |
| data | The underlying data buffer of the TypedArray is adjusted by byte_offset so that it points to the first element in the TypedArray. If the array length is 0, data may be NULL or any other pointer value. |
| arraybuffer | ArrayBuffer under TypedArray. |
| byteOffset | Byte offset of the first TypedArray element in the native array. data points to the first element in the array after its value has been adjusted. Therefore, the first byte of the native array is located at (data – byte_offset). |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_GetUndefined()
JSVM_EXTERN JSVM_Status OH_JSVM_GetUndefined (JSVM_Env env, JSVM_Value * result )
Description
Gets the undefined object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript undefined value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetValueBigintInt64()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintInt64 (JSVM_Env env, JSVM_Value value, int64_t * result, bool * lossless )
Description
Gets the C int64_t primitive equivalent of a given JavaScript BigInt. If necessary, it truncates the value and sets lossless to false.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript BigInt. |
| result | C int64_t primitive equivalent of the given JavaScript BigInt. |
| lossless | Whether the BigInt value has been losslessly converted. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_BIGINT_EXPECTED indicates that the argument is not a BitInt.
OH_JSVM_GetValueBigintUint64()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintUint64 (JSVM_Env env, JSVM_Value value, uint64_t * result, bool * lossless )
Description
Gets the C uint64_t primitive equivalent of a given JavaScript BigInt. If necessary, it truncates the value and sets lossless to false.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript BigInt. |
| result | C uint64_t primitive equivalent of the given JavaScript BigInt. |
| lossless | Whether the BigInt value has been losslessly converted. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_BIGINT_EXPECTED indicates that the argument is not a BitInt.
OH_JSVM_GetValueBigintWords()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintWords (JSVM_Env env, JSVM_Value value, int * signBit, size_t * wordCount, uint64_t * words )
Description
Gets the sign bit, 64-bit little-endian array, and number of elements in the array from a BigInt value. Both signBit and words can be set to NULL. In this case, only wordCount is obtained.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript BigInt. |
| signBit | Whether JavaScript BigInt is a positive or negative integer. |
| wordCount | Length of the words array. It will be set to the actual number of words required to store this BigInt. |
| words | Pointer to the pre-allocated 64-bit words array. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_BIGINT_EXPECTED indicates that the argument is not a BitInt.
OH_JSVM_GetValueBool()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBool (JSVM_Env env, JSVM_Value value, bool * result )
Description
Gets the C Boolean primitive equivalent of a given JavaScript Boolean.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript Boolean. |
| result | C Boolean primitive equivalent of a given JavaScript Boolean. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_BOOLEAN_EXPECTED indicates that the argument is not a Boolean.
OH_JSVM_GetValueDouble()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueDouble (JSVM_Env env, JSVM_Value value, double * result )
Description
Gets the C double-precision primitive equivalent of a given JavaScript number.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript number. |
| result | C double-precision primitive equivalent of a given JavaScript number. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_NUMBER_EXPECTED indicates that the argument is not a number.
OH_JSVM_GetValueExternal()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueExternal (JSVM_Env env, JSVM_Value value, void ** result )
Description
Gets the external data pointer previously passed to OH_JSVM_CreateExternal().
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript external value. |
| result | Pointer to the data wrapped by the JavaScript external value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that the argument is not an external JSVM_Value.
OH_JSVM_GetValueInt32()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueInt32 (JSVM_Env env, JSVM_Value value, int32_t * result )
Description
Gets the C int32 primitive equivalent of a given JavaScript number.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript number. |
| result | C int32 primitive equivalent of a given JavaScript number. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_NUMBER_EXPECTED indicates that the argument is not a number.
OH_JSVM_GetValueInt64()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueInt64 (JSVM_Env env, JSVM_Value value, int64_t * result )
Description
Gets the C int64 primitive equivalent of a given JavaScript number.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript number. |
| result | C int64 primitive equivalent of a given JavaScript number. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_NUMBER_EXPECTED indicates that the argument is not a number.
OH_JSVM_GetValueStringLatin1()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringLatin1 (JSVM_Env env, JSVM_Value value, char * buf, size_t bufsize, size_t * result )
Description
Gets an ISO-8859-1 encoded string corresponding to the passed-in value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript number. |
| buf | Buffer to which an ISO-8859-1 encoded string is written. If NULL is passed, the length of the string (in bytes, excluding the null terminator) is returned in result. |
| bufsize | Size of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null. |
| result | Number of bytes copied to the buffer, excluding the null terminator. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_GetValueStringUtf16()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf16 (JSVM_Env env, JSVM_Value value, char16_t * buf, size_t bufsize, size_t * result )
Description
Gets a UTF16-encoded string based on the passed-in value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript string. |
| buf | Buffer to which a UTF16-LE-encoded string is written. If NULL is passed, the length of the string in 2-byte code is returned, excluding the null terminator. |
| bufsize | Size of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null. |
| result | Number of the 2-byte code units copied to the buffer, excluding the null terminator. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_GetValueStringUtf8()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf8 (JSVM_Env env, JSVM_Value value, char * buf, size_t bufsize, size_t * result )
Description
Gets a UTF8-encoded string corresponding to the passed-in value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript string. |
| buf | Buffer to which a UTF8-encoded string is written. If NULL is passed, the length of the string in bytes is returned in result, excluding the null terminator. |
| bufsize | Size of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null. |
| result | Number of bytes copied to the buffer, excluding the null terminator. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
OH_JSVM_GetValueUint32()
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueUint32 (JSVM_Env env, JSVM_Value value, uint32_t * result )
Description
Gets the C uint_32 primitive equivalent of a given JavaScript number.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript number. |
| result | C uint32_t primitive equivalent of a given JSVM_Value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_NUMBER_EXPECTED indicates that the argument is not a number.
OH_JSVM_GetVersion()
JSVM_EXTERN JSVM_Status OH_JSVM_GetVersion (JSVM_Env env, uint32_t * result )
Description
Gets the latest JSVM-API version supported by the JSVM runtime. New JSVM-API APIs will be added to support more functions. With this API, the new functions of a certain JSVM version can be used, or callbacks are provided.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | JSVM-API of the latest version. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetVM()
JSVM_EXTERN JSVM_Status OH_JSVM_GetVM (JSVM_Env env, JSVM_VM * result )
Description
Gets a VM instance.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| result | VM instance of the specified environment. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_GetVMInfo()
JSVM_EXTERN JSVM_Status OH_JSVM_GetVMInfo (JSVM_VMInfo * result)
Description
Gets the VM information.
Since: 11
Parameters
| Name | Description |
|---|---|
| result | VM information. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_HasElement()
JSVM_EXTERN JSVM_Status OH_JSVM_HasElement (JSVM_Env env, JSVM_Value object, uint32_t index, bool * result )
Description
Checks whether an object has an element at the specified index. If yes, the JSVM-API returns true.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| index | Index where there is an element. |
| result | Whether the property exists on the object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_HasNamedProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_HasNamedProperty (JSVM_Env env, JSVM_Value object, const char * utf8name, bool * result )
Description
This method is equivalent to calling OH_JSVM_HasProperty, where the JSVM_Value is created using the character string passed through utf8Name.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| utf8Name | Name of the property to be checked. |
| result | Whether the property exists on the object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_HasOwnProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_HasOwnProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool * result )
Description
Checks whether the passed-in object has its own property. The key must be a string or symbol. Otherwise, an error is thrown. The JSVM-API does not perform any conversion between data types.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| key | Name of the object's own property to be checked. |
| result | Whether an object has this own property. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_HasProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_HasProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, bool * result )
Description
Checks whether the passed-in object has the property with the specified name.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be queried. |
| key | Name of the property to be checked. |
| result | Whether the property exists on the object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_Init()
EXTERN_C_START JSVM_EXTERN JSVM_Status OH_JSVM_Init (const JSVM_InitOptions * options)
Description
Initializes a JavaScript VM.
Since: 11
Parameters
| Name | Description |
|---|---|
| options | Options for initializing the JavaScript VM. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_Instanceof()
JSVM_EXTERN JSVM_Status OH_JSVM_Instanceof (JSVM_Env env, JSVM_Value object, JSVM_Value constructor, bool * result )
Description
Provides behavior similar to calling the instanceof operator on an object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| constructor | JavaScript function object of the constructor to be checked. |
| result | true is returned if the object instanceof constructor is true. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_FUNCTION_EXPECTED indicates that the argument is not a function.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_IsArray()
JSVM_EXTERN JSVM_Status OH_JSVM_IsArray (JSVM_Env env, JSVM_Value value, bool * result )
Description
Provides behavior similar to calling IsArray on an object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| result | Whether the given object is an array. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsArraybuffer()
JSVM_EXTERN JSVM_Status OH_JSVM_IsArraybuffer (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the passed-in object is ArrayBuffer.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| result | Whether the specified object is ArrayBuffer. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsBigInt()
JSVM_EXTERN JSVM_Status OH_JSVM_IsBigInt (JSVM_Env env, JSVM_Value value, bool * isBigInt )
Description
Checks whether the value passed in is a BigInt. This API is equivalent to executing JS code typeof value === 'bigint'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isBigInt | Whether the given JSVM_Value is a BigInt. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsBoolean()
JSVM_EXTERN JSVM_Status OH_JSVM_IsBoolean (JSVM_Env env, JSVM_Value value, bool * isBoolean )
Description
Checks whether the value passed in is a Boolean value. This API is equivalent to executing JavaScript code typeof value === 'boolean'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isBoolean | Whether the given JSVM_Value is Boolean. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsConstructor()
JSVM_Status JSVM_CDECL OH_JSVM_IsConstructor (JSVM_Env env, JSVM_Value value, bool * isConstructor )
Description
Checks whether the value passed in is a constructor.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isConstructor | Whether the given value is a constructor. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_IsDataview()
JSVM_EXTERN JSVM_Status OH_JSVM_IsDataview (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the passed-in object is a DataView.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| result | Whether the given JSVM_Value is a DataView. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsDate()
JSVM_EXTERN JSVM_Status OH_JSVM_IsDate (JSVM_Env env, JSVM_Value value, bool * isDate )
Description
Checks whether the passed-in object is a date.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| isDate | Whether the given JSVM_Value is a JavaScript Date object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsDetachedArraybuffer()
JSVM_EXTERN JSVM_Status OH_JSVM_IsDetachedArraybuffer (JSVM_Env env, JSVM_Value value, bool * result )
Description
Provides behavior similar to calling the ArrayBuffer IsDetachedBuffer operation.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript ArrayBuffer to be checked. |
| result | Whether the ArrayBuffer is detached. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsError()
JSVM_EXTERN JSVM_Status OH_JSVM_IsError (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the given JSVM_Value indicates an error.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| result | If JSVM_Value indicates an error, true is returned. Otherwise, false is returned. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsExceptionPending()
JSVM_EXTERN JSVM_Status OH_JSVM_IsExceptionPending (JSVM_Env env, bool * result )
Description
Checks whether the last exception is caused by pending. If yes, true is returned. Otherwise, false is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | true is returned if pending occurs. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsFunction()
JSVM_EXTERN JSVM_Status OH_JSVM_IsFunction (JSVM_Env env, JSVM_Value value, bool * isFunction )
Description
Checks whether the value passed in is a function. This API is equivalent to executing JavaScript code typeof value === 'function'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isFunction | Whether the given JSVM_Value is a function. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsMap()
JSVM_Status JSVM_CDECL OH_JSVM_IsMap (JSVM_Env env, JSVM_Value value, bool * isMap )
Description
Checks whether the value passed in is a map.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isMap | Whether the given value is a map. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_IsNull()
JSVM_EXTERN JSVM_Status OH_JSVM_IsNull (JSVM_Env env, JSVM_Value value, bool * isNull )
Description
Checks whether the value passed in is a Null object. This API is equivalent to executing JavaScript code value === null.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isNull | Whether the given JSVM_Value is Null. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsNullOrUndefined()
JSVM_EXTERN JSVM_Status OH_JSVM_IsNullOrUndefined (JSVM_Env env, JSVM_Value value, bool * isNullOrUndefined )
Description
Checks whether the value passed in is Null or Undefined. This API is equivalent to executing JavaScript code value == null.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isNullOrUndefined | Whether the given JSVM_Value is Null or Undefined. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsNumber()
JSVM_EXTERN JSVM_Status OH_JSVM_IsNumber (JSVM_Env env, JSVM_Value value, bool * isNumber )
Description
Checks whether the value passed in is a number. This API is equivalent to executing JavaScript code typeof value === 'number'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isNumber | Whether the given JSVM_Value is a number. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsObject()
JSVM_EXTERN JSVM_Status OH_JSVM_IsObject (JSVM_Env env, JSVM_Value value, bool * isObject )
Description
Checks whether the value passed in is an object.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isObject | Whether the given JSVM_Value is an object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsPromise()
JSVM_EXTERN JSVM_Status OH_JSVM_IsPromise (JSVM_Env env, JSVM_Value value, bool * isPromise )
Description
Checks whether a promise object is a native promise object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Value to be checked. |
| isPromise | Flag of a native promise object (that is, a promise object created by the underlying engine). |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsRegExp()
JSVM_EXTERN JSVM_Status OH_JSVM_IsRegExp (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the value passed in is a JavaScript RegExp object.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| result | Whether the given JSVM_Value is a JavaScript RegExp object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsSet()
JSVM_EXTERN JSVM_Status OH_JSVM_IsSet (JSVM_Env env, JSVM_Value value, bool * isSet )
Description
Checks whether the specified object is of the Set type.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | Object to be checked. |
| isSet | Whether the specified object is of the Set type. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_IsString()
JSVM_EXTERN JSVM_Status OH_JSVM_IsString (JSVM_Env env, JSVM_Value value, bool * isString )
Description
Checks whether the value passed in is a string. This API is equivalent to executing JavaScript code typeof value === 'string'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isString | Whether the given JSVM_Value is a string. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsSymbol()
JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbol (JSVM_Env env, JSVM_Value value, bool * isSymbol )
Description
Checks whether the value passed in is a symbol. This API is equivalent to executing JavaScript code typeof value === 'symbol'.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isSymbol | Whether the given JSVM_Value is a symbol. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsTypedarray()
JSVM_EXTERN JSVM_Status OH_JSVM_IsTypedarray (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the passed-in object is a typed array.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| result | Whether the given JSVM_Value is a TypedArray. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_IsUndefined()
JSVM_EXTERN JSVM_Status OH_JSVM_IsUndefined (JSVM_Env env, JSVM_Value value, bool * isUndefined )
Description
Checks whether the value passed in is Undefined. This API is equivalent to executing JavaScript code value === undefined.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JSVM_Value to be checked. |
| isUndefined | Whether the given JSVM_Value is Undefined. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success. This API does not trigger any exception.
OH_JSVM_IsWasmModuleObject()
JSVM_EXTERN JSVM_Status OH_JSVM_IsWasmModuleObject (JSVM_Env env, JSVM_Value value, bool * result )
Description
Checks whether the given JSVM_Value is a WebAssembly module.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value to be checked. |
| result | Output parameter, indicating whether the given value is a WebAssembly module. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates a null pointer argument.
OH_JSVM_JsonParse()
JSVM_EXTERN JSVM_Status OH_JSVM_JsonParse (JSVM_Env env, JSVM_Value jsonString, JSVM_Value * result )
Description
Parses a JSON string and returns the parsed value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsonString | String to be parsed. |
| result | Value obtained by parsing. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_STRING_EXPECTED indicates that the argument is not a string.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_JsonStringify()
JSVM_EXTERN JSVM_Status OH_JSVM_JsonStringify (JSVM_Env env, JSVM_Value jsonObject, JSVM_Value * result )
Description
Converts an object into a JSON string and returns the converted string.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsonObject | Object to be stringified. |
| result | String returned after successful conversion. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_MemoryPressureNotification()
JSVM_EXTERN JSVM_Status OH_JSVM_MemoryPressureNotification (JSVM_Env env, JSVM_MemoryPressureLevel level )
Description
Notifies the VM of insufficient system memory and selectively triggers garbage collection.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| level | Memory pressure level to be set for the current VM. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_NewInstance()
JSVM_EXTERN JSVM_Status OH_JSVM_NewInstance (JSVM_Env env, JSVM_Value constructor, size_t argc, const JSVM_Value * argv, JSVM_Value * result )
Description
Instantiates a new JavaScript value by using the constructor represented by the given JSVM_Value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| constructor | JavaScript function that will be called as a constructor. |
| argc | Number of elements in the argv array. |
| argv | JavaScript value array. JSVM_Value indicates the parameter of the constructor. If argc is 0, argc can be ignored by passing NULL to it. |
| result | Returned JavaScript object, which is the constructed object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_PENDING_EXCEPTION indicates that a JavaScript exception occurs during the execution.
OH_JSVM_ObjectFreeze()
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectFreeze (JSVM_Env env, JSVM_Value object )
Description
Freezes the given object. This prevents additions or deletions of properties, enumerability, configurability, or writeability change of properties, or value change of properties. It also prevents prototype change of an object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be frozen. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_ObjectGetPrototypeOf()
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectGetPrototypeOf (JSVM_Env env, JSVM_Value object, JSVM_Value * result )
Description
Gets the prototype of a JavaScript object.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | JavaScript object whose prototype is to be returned. |
| result | Prototype of a given object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_PENDING_EXCPTION indicates that an exception is thrown during API running.
OH_JSVM_ObjectSeal()
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSeal (JSVM_Env env, JSVM_Value object )
Description
Seals a specified object. This prevents additions of properties and marks existing properties non-configurable.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object to be sealed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_ObjectSetPrototypeOf()
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSetPrototypeOf (JSVM_Env env, JSVM_Value object, JSVM_Value prototype )
Description
Sets the prototype of a JavaScript object.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | JavaScript object whose prototype needs to be set. |
| prototype | Object prototype. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_GENERIC_FAILURE indicates that the prototype fails to be set. This failure is triggered when the prototype is set cyclically.
JSVM_PENDING_EXCPTION indicates that an exception is thrown during API running.
OH_JSVM_OpenEnvScope()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenEnvScope (JSVM_Env env, JSVM_EnvScope * result )
Description
Opens a new environment scope.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Target environment in which the JSVM-API will be called. |
| result | New environment scope. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_OpenEscapableHandleScope()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenEscapableHandleScope (JSVM_Env env, JSVM_EscapableHandleScope * result )
Description
Opens a new scope from which an object can be escalated to an external scope.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | New scope. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_OpenHandleScope()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenHandleScope (JSVM_Env env, JSVM_HandleScope * result )
Description
Opens a new scope.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| result | New scope. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_OpenInspector()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspector (JSVM_Env env, const char * host, uint16_t port )
Description
Opens an inspector on the specified host and port for debugging JavaScript code.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| host | IP address of the host for listening on the inspector connection. |
| port | Port for listening on the inspector connection. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_PENDING_EXCEPTION indicates that a JavaScript exception occurs during the execution.
OH_JSVM_OpenInspectorWithName()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspectorWithName (JSVM_Env env, int pid, const char * name )
Description
Opens an inspector with the specified name, in order to open the UNIX domain port corresponding to the PID.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment in which the API is called. |
| pid | Process ID for identifying the inspector connection. |
| name | Name of an inspector. If nullptr is passed in, the default name is jsvm. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_PENDING_EXCEPTION indicates that an exception occurs.
OH_JSVM_OpenVMScope()
JSVM_EXTERN JSVM_Status OH_JSVM_OpenVMScope (JSVM_VM vm, JSVM_VMScope * result )
Description
Opens a new VM scope for a VM instance.
Since: 11
Parameters
| Name | Description |
|---|---|
| vm | Target VM instance. |
| result | New VM scope. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_PerformMicrotaskCheckpoint()
JSVM_EXTERN JSVM_Status OH_JSVM_PerformMicrotaskCheckpoint (JSVM_VM vm)
Description
Checks whether there are micro tasks waiting in the queue. If yes, execute them.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | VM instance for which micro tasks are to be checked. |
Returns
Result code of the JSVM function. JSVM_OK indicates execution success.
OH_JSVM_PumpMessageLoop()
JSVM_EXTERN JSVM_Status OH_JSVM_PumpMessageLoop (JSVM_VM vm, bool * result )
Description
Starts the running of the task queue in the VM. The task queue can be executed through an external event loop.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | VM instance for starting a task queue. |
| result | Whether the task queue is successfully started. |
Returns
Result code of the JSVM function. JSVM_OK indicates execution success.
OH_JSVM_ReferenceRef()
JSVM_EXTERN JSVM_Status OH_JSVM_ReferenceRef (JSVM_Env env, JSVM_Ref ref, uint32_t * result )
Description
Increases the reference count and returns the new reference count.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| ref | Reference that is passed in. Its reference count will increase. |
| result | New reference count. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ReferenceUnref()
JSVM_EXTERN JSVM_Status OH_JSVM_ReferenceUnref (JSVM_Env env, JSVM_Ref ref, uint32_t * result )
Description
Decreases the reference count and returns the new reference count.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| ref | JSVM_Ref that is passed in. Its reference count will decrease. |
| result | New reference count. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure.
OH_JSVM_RejectDeferred()
JSVM_EXTERN JSVM_Status OH_JSVM_RejectDeferred (JSVM_Env env, JSVM_Deferred deferred, JSVM_Value rejection )
Description
Rejects a JavaScript promise by using the associated deferred object. It can only be used to reject the JavaScript promise of the corresponding available deferred object. This means that promise must be created using OH_JSVM_CreatePromise(), and the object returned from this call must be retained so that it can be passed to this API.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| deferred | Deferred object whose associated promise is to be parsed. |
| rejection | Value used to reject a promise. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ReleaseCache()
JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseCache (JSVM_Env env, const uint8_t * cacheData, JSVM_CacheType cacheType )
Description
Releases the cache of a specified type.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| cacheData | Cache data to be released. Repeated release is an undefined behavior. |
| cacheType | Cache type. A generated cache can be released accordingly. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates a null pointer argument or an invalid cacheType argument.
OH_JSVM_ReleaseScript()
JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseScript (JSVM_Env env, JSVM_Script script )
Description
Releases the script retained by OH_JSVM_RetainScript. The released script cannot be used again.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment in which the API is called. |
| script | JavaScript string that includes the script to be released. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that the script is empty or has not been saved.
OH_JSVM_RemoveWrap()
JSVM_EXTERN JSVM_Status OH_JSVM_RemoveWrap (JSVM_Env env, JSVM_Value jsObject, void ** result )
Description
Removes the wrap of the native instance, which is previously wrapped in js_object by OH_JSVM_Wrap(). If the finalize callback is associated with wrap, it will not be called when the JavaScript object is garbage collected.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsObject | Object associated with the native instance. |
| result | Pointer to the wrapped native instance. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ResolveDeferred()
JSVM_EXTERN JSVM_Status OH_JSVM_ResolveDeferred (JSVM_Env env, JSVM_Deferred deferred, JSVM_Value resolution )
Description
Resolves a JavaScript promise by using the associated deferred object. It can only be used to resolve the JavaScript promise of the corresponding available deferred object. This means that promise must be created using OH_JSVM_CreatePromise(), and the object returned from this call must be retained so that it can be passed to this API.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| deferred | Deferred object whose associated promise is to be parsed. |
| resolution | Value used to resolve a promise. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_RetainScript()
JSVM_EXTERN JSVM_Status OH_JSVM_RetainScript (JSVM_Env env, JSVM_Script script )
Description
Retains a JSVM_Script and extends its lifecycle beyond the current scope.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment in which the API is called. |
| script | JavaScript string that includes the script to be retained. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates that the script is empty or has been saved.
OH_JSVM_RunScript()
JSVM_EXTERN JSVM_Status OH_JSVM_RunScript (JSVM_Env env, JSVM_Script script, JSVM_Value * result )
Description
Runs a string of JavaScript code and returns its result, including the following precautions: Unlike eval, this function does not allow the script to access the current lexical scope, and therefore does not allow the script to access the module scope. This means that pseudo-global variables such as require will be unavailable. The script can access the global scope. The functions and variable declarations in the script will be added to the global object. Variable declarations using let and const are globally visible, but are not added to the global object. The value of this is global in the script.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| script | JavaScript string that includes the script to be executed. |
| result | Value generated after the script is executed. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure.
OH_JSVM_SetElement()
JSVM_EXTERN JSVM_Status OH_JSVM_SetElement (JSVM_Env env, JSVM_Value object, uint32_t index, JSVM_Value value )
Description
Sets an element on the passed-in object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose property is to be set. |
| index | Index of the property to be set. |
| value | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_SetInstanceData()
JSVM_EXTERN JSVM_Status OH_JSVM_SetInstanceData (JSVM_Env env, void * data, JSVM_Finalize finalizeCb, void * finalizeHint )
Description
Sets instance data so that it is associated with the currently running JSVM environment. You can use OH_JSVM_GetInstanceData() to get data later. Any existing data set by a previous call to OH_JSVM_SetInstanceData() will be overwritten. If finalizeCb was previously provided, it will not be called.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| data | Data bound for this instance. |
| finalizeCb | Function for destroying the environment. |
| finalizeHint | Optional hint passed to the finalize callback during collection. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_SetNamedProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_SetNamedProperty (JSVM_Env env, JSVM_Value object, const char * utf8name, JSVM_Value value )
Description
This method is equivalent to calling OH_JSVM_SetProperty, where the JSVM_Value is created using the character string passed through utf8Name.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose property is to be set. |
| utf8Name | Name of the property to be set. |
| value | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_SetProperty()
JSVM_EXTERN JSVM_Status OH_JSVM_SetProperty (JSVM_Env env, JSVM_Value object, JSVM_Value key, JSVM_Value value )
Description
Sets a property for the passed-in object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| object | Object whose property is to be set. |
| key | Name of the property to be set. |
| value | Property value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_StartCpuProfiler()
JSVM_EXTERN JSVM_Status OH_JSVM_StartCpuProfiler (JSVM_VM vm, JSVM_CpuProfiler * result )
Description
Creates and starts a CPU profiler.
Since: 12
Parameters
| Name | Description |
|---|---|
| vm | VM for starting the CPU profiler. |
| result | Pointer to the CPU profiler. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_StopCpuProfiler()
JSVM_EXTERN JSVM_Status OH_JSVM_StopCpuProfiler (JSVM_VM vm, JSVM_CpuProfiler profiler, JSVM_OutputStream stream, void * streamData )
Description
Stops the CPU profiler and outputs the result to a stream.
Since: 12
Parameters
| Name | Description |
|---|---|
| vm | VM for starting the CPU profiler. |
| profiler | CPU profiler to be stopped. |
| stream | Output stream callback. |
| streamData | Optional data passed to the output stream callback. For example, it can be a file stream, which is used to write the sampled data passed in the output stream callback to a file. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_StrictEquals()
JSVM_EXTERN JSVM_Status OH_JSVM_StrictEquals (JSVM_Env env, JSVM_Value lhs, JSVM_Value rhs, bool * result )
Description
Provides behavior similar to calling the strict equality algorithm.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| lhs | JavaScript value to be checked. |
| rhs | JavaScript value to be checked. |
| result | Whether two JSVM_Value objects are equal. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_SymbolFor()
JSVM_EXTERN JSVM_Status OH_JSVM_SymbolFor (JSVM_Env env, const char * utf8description, size_t length, JSVM_Value * result )
Description
Searches the global registry for an existing symbol with the given description. If the symbol already exists, it is returned. Otherwise, a new symbol is created in the registry.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| utf8description | UTF-8 C string, indicating the text used as the symbol description. |
| length | Length of the description string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH. |
| result | JSVM_Value of the JavaScript symbol. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_TakeHeapSnapshot()
JSVM_EXTERN JSVM_Status OH_JSVM_TakeHeapSnapshot (JSVM_VM vm, JSVM_OutputStream stream, void * streamData )
Description
Takes a heap snapshot and outputs it to a stream.
Since: 12
Parameters
| Name | Description |
|---|---|
| vm | VM whose heap snapshot is to be obtained. |
| stream | Output stream callback. |
| streamData | Optional data passed to the output stream callback. For example, it can be a file stream, which is used to write the sampled data passed in the output stream callback to a file. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_Throw()
JSVM_EXTERN JSVM_Status OH_JSVM_Throw (JSVM_Env env, JSVM_Value error )
Description
Throws the provided JavaScript value.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| error | JavaScript error to be thrown. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ThrowError()
JSVM_EXTERN JSVM_Status OH_JSVM_ThrowError (JSVM_Env env, const char * code, const char * msg )
Description
Throws a JavaScript Error with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | Optional error code to be set on the error. |
| msg | C string representing the text associated with the error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ThrowRangeError()
JSVM_EXTERN JSVM_Status OH_JSVM_ThrowRangeError (JSVM_Env env, const char * code, const char * msg )
Description
Throws a JavaScript RangeError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | Optional error code to be set on the error. |
| msg | C string representing the text associated with the error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ThrowSyntaxError()
JSVM_EXTERN JSVM_Status OH_JSVM_ThrowSyntaxError (JSVM_Env env, const char * code, const char * msg )
Description
Throws a JavaScript SyntaxError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | Optional error code to be set on the error. |
| msg | C string representing the text associated with the error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_ThrowTypeError()
JSVM_EXTERN JSVM_Status OH_JSVM_ThrowTypeError (JSVM_Env env, const char * code, const char * msg )
Description
Throws a JavaScript TypeError with the provided text.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| code | Optional error code to be set on the error. |
| msg | C string representing the text associated with the error. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
OH_JSVM_Typeof()
JSVM_EXTERN JSVM_Status OH_JSVM_Typeof (JSVM_Env env, JSVM_Value value, JSVM_ValueType * result )
Description
Provides behavior similar to calling the typeof operator on a defined object. The difference is that this function supports the detection of external values; it detects null as a separate type, while ECMAScript typeof is used to detect objects. If the value type is invalid, an error is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript value whose type is to be queried. |
| result | Type of the JavaScript value. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_TypeTagObject()
JSVM_EXTERN JSVM_Status OH_JSVM_TypeTagObject (JSVM_Env env, JSVM_Value value, const JSVM_TypeTag * typeTag )
Description
Associates the value of the typeTag pointer with a JavaScript object or an external value. You can call OH_JSVM_CheckObjectTypeTag() to check the type of the tag attached to the object, to ensure that the object type is correct. If the object already has an associated type tag, JSVM_INVALID_ARG is returned.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| value | JavaScript object or external value to be tagged. |
| typeTag | Tag object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_Unwrap()
JSVM_EXTERN JSVM_Status OH_JSVM_Unwrap (JSVM_Env env, JSVM_Value jsObject, void ** result )
Description
When the JavaScript code calls a method of a class or property accessor, the corresponding JSVM_Callback is called. If the callback is for an instance method or accessor, the this argument of the callback is the wrapper object. Then you can obtain the C++ instance as the call target by calling OH_JSVM_Unwrap() of the wrapper object.
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsObject | Object associated with the native instance. |
| result | Pointer to the wrapped native instance. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.
OH_JSVM_WaitForDebugger()
JSVM_EXTERN JSVM_Status OH_JSVM_WaitForDebugger (JSVM_Env env, bool breakNextLine )
Description
Waits for the host to set up a socket connection with an inspector. After the connection is set up, the application continues to run. Runtime.runIfWaitingForDebugger is sent.
Since: 12
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| breakNextLine | Whether to break in the next line of JavaScript code. If yes, the next line of JavaScript code will be broken. To continue the execution, use the debug button of the debugger to control the execution of the JavaScript code. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_GENERIC_FAILURE indicates execution failure due to unknown reasons.
OH_JSVM_Wrap()
JSVM_EXTERN JSVM_Status OH_JSVM_Wrap (JSVM_Env env, JSVM_Value jsObject, void * nativeObject, JSVM_Finalize finalizeCb, void * finalizeHint, JSVM_Ref * result )
Description
Wraps a native instance in the JavaScript object. The native instance can be obtained using OH_JSVM_Unwrap().
Since: 11
Parameters
| Name | Description |
|---|---|
| env | Environment for calling the JSVM-API. |
| jsObject | JavaScript object that will wrap a native object. |
| nativeObject | Native instance wrapped in a JavaScript object. |
| finalizeCb | Optional native callback, which can be used to release the native instance when the JavaScript object is garbage collected. |
| finalizeHint | Optional context hint passed to the finalize callback. |
| result | Optional reference to the wrap object. |
Returns
Status code JSVM_Status. JSVM_OK indicates execution success.
JSVM_INVALID_ARG indicates an invalid argument.