jsvm_types.h
概述
提供JSVM-API类型定义。
通过API接口为开发者提供独立、标准、完整的JavaScript引擎能力, 包括管理引擎生命周期、编译运行JS代码、实现JS/C++跨语言调用、拍摄快照等。
库: libjsvm.so
系统能力: SystemCapability.ArkCompiler.JSVM
起始版本: 11
相关模块:JSVM
汇总
结构体
名称 | 描述 |
---|---|
struct JSVM_CallbackStruct | 用户提供的native函数的回调函数指针和数据,这些函数通过JSVM-API接口暴露给JavaScript。 |
struct JSVM_InitOptions | 初始化选项,用于初始化JavaScript虚拟机。 |
struct JSVM_CreateVMOptions | 创建JavaScript虚拟机的选项。 |
struct JSVM_VMInfo | JavaScript虚拟机信息。 |
struct JSVM_PropertyDescriptor | 属性描述符。 |
struct JSVM_ExtendedErrorInfo | 扩展的异常信息。 |
struct JSVM_TypeTag | 类型标记,存储为两个无符号64位整数的128位值。 作为一个UUID,通过它,JavaScript对象可以是"tagged", 以确保它们的类型保持不变。 |
类型定义
名称 | 描述 |
---|---|
typedef uint16_t char16_t | |
typedef struct JSVM_VM__ * JSVM_VM | 表示JavaScript虚拟机实例。 |
typedef struct JSVM_VMScope__ * JSVM_VMScope | 表示JavaScript虚拟机作用域。 |
typedef struct JSVM_EnvScope__ * JSVM_EnvScope | 表示用于控制附加到当前虚拟机实例的环境。只有当线程通过 OH_JSVM_OpenEnvScope进入该环境的JSVM_EnvScope后,该环境才 对线程的虚拟机实例可用。 |
typedef struct JSVM_Script__ * JSVM_Script | 表示一段JavaScript代码。 |
typedef struct JSVM_Env__ * JSVM_Env | 表示虚拟机特定状态的上下文环境,需要在调用native函数时作为参数传递, 并且传递给后续任何的JSVM-API嵌套调用。 |
typedef struct JSVM_Value__ * JSVM_Value | 表示JavaScript值。 |
typedef struct JSVM_Ref__ * JSVM_Ref | 表示JavaScript值的引用。 |
typedef struct JSVM_HandleScope__ * JSVM_HandleScope | 表示JavaScript值的作用域,用于控制和修改在特定范围内创建的对象的生命周期。 通常,JSVM-API值是在JSVM_HandleScope的上下文中创建的。当从JavaScript调用native方法时, 将存在默认JSVM_HandleScope。如果用户没有显式创建新的JSVM_HandleScope,将在默认 JSVM_HandleScope中创建JSVM-API值。对于native方法执行之外的任何代码调用(例如,在libuv回调调用期间), 模块需要在调用任何可能导致创建JavaScript值的函数之前创建一个作用域。JSVM_HandleScope是使用 OH_JSVM_OpenHandleScope创建的,并使用OH_JSVM_CloseHandleScope销毁的。 关闭作用域代表向GC指示在JSVM_HandleScope作用域的生命周期内创建的所有JSVM_Value将不再从当前堆的栈帧中引用。 |
typedef struct JSVM_EscapableHandleScope__ * JSVM_EscapableHandleScope | 表示一种特殊类型的handle scope,用于将在特定handle scope内创建的值返回到父作用域。 |
typedef struct JSVM_CallbackInfo__ * JSVM_CallbackInfo | 表示传递给回调函数的不透明数据类型。可用于获取调用该函数的上下文的附加信息。 |
typedef struct JSVM_Deferred__ * JSVM_Deferred | 表示Promise延迟对象。 |
typedef JSVM_CallbackStruct * JSVM_Callback | 用户提供的native函数的函数指针类型,这些函数通过JSVM-API接口暴露给JavaScript。 |
typedef void(JSVM_CDECL * JSVM_Finalize) (JSVM_Env env, void *finalizeData, void *finalizeHint) | 函数指针类型,当native类型对象或数据与JS对象被关联时,传入该指针。该函数将会 在关联的JS对象被GC回收时被调用,用以执行native的清理动作。 |