openharmony 鸿蒙 capi-jsvm-h

2026-08-25 浏览 (1)

jsvm.h

Overview

Defines JSVM-APIs. These APIs are used to provide independent, standard, and complete JS engine capabilities, including managing the engine lifecycle, compiling and running JS code, implementing JS/C++ cross-language calls, and taking snapshots.

Reference file: <ark_runtime/jsvm.h>

Library: libjsvm.so

System capability: SystemCapability.ArkCompiler.JSVM

Since: 11

Related module: JSVM

Summary

Macros

NameDescription
JSVM_VERSION_EXPERIMENTAL 2147483647Defines the experimental JSVM version number.
JSVM_VERSION 8Defines the JSVM version number.
JSVM_EXTERN attribute((visibility("default")))Defines the symbol that is externally visible.
JSVM_AUTO_LENGTH SIZE_MAXDefines the automatic length.
EXTERN_C_STARTDefines the segment start identifier for a compiler to compile the following code segment as C code.
When __cplusplus detects that a C++ compiler is being used, the value "extern "C" {" is assigned to EXTERN_C_START, indicating that the subsequent code is C code. If a C++ compiler is not being used, no tag is required.
EXTERN_C_ENDDefines the segment end identifier for a compiler to compile the following code segment as C code.
When __cplusplus detects that a C++ compiler is being used, the value "}" is assigned to EXTERN_C_START, indicating that the C code ends here. If a C++ compiler is not being used, no tag is required.

Functions

NameDescription
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_SetMicrotaskPolicy(JSVM_VM vm,JSVM_MicrotaskPolicy policy)Sets the microtask execution policy for a VM instance. If this method is not called, the default policy JSVM_MicrotaskPolicy::JSVM_MICROTASK_AUTO is used.
JSVM_EXTERN JSVM_Status OH_JSVM_DestroyVM(JSVM_VM vm)Destroys a VM instance.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateProxy(JSVM_Env env,JSVM_Value target,JSVM_Value handler,JSVM_Value* result)Creates a JavaScript proxy. This API is equivalent to calling new Proxy(target, handler) in JS.
JSVM_EXTERN JSVM_Status OH_JSVM_IsProxy(JSVM_Env env,JSVM_Value value,bool* isProxy)Checks whether the input value is a JavaScript proxy.
JSVM_EXTERN JSVM_Status OH_JSVM_ProxyGetTarget(JSVM_Env env,JSVM_Value value,JSVM_Value* result)Obtains the target object in the JavaScript Proxy.
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 the environment scope.
JSVM_EXTERN JSVM_Status OH_JSVM_GetVM(JSVM_Env env,JSVM_VM* result)Obtains 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 JavaScript code snippet 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 JavaScript code snippet 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_Script* result)Compiles a JavaScript code snippet 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 JavaScript code snippet 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. Without the JIT permission, the script containing WebAssembly fails to be executed. The performance varies in specific scenarios, and a log is printed to notify you.
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 obtain 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)Obtains 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)Obtains the JSVM_ExtendedErrorInfo struct that contains the last error. 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 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)Obtains 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 handle scope.
JSVM_EXTERN JSVM_Status OH_JSVM_CloseHandleScope(JSVM_Env env,JSVM_HandleScope scope)(Mandatory) Closes the handle scope in the reverse order of opening it.
JSVM_EXTERN JSVM_Status OH_JSVM_OpenEscapableHandleScope(JSVM_Env env,JSVM_EscapableHandleScope* result)Opens an escapable handle scope.
JSVM_EXTERN JSVM_Status OH_JSVM_CloseEscapableHandleScope(JSVM_Env env,JSVM_EscapableHandleScope scope)(Mandatory) Closes the escapable handle scope in the reverse order of opening it. This JSVM_API can be called even if there is a pending JavaScript exception.
JSVM_EXTERN JSVM_Status OH_JSVM_EscapeHandle(JSVM_Env env,JSVM_EscapableHandleScope scope,JSVM_Value escapee,JSVM_Value* result)Escapes a handle of a JavaScript object so that it is valid through the lifecycle of the outer 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 reference with the specified reference count for the input value.
JSVM_EXTERN JSVM_Status OH_JSVM_DeleteReference(JSVM_Env env,JSVM_Ref ref)Deletes the input 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)Obtains the JSVM_Value returned by the JSVM-API, which is the JavaScript value associated with JSVM_Ref. If the value is invalid, NULL is returned.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArray(JSVM_Env env,JSVM_Value* result)Creates an array. This API returns the JSVM-API value of the JavaScript Array type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArrayWithLength(JSVM_Env env,size_t length,JSVM_Value* result)Creates an array with a specified length. This API returns the JSVM-API value of the JavaScript Array type. The length property of the array is set to the input 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 implemented by the underlying VM.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArraybuffer(JSVM_Env env,size_t byteLength,void** data,JSVM_Value* result)Creates an array buffer. This API returns the JSVM-API value of 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 parameter. 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_EXTERN JSVM_Status OH_JSVM_AllocateArrayBufferBackingStoreData(size_t byteLength,JSVM_InitializedFlag initialized,void **data)Allocates a segment of BackingStore memory to the array buffer.
JSVM_EXTERN JSVM_Status OH_JSVM_FreeArrayBufferBackingStoreData(void *data)Frees the BackingStore memory allocated by OH_JSVM_AllocateArrayBufferBackingStoreData.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateArrayBufferFromBackingStoreData(JSVM_Env env,void *data,size_t backingStoreSize,size_t offset,size_t arrayBufferSize,JSVM_Value *result)Creates an array buffer in the allocated BackingStore memory.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDate(JSVM_Env env,double time,JSVM_Value* result)Creates a date. This API ignores leap seconds because ECMAScript complies with the POSIX time specifications.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternal(JSVM_Env env,void* data,JSVM_Finalize finalizeCb,void* finalizeHint,JSVM_Value* result)Creates 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 will be called when the newly created JavaScript object is garbage-collected. The created value is not an object, so it does not support additional properties. 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)Creates 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 with a UTF-8-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. This API returns the symbol if it already exists; otherwise, a 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 value of "length × element scalar bytes + byteOffset" must not be greater than the value of ByteLength() of the input array. Otherwise, a range error 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 sum of the binary length and byte offset cannot be greater than the size (in bytes) of the input array. Otherwise, a range error is thrown.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt32(JSVM_Env env,int32_t value,JSVM_Value* result)Converts a value of the C int32_t type to a value of the JavaScript number type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateUint32(JSVM_Env env,uint32_t value,JSVM_Value* result)Converts a value of the C uint32_t type to a value of the JavaScript number type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt64(JSVM_Env env,int64_t value,JSVM_Value* result)Converts a value of the C int64_t type to a value of the JavaScript number type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDouble(JSVM_Env env,double value,JSVM_Value* result)Converts a value of the C double type to a value of the JavaScript number type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintInt64(JSVM_Env env,int64_t value,JSVM_Value* result)Converts a value of the C int64_t type to a value of the JavaScript BigInt type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintUint64(JSVM_Env env,uint64_t value,JSVM_Value* result)Converts a value of the C uint64_t type to a value of the JavaScript BigInt type.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintWords(JSVM_Env env,int signBit,size_t wordCount,const uint64_t* words,JSVM_Value* result)Converts a group of 64-bit unsigned bits to a single BigInt value.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringLatin1(JSVM_Env env,const char* str,size_t length,JSVM_Value* result)Converts an ISO-8859-1-encoded C string to a JavaScript string. A native string is copied.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf16(JSVM_Env env,const char16_t* str,size_t length,JSVM_Value* result)Converts a UTF-16LE-encoded C string to a JavaScript string. A native string is copied.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf8(JSVM_Env env,const char* str,size_t length,JSVM_Value* result)Creates a JavaScript string using a UTF-8-encoded C string. A native string is copied.
JSVM_EXTERN JSVM_Status OH_JSVM_GetArrayLength(JSVM_Env env,JSVM_Value value,uint32_t* result)Obtains the length of an array.
JSVM_EXTERN JSVM_Status OH_JSVM_GetArraybufferInfo(JSVM_Env env,JSVM_Value arraybuffer,void** data,size_t* byteLength)Obtains 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)Obtains 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)Obtains 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)Obtains the proprieties of a DataView. If any property is not required, its output parameter can be NULL.
JSVM_EXTERN JSVM_Status OH_JSVM_GetDateValue(JSVM_Env env,JSVM_Value value,double* result)Obtains the C double-precision primitive equivalent of a given JavaScript date. If this API call is successfully, 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)Obtains the C Boolean primitive equivalent of a given JavaScript Boolean value.
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueDouble(JSVM_Env env,JSVM_Value value,double* result)Obtains 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)Obtains the C int64_t primitive equivalent of a given JavaScript BigInt value. 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)Obtains the C uint64_t primitive equivalent of a given JavaScript BigInt value. 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)Converts a BigInt value to the sign bit, 64-bit little-endian array, and number of elements in the array. 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)Obtains 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)Obtains 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)Obtains 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)Obtains the ISO-8859-1-encoded string corresponding to the input value.
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf8(JSVM_Env env,JSVM_Value value,char* buf,size_t bufsize,size_t* result)Obtains the UTF-8-encoded string corresponding to the input value.
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueStringUtf16(JSVM_Env env,JSVM_Value value,char16_t* buf,size_t bufsize,size_t* result)Obtains the UTF-16-encoded string corresponding to the input value.
JSVM_EXTERN JSVM_Status OH_JSVM_GetValueUint32(JSVM_Env env,JSVM_Value value,uint32_t* result)Obtains 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)Obtains 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)Obtains the global object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetNull(JSVM_Env env,JSVM_Value* result)Obtains the null object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetUndefined(JSVM_Env env,JSVM_Value* result)Obtains 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 input 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 input 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 a 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 a 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 a 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 input object is an ArrayBuffer.
JSVM_EXTERN JSVM_Status OH_JSVM_IsDate(JSVM_Env env,JSVM_Value value,bool* isDate)Checks whether the input object is a date.
JSVM_EXTERN JSVM_Status OH_JSVM_IsTypedarray(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the input object is a typed array.
JSVM_EXTERN JSVM_Status OH_JSVM_IsDataview(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the input object is DataView.
JSVM_EXTERN JSVM_Status OH_JSVM_StrictEquals(JSVM_Env env,JSVM_Value lhs,JSVM_Value rhs,bool* result)Provides a 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 a 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 a behavior similar to calling the detach operation of ArrayBuffer.
JSVM_EXTERN JSVM_Status OH_JSVM_IsDetachedArraybuffer(JSVM_Env env,JSVM_Value value,bool* result)Provides a behavior similar to calling the IsDetachedBuffer operation of ArrayBuffer.
JSVM_EXTERN JSVM_Status OH_JSVM_GetPropertyNames(JSVM_Env env,JSVM_Value object,JSVM_Value* result)Obtains 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)Obtains all available property names of the object.
JSVM_EXTERN JSVM_Status OH_JSVM_SetProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,JSVM_Value value)Sets the key property for the input object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,JSVM_Value* result)Obtains the key property from the input object.
JSVM_EXTERN JSVM_Status OH_JSVM_HasProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,bool* result)Checks whether the input object has the key property.
JSVM_EXTERN JSVM_Status OH_JSVM_DeleteProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,bool* result)Deletes the key property from the object.
JSVM_EXTERN JSVM_Status OH_JSVM_HasOwnProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,bool* result)Checks whether the input object has the key 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)Sets a property with a specified name. This method is equivalent to calling OH_JSVM_SetProperty to set the utf8Name property.
JSVM_EXTERN JSVM_Status OH_JSVM_GetNamedProperty(JSVM_Env env,JSVM_Value object,const char* utf8name,JSVM_Value* result)Obtains the named property. This method is equivalent to calling OH_JSVM_GetProperty to obtain the utf8Name property.
JSVM_EXTERN JSVM_Status OH_JSVM_HasNamedProperty(JSVM_Env env,JSVM_Value object,const char* utf8name,bool* result)Checks whether an object has the named property. This method is equivalent to calling OH_JSVM_HasProperty to check whether the object has the utf8Name property.
JSVM_EXTERN JSVM_Status OH_JSVM_SetElement(JSVM_Env env,JSVM_Value object,uint32_t index,JSVM_Value value)Sets an element for the input object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetElement(JSVM_Env env,JSVM_Value object,uint32_t index,JSVM_Value* result)Obtains 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 input 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 a JavaScript object. Once a JavaScript object is frozen, new properties cannot be added to it, existing properties cannot be removed, the enumerability, configurability, or writability of existing properties cannot be changed, and the values of existing properties and object prototypes cannot be changed.
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSeal(JSVM_Env env,JSVM_Value object)Encapsulates a specified object, which 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 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, you should explicitly set properties on any visible object in JavaScript 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)Obtains 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)Obtains the new target called by the constructor. If the current callback is not called by a constructor, 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 a JavaScript object, which can be retrieved using OH_JSVM_Unwrap() later.
JSVM_EXTERN JSVM_Status OH_JSVM_Unwrap(JSVM_Env env,JSVM_Value jsObject,void** result)Unwraps a native instance in a JavaScript object. 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 parameter 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)Checks 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)Obtains the latest JSVM-API version supported by the JSVM runtime. New JSVM-API APIs will be added to support more features. With this API, the new features of a certain JSVM version can be used, or callbacks are provided if a feature is not supported.
JSVM_EXTERN JSVM_Status OH_JSVM_GetVMInfo(JSVM_VMInfo* result)Obtains 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 native.
JSVM_EXTERN JSVM_Status OH_JSVM_PromiseRegisterHandler(JSVM_Env env,JSVM_Value promise,JSVM_Value onFulfilled,JSVM_Value onRejected,JSVM_Value* result)Registers a handler for processing promise fulfillment and rejection.
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)Obtains heap statistics of a VM.
JSVM_EXTERN JSVM_Status OH_JSVM_StartCpuProfiler(JSVM_VM vm,JSVM_CpuProfiler* result)Creates and starts a CPU profiler instance.
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)Obtains a snapshot of the current heap 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 instance on the specified host and port for debugging JS 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 handlers including getter, setter, deleter, and enumerator with the given class name, constructor, properties, and callback, which are called as callbacks.
JSVM_EXTERN JSVM_Status OH_JSVM_IsLocked(JSVM_Env env, bool* isLocked)Checks whether the current thread holds a lock of the specified environment. Only the thread that holds the lock can use the environment.
JSVM_EXTERN JSVM_Status OH_JSVM_AcquireLock(JSVM_Env env)Obtains a lock. Only the thread that holds the lock can use the environment.
JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseLock(JSVM_Env env)Releases a lock. Only the thread that holds the lock can use the environment.
JSVM_EXTERN JSVM_Status OH_JSVM_IsUndefined(JSVM_Env env,JSVM_Value value,bool* isUndefined)Checks whether the input value is Undefined. This API is equivalent to value === undefined in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsNull(JSVM_Env env,JSVM_Value value,bool* isNull)Checks whether the input value is a Null object. This API is equivalent to value === null in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsNullOrUndefined(JSVM_Env env,JSVM_Value value,bool* isNullOrUndefined)Checks whether the input value is Null or Undefined. This API is equivalent to value == null in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsBoolean(JSVM_Env env,JSVM_Value value,bool* isBoolean)Checks whether the input value is a Boolean value. This API is equivalent to typeof value ==='boolean' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsNumber(JSVM_Env env,JSVM_Value value,bool* isNumber)Checks whether the input value is a number. This API is equivalent to typeof value === 'number' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsString(JSVM_Env env,JSVM_Value value,bool* isString)Checks whether the input value is a string. This API is equivalent to typeof value === 'string' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbol(JSVM_Env env,JSVM_Value value,bool* isSymbol)Checks whether the input value is a symbol. This API is equivalent to typeof value === 'symbol' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsFunction(JSVM_Env env,JSVM_Value value,bool* isFunction)Checks whether the input value is a function. This API is equivalent to typeof value === 'function' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_IsObject(JSVM_Env env,JSVM_Value value,bool* isObject)Checks whether the input value is an object.
JSVM_EXTERN JSVM_Status OH_JSVM_IsBigInt(JSVM_Env env,JSVM_Value value,bool* isBigInt)Checks whether the input value is a BigInt value. This API is equivalent to typeof value === 'bigint' in JavaScript code.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateMap(JSVM_Env env, JSVM_Value* result)Creates a JavaScript value of the Map type.
JSVM_EXTERN JSVM_Status OH_JSVM_IsMap(JSVM_Env env,JSVM_Value value,bool* isMap)Checks whether the input value is of the Map type.
JSVM_EXTERN JSVM_Status OH_JSVM_IsConstructor(JSVM_Env env,JSVM_Value value,bool* isConstructor)Checks whether the input value is a constructor.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateRegExp(JSVM_Env env,JSVM_Value value,JSVM_RegExpFlags flags,JSVM_Value* result)Creates a regular expression object corresponding to the input JavaScript string. This API may throw an exception.
JSVM_EXTERN JSVM_Status OH_JSVM_ObjectGetPrototypeOf(JSVM_Env env,JSVM_Value object,JSVM_Value* result)Obtains 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 value of the Set type.
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 input value 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 message loop in the VM. This message loop can be executed through the external event loop.
JSVM_EXTERN JSVM_Status OH_JSVM_PerformMicrotaskCheckpoint(JSVM_VM vm)Checks whether there are microtasks waiting in the queue. If yes, execute them.
JSVM_EXTERN JSVM_Status OH_JSVM_IsCallable(JSVM_Env env, JSVM_Value value, bool* isCallable)Checks whether the input value is callable.
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 the name inspector and its corresponding Unix Domain port with the specified 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 the WebAssembly bytecode to obtain a WebAssembly module. If the WebAssembly cache is provided, it will be deserialized first. If this API does not have the JIT permission, a log is printed to notify you.
JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmFunction(JSVM_Env env,JSVM_Value wasmModule,uint32_t functionIndex,JSVM_WasmOptLevel optLevel)Compiles a WebAssembly function with the specified index at a specified optimization level. If this API does not have the JIT permission, a log is printed to notify you.
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. If this API does not have the JIT permission, a log is printed to notify you.
JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseCache(JSVM_Env env,const uint8_t* cacheData,JSVM_CacheType cacheType)Releases the cache of a specified type.
JSVM_EXTERN JSVM_Status OH_JSVM_IsBigIntObject(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the given JSVM_Value is a BigInt object.
JSVM_EXTERN JSVM_Status OH_JSVM_IsBooleanObject(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the given JSVM_Value is a Boolean object.
JSVM_EXTERN JSVM_Status OH_JSVM_IsStringObject(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the given JSVM_Value is a string object.
JSVM_EXTERN JSVM_Status OH_JSVM_IsNumberObject(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the given JSVM_Value is a number object.
JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbolObject(JSVM_Env env,JSVM_Value value,bool* result)Checks whether the given JSVM_Value is a symbol object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolAsyncIterator(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.AsyncIterator capability from the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolHasInstance(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.HasInstance capability from the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolIsConcatSpreadable(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.IsConcatSpreadable capability from the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolMatch(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Match capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolReplace(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Replace capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolSearch(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Search capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolSplit(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Split capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolToPrimitive(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.ToPrimitive capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolUnscopables(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Unscopables capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolToStringTag(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.ToStringTag capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolIterator(JSVM_Env env, JSVM_Value* result)Obtains the Symbol.Iterator capability of the well-known symbol.
JSVM_EXTERN JSVM_Status OH_JSVM_TraceStart(size_t count,const JSVM_TraceCategory* categories,const char* tag,size_t eventsCount)Starts collecting information of the specified trace categories for all JSVM runtime instances (thread-unsafe).
JSVM_EXTERN JSVM_Status OH_JSVM_TraceStop(JSVM_OutputStream stream, void* streamData)Stops collecting information of a specified trace category for all JSVM runtime instances (thread-unsafe).
JSVM_EXTERN JSVM_Status OH_JSVM_AddHandlerForGC(JSVM_VM vm,JSVM_CBTriggerTimeForGC triggerTime,JSVM_HandlerForGC handler,JSVM_GCType gcType,void* userData)Adds a handler for GC to the VM.
JSVM_EXTERN JSVM_Status OH_JSVM_RemoveHandlerForGC(JSVM_VM vm,JSVM_CBTriggerTimeForGC triggerTime,JSVM_HandlerForGC handler,void* userData)Removes the handler for GC from the VM.
JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForOOMError(JSVM_VM vm,JSVM_HandlerForOOMError handler)Sets a handler for OOM errors. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.
JSVM_EXTERN JSVM_Status OH_JSVM_SetDebugOption(JSVM_Env env, JSVM_DebugOption debugOption, bool isEnabled)Enables or disables a specific debugging option for a JSVM environment.
JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForFatalError(JSVM_VM vm,JSVM_HandlerForFatalError handler)Sets a handler for fatal errors. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.
JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForPromiseReject(JSVM_VM vm,JSVM_HandlerForPromiseReject handler)Sets a handler for the PromiseReject error. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.
JSVM_EXTERN JSVM_Status OH_JSVM_DefineClassWithOptions(JSVM_Env env,const char* utf8name,size_t length,JSVM_Callback constructor,size_t propertyCount,const JSVM_PropertyDescriptor* properties,JSVM_Value parentClass,size_t option_count,JSVM_DefineClassOptions options[],JSVM_Value* result)Defines a class with options. When a C++ class is encapsulated, the C++ constructor callback passed through the constructor should be a static method in the class. This method calls the actual class constructor, encapsulates a new C++ instance into a JavaScript object based on the input options, and returns the encapsulated object.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternalStringLatin1(JSVM_Env env,char* str,size_t length,JSVM_Finalize finalizeCallback,void* finalizeHint,JSVM_Value* result,bool* copied)Creates an external JavaScript string with an ISO-8859-1-encoded C string. If the creation fails, the original native string is copied.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternalStringUtf16(JSVM_Env env,char16_t* str,size_t length,JSVM_Finalize finalizeCallback,void* finalizeHint,JSVM_Value* result,bool* copied)Creates an external JavaScript string with a UTF-16LE-encoded C string. If the creation fails, the original native string is copied.
JSVM_EXTERN JSVM_Status OH_JSVM_CreatePrivate(JSVM_Env env,JSVM_Value description,JSVM_Data* result)Creates a JavaScript private key object.
JSVM_EXTERN JSVM_Status OH_JSVM_SetPrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key,JSVM_Value value)Sets the private property for an input object.
JSVM_EXTERN JSVM_Status OH_JSVM_GetPrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key,JSVM_Value *result)Obtains the private property of an input object based on the private key.
JSVM_EXTERN JSVM_Status OH_JSVM_DeletePrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key)Deletes the private property corresponding to the private key from the input object.
JSVM_EXTERN JSVM_Status OH_JSVM_CreateDataReference(JSVM_Env env,JSVM_Data data,uint32_t initialRefcount,JSVM_Ref* result)Creates a reference to a given JSVM_Data object. The initial reference count is the input value of initialRefcount.
JSVM_EXTERN JSVM_Status OH_JSVM_GetReferenceData(JSVM_Env env,JSVM_Ref ref,JSVM_Data* result)Obtains the JSVM_Data (a JavaScript value associated with the JSVM reference) through the result parameter if the reference is still valid. Otherwise, the result is null.

Function Description

OH_JSVM_Init()

JSVM_EXTERN JSVM_Status OH_JSVM_Init(const JSVM_InitOptions* options)

Description

Initializes a JavaScript VM.

Since: 11

Parameters

NameDescription
const JSVM_InitOptions* optionsPointer to the options for initializing the JavaScript VM.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the operation fails, indicating that JSVM initialization is complete and that repeated execution is not required.

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

NameDescription
const JSVM_CreateVMOptions* optionsPointer to the options for creating a VM instance.
JSVM_VM* resultPointer to the new VM instance.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_SetMicrotaskPolicy()

JSVM_EXTERN JSVM_Status OH_JSVM_SetMicrotaskPolicy(JSVM_VM vm,JSVM_MicrotaskPolicy policy)

Description

Sets the microtask execution policy for a VM instance. If this method is not called, the default policy JSVM_MicrotaskPolicy::JSVM_MICROTASK_AUTO is used.

Since: 18

Parameters

NameDescription
JSVM_VM vmTarget VM instance.
JSVM_MicrotaskPolicy policyPolicy for executing microtasks.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns JSVM_OK if this API call is successful.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_DestroyVM()

JSVM_EXTERN JSVM_Status OH_JSVM_DestroyVM(JSVM_VM vm)

Description

Destroys a VM instance.

Since: 11

Parameters

NameDescription
JSVM_VM vmVM instance to be destroyed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_CreateProxy()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateProxy(JSVM_Env env,JSVM_Value target,JSVM_Value handler,JSVM_Value* result)

Description

Creates a JavaScript proxy. This API is equivalent to calling new Proxy(target, handler) in JS.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value targetJavaScript object used to create a proxy.
JSVM_Value handlerHandler that defines the operations to be intercepted and how to handle intercepted operations.
JSVM_Value* resultJavaScript proxy created.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_OBJECT_EXPECTED: object expected. This code is returned if the target or handler is not a JavaScript object.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_IsProxy()

JSVM_EXTERN JSVM_Status OH_JSVM_IsProxy(JSVM_Env env,JSVM_Value value,bool* isProxy)

Description

Checks whether the input value is a JavaScript proxy.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueValue to check.
bool* isProxyPointer to the check result, indicating whether the value is a JavaScript Proxy. The value true indicates the value is a JavaScript Proxy, and false indicates the opposite.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_ProxyGetTarget()

JSVM_EXTERN JSVM_Status OH_JSVM_ProxyGetTarget(JSVM_Env env,JSVM_Value value,JSVM_Value* result)

Description

Obtains the target object in the JavaScript Proxy.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueProxy of the target object.
JSVM_Value* resultPointer to the target object.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_INVALID_TYPE: invalid type. This code is returned if the value is not a JavaScript Proxy.

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

NameDescription
JSVM_VM vmTarget VM instance.
JSVM_VMScope* resultPointer to the new VM scope.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_VM vmTarget VM instance.
JSVM_VMScope scopeVM scope to be closed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_VM vmVM instance, in which the new environment will be created.
size_t propertyCountNumber of elements in the property array.
const JSVM_PropertyDescriptor* propertiesPointer to the array of property descriptors.
JSVM_Env* resultPointer to the new environment.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_VM vmVM instance, in which the new environment will be created.
size_t indexIndex of the environment in the snapshot.
JSVM_Env* resultPointer to the new environment.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_DestroyEnv()

JSVM_EXTERN JSVM_Status OH_JSVM_DestroyEnv(JSVM_Env env)

Description

Destroys the environment.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment to be destroyed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_EnvScope* resultPointer to the new environment scope.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CloseEnvScope()

JSVM_EXTERN JSVM_Status OH_JSVM_CloseEnvScope(JSVM_Env env,JSVM_EnvScope scope)

Description

Closes the environment scope.

Since: 11

Parameters

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_EnvScope scopeEnvironment scope to be closed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetVM()

JSVM_EXTERN JSVM_Status OH_JSVM_GetVM(JSVM_Env env,JSVM_VM* result)

Description

Obtains a VM instance.

Since: 12

Parameters

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_VM* resultPointer to the VM instance of the specified environment.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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 JavaScript code snippet and returns the compiled script.

Since: 11

Parameters

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_Value scriptJavaScript code that includes the script to be compiled.
const uint8_t* cachedData(Optional) Pointer to the code cache data of the script.
size_t cacheDataLengthLength of the cachedData array.
bool eagerCompileWhether to compile the script immediately. The value true indicates that the script should be compiled immediately, and false indicates the opposite.
bool* cacheRejectedPointer to the Boolean value, indicating whether the code cache is rejected. The value true indicates the code cache is rejected, and false indicates the opposite.
JSVM_Script* resultPointer to the compiled script.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input data is a null pointer. JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_CANNOT_RUN_JS: JS execution failed.
JSVM_PENDING_EXCEPTION: pending exception.

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 JavaScript code snippet that contains source map information and returns the compiled script.

Since: 12

Parameters

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_Value scriptJavaScript code that includes the script to be compiled.
const uint8_t* cachedData(Optional) Pointer to the code cache data of the script.
size_t cacheDataLengthLength of the cachedData array.
bool eagerCompileWhether to compile the script immediately. The value true indicates that the script should be compiled immediately, and false indicates the opposite.
bool* cacheRejectedPointer to the Boolean value, indicating whether the code cache is rejected. The value true indicates the code cache is rejected, and false indicates the opposite.
JSVM_ScriptOrigin* originPointer to the source code information, including the source map location and source code file name.
JSVM_Script* resultPointer to the compiled script.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input data is a null pointer. JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.
JSVM_GENERIC_FAILURE: generic failure.
JSVM_CANNOT_RUN_JS: JS execution failed.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_CompileScriptWithOptions()

JSVM_EXTERN JSVM_Status OH_JSVM_CompileScriptWithOptions(JSVM_Env env,JSVM_Value script,size_t optionCount,JSVM_CompileOptions options[],JSVM_Script* result)

Description

Compiles a JavaScript code snippet and returns the compiled script.

Since: 12

Parameters

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_Value scriptJavaScript code that includes the script to be compiled.
size_t optionCountLength of the input options array.
JSVM_CompileOptions options[]Array of options, which stores all compilation options.
JSVM_Script* resultPointer to the compiled script.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input data is a null pointer.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envTarget environment in which the JSVM-API will be called.
JSVM_Script scriptTarget script.
const uint8_t** dataDouble pointer to the code cache data.
size_t* lengthPointer to the length of the code cache data.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure.

OH_JSVM_RunScript()

JSVM_EXTERN JSVM_Status OH_JSVM_RunScript(JSVM_Env env,JSVM_Script script,JSVM_Value* result)

Description

Runs a JavaScript code snippet 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. Without the JIT permission, the script containing WebAssembly fails to be executed. The performance varies in specific scenarios, and a log is printed to notify you.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Script scriptJavaScript string that includes the script to be executed.
JSVM_Value* resultPointer to the value generated after the script is executed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure.
JSVM_PENDING_EXCEPTION: pending exception.

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 obtain 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
void* dataPointer to the data bound for this instance.
JSVM_Finalize finalizeCbFunction for destroying the environment.
void* finalizeHintPointer to the optional hint passed to the finalize callback during garbage collection.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetInstanceData()

JSVM_EXTERN JSVM_Status OH_JSVM_GetInstanceData(JSVM_Env env,void** data)

Description

Obtains 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
void** dataDouble pointer to the data that has been set by OH_JSVM_SetInstanceData(), associated with the current JSVM environment.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetLastErrorInfo()

JSVM_EXTERN JSVM_Status OH_JSVM_GetLastErrorInfo(JSVM_Env env,const JSVM_ExtendedErrorInfo** result)

Description

Obtains the JSVM_ExtendedErrorInfo struct that contains the last error. 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 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const JSVM_ExtendedErrorInfo** resultDouble pointer to the JSVM_ExtendedErrorInfo struct that contains more information about the error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value errorJavaScript error to be thrown.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* codePointer to the optional error code to be set on the error.
const char* msgPointer to the C string representing the text associated with the error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* codePointer to the optional error code to be set on the error.
const char* msgPointer to the C string representing the text associated with the error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* codePointer to the optional error code to be set on the error.
const char* msgPointer to the C string representing the text associated with the error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* codePointer to the optional error code to be set on the error.
const char* msgPointer to the C string representing the text associated with the error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* resultPointer to the check result. The value true means the JSVM_Value indicates an error, and false means the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value codeOptional JSVM_Value, which is a string with the associated error code.
JSVM_Value msgMessage that references the JavaScript string as an error.
JSVM_Value* resultPointer to the creation error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value codeOptional JSVM_Value, which is a string with the associated error code.
JSVM_Value msgMessage that references the JavaScript string as an error.
JSVM_Value* resultPointer to the creation error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value codeOptional JSVM_Value, which is a string with the associated error code.
JSVM_Value msgMessage that references the JavaScript string as an error.
JSVM_Value* resultPointer to the creation error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value codeOptional JSVM_Value, which is a string with the associated error code.
JSVM_Value msgMessage that references the JavaScript string as an error.
JSVM_Value* resultPointer to the creation error.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

OH_JSVM_GetAndClearLastException()

JSVM_EXTERN JSVM_Status OH_JSVM_GetAndClearLastException(JSVM_Env env,JSVM_Value* result)

Description

Obtains and clears the last exception. If pending occurs, a JavaScript exception is returned. Otherwise, NULL is returned.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the exception. An exception is returned if pending occurs. Otherwise, NULL is returned.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
bool* resultPointer to the exception. The value true indicates the last exception is caused by pending, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_OpenHandleScope()

JSVM_EXTERN JSVM_Status OH_JSVM_OpenHandleScope(JSVM_Env env,JSVM_HandleScope* result)

Description

Opens a new handle scope.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_HandleScope* resultPointer to the new handle scope.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CloseHandleScope()

JSVM_EXTERN JSVM_Status OH_JSVM_CloseHandleScope(JSVM_Env env,JSVM_HandleScope scope)

Description

(Mandatory) Closes the handle scope in the reverse order of opening it.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_HandleScope scopeHandle scope to be closed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_HANDLE_SCOPE_MISMATCH: handle scope mismatch.

OH_JSVM_OpenEscapableHandleScope()

JSVM_EXTERN JSVM_Status OH_JSVM_OpenEscapableHandleScope(JSVM_Env env,JSVM_EscapableHandleScope* result)

Description

Opens an escapable handle scope.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_EscapableHandleScope* resultPointer to the new escapable handle scope.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CloseEscapableHandleScope()

JSVM_EXTERN JSVM_Status OH_JSVM_CloseEscapableHandleScope(JSVM_Env env,JSVM_EscapableHandleScope scope)

Description

(Mandatory) Closes the escapable handle scope in the reverse order of opening it. This JSVM_API can be called even if there is a pending JavaScript exception.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_EscapableHandleScope scopeEscapable handle scope to be closed.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_HANDLE_SCOPE_MISMATCH: handle scope mismatch.

OH_JSVM_EscapeHandle()

JSVM_EXTERN JSVM_Status OH_JSVM_EscapeHandle(JSVM_Env env,JSVM_EscapableHandleScope scope,JSVM_Value escapee,JSVM_Value* result)

Description

Escapes a handle of a JavaScript object so that it is valid through the lifecycle of the outer scope. Each scope can be called only once. If it is called for multiple times, an error is returned.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_EscapableHandleScope scopeCurrent scope.
JSVM_Value escapeeJavaScript object to be escaped.
JSVM_Value* resultPointer to the handle to be escaped.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_ESCAPE_CALLED_TWICE: escape called twice. This code is returned if the scope object is closed.

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 reference with the specified reference count for the input value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM value for which a reference is being created.
uint32_t initialRefcountInitial reference count of a new reference.
JSVM_Ref* resultPointer to a new reference.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_DeleteReference()

JSVM_EXTERN JSVM_Status OH_JSVM_DeleteReference(JSVM_Env env,JSVM_Ref ref)

Description

Deletes the input reference.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Ref refReference to be deleted.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Ref refInput reference. Its reference count will increase.
uint32_t* resultPointer to the new reference count.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Ref refInput reference. Its reference count will decrease.
uint32_t* resultPointer to the new reference count.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure.

OH_JSVM_GetReferenceValue()

JSVM_EXTERN JSVM_Status OH_JSVM_GetReferenceValue(JSVM_Env env,JSVM_Ref ref,JSVM_Value* result)

Description

Obtains the JSVM_Value returned by the JSVM-API, which is the JavaScript value associated with JSVM_Ref. If the value is invalid, NULL is returned.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Ref refJSVM reference for requesting the corresponding value.
JSVM_Value* resultPointer to the JSVM_Value referenced by JSVM_Ref.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateArray()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateArray(JSVM_Env env,JSVM_Value* result)

Description

Creates an array. This API returns the JSVM-API value of the JavaScript Array type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JSVM value of the JavaScript Array type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateArrayWithLength()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateArrayWithLength(JSVM_Env env,size_t length,JSVM_Value* result)

Description

Creates an array with a specified length. This API returns the JSVM-API value of the JavaScript Array type. The length property of the array is set to the input 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 implemented by the underlying VM.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
size_t lengthInitial length of the array.
JSVM_Value* resultPointer to the JSVM value of the JavaScript Array type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateArraybuffer()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateArraybuffer(JSVM_Env env,size_t byteLength,void** data,JSVM_Value* result)

Description

Creates an array buffer. This API returns the JSVM-API value of 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 parameter. 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
size_t byteLengthLength of the array buffer to be created, in bytes.
void** dataDouble pointer to the underlying byte buffer of the ArrayBuffer. data can be ignored by passing NULL to it.
JSVM_Value* resultPointer to the JSVM value of the JavaScript ArrayBuffer.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_AllocateArrayBufferBackingStoreData()

JSVM_EXTERN JSVM_Status OH_JSVM_AllocateArrayBufferBackingStoreData(size_t byteLength,JSVM_InitializedFlag initialized,void **data)

Description

Allocates a segment of BackingStore memory to the array buffer.

Since: 12

Parameters

NameDescription
size_t byteLengthSize of the BackingStore memory.
JSVM_InitializedFlag initializedMode of initializing the BackingStore memory.
void **dataDouble pointer to the address of allocated BackingStore memory.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input data is a null pointer.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the memory application fails.

OH_JSVM_FreeArrayBufferBackingStoreData()

JSVM_EXTERN JSVM_Status OH_JSVM_FreeArrayBufferBackingStoreData(void *data)

Description

Frees the BackingStore memory allocated by OH_JSVM_AllocateArrayBufferBackingStoreData.

Since: 12

Parameters

NameDescription
void *dataPointer to the allocated BackingStore memory.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input data is a null pointer.

OH_JSVM_CreateArrayBufferFromBackingStoreData()

JSVM_EXTERN JSVM_Status 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 in the allocated BackingStore memory.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
void *dataPointer to the allocated BackingStore memory.
size_t backingStoreSizeSize of the BackingStore memory.
size_t offsetRelative offset between the start position of the array buffer in the memory and the memory header, in bytes.
size_t arrayBufferSizeSize of the array buffer, in bytes.
JSVM_Value *resultPointer to the array buffer address.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if one of the following exceptions occurs:
1. The sum of offset and arrayBufferSize is larger than backingStoreSize.
2. The value of backingStoreSize or arrayBufferSize is 0.
3. data or result is null.

OH_JSVM_CreateDate()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateDate(JSVM_Env env,double time,JSVM_Value* result)

Description

Creates a date. This API ignores leap seconds because ECMAScript complies with the POSIX time specifications.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
double timeECMAScript time since 00:00:00 UTC on January 1, 1970, in milliseconds.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript Date object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_CreateExternal()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternal(JSVM_Env env,void* data,JSVM_Finalize finalizeCb,void* finalizeHint,JSVM_Value* result)

Description

Creates 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 will be called when the newly created JavaScript object is garbage-collected. The created value is not an object, so it does not support additional properties. It is considered as a unique value type: Calling OH_JSVM_Typeof() with an external value generates JSVM_EXTERNAL.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
void* dataRaw pointer to external data.
JSVM_Finalize finalizeCbOptional callback used to collect external values. JSVM_Finalize provides more details.
void* finalizeHintPointer to the optional hint passed to the finalize callback during garbage collection.
JSVM_Value* resultPointer to the JSVM_Value of an external value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateObject()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateObject(JSVM_Env env,JSVM_Value* result)

Description

Creates a default JavaScript object. This function is equivalent to executing new Object() in JavaScript.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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 with a UTF-8-encoded C string.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value descriptionOptional JSVM_Value, which refers to the JavaScript string to be set to the symbol description.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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. This API returns the symbol if it already exists; otherwise, a symbol is created in the registry.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* utf8descriptionPointer to the symbol description that is in a UTF-8-encoded C string.
size_t lengthLength of the description string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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 value of "length × element scalar bytes + byteOffset" must not be greater than the value of ByteLength() of the input array. Otherwise, a range error is thrown.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_TypedarrayType typeScalar data type of an element in TypedArray.
size_t lengthNumber of elements in TypedArray.
JSVM_Value arraybufferArrayBuffer, which is the basis of TypedArray.
size_t byteOffsetByte offset for the start position of mapping TypedArray in the ArrayBuffer.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript TypedArray.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception.

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 sum of the binary length and byte offset cannot be greater than the size (in bytes) of the input array. Otherwise, a range error is thrown.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
size_t lengthNumber of elements in DataView.
JSVM_Value arraybufferArrayBuffer at the bottom layer of the DataView.
size_t byteOffsetByte offset in the ArrayBuffer, indicating the start position of mapping a DataView.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript DataView object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_CreateInt32()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt32(JSVM_Env env,int32_t value,JSVM_Value* result)

Description

Converts a value of the C int32_t type to a value of the JavaScript number type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
int32_t valueInteger value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript number type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateUint32()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateUint32(JSVM_Env env,uint32_t value,JSVM_Value* result)

Description

Converts a value of the C uint32_t type to a value of the JavaScript number type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
uint32_t valueUnsigned integer value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript number type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateInt64()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateInt64(JSVM_Env env,int64_t value,JSVM_Value* result)

Description

Converts a value of the C int64_t type to a value of the JavaScript number type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
int64_t valueInteger value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript number type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateDouble()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateDouble(JSVM_Env env,double value,JSVM_Value* result)

Description

Converts a value of the C double type to a value of the JavaScript number type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
double valueDouble-precision value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript number type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateBigintInt64()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintInt64(JSVM_Env env,int64_t value,JSVM_Value* result)

Description

Converts a value of the C int64_t type to a value of the JavaScript BigInt type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
int64_t valueInteger value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript BigInt type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateBigintUint64()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateBigintUint64(JSVM_Env env,uint64_t value,JSVM_Value* result)

Description

Converts a value of the C uint64_t type to a value of the JavaScript BigInt type.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
uint64_t valueUnsigned integer value to be represented in JavaScript.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript BigInt type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

Converts a group of 64-bit unsigned bits to a single BigInt value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
int signBitWhether the generated BigInt value is positive or negative.
size_t wordCountLength of the words array.
const uint64_t* wordsPointer to the uint64_t little-endian words array.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript BigInt type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic 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

Converts an ISO-8859-1-encoded C string to a JavaScript string. A native string is copied.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* strPointer to the buffer of an ISO-8859-1-encoded string.
size_t lengthLength of a string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript string.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_CreateStringUtf16()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateStringUtf16(JSVM_Env env,const char16_t* str,size_t length,JSVM_Value* result)

Description

Converts a UTF-16LE-encoded C string to a JavaScript string. A native string is copied.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char16_t* strPointer to the buffer of a UTF-16LE-encoded string.
size_t lengthLength of a string in 2-byte code. If it is null-terminated, the value is JSVM_AUTO_LENGTH.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript string.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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 using a UTF-8-encoded C string. A native string is copied.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* strPointer to the buffer of a UTF-8-encoded string.
size_t lengthLength of a string, in bytes. If it is null-terminated, the value is JSVM_AUTO_LENGTH.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript string.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_GetArrayLength()

JSVM_EXTERN JSVM_Status OH_JSVM_GetArrayLength(JSVM_Env env,JSVM_Value value,uint32_t* result)

Description

Obtains the length of an array.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript array whose length is to be queried.
uint32_t* resultPointer to the length of a uint32-encoded array.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_ARRAY_EXPECTED: array expected. This code is returned if the input parameter is not of the array type.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetArraybufferInfo()

JSVM_EXTERN JSVM_Status OH_JSVM_GetArraybufferInfo(JSVM_Env env,JSVM_Value arraybuffer,void** data,size_t* byteLength)

Description

Obtains the underlying data buffer of the ArrayBuffer and its length.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value arraybufferArrayBuffer to be queried.
void** dataDouble pointer to the underlying data buffer of the ArrayBuffer. If byte_length is 0, this value may be NULL or any other pointer value.
size_t* byteLengthPointer to the length of the underlying data buffer, in bytes.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_GetPrototype()

JSVM_EXTERN JSVM_Status OH_JSVM_GetPrototype(JSVM_Env env,JSVM_Value object,JSVM_Value* result)

Description

Obtains the prototype of an object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectJavaScript object whose prototype is to be returned. This will return the equivalent value of Object.getPrototypeOf (different from the prototype property of the function).
JSVM_Value* resultPointer to the prototype of a given object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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

Obtains the properties of a typed array. If any property is not required, its output parameter can be NULL.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value typedarrayTypedArray whose properties are to be queried.
JSVM_TypedarrayType* typePointer to the scalar data type of an element in TypedArray.
size_t* lengthPointer to the number of elements in TypedArray.
void** dataDouble pointer to the first element in TypedArray. The underlying data buffer of the TypedArray is adjusted by byte_offset so that it points to the first element. If the array length is 0, data may be NULL or any other pointer value.
JSVM_Value* arraybufferPointer to the ArrayBuffer under TypedArray.
size_t* byteOffsetPointer to the 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

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

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

Obtains the proprieties of a DataView. If any property is not required, its output parameter can be NULL.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value dataviewDataView whose properties are to be queried.
size_t* bytelengthPointer to the number of bytes in DataView.
void** dataDouble pointer to the data buffer in DataView. If bytelength is 0, this value may be NULL or any other pointer value.
JSVM_Value* arraybufferPointer to the ArrayBuffer, which is the basis of DataView.
size_t* byteOffsetPointer to the byte offset for the start position of mapping DataView in the data buffer.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input argument is not an external JSVM_Value.

OH_JSVM_GetDateValue()

JSVM_EXTERN JSVM_Status OH_JSVM_GetDateValue(JSVM_Env env,JSVM_Value value,double* result)

Description

Obtains the C double-precision primitive equivalent of a given JavaScript date. If this API call is successfully, 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript date.
double* resultPointer to the time value of the double type, expressed as the number of milliseconds since 00:00:00 UTC on January 1, 1970.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_DATE_EXPECTED: date expected. This code is returned if the input argument is not of the date type.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetValueBool()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBool(JSVM_Env env,JSVM_Value value,bool* result)

Description

Obtains the C Boolean primitive equivalent of a given JavaScript Boolean value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueInput JavaScript Boolean object.
bool* resultPointer to the Boolean value equivalent to the given JavaScript Boolean object. If the value of the value object is true, true is returned; otherwise, false is returned.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_BOOLEAN_EXPECTED: Boolean expected. This code is returned if the input parameter is not of the Boolean type.

OH_JSVM_GetValueDouble()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueDouble(JSVM_Env env,JSVM_Value value,double* result)

Description

Obtains the C double-precision primitive equivalent of a given JavaScript number.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript number.
double* resultPointer to the C double-precision primitive equivalent of a given JavaScript number.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_NUMBER_EXPECTED: number expected. This code is returned if the input parameter is not of the number type.

OH_JSVM_GetValueBigintInt64()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintInt64(JSVM_Env env,JSVM_Value value,int64_t* result,bool* lossless)

Description

Obtains the C int64_t primitive equivalent of a given JavaScript BigInt value. If necessary, it truncates the value and sets lossless to false.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript BigInt value.
int64_t* resultPointer to the C int64_t primitive equivalent of the given JavaScript BigInt value.
bool* losslessPointer to the Boolean value. The value true indicates the BigInt value is losslessly converted, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_BIGINT_EXPECTED: BigInt expected. This code is returned if the input parameter is not of the BigInt type.

OH_JSVM_GetValueBigintUint64()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueBigintUint64(JSVM_Env env,JSVM_Value value,uint64_t* result,bool* lossless)

Description

Obtains the C uint64_t primitive equivalent of a given JavaScript BigInt value. If necessary, it truncates the value and sets lossless to false.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript BigInt value.
uint64_t* resultPointer to the C uint64_t primitive equivalent of the given JavaScript BigInt value.
bool* losslessPointer to the Boolean value. The value true indicates the BigInt value is losslessly converted, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_BIGINT_EXPECTED: BigInt expected. This code is returned if the input parameter is not of the BigInt type.

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

Converts a BigInt value to the sign bit, 64-bit little-endian array, and number of elements in the array. Both signBit and words can be set to NULL. In this case, only wordCount is obtained.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript BigInt value.
int* signBitPointer to the JavaScript BigInt value, indicating a positive or negative integer.
size_t* wordCountPointer to the length of the words array. It will be set to the actual number of words required to store this BigInt.
uint64_t* wordsPointer to the pre-allocated 64-bit words array.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_BIGINT_EXPECTED: BigInt expected. This code is returned if the input parameter is not of the BigInt type.

OH_JSVM_GetValueExternal()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueExternal(JSVM_Env env,JSVM_Value value,void** result)

Description

Obtains the external data pointer previously passed to OH_JSVM_CreateExternal().

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript external value.
void** resultDouble pointer to the data wrapped by the JavaScript external value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input 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

Obtains the C int32 primitive equivalent of a given JavaScript number.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript number.
int32_t* resultPointer to the C int32 primitive equivalent of the given JavaScript number.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_NUMBER_EXPECTED: number expected. This code is returned if the input parameter is not of the number type.

OH_JSVM_GetValueInt64()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueInt64(JSVM_Env env,JSVM_Value value,int64_t* result)

Description

Obtains the C int64 primitive equivalent of a given JavaScript number.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript number.
int64_t* resultPointer to the C int64 primitive equivalent of the given JavaScript number.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_NUMBER_EXPECTED: number expected. This code is returned if the input parameter is not of the number type.

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

Obtains the ISO-8859-1-encoded string corresponding to the input value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript number.
char* bufPointer to the 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.
size_t bufsizeSize of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null.
size_t* resultPointer to the number of bytes copied to the buffer, excluding the null terminator.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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

Obtains the UTF-8-encoded string corresponding to the input value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript string.
char* bufPointer to the buffer to which a UTF-8-encoded string is written. If NULL is passed, the length of the string in bytes is returned in result, excluding the null terminator.
size_t bufsizeSize of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null.
size_t* resultPointer to the number of bytes copied to the buffer, excluding the null terminator.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

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

Obtains the UTF-16-encoded string corresponding to the input value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript string.
char16_t* bufPointer to the buffer to which a UTF-16LE-encoded string is written. If NULL is passed, the length of the string in 2-byte code is returned, excluding the null terminator.
size_t bufsizeSize of the destination buffer. If the size is insufficient, the returned string is truncated and terminated with null.
size_t* resultPointer to the number of the 2-byte code units copied to the buffer, excluding the null terminator.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.

OH_JSVM_GetValueUint32()

JSVM_EXTERN JSVM_Status OH_JSVM_GetValueUint32(JSVM_Env env,JSVM_Value value,uint32_t* result)

Description

Obtains the C uint_32 primitive equivalent of a given JavaScript number.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript number.
uint32_t* resultPointer to the C uint32_t primitive equivalent of a given JSVM_Value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_NUMBER_EXPECTED: number expected. This code is returned if the input parameter is not of the number type.

OH_JSVM_GetBoolean()

JSVM_EXTERN JSVM_Status OH_JSVM_GetBoolean(JSVM_Env env,bool value,JSVM_Value* result)

Description

Obtains a JavaScript singleton object that is used to represent the given Boolean value.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
bool valueBoolean value to be retrieved. The value can be true or false.
JSVM_Value* resultPointer to the JavaScript Boolean singleton to be retrieved.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetGlobal()

JSVM_EXTERN JSVM_Status OH_JSVM_GetGlobal(JSVM_Env env,JSVM_Value* result)

Description

Obtains the global object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JavaScript global object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetNull()

JSVM_EXTERN JSVM_Status OH_JSVM_GetNull(JSVM_Env env,JSVM_Value* result)

Description

Obtains the null object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JavaScript null object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetUndefined()

JSVM_EXTERN JSVM_Status OH_JSVM_GetUndefined(JSVM_Env env,JSVM_Value* result)

Description

Obtains the undefined object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JavaScript undefined value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be forcibly converted.
JSVM_Value* resultPointer to the JavaScript Boolean value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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 input value is an object, the function may run JavaScript code.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be forcibly converted.
JSVM_Value* resultPointer to the JavaScript number.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_NUMBER_EXPECTED: number expected. This code is returned if the input JavaScript value cannot be converted to a number.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be forcibly converted.
JSVM_Value* resultPointer to the JavaScript object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_OBJECT_EXPECTED: object expected. This code is returned if the input JavaScript value cannot be converted to an object.

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 input value is an object, the function may run JavaScript code.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be forcibly converted.
JSVM_Value* resultPointer to the JavaScript string.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input JavaScript value cannot be converted to a string.

OH_JSVM_Typeof()

JSVM_EXTERN JSVM_Status OH_JSVM_Typeof(JSVM_Env env,JSVM_Value value,JSVM_ValueType* result)

Description

Provides a 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value whose type is to be queried.
JSVM_ValueType* resultPointer to the type of the JavaScript value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_Instanceof()

JSVM_EXTERN JSVM_Status OH_JSVM_Instanceof(JSVM_Env env,JSVM_Value object,JSVM_Value constructor,bool* result)

Description

Provides a behavior similar to calling the instanceof operator on an object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectJavaScript value to be checked.
JSVM_Value constructorConstructor to be checked.
bool* resultPointer to the check result. The value true indicates that object instanceof constructor is true, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_FUNCTION_EXPECTED: function expected. This code is returned if the input parameter is not of the function type.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_IsArray()

JSVM_EXTERN JSVM_Status OH_JSVM_IsArray(JSVM_Env env,JSVM_Value value,bool* result)

Description

Provides a behavior similar to calling IsArray on an object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given object is an array, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsArraybuffer()

JSVM_EXTERN JSVM_Status OH_JSVM_IsArraybuffer(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the input object is an ArrayBuffer.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the specified object is an ArrayBuffer, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsDate()

JSVM_EXTERN JSVM_Status OH_JSVM_IsDate(JSVM_Env env,JSVM_Value value,bool* isDate)

Description

Checks whether the input object is a date.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* isDatePointer to the check result. The value true indicates that the given JSVM_Value is a JavaScript Date object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsTypedarray()

JSVM_EXTERN JSVM_Status OH_JSVM_IsTypedarray(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the input object is a typed array.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given JSVM_Value is a typed array, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsDataview()

JSVM_EXTERN JSVM_Status OH_JSVM_IsDataview(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the input object is DataView.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given JSVM_Value is a DataView, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_StrictEquals()

JSVM_EXTERN JSVM_Status OH_JSVM_StrictEquals(JSVM_Env env,JSVM_Value lhs,JSVM_Value rhs,bool* result)

Description

Provides a behavior similar to calling the strict equality algorithm (===).

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value lhsJavaScript value to be checked.
JSVM_Value rhsJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that two JSVM_Value objects are strictly equal, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_Equals()

JSVM_EXTERN JSVM_Status OH_JSVM_Equals(JSVM_Env env,JSVM_Value lhs,JSVM_Value rhs,bool* result)

Description

Provides a 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value lhsJavaScript value to be checked.
JSVM_Value rhsJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that two JSVM_Value objects are loosely equal, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_DetachArraybuffer()

JSVM_EXTERN JSVM_Status OH_JSVM_DetachArraybuffer(JSVM_Env env,JSVM_Value arraybuffer)

Description

Provides a behavior similar to calling the detach operation of ArrayBuffer.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value arraybufferJavaScript ArrayBuffer to be detached.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_DETACHABLE_ARRAYBUFFER_EXPECTED: ArrayBuffer expected. This code is returned if the input parameter is not an analyzable ArrayBuffer.

OH_JSVM_IsDetachedArraybuffer()

JSVM_EXTERN JSVM_Status OH_JSVM_IsDetachedArraybuffer(JSVM_Env env,JSVM_Value value,bool* result)

Description

Provides a behavior similar to calling the IsDetachedBuffer operation of ArrayBuffer.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript ArrayBuffer to be checked.
bool* resultPointer to the check result. The value true indicates that the ArrayBuffer is detached, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetPropertyNames()

JSVM_EXTERN JSVM_Status OH_JSVM_GetPropertyNames(JSVM_Env env,JSVM_Value object,JSVM_Value* result)

Description

Obtains 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be retrieved.
JSVM_Value* resultPointer to an array of property names of the object. You can use OH_JSVM_GetArrayLength and OH_JSVM_GetElement to iterate the result.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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

Obtains all available property names of the object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject from which the properties are retrieved.
JSVM_KeyCollectionMode keyModeKey collection mode for retrieving the prototype properties.
JSVM_KeyFilter keyFilterKey filter for properties to be retrieved (enumerable/readable/writable).
JSVM_KeyConversion keyConversionKey conversion mode, which determines whether to convert a number to a string.
JSVM_Value* resultPointer to an array of property names of the object. You can use OH_JSVM_GetArrayLength and OH_JSVM_GetElement to iterate the result.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic 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 the key property for the input object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be set.
JSVM_Value keyName of the property to be set.
JSVM_Value valueProperty value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetProperty()

JSVM_EXTERN JSVM_Status OH_JSVM_GetProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,JSVM_Value* result)

Description

Obtains the key property from the input object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject from which the property is retrieved.
JSVM_Value keyName of the property to be retrieved.
JSVM_Value* resultPointer to the property value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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 input object has the key property.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
JSVM_Value keyName of the property to be checked.
bool* resultPointer to the check result. The value true indicates that the input object has the key property, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_DeleteProperty()

JSVM_EXTERN JSVM_Status OH_JSVM_DeleteProperty(JSVM_Env env,JSVM_Value object,JSVM_Value key,bool* result)

Description

Deletes the key property from the object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
JSVM_Value keyName of the property to be deleted.
bool* resultPointer to the operation result. The value true indicates that the property deletion is successful, and false indicates the opposite. result can be ignored by passing NULL to it.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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 input object has the key 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
JSVM_Value keyName of the property to be checked.
bool* resultPointer to the check result. The value true indicates that the input object has the key property, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_NAME_EXPECTED: name expected. This code is returned if the input name is invalid.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_SetNamedProperty()

JSVM_EXTERN JSVM_Status OH_JSVM_SetNamedProperty(JSVM_Env env,JSVM_Value object,const char* utf8name,JSVM_Value value)

Description

Sets a property with a specified name. This method is equivalent to calling OH_JSVM_SetProperty to set the utf8Name property.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be set.
const char* utf8namePointer to the name of the property to be set.
JSVM_Value valueProperty value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetNamedProperty()

JSVM_EXTERN JSVM_Status OH_JSVM_GetNamedProperty(JSVM_Env env,JSVM_Value object,const char* utf8name,JSVM_Value* result)

Description

Obtains the named property. This method is equivalent to calling OH_JSVM_GetProperty to obtain the utf8Name property.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject from which the property is retrieved.
const char* utf8namePointer to the name of the property to be obtained.
JSVM_Value* resultPointer to the property value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_HasNamedProperty()

JSVM_EXTERN JSVM_Status OH_JSVM_HasNamedProperty(JSVM_Env env,JSVM_Value object,const char* utf8name,bool* result)

Description

Checks whether an object has the named property. This method is equivalent to calling OH_JSVM_HasProperty to check whether the object has the utf8Name property.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
const char* utf8namePointer to the name of the property to be checked.
bool* resultPointer to the check result. The value true indicates that the input object has the key property, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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 for the input object.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be set.
uint32_t indexIndex of the property to be set.
JSVM_Value valueProperty value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetElement()

JSVM_EXTERN JSVM_Status OH_JSVM_GetElement(JSVM_Env env,JSVM_Value object,uint32_t index,JSVM_Value* result)

Description

Obtains the element at the requested index.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be retrieved.
uint32_t indexIndex of the property to be obtained.
JSVM_Value* resultPointer to the property value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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 input object has an element at the specified index. If yes, the JSVM-API returns true.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
uint32_t indexIndex to be checked.
bool* resultPointer to the check result. The value true indicates that the input object has the key property, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be checked.
uint32_t indexIndex of the element to be deleted.
bool* resultPointer to the operation result. The value true indicates that the element deletion is successful, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject whose property is to be retrieved.
size_t propertyCountPointer to the number of elements in the properties array.
const JSVM_PropertyDescriptor* propertiesPointer to the array of property descriptors.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_ObjectFreeze()

JSVM_EXTERN JSVM_Status OH_JSVM_ObjectFreeze(JSVM_Env env,JSVM_Value object)

Description

Freezes a JavaScript object. Once a JavaScript object is frozen, new properties cannot be added to it, existing properties cannot be removed, the enumerability, configurability, or writability of existing properties cannot be changed, and the values of existing properties and object prototypes cannot be changed.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be frozen.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_ObjectSeal()

JSVM_EXTERN JSVM_Status OH_JSVM_ObjectSeal(JSVM_Env env,JSVM_Value object)

Description

Encapsulates a specified object, which prevents additions of properties and marks existing properties non-configurable.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectObject to be encapsulated.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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 native code.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value recvValue of this passed to the callee.
JSVM_Value funcJavaScript function to be called.
size_t argcNumber of elements in the argv array.
const JSVM_Value* argvPointer to the JSVM_values array, representing the JavaScript values to be passed to the function as arguments.
JSVM_Value* resultPointer to the returned JavaScript object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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, you should explicitly set properties on any visible object in JavaScript to access the function from the script.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* utf8namePointer to the optional UTF-8-encoded name of the function. This is visible in JavaScript as the name property of the new function object.
size_t lengthLength of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated).
JSVM_Callback cbNative function to be called when the function object is called. For details, see JSVM_Callback.
JSVM_Value* resultPointer to the JavaScript function object of the newly created function.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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

Obtains detailed information about the callback, such as the parameter from the given callback information and the this pointer.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_CallbackInfo cbinfoCallback information.
size_t* argcPointer to the length of the provided argv array and actual number of input arguments. argc can be ignored by passing NULL to it.
JSVM_Value* argvPointer to the 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 arguments are provided than declared, the rest of argv is filled with undefined JSVM_Values. argv can be ignored by passing NULL to it.
JSVM_Value* thisArgPointer to the JavaScript this argument. thisArg can be ignored by passing NULL to it.
void** dataDouble pointer to the callback data. data can be ignored by passing NULL to it.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetNewTarget()

JSVM_EXTERN JSVM_Status OH_JSVM_GetNewTarget(JSVM_Env env,JSVM_CallbackInfo cbinfo,JSVM_Value* result)

Description

Obtains the new target called by the constructor. If the current callback is not called by a constructor, the result is NULL.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_CallbackInfo cbinfoCallback information.
JSVM_Value* resultPointer to the new target called by the constructor.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value constructorJavaScript function that will be called as a constructor.
size_t argcNumber of elements in the argv array.
const JSVM_Value* argvPointer to the JavaScript value array. JSVM_Value indicates the parameter of the constructor. If argc is 0, argc can be ignored by passing NULL to it.
JSVM_Value* resultPointer to the returned JavaScript object, which is the constructed object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* utf8namePointer to the name of the JavaScript constructor. You are advised to use the C++ class name when wrapping a C++ class.
size_t lengthLength of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated).
JSVM_Callback constructorCallback of the constructor used to create 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.
size_t propertyCountNumber of properties in the array.
const JSVM_PropertyDescriptor* propertiesPointer to the property descriptors, which are used to define the properties and methods of a class.
JSVM_Value* resultPointer to the JSVM_Value of the constructor of a class.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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 a JavaScript object, which can be retrieved using OH_JSVM_Unwrap() later.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsObjectJavaScript object that will wrap a native object.
void* nativeObjectPointer to the native instance wrapped in a JavaScript object.
JSVM_Finalize finalizeCbOptional native callback, which can be used to release the native instance when the JavaScript object is garbage-collected.
void* finalizeHintPointer to the optional context hint passed to the finalize callback.
JSVM_Ref* resultPointer to the optional reference to the wrapped object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_Unwrap()

JSVM_EXTERN JSVM_Status OH_JSVM_Unwrap(JSVM_Env env,JSVM_Value jsObject,void** result)

Description

Unwraps a native instance in a JavaScript object. 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 parameter 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsObjectObject associated with the native instance.
void** resultDouble pointer to the wrapped native instance.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsObjectObject associated with the native instance.
void** resultDouble pointer to the wrapped native instance.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript object or external value to be tagged.
const JSVM_TypeTag* typeTagPointer to the type tag.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic 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

Checks 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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript object or external value to be checked.
const JSVM_TypeTag* typeTagPointer to the type tag used to compare any tags found on an object.
bool* resultPointer to the check result, indicating whether the specified type tag matches that on the object. If they are the same tag, result is set to true. Otherwise, result is set to false.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsObjectJavaScript object associated with native data.
void* finalizeDataPointer to the optional data to be passed to finalizeCb.
JSVM_Finalize finalizeCbNative callback used to release native data when a JavaScript object is garbage-collected. JSVM_Finalize provides more details.
void* finalizeHintPointer to the optional context hint passed to the finalize callback.
JSVM_Ref* resultPointer to the optional reference to a JavaScript object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_GetVersion()

JSVM_EXTERN JSVM_Status OH_JSVM_GetVersion(JSVM_Env env,uint32_t* result)

Description

Obtains the latest JSVM-API version supported by the JSVM runtime. New JSVM-API APIs will be added to support more features. With this API, the new features of a certain JSVM version can be used, or callbacks are provided if a feature is not supported.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
uint32_t* resultPointer to the JSVM-API of the latest version.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetVMInfo()

JSVM_EXTERN JSVM_Status OH_JSVM_GetVMInfo(JSVM_VMInfo* result)

Description

Obtains the VM information.

Since: 11

Parameters

NameDescription
JSVM_VMInfo* resultPointer to the VM information.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
int64_t changeInBytesChange in the size of externally allocated memory that remains active due to the JavaScript object.
int64_t* resultPointer to the adjusted value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_MemoryPressureLevel levelMemory pressure level to be set for the current VM.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Deferred* deferredPointer to the new deferred object, which can be passed to OH_JSVM_ResolveDeferred() or OH_JSVM_RejectDeferred() to resolve resp or reject the promise.
JSVM_Value* promisePointer to the JavaScript promise associated with the deferred object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Deferred deferredDeferred object whose associated promise is to be parsed.
JSVM_Value resolutionValue used to resolve a promise.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Deferred deferredDeferred object whose associated promise is to be parsed.
JSVM_Value rejectionValue used to reject a promise.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending 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 native.

Since: 11

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueValue to be checked.
bool* isPromisePointer to the check result. The value true indicates that the promise is a native promise object (which is created by the underlying engine), and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_PromiseRegisterHandler()

JSVM_EXTERN JSVM_Status OH_JSVM_PromiseRegisterHandler(JSVM_Env env,JSVM_Value promise,JSVM_Value onFulfilled,JSVM_Value onRejected,JSVM_Value* result)

Description

Registers a handler for processing promise fulfillment and rejection.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value promisePromise for which a handler needs to be registered.
JSVM_Value onFulfilledHandler to be invoked after the promise is fulfilled.
JSVM_Value onRejectedHandler to be invoked after the promise is rejected.
JSVM_Value* resultPointer to the new promise generated after a promise calls the then or catch API.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if env or promise is empty, or onFulfilled and onRejected are both empty.
JSVM_INVALID_TYPE: invalid type. This code is returned if the promise, onFulfilled, or onRejected is not of the JavaScript type.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if API execution error occurs.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsonStringString to be parsed.
JSVM_Value* resultPointer to the value obtained by parsing.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input parameter is not of the string type.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value jsonObjectObject to be stringified.
JSVM_Value* resultPointer to the converted string.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.
JSVM_PENDING_EXCEPTION: pending exception.

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

NameDescription
JSVM_VM vmTarget environment in which the API will be called.
size_t contextCountNumber of contexts.
const JSVM_Env* contextsPointer to the array of contexts to be added to the snapshot.
const char** blobDataDouble pointer to the snapshot data.
size_t* blobSizePointer to the size of snapshot data.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_GetHeapStatistics()

JSVM_EXTERN JSVM_Status OH_JSVM_GetHeapStatistics(JSVM_VM vm,JSVM_HeapStatistics* result)

Description

Obtains heap statistics of a VM.

Since: 12

Parameters

NameDescription
JSVM_VM vmVM that returns heap statistics.
JSVM_HeapStatistics* resultPointer to the heap statistics.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_StartCpuProfiler()

JSVM_EXTERN JSVM_Status OH_JSVM_StartCpuProfiler(JSVM_VM vm,JSVM_CpuProfiler* result)

Description

Creates and starts a CPU profiler instance.

Since: 12

Parameters

NameDescription
JSVM_VM vmVM for starting the CPU profiler.
JSVM_CpuProfiler* resultPointer to the CPU profiler.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_VM vmVM for starting the CPU profiler.
JSVM_CpuProfiler profilerCPU profiler to be stopped.
JSVM_OutputStream streamCallback for the output stream.
void* streamDataPointer to the optional data passed to the output stream. For example, it can be a file stream that writes the sample data passed in the output stream to a file.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_TakeHeapSnapshot()

JSVM_EXTERN JSVM_Status OH_JSVM_TakeHeapSnapshot(JSVM_VM vm,JSVM_OutputStream stream,void* streamData)

Description

Obtains a snapshot of the current heap and outputs it to a stream.

Since: 12

Parameters

NameDescription
JSVM_VM vmVM whose heap snapshot is to be obtained.
JSVM_OutputStream streamCallback for the output stream.
void* streamDataPointer to the optional data passed to the output stream. For example, it can be a file stream that writes the sample data passed in the output stream to a file.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_OpenInspector()

JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspector(JSVM_Env env,const char* host,uint16_t port)

Description

Opens an inspector instance on the specified host and port for debugging JS code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* hostPointer to the IP address of the host for listening for the inspector connection.
uint16_t portPort for listening for the inspector connection.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_CloseInspector()

JSVM_EXTERN JSVM_Status OH_JSVM_CloseInspector(JSVM_Env env)

Description

Closes all remaining inspector connections.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
bool breakNextLineWhether to break in the next line of JavaScript code. If this parameter is set to true, the next line of JavaScript code is suspended. You need to use the debugger to control the execution of the JavaScript code. If this parameter is set to false, the next line of JavaScript code is not interrupted.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

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 handlers including getter, setter, deleter, and enumerator with the given class name, constructor, properties, and callback, which are called as callbacks.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* utf8namePointer to the name of the JavaScript class constructor.
size_t lengthLength of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated).
JSVM_Callback constructorCallback of the constructor used to create class. This method must be of the JSVM_Callback type. The callback of the constructor must be a static member. C++ class constructors cannot be used. For details, see JSVM_Callback.
size_t propertyCountNumber of properties in the array.
const JSVM_PropertyDescriptor* propertiesPointer to the property descriptors of static data and instance data. For details about the properties, accessors, and methods of a class, see JSVM_PropertyDescriptor.
JSVM_PropertyHandlerCfg propertyHandlerCfgCallback to be invoked when an instance object property is accessed.
JSVM_Callback callAsFunctionCallbackCallback to be invoked when an instance object is called as a function.
JSVM_Value* resultPointer to the JSVM_Value of the constructor of a JavaScript class.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_GENERIC_FAILURE: generic failure due to unknown reasons.

OH_JSVM_IsLocked()

JSVM_EXTERN JSVM_Status OH_JSVM_IsLocked(JSVM_Env env, bool* isLocked)

Description

Checks whether the current thread holds a lock of the specified environment. Only the thread that holds the lock can use the environment.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the API.
bool* isLockedPointer to the result indicating whether the current thread holds the environment lock. The value true indicates that the environment lock is held, and the value false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_AcquireLock()

JSVM_EXTERN JSVM_Status OH_JSVM_AcquireLock(JSVM_Env env)

Description

Obtains a lock. Only the thread that holds the lock can use the environment.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the API.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_ReleaseLock()

JSVM_EXTERN JSVM_Status OH_JSVM_ReleaseLock(JSVM_Env env)

Description

Releases a lock. Only the thread that holds the lock can use the environment.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the API.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsUndefined()

JSVM_EXTERN JSVM_Status OH_JSVM_IsUndefined(JSVM_Env env,JSVM_Value value,bool* isUndefined)

Description

Checks whether the input value is Undefined. This API is equivalent to value === undefined in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isUndefinedPointer to the check result. The value true indicates that the JSVM_Value is Undefined, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsNull()

JSVM_EXTERN JSVM_Status OH_JSVM_IsNull(JSVM_Env env,JSVM_Value value,bool* isNull)

Description

Checks whether the input value is a Null object. This API is equivalent to value === null in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isNullPointer to the check result. The value true indicates that the JSVM_Value is Null, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsNullOrUndefined()

JSVM_EXTERN JSVM_Status OH_JSVM_IsNullOrUndefined(JSVM_Env env,JSVM_Value value,bool* isNullOrUndefined)

Description

Checks whether the input value is Null or Undefined. This API is equivalent to value == null in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isNullOrUndefinedPointer to the check result. The value true indicates that the JSVM_Value is Null or Undefined, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsBoolean()

JSVM_EXTERN JSVM_Status OH_JSVM_IsBoolean(JSVM_Env env,JSVM_Value value,bool* isBoolean)

Description

Checks whether the input value is a Boolean value. This API is equivalent to typeof value ==='boolean' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isBooleanPointer to the check result. The value true indicates that the JSVM_Value is of the Boolean type, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsNumber()

JSVM_EXTERN JSVM_Status OH_JSVM_IsNumber(JSVM_Env env,JSVM_Value value,bool* isNumber)

Description

Checks whether the input value is a number. This API is equivalent to typeof value === 'number' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isNumberPointer to the check result. The value true indicates that the JSVM_Value is a number, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsString()

JSVM_EXTERN JSVM_Status OH_JSVM_IsString(JSVM_Env env,JSVM_Value value,bool* isString)

Description

Checks whether the input value is a string. This API is equivalent to typeof value === 'string' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isStringPointer to the check result. The value true indicates that the JSVM_Value is a string, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsSymbol()

JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbol(JSVM_Env env,JSVM_Value value,bool* isSymbol)

Description

Checks whether the input value is a symbol. This API is equivalent to typeof value === 'symbol' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isSymbolPointer to the check result. The value true indicates that the JSVM_Value is a symbol, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsFunction()

JSVM_EXTERN JSVM_Status OH_JSVM_IsFunction(JSVM_Env env,JSVM_Value value,bool* isFunction)

Description

Checks whether the input value is a function. This API is equivalent to typeof value === 'function' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isFunctionPointer to the check result. The value true indicates that the JSVM_Value is a function, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsObject(JSVM_Env env,JSVM_Value value,bool* isObject)

Description

Checks whether the input value is an object.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isObjectPointer to the check result. The value true indicates that the given value is an object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsBigInt()

JSVM_EXTERN JSVM_Status OH_JSVM_IsBigInt(JSVM_Env env,JSVM_Value value,bool* isBigInt)

Description

Checks whether the input value is a BigInt value. This API is equivalent to typeof value === 'bigint' in JavaScript code.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isBigIntPointer to the check result. The value true indicates that the JSVM_Value is of the BigInt type, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_CreateMap()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateMap(JSVM_Env env, JSVM_Value* result)

Description

Creates a JavaScript value of the Map type.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the JSVM_Value of the JavaScript Map type.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_IsMap()

JSVM_EXTERN JSVM_Status OH_JSVM_IsMap(JSVM_Env env,JSVM_Value value,bool* isMap)

Description

Checks whether the input value is of the Map type.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isMapPointer to the check result. The value true indicates that the input value is of the Map type, and false indicates the opposite.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_IsConstructor()

JSVM_EXTERN JSVM_Status OH_JSVM_IsConstructor(JSVM_Env env,JSVM_Value value,bool* isConstructor)

Description

Checks whether the input value is a constructor.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* isConstructorPointer to the check result. The value true indicates that the input value is a constructor, and false indicates the opposite.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

OH_JSVM_CreateRegExp()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateRegExp(JSVM_Env env,JSVM_Value value,JSVM_RegExpFlags flags,JSVM_Value* result)

Description

Creates a regular expression object corresponding to the input JavaScript string. This API may throw an exception.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript string to be converted to a regular expression.
JSVM_RegExpFlags flagsRegular expression flags.
JSVM_Value* resultPointer to the JSVM_Value of JavaScript RegExp.

Returns

TypeDescription
JSVM_Status JSVM_CDECLReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception. This code is returned if an exception is thrown during API running.

OH_JSVM_ObjectGetPrototypeOf()

JSVM_EXTERN JSVM_Status OH_JSVM_ObjectGetPrototypeOf(JSVM_Env env,JSVM_Value object,JSVM_Value* result)

Description

Obtains the prototype of a JavaScript object.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectJavaScript object whose prototype is to be returned.
JSVM_Value* resultPointer to the prototype of a given object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_PENDING_EXCEPTION: pending exception. This code is returned if an exception is thrown during API running.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectJavaScript object whose prototype needs to be set.
JSVM_Value prototypeObject prototype.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the prototype fails to be set. For example, cyclically setting the prototype will trigger the failure.
JSVM_PENDING_EXCEPTION: pending exception. This code is returned if 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 value of the Set type.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to the created JavaScript value of the Set type.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueObject to be checked.
bool* isSetPointer to the check result. The value true indicates that the given object is of the Set type, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be forcibly converted.
JSVM_Value* resultPointer to the converted JavaScript value.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_BIGINT_EXPECTED: BigInt expected. This code is returned if the input JavaScript value cannot be converted to a BigInt value.

OH_JSVM_IsRegExp()

JSVM_EXTERN JSVM_Status OH_JSVM_IsRegExp(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the input value is a JavaScript RegExp object.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJSVM_Value to be checked.
bool* resultPointer to the check result. The value true indicates that the input value is a JavaScript RegExp object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* funcNamePointer to the string containing the function name. If NULL is passed to it, an anonymous function is created.
size_t lengthLength of funcName (in bytes) or JSVM_AUTO_LENGTH (if null-terminated).
size_t argcNumber of elements in the argv array.
const JSVM_Value* argvPointer to the JSVM_values array, representing the JavaScript values to be passed to the function as arguments.
JSVM_Value scriptJavaScript string that is used as the function body.
JSVM_Value* resultPointer to the JavaScript function object of the newly created function.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the input JavaScript cannot be compiled.

OH_JSVM_PumpMessageLoop()

JSVM_EXTERN JSVM_Status OH_JSVM_PumpMessageLoop(JSVM_VM vm,bool* result)

Description

Starts the message loop in the VM. This message loop can be executed through the external event loop.

Since: 12

Parameters

NameDescription
JSVM_VM vmVM instance for starting a message loop.
bool* resultPointer to the operation result. The value true indicates that the message loop is started successfully, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_PerformMicrotaskCheckpoint()

JSVM_EXTERN JSVM_Status OH_JSVM_PerformMicrotaskCheckpoint(JSVM_VM vm)

Description

Checks whether there are microtasks waiting in the queue. If yes, execute them.

Since: 12

Parameters

NameDescription
JSVM_VM vmVM instance in which microtasks are to be checked.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_IsCallable()

JSVM_EXTERN JSVM_Status OH_JSVM_IsCallable(JSVM_Env env, JSVM_Value value, bool* isCallable)

Description

Checks whether the input value is callable.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the API.
JSVM_Value valueJavaScript value to be checked.
bool* isCallablePointer to the result indicating whether the given value is callable. The value true indicates that the given value is callable, and the value false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

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

NameDescription
JSVM_Env envEnvironment for calling the API.
JSVM_Script scriptJavaScript script to be retained.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the script is empty or has been retained.

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

NameDescription
JSVM_Env envEnvironment for calling the API.
JSVM_Script scriptJavaScript string that includes the script to be released.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the script is empty or has not been retained.

OH_JSVM_OpenInspectorWithName()

JSVM_EXTERN JSVM_Status OH_JSVM_OpenInspectorWithName(JSVM_Env env,int pid,const char* name)

Description

Opens the name inspector and its corresponding Unix Domain port with the specified PID.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the API.
int pidPID for identifying the inspector connection.
const char* namePointer to the name of an inspector. If nullptr is passed in, the default name jsvm is used.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_PENDING_EXCEPTION: pending exception.

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 the WebAssembly bytecode to obtain a WebAssembly module. If the WebAssembly cache is provided, it will be deserialized first. If this API does not have the JIT permission, a log is printed to notify you.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const uint8_t *wasmBytecodePointer to the WebAssembly bytecode.
size_t wasmBytecodeLengthLength of the WebAssembly bytecode, in bytes.
const uint8_t *cacheDataPointer to the optional WebAssembly cache.
size_t cacheDataLengthOptional WebAssembly cache length, in bytes.
bool *cacheRejectedPointer to the operation result. The value true indicates that the provided WebAssembly cache is rejected by the engine, and false indicates the opposite.
JSVM_Value *wasmModulePointer to the generated WebAssembly module.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the env or wasmBytecode parameter is empty, or the input data length parameter is invalid.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the compilation fails.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_JIT_MODE_EXPECTED: JIT mode expected.

OH_JSVM_CompileWasmFunction()

JSVM_EXTERN JSVM_Status OH_JSVM_CompileWasmFunction(JSVM_Env env,JSVM_Value wasmModule,uint32_t functionIndex,JSVM_WasmOptLevel optLevel)

Description

Compiles a WebAssembly function with the specified index at a specified optimization level. If this API does not have the JIT permission, a log is printed to notify you.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value wasmModuleWebAssembly module where the function to be compiled is located.
uint32_t functionIndexIndex of the function to be compiled. The index must be within the valid range.
JSVM_WasmOptLevel optLevelOptimization level. Currently, only the high optimization level is supported.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the env or wasmModule parameter is empty, or wasmModule is not a real WebAssembly module.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the function index is out of range or the compilation fails.
JSVM_PENDING_EXCEPTION: pending exception.
JSVM_JIT_MODE_EXPECTED: JIT mode expected.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a WebAssembly module, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

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. If this API does not have the JIT permission, a log is printed to notify you.

Since: 12

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value wasmModuleCompiled WebAssembly module.
const uint8_t** dataDouble pointer to the generated WebAssembly cache.
size_t* lengthPointer to the length of the generated WebAssembly cache, in bytes.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the cache fails to be generated.
JSVM_JIT_MODE_EXPECTED: JIT mode expected.

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

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const uint8_t* cacheDataPointer to the cache data to be released. Repeated release is an undefined behavior.
JSVM_CacheType cacheTypeCache type. A generated cache can be released accordingly.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in or the cacheType argument is invalid.

OH_JSVM_IsBigIntObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsBigIntObject(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the given JSVM_Value is a BigInt object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a BigInt object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_IsBooleanObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsBooleanObject(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the given JSVM_Value is a Boolean object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a Boolean object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_IsStringObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsStringObject(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the given JSVM_Value is a string object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a string object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_IsNumberObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsNumberObject(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the given JSVM_Value is a number object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a number object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_IsSymbolObject()

JSVM_EXTERN JSVM_Status OH_JSVM_IsSymbolObject(JSVM_Env env,JSVM_Value value,bool* result)

Description

Checks whether the given JSVM_Value is a symbol object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value valueJavaScript value to be checked.
bool* resultPointer to the check result. The value true indicates that the given value is a symbol object, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolAsyncIterator()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolAsyncIterator(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.AsyncIterator capability from the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.AsyncIterator of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolHasInstance()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolHasInstance(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.HasInstance capability from the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.HasInstance of the well-Known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolIsConcatSpreadable()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolIsConcatSpreadable(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.IsConcatSpreadable capability from the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.IsConcatSpreadable of the well-Known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolMatch()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolMatch(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Match capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Match of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolReplace()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolReplace(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Replace capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Replace of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolSearch()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolSearch(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Search capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Search of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolSplit()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolSplit(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Split capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Split of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolToPrimitive()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolToPrimitive(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.ToPrimitive capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.ToPrimitive of the well-Known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolUnscopables()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolUnscopables(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Unscopables capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Unscopables of the well-Known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolToStringTag()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolToStringTag(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.ToStringTag capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.ToStringTag of the well-Known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_GetSymbolIterator()

JSVM_EXTERN JSVM_Status OH_JSVM_GetSymbolIterator(JSVM_Env env, JSVM_Value* result)

Description

Obtains the Symbol.Iterator capability of the well-known symbol.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value* resultPointer to Symbol.Iterator of the well-known symbol.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if a null pointer argument is passed in.

OH_JSVM_TraceStart()

JSVM_EXTERN JSVM_Status OH_JSVM_TraceStart(size_t count,const JSVM_TraceCategory* categories,const char* tag,size_t eventsCount)

Description

Starts collecting information of the specified trace categories for all JSVM runtime instances (thread-unsafe).

Since: 18

Parameters

NameDescription
size_t countNumber of trace categories.
const JSVM_TraceCategory* categoriesPointer to the array of trace categories.
const char* tagPointer to the tag defined and assigned to trace data.
size_t eventsCountMaximum number of trace events that can be stored.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if categories or count is invalid.

OH_JSVM_TraceStop()

JSVM_EXTERN JSVM_Status OH_JSVM_TraceStop(JSVM_OutputStream stream, void* streamData)

Description

Stops collecting information of a specified trace category for all JSVM runtime instances (thread-unsafe).

Since: 18

Parameters

NameDescription
JSVM_OutputStream streamCallback for the output stream, which is used to receive trace data.
void* streamDataPointer to the output stream, which is used by the output stream callback to output data.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if stream or streamData is empty.

OH_JSVM_AddHandlerForGC()

JSVM_EXTERN JSVM_Status OH_JSVM_AddHandlerForGC(JSVM_VM vm,JSVM_CBTriggerTimeForGC triggerTime,JSVM_HandlerForGC handler,JSVM_GCType gcType,void* userData)

Description

Adds a handler for GC to the VM.

Since: 18

Parameters

NameDescription
JSVM_VM vmEnvironment for calling the JSVM-API.
JSVM_CBTriggerTimeForGC triggerTimeTime when the GC callback is triggered.
JSVM_HandlerForGC handlerHandler to be invoked when GC is triggered.
JSVM_GCType gcTypeGC type.
void* userDataPointer to the native user data.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if vm or handler is empty or the handler has been added.

OH_JSVM_RemoveHandlerForGC()

JSVM_EXTERN JSVM_Status OH_JSVM_RemoveHandlerForGC(JSVM_VM vm,JSVM_CBTriggerTimeForGC triggerTime,JSVM_HandlerForGC handler,void* userData)

Description

Removes the handler for GC from the VM.

Since: 18

Parameters

NameDescription
JSVM_VM vmEnvironment for calling the JSVM-API.
JSVM_CBTriggerTimeForGC triggerTimeTime when the GC callback is triggered.
JSVM_HandlerForGC handlerHandler to be invoked when GC is triggered.
void* userDataPointer to the native user data.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if vm or handler is empty, the handler has been removed,
or the handler has never been added.

OH_JSVM_SetHandlerForOOMError()

JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForOOMError(JSVM_VM vm,JSVM_HandlerForOOMError handler)

Description

Sets a handler for OOM errors. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.

Since: 18

Parameters

NameDescription
JSVM_VM vmEnvironment for calling the JSVM-API.
JSVM_HandlerForOOMError handlerHandler for OOM errors.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if vm is empty.

OH_JSVM_SetDebugOption()

JSVM_EXTERN JSVM_Status OH_JSVM_SetDebugOption(JSVM_Env env, JSVM_DebugOption debugOption, bool isEnabled)

Description

Enables or disables a specific debugging option for a JSVM environment.

Since: 20

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_DebugOption debugOptionDebugging option.
bool isEnabledWhether to enable or disable the debugging option. The value true indicates yes, and false indicates the opposite.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input env is a null pointer.

OH_JSVM_SetHandlerForFatalError()

JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForFatalError(JSVM_VM vm,JSVM_HandlerForFatalError handler)

Description

Sets a handler for fatal errors. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.

Since: 18

Parameters

NameDescription
JSVM_VM vmEnvironment for calling the JSVM-API.
JSVM_HandlerForFatalError handlerHandler for fatal errors.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if vm is empty.

OH_JSVM_SetHandlerForPromiseReject()

JSVM_EXTERN JSVM_Status OH_JSVM_SetHandlerForPromiseReject(JSVM_VM vm,JSVM_HandlerForPromiseReject handler)

Description

Sets a handler for the PromiseReject error. If the API is called repeatedly, only the last call takes effect. If the input handler is null, the previous setting is canceled.

Since: 18

Parameters

NameDescription
JSVM_VM vmEnvironment for calling the JSVM-API.
JSVM_HandlerForPromiseReject handlerHandler for PromiseReject errors.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if vm is empty.

OH_JSVM_DefineClassWithOptions()

JSVM_EXTERN JSVM_Status OH_JSVM_DefineClassWithOptions(JSVM_Env env,const char* utf8name,size_t length,JSVM_Callback constructor,size_t propertyCount,const JSVM_PropertyDescriptor* properties,JSVM_Value parentClass,size_t option_count,JSVM_DefineClassOptions options[],JSVM_Value* result)

Description

Defines a class with options. When a C++ class is encapsulated, the C++ constructor callback passed through the constructor should be a static method in the class. This method calls the actual class constructor, encapsulates a new C++ instance into a JavaScript object based on the input options, and returns the encapsulated object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
const char* utf8namePointer to the name of the JavaScript constructor. You are advised to use the C++ class name when wrapping a C++ class.
size_t lengthLength of utf8name (in bytes) or JSVM_AUTO_LENGTH (if null-terminated).
JSVM_Callback constructorCallback of the constructor used to create 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.
size_t propertyCountNumber of properties in the array.
const JSVM_PropertyDescriptor* propertiesPointer to the property descriptors, which are used to define the properties and methods of a class.
JSVM_Value parentClassParent class of the defined class.
size_t option_countNumber of options in the array.
JSVM_DefineClassOptions options[]Array of options used to define the class.
JSVM_Value* resultPointer to the JSVM_Value of the constructor of a class.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if the input pointer contains a null pointer.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the execution fails due to invalid utf8name,

OH_JSVM_CreateExternalStringLatin1()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternalStringLatin1(JSVM_Env env, char* str, size_t length, JSVM_Finalize finalizeCallback, void* finalizeHint, JSVM_Value* result, bool* copied)

Description

Creates an external JavaScript string with an ISO-8859-1-encoded C string. If the creation fails, the original native string is copied.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
char* strPointer to the ISO-8859-1-encoded string.
size_t lengthLength of the string. If the string is a null-terminated string, you can directly pass it in JSVM_AUTO_LENGTH.
JSVM_Finalize finalizeCallback(Optional) Callback to be invoked when the created string is reclaimed by the GC. For details, see the description of JSVM_Finalize.
void* finalizeHint(Optional) Pointer to the finalize hint. This will be passed to the triggered finalize callback when a string is reclaimed.
JSVM_Value* resultPointer to the created JavaScript external string, which is of the JSVM_Value type.
bool* copiedPointer to the operation result. The value true indicates that the external string creation fails and a native JavaScript string is returned, and false indicates that the external string creation succeeds.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if any value of env, str, or copied is empty.

OH_JSVM_CreateExternalStringUtf16()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateExternalStringUtf16(JSVM_Env env, char16_t* str, size_t length, JSVM_Finalize finalizeCallback, void* finalizeHint, JSVM_Value* result, bool* copied)

Description

Creates an external JavaScript string with a UTF-16LE-encoded C string. If the creation fails, the original native string is copied.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
char16_t* strPointer to the UTF-16LE-encoded string.
size_t lengthLength of the string. If the string is a null-terminated string, you can directly pass it in JSVM_AUTO_LENGTH.
JSVM_Finalize finalizeCallback(Optional) Callback to be invoked when the created string is reclaimed by the GC. For details, see the description of JSVM_Finalize.
void* finalizeHint(Optional) Pointer to the finalize hint. This will be passed to the triggered finalize callback when a string is reclaimed.
JSVM_Value* resultPointer to the created JavaScript external string, which is of the JSVM_Value type.
bool* copiedPointer to the operation result. The value true indicates that the external string creation fails and a native JavaScript string is returned, and false indicates that the external string creation succeeds.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if any value of env, str, or copied is empty.

OH_JSVM_CreatePrivate()

JSVM_EXTERN JSVM_Status OH_JSVM_CreatePrivate(JSVM_Env env,JSVM_Value description,JSVM_Data* result)

Description

Creates a JavaScript private key object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value description(Optional) JavaScript description of the private key.
JSVM_Data* resultPointer to the created JavaScript private key object.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if either env or result is empty.
JSVM_STRING_EXPECTED: string expected. This code is returned if the input description is not a string.

OH_JSVM_SetPrivate()

JSVM_EXTERN JSVM_Status OH_JSVM_SetPrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key,JSVM_Value value)

Description

Sets the private property for an input object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectTarget object.
JSVM_Data keyPrivate key object of the private property.
JSVM_Value valueValue of the private property.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if any input parameter is empty or the key is not a private key object.
JSVM_OBJECT_EXPECTED: object expected. This code is returned if the input object is not a real JavaScript object.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the private property fails to be set and no exception occurs.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_GetPrivate()

JSVM_EXTERN JSVM_Status OH_JSVM_GetPrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key,JSVM_Value *result)

Description

Obtains the private property of an input object based on the private key.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectTarget object.
JSVM_Data keyPrivate key object of the private property.
JSVM_Value *resultValue of the private property.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if any input parameter is empty or the key is not a private key object.
JSVM_OBJECT_EXPECTED: object expected. This code is returned if the input object is not a real JavaScript object.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the private property fails to be obtained and no exception occurs.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_DeletePrivate()

JSVM_EXTERN JSVM_Status OH_JSVM_DeletePrivate(JSVM_Env env,JSVM_Value object,JSVM_Data key)

Description

Deletes the private property corresponding to the private key from the input object.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Value objectTarget object.
JSVM_Data keyPrivate key object of the private property.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument. This code is returned if any input parameter is empty or the key is not a private key object.
JSVM_OBJECT_EXPECTED: object expected. This code is returned if the input object is not a real JavaScript object.
JSVM_GENERIC_FAILURE: generic failure. This code is returned if the private property fails to be deleted and no exception occurs.
JSVM_PENDING_EXCEPTION: pending exception.

OH_JSVM_CreateDataReference()

JSVM_EXTERN JSVM_Status OH_JSVM_CreateDataReference(JSVM_Env env,JSVM_Data data,uint32_t initialRefcount,JSVM_Ref* result)

Description

Creates a reference to a given JSVM_Data object. The initial reference count is the input value of initialRefcount.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Data dataTarget JSVM_Data object.
uint32_t initialRefcountInitial reference count.
JSVM_Ref* resultPointer to the created object reference.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.

OH_JSVM_GetReferenceData()

JSVM_EXTERN JSVM_Status OH_JSVM_GetReferenceData(JSVM_Env env,JSVM_Ref ref,JSVM_Data* result)

Description

Obtains the JSVM_Data (a JavaScript value associated with the JSVM reference) through the result parameter if the reference is still valid. Otherwise, the result is null.

Since: 18

Parameters

NameDescription
JSVM_Env envEnvironment for calling the JSVM-API.
JSVM_Ref refJSVM reference for requesting the corresponding value.
JSVM_Data* resultPointer to the JSVM_Data referenced by JSVM_Ref.

Returns

TypeDescription
JSVM_EXTERN JSVM_StatusReturns a JSVM status code.
JSVM_OK: operation successful.
JSVM_INVALID_ARG: invalid argument.

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 capi-jsvm-jsvm-vminfo

openharmony 鸿蒙 capi-memory

openharmony 鸿蒙 js-apis-syscap

openharmony 鸿蒙 capi-memory-purgmem

openharmony 鸿蒙 capi-jsvm-jsvm-callbackstruct8h

openharmony 鸿蒙 capi-jsvm-jsvm-propertydescriptor

openharmony 鸿蒙 js-apis-common-load-native-module

openharmony 鸿蒙 capi-jsvm-jsvm-cpuprofiler--8h

openharmony 鸿蒙 capi-jsvm-jsvm-codecache

openharmony 鸿蒙 capi-jsvm-jsvm-data--8h

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/uoYdhYor