harmony 鸿蒙jsvm_types.h
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_HeapStatistics | Heapstatisics结构体,用于保存有关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”, 以确保它们的类型保持不变。 |
struct JSVM_PropertyHandlerConfigurationStruct | 当执行对象的getter、setter、deleter和enumerator操作时,该结构体中对应的函数回调将会触发。 |
struct JSVM_ScriptOrigin | Source code information。 |
struct JSVM_PropertyHandler | 包含将class作为函数进行调用时所触发的回调函数的函数指针和访问实例对象属性时触发的回调函数的函数指针集。 |
struct JSVM_DefineClassOptions | 定义Class的选项。 |
类型定义
名称 | 描述 |
---|---|
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_CpuProfiler__ * JSVM_CpuProfiler | 表示一个JavaScript CPU时间性能分析器。 |
typedef struct JSVM_Value__ * JSVM_Value | 表示JavaScript值。 |
typedef struct JSVM_Data__ * JSVM_Data | 表示一个 JavaScript Data。 |
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的清理动作。 |
typedef bool(JSVM_CDECL * JSVM_OutputStream) (const char *data, int size, void *streamData) | ASCII输出流回调的函数指针类型。参数data是指输出的数据指针。参数size是指输出的数据大小。 空数据指针指示流的结尾。参数streamData是指与回调一起传递给API函数的指针,该API函数向输出流生成数据。回 调返回true表示流可以继续接受数据。否则,它将中止流。 |
typedef JSVM_PropertyHandlerConfigurationStruct * JSVM_PropertyHandlerCfg | 包含属性监听回调的结构的指针类型。 |
typedef void(JSVM_CDECL * JSVM_HandlerForGC(JSVM_VM vm, JSVM_GCType gcType, JSVM_GCCallbackFlags flags, void* data)) | GC回调的函数指针类型。 |
typedef void(JSVM_CDECL * JSVM_HandlerForOOMError(const char* location, const char* detail, bool isHeapOOM)) | OOM-Error回调的函数指针类型。 |
typedef void(JSVM_CDECL * JSVM_HandlerForFatalError(const char* location, const char* message)) |
Fatal-Error回调的函数指针类型。 |
typedef void(JSVM_CDECL * JSVM_HandlerForPromiseReject(JSVM_Env env, JSVM_PromiseRejectEvent rejectEvent, JSVM_Value rejectInfo)) | Promise-Reject回调的函数指针类型。 |
枚举
|JSVM_GCType { JSVM_GC_TYPE_SCAVENGE = 1 << 0, JSVM_GC_TYPE_MINOR_MARK_COMPACT = 1 << 1, JSVM_GC_TYPE_MARK_SWEEP_COMPACT = 1 << 2, JSVM_GC_TYPE_INCREMENTAL_MARKING = 1 << 3, JSVM_GC_TYPE_PROCESS_WEAK_CALLBACKS = 1 << 4, JSVM_GC_TYPE_ALL = JSVM_GC_TYPE_SCAVENGE |JSVM_GC_TYPE_MINOR_MARK_COMPACT |JSVM_GC_TYPE_MARK_SWEEP_COMPACT |JSVM_GC_TYPE_INCREMENTAL_MARKING |JSVM_GC_TYPE_PROCESS_WEAK_CALLBACKS }|GC类型。|
|JSVM_GCCallbackFlags { JSVM_NO_GC_CALLBACK_FLAGS, JSVM_GC_CALLBACK_CONSTRUCT_RETAINED_OBJECT_INFOS, JSVM_GC_CALLBACK_FORCED, JSVM_GC_CALLBACK_SYNCHRONOUS_PHANTOM_CALLBACK_PROCESSING, JSVM_GC_CALLBACK_COLLECT_ALL_AVAILABLE_GARBAGE, JSVM_GC_CALLBACK_COLLECT_ALL_EXTERNAL_MEMORY, JSVM_GC_CALLBACK_SCHEDULE_IDLE_GARBAGE_COLLECTION }|GC回调函数标记。| |JSVM_PromiseRejectEvent { JSVM_PROMISE_REJECT_OTHER_REASONS = 0, JSVM_PROMISE_REJECT_WITH_NO_HANDLER = 1, JSVM_PROMISE_HANDLER_ADDED_AFTER_REJECT = 2, JSVM_PROMISE_REJECT_AFTER_RESOLVED = 3, JSVM_PROMISE_RESOLVE_AFTER_RESOLVED = 4 }|promise-reject事件。| |JSVM_MessageErrorLevel { JSVM_MESSAGE_LOG = (1 << 0), JSVM_MESSAGE_DEBUG = (1 << 1), JSVM_MESSAGE_INFO = (1 << 2), JSVM_MESSAGE_ERROR = (1 << 3), JSVM_MESSAGE_WARNING = (1 << 4), JSVM_MESSAGE_ALL = JSVM_MESSAGE_LOG |JSVM_MESSAGE_DEBUG |JSVM_MESSAGE_INFO |JSVM_MESSAGE_ERROR |JSVM_MESSAGE_WARNING }|message的报错级别。| |JSVM_DefineClassOptionsId { JSVM_DEFINE_CLASS_NORMAL, JSVM_DEFINE_CLASS_WITH_COUNT, JSVM_DEFINE_CLASS_WITH_PROPERTY_HANDLER }|定义Class的选项ID。|
你可能感兴趣的鸿蒙文章
harmony 鸿蒙JSVM_CreateVMOptions
harmony 鸿蒙JSVM_DefineClassOptions
harmony 鸿蒙JSVM_ExtendedErrorInfo
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦