From 127452538cf30b1112e3b5e008395d3abed39d47 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=8F=81=E7=8E=96?= Date: Fri, 30 May 2025 17:56:04 +0800 Subject: [PATCH] =?UTF-8?q?Jsvm-api=E6=8E=A5=E5=8F=A3=E8=B0=83=E7=94=A8?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=96=87=E6=A1=A3AI=E6=89=AB=E6=8F=8F?= =?UTF-8?q?=E9=97=AE=E9=A2=98=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 林叁玖 --- .../napi/use-jsvm-about-property.md | 48 +++++++++---------- .../napi/use-jsvm-about-string.md | 32 ++++++------- .../napi/use-jsvm-about-version.md | 10 ++-- zh-cn/application-dev/napi/use-jsvm-error.md | 26 +++++----- ...stics-debugger-cpuprofiler-heapsnapshot.md | 32 ++++++------- .../napi/use-jsvm-life-cycle.md | 42 ++++++++-------- .../napi/use-jsvm-memory-management.md | 12 ++--- .../napi/use-jsvm-strict-equals.md | 8 ++-- .../napi/use-jsvm-trigger-exceptions.md | 32 ++++++------- 9 files changed, 121 insertions(+), 121 deletions(-) diff --git a/zh-cn/application-dev/napi/use-jsvm-about-property.md b/zh-cn/application-dev/napi/use-jsvm-about-property.md index aeb74602e87..6c4d36178f6 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-property.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-property.md @@ -2,11 +2,11 @@ ## 简介 -使用JSVM-API接口获取和设置JavaScript对象的属性。通过合理使用这些函数,实现更复杂的功能和逻辑。 +使用JSVM-API接口获取和设置JavaScript对象的属性。合理使用这些函数,实现更复杂的功能和逻辑。 ## 基本概念 -在JavaScript对象属性的相关开发中,需要处理JavaScript对象属性,确保正确地访问、设置、删除属性,并了解属性的继承关系和枚举特性。以下是一些关键概念: +在JavaScriptt对象属性的开发中,需要处理JavaScript对象属性,确保正确地访问、设置、删除属性,并了解属性的继承关系和枚举特性。以下是一些关键概念: - **对象(Object)**:在JavaScript中,对象是一种复合数据类型,它允许存储多个不同类型的值作为一个单独的实体。对象是属性和方法的集合。属性是与对象相关联的值,而方法则是对象可以执行的操作。 - **属性(Property)**:在JavaScript中,属性是对象特征的键值对。每个属性都有一个名字(也称为键或标识符)和一个值。属性的值可以是任意数据类型,包括基本类型、对象和函数。 @@ -17,17 +17,17 @@ | 接口 | 功能说明 | |----------------------------|--------------------------------| -| OH_JSVM_GetPropertyNames | 获取给定对象的所有可枚举属性名称,结果变量将存储一个包含所有可枚举属性名称的JavaScript数组 | +| OH_JSVM_GetPropertyNames | 获取给定对象的所有可枚举属性名称,结果存储为JavaScript数组 | | OH_JSVM_SetProperty | 为给定对象设置一个属性 | -| OH_JSVM_GetProperty | 用给定的属性的名称,检索目标对象的属性 | -| OH_JSVM_HasProperty | 用给定的属性的名称,查询目标对象是否有此属性 | -| OH_JSVM_DeleteProperty | 用给定的属性的名称,删除目标对象属性 | -| OH_JSVM_HasOwnProperty | 判断给定Object中是否有名为key的own property。| -| OH_JSVM_SetNamedProperty | 用给定的属性的名称为目标对象设置属性,此方法等效于调用OH_JSVM_SetProperty, 其中,通过utf8Name传入的字符串用于创建JSVM_Value。| -| OH_JSVM_GetNamedProperty | 用给定的属性的名称,检索目标对象的属性,此方法等效于调用OH_JSVM_GetProperty, 其中,通过utf8Name传入的字符串用于创建JSVM_Value。| -| OH_JSVM_HasNamedProperty | 用给定的属性的名称,查询目标对象是否有此属性,此方法等效于使用从作为utf8Name传入的字符串创建的JSVM_Value调用OH_JSVM_HasProperty。| +| OH_JSVM_GetProperty | 根据属性名称检索目标对象的属性 | +| OH_JSVM_HasProperty | 查询目标对象是否具有指定属性 | +| OH_JSVM_DeleteProperty | 使用给定的属性名称删除目标对象的属性 | +| OH_JSVM_HasOwnProperty | 判断给定Object中是否有名为key的自有属性。| +| OH_JSVM_SetNamedProperty | 使用给定的属性的名称为目标对象设置属性,此方法等效于调用OH_JSVM_SetProperty,通过utf8Name传入的字符串用于创建JSVM_Value。| +| OH_JSVM_GetNamedProperty | 使用给定的属性的名称,检索目标对象的属性,此方法等效于调用OH_JSVM_GetProperty,通过utf8Name传入的字符串用于创建JSVM_Value。| +| OH_JSVM_HasNamedProperty | 使用给定的属性的名称,查询目标对象是否有此属性,此方法等效于使用从作为utf8Name传入的字符串创建的JSVM_Value调用OH_JSVM_HasProperty。| | OH_JSVM_DefineProperties | 批量的向给定对象中定义属性 | -| OH_JSVM_GetAllPropertyNames | 获取给定对象的所有可用属性名称,结果变量将存储一个包含所有可枚举属性名称的JavaScript数组 | +| OH_JSVM_GetAllPropertyNames | 获取给定对象的所有可用属性名称,结果变量存储一个包含所有可枚举属性名称的JavaScript数组 | ## 使用示例 @@ -35,7 +35,7 @@ JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开 ### OH_JSVM_GetPropertyNames -以字符串数组的形式获取对象的可枚举属性的名称,如果接口调用成功则返回JSVM_OK。 +以字符串数组的形式获取对象的可枚举属性名称。如果接口调用成功,则返回JSVM_OK。 cpp部分代码 @@ -83,9 +83,9 @@ JSVM OH_JSVM_GetPropertyNames success ### OH_JSVM_SetProperty -将给定的属性与值设置入给定的Object。 +设置给定的Object的属性与值。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_SetProperty的样例方法 @@ -137,7 +137,7 @@ JSVM OH_JSVM_SetProperty success 获取给定Object的给定属性对应的值。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_GetProperty的样例方法 @@ -185,7 +185,7 @@ JSVM OH_JSVM_GetProperty success 检查对象中是否存在指定的属性,可以避免访问不存在属性导致的异常或错误。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_HasProperty的样例方法 @@ -239,9 +239,9 @@ JSVM OH_JSVM_HasProperty success:0 ### OH_JSVM_DeleteProperty 尝试从给定的Object中删除由key指定的属性,并返回操作的结果。 -如果对象是一个不可扩展的对象,或者属性是不可配置的,则可能无法删除该属性。 +如果对象是一个不可扩展的对象,或者属性是不可配置的,则无法删除该属性。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_DeleteProperty的样例方法 @@ -298,7 +298,7 @@ JSVM OH_JSVM_DeleteProperty success:1 用于检查传入的Object是否具有自己的命名属性,不包括从原型链上继承的属性。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_HasOwnProperty的样例方法 @@ -368,7 +368,7 @@ JSVM OH_JSVM_HasOwnProperty success:0 用于在传入的Javascript对象上设置一个命名属性。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_SetNamedProperty的样例方法 @@ -426,7 +426,7 @@ JSVM OH_JSVM_SetNamedProperty success 用于从Javascript对象中获取命名属性的值。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_GetNamedProperty的样例方法 @@ -478,7 +478,7 @@ JSVM OH_JSVM_GetNamedProperty success 用于检查Javascript对象中是否包含指定的命名属性。 -cpp部分代码 +C++部分代码 ```cpp // OH_JSVM_HasNamedProperty的样例方法 @@ -531,7 +531,7 @@ JSVM OH_JSVM_HasNamedProperty success:1 ### OH_JSVM_DefineProperties -用于定义对象的自定义属性,可一次性为对象设置多个属性。 +用于定义对象的自定义属性,可一次为对象设置多个属性。 cpp部分代码 @@ -664,7 +664,7 @@ JSVM getterCallback success:Hello world! ### OH_JSVM_GetAllPropertyNames -获取给定对象的所有可用属性名称, 结果变量将存储一个包含所有可枚举属性名称的JavaScript数组。 +获取对象的所有可枚举属性名称,结果变量存储包含所有可枚举属性名称的JavaScript数组。 cpp部分代码 diff --git a/zh-cn/application-dev/napi/use-jsvm-about-string.md b/zh-cn/application-dev/napi/use-jsvm-about-string.md index d99a91ae63d..ae7fa19e03a 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-string.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-string.md @@ -2,11 +2,11 @@ ## 简介 -使用JSVM-API关于string的六个接口,可以让JSVM模块和JavaScript字符串进行交互。 +使用JSVM-API的六个字符串接口,可以实现JSVM模块与JavaScript字符串的交互。 ## 基本概念 -string是编程中常用的数据类型之一。它可以存储和操作文本数据,用于表示和处理字符序列。还可用于构建用户界面元素,如标签、按钮和文本框,处理用户输入,验证和格式化输入数据。不同的编码支持不同的字符集和语言,以下是一些主要的编码方案及其区别: +string是编程中常用的数据类型之一。它可以存储和操作文本数据,用于表示和处理字符序列。还可用于构建用户界面元素,如标签、按钮和文本框,处理用户输入,验证和格式化数据。不同的编码支持的字符集和语言不同,以下列出主要编码方案及其区别: - **ASCII**:ASCII是最早的字符编码方案之一,使用7位编码,只能表示英文字母、数字和一些基本符号。它是许多其他编码方案的基础。 - **UTF-8**:UTF-8是一种变长编码方案,可以表示全球范围的字符集。它使用8位编码,根据字符的不同范围使用不同长度的字节序列。UTF-8是互联网上广泛使用的编码方案。 @@ -26,13 +26,13 @@ string是编程中常用的数据类型之一。它可以存储和操作文本 ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 +JSVM-API接口开发流程可参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 ### OH_JSVM_GetValueStringUtf8 -OH_JSVM_GetValueStringUtf8接口可以将JavaScript的字符类型的数据转换为utf8编码的字符。 +OH_JSVM_GetValueStringUtf8接口可以将JavaScript字符型数据转换为utf8编码。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -88,9 +88,9 @@ const char *srcCallNative = R"JS( ### OH_JSVM_CreateStringUtf8 -用于创建一个UTF-8编码的JavaScript字符串。 +OH_JSVM_CreateStringUtf8接口用于创建一个UTF-8编码的JavaScript字符串。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -136,9 +136,9 @@ const char *srcCallNative = R"JS( ### OH_JSVM_GetValueStringUtf16 -OH_JSVM_GetValueStringUtf16,将JavaScript的字符类型的数据转换为utf16编码的字符。 +OH_JSVM_GetValueStringUtf16接口可以将JavaScript字符型数据转换为UTF-16编码。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -202,9 +202,9 @@ const char *srcCallNative = R"JS( ### OH_JSVM_CreateStringUtf16 -用于创建一个UTF-16编码的JavaScript字符串。 +创建一个UTF-16编码的JavaScript字符串。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -257,9 +257,9 @@ const char *srcCallNative = R"JS( ### OH_JSVM_GetValueStringLatin1 -OH_JSVM_GetValueStringLatin1接口可以将JavaScript的字符类型的数据转换为ISO-8859-1编码的字符。 +OH_JSVM_GetValueStringLatin1接口将JavaScript字符数据转换为ISO-8859-1编码。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -307,16 +307,16 @@ const char *srcCallNative = R"JS( 预期输出结果 -*ISO-8859-1编码不支持中文,传入中文字符会乱码* +*ISO-8859-1编码不支持中文,传入中文字符会导致乱码* ![GetValueStringLatin1](figures/jsvm_about_string_GetValueStringLatin1.png) **注意事项**:`getValueStringLatin1(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringLatin1 -用于创建一个Latin1编码的JavaScript字符串。 +创建一个Latin1编码的JavaScript字符串。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp diff --git a/zh-cn/application-dev/napi/use-jsvm-about-version.md b/zh-cn/application-dev/napi/use-jsvm-about-version.md index 4430fe1f260..412cb387bbc 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-version.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-version.md @@ -2,22 +2,22 @@ ## 简介 -用于获取当前版本信息。 +获取当前版本信息。 ## 接口说明 | 接口 | 功能说明 | |----------------------------|--------------------------------| -| OH_JSVM_GetVersion | 获取JSVM运行时支持的最高JSVM API版本。 | -| OH_JSVM_GetVMInfo | 获取虚拟机的信息。 | +| OH_JSVM_GetVersion | 获取JSVM运行时支持的最高JSVM API版本号。 | +| OH_JSVM_GetVMInfo | 获取虚拟机信息。 | ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 +JSVM-API接口开发流程可参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应的C++代码。 ### OH_JSVM_GetVersion && OH_JSVM_GetVMInfo -获取当前环境支持的JSVM API的最高版本号和当前虚拟机的信息。 +获取当前环境支持的JSVM API最高版本号及虚拟机信息。 cpp部分代码 diff --git a/zh-cn/application-dev/napi/use-jsvm-error.md b/zh-cn/application-dev/napi/use-jsvm-error.md index 1d8bafbd7bd..4566916caca 100644 --- a/zh-cn/application-dev/napi/use-jsvm-error.md +++ b/zh-cn/application-dev/napi/use-jsvm-error.md @@ -2,7 +2,7 @@ ## 简介 -使用JSVM-API接口进行错误处理开发,使得在JSVM-API模块中能够更好地管理和响应错误情况。通过合理使用这些函数,可以提高模块的稳定性和可靠性。 +使用JSVM-API接口进行错误处理,可以更高效地在JSVM-API模块中管理异常情况并作出响应。合理运用这些接口函数,有助于提升模块的稳定性与可靠性。 ## 基本概念 @@ -14,14 +14,14 @@ - **范围错误(RangeError)**:表示一个值不在预期的范围内,例如对数组长度之外的索引进行访问。 - **语法错误(SyntaxError)**:表示一段代码的语法错误。 -这些基本概念在异常和错误处理中非常重要,开发者需要通过适当的方法来捕获、处理或向用户报告这些异常和错误,以确保程序的稳定性和正确性。JSVM-API提供的方法可以帮助开发者在模块开发中处理JavaScript中的异常和错误。 +在异常和错误处理中,基本概念非常重要。开发者需要通过适当的方法来捕获、处理或向用户报告这些异常和错误,以确保程序的稳定性和正确性。JSVM-API提供的方法可以协助开发者在模块开发中处理JavaScript中的异常和错误。 ## 接口说明 | 接口 | 功能说明 | |----------------------------|--------------------------------| | OH_JSVM_CreateError、OH_JSVM_CreateTypeError、OH_JSVM_CreateRangeError、OH_JSVM_CreateSyntaxError | 在C/C++中需要创建一个错误对象时,可以使用这些函数。| -| OH_JSVM_Throw | 当在C/C++中出现了错误或异常情况时,通过使用OH_JSVM_CreateError或OH_JSVM_GetLastErrorInfo方法创建或获取JavaScript Error对象,使用该方法抛出已有的JavaScript Error对象。 | +| OH_JSVM_Throw | 当在C/C++中出现了错误或异常情况时,可以使用OH_JSVM_CreateError或OH_JSVM_GetLastErrorInfo方法创建或获取JavaScript Error对象,然后使用OH_JSVM_Throw方法抛出已有的JavaScript Error对象。 | | OH_JSVM_ThrowError、OH_JSVM_ThrowTypeError、OH_JSVM_ThrowRangeError、OH_JSVM_ThrowSyntaxError | 当在C/C++中出现了错误或异常情况时,可以使用这些函数来抛出JavaScript中的异常。 | | OH_JSVM_IsError | 查询JSVM_Value以检查它是否表示错误对象。| | OH_JSVM_GetAndClearLastException | 清理并返回最后一个JS异常。| @@ -34,11 +34,11 @@ JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开 ### OH_JSVM_Throw -用于抛出JavaScript Error对象。当在本机代码中发生错误或检测到不符合预期的情况时,可以使用此接口来抛出一个Javascript Error,使其能够被捕获并处理。示例参考OH_JSVM_CreateError。 +用于抛出JavaScript Error对象。当本机代码中发生错误或检测到不符合预期的情况时,使用此接口抛出JavaScript Error,以便捕获和处理。示例参考OH_JSVM_CreateError。 ### OH_JSVM_CreateError -创建并获取一个带文本信息的JavaScript Error。 +创建并获取一个带有文本信息的JavaScript Error。 cpp部分代码 @@ -98,7 +98,7 @@ JSVM error message: HasError, error code: -1 ### OH_JSVM_ThrowError -用于抛出一个带文本信息的JS Error。 +用于抛出一个带文本信息的JavaScript错误。 cpp部分代码 @@ -294,7 +294,7 @@ JSVM error message: throw syntax error, error code: JsVmThrowSyntaxError ### OH_JSVM_IsError -用于判断给定的JSVM_Value是否表示一个error对象。 +用于判断给定的JSVM_Value是否是一个error对象。 cpp部分代码 @@ -473,7 +473,7 @@ JSVM API CreateSyntaxError SUCCESS 用于获取并清除最近一次出现的异常。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -512,9 +512,9 @@ JSVM API OH_JSVM_GetAndClearLastException SUCCESS ### OH_JSVM_IsExceptionPending -用于判断是否出现了异常。 +用于判断给定的JSVM_Value是否是一个error对象。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp @@ -565,10 +565,10 @@ JSVM API OH_JSVM_IsExceptionPending: SUCCESS ### OH_JSVM_GetLastErrorInfo -用于获取调用JSVM接口最后一次发生的错误信息(接口返回值不为JSVM_OK),包括错误码、错误消息以及错误堆栈信息,即使存在挂起的JavaScript异常,也可以调用此API。 -注意: 通过OH_JSVM_ThrowError等接口主动触发的Error不会被该接口获取,除非调用接口时返回值不为JSVM_OK。 +用于获取调用JSVM接口最后一次发生的错误信息(接口返回值不为JSVM_OK),包括错误码、错误消息及错误堆栈信息,即使存在挂起的JavaScript异常,也可以调用此API。 +注意:通过OH_JSVM_ThrowError等接口主动触发的错误不会被该接口获取,除非调用接口时返回值不为JSVM_OK。 -cpp部分代码 +C++部分代码 ```cpp // hello.cpp diff --git a/zh-cn/application-dev/napi/use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md b/zh-cn/application-dev/napi/use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md index 8727ced17f5..532619b2875 100644 --- a/zh-cn/application-dev/napi/use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md +++ b/zh-cn/application-dev/napi/use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md @@ -2,24 +2,24 @@ ## 简介 -这些JSVM-API接口涵盖了虚拟机实例检索、内存分析、性能剖析和调试支持,为优化代码性能及提升开发效率提供了有力的支持。 +JSVM-API接口涵盖了虚拟机实例检索、内存分析、性能剖析和调试支持,助力代码性能优化和开发效率提升。 ## 基本概念 -- **JSVM**:JavaScript虚拟机是执行JavaScript代码的环境。它负责解析和执行JavaScript代码,管理内存,并提供与其他系统资源的交互。接口如OH_JSVM_GetVM用于检索特定环境的虚拟机实例,这是JSVM管理的基本操作之一。 -- **调试(debug)**:调试是程序开发中的一项重要活动,它涉及到定位、分析和修复代码中的错误。OH_JSVM_OpenInspector和OH_JSVM_CloseInspector接口提供了在特定主机和端口上激活和关闭inspector的功能,inspector是一个用于调试JavaScript代码的工具,允许开发者实时查看和交互程序的运行状态。 +- **JSVM**:JavaScript虚拟机是执行JavaScript代码的环境。负责解析和执行JavaScript代码,管理内存,并提供与其他系统资源的交互。接口OH_JSVM_GetVM用于检索特定环境的虚拟机实例,这是JSVM管理的基本操作之一。 +- **调试(debug)**:调试是程序开发中的一项重要活动,涉及到定位、分析和修复代码中的错误。OH_JSVM_OpenInspector和OH_JSVM_CloseInspector接口用于在特定主机和端口上激活和关闭inspector。inspector是一个调试JavaScript代码的工具,允许开发者实时查看和交互程序的运行状态。 ## 接口说明 | 接口 | 功能说明 | |----------------------------|--------------------------------| -| OH_JSVM_GetVM | 将检索给定环境的虚拟机实例。 | -| OH_JSVM_GetHeapStatistics | 返回一组虚拟机堆的统计数据。 | +| OH_JSVM_GetVM | 检索给定环境的虚拟机实例。 | +| OH_JSVM_GetHeapStatistics | 获取虚拟机堆的统计数据。 | | OH_JSVM_StartCpuProfiler | 创建并启动一个CPU profiler。 | | OH_JSVM_StopCpuProfiler | 停止CPU profiler并将结果输出到流。 | | OH_JSVM_TakeHeapSnapshot | 获取当前堆快照并将其输出到流。 | -| OH_JSVM_OpenInspector | 在指定的主机和端口上激活inspector,将用来调试JS代码。 | -| OH_JSVM_CloseInspector | 尝试关闭剩余的所有inspector连接。 | +| OH_JSVM_OpenInspector | 在指定的主机和端口上激活inspector以调试JS代码。 | +| OH_JSVM_CloseInspector | 关闭剩余的所有inspector连接。 | | OH_JSVM_WaitForDebugger | 等待主机与inspector建立socket连接,连接建立后程序将继续运行。发送Runtime.runIfWaitingForDebugger命令。 | ## 使用示例 @@ -28,7 +28,7 @@ JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开 ### OH_JSVM_GetVM -将检索给定环境的虚拟机实例。 +检索给定环境的虚拟机实例。 cpp部分代码 @@ -84,7 +84,7 @@ JSVM OH_JSVM_GetVM: success ### OH_JSVM_GetHeapStatistics -返回一组虚拟机堆的统计数据。 +获取虚拟机堆的统计数据。 cpp部分代码 @@ -161,30 +161,30 @@ JSVM API heap totalGlobalHandlesSize: 8192 JSVM API heap usedGlobalHandlesSize: 32 ``` -以下接口的示例代码可以参考链接: +示例代码请参考链接: [JSVM调试调优能力](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md) ### OH_JSVM_StartCpuProfiler -创建并启动一个CPU profiler。 +创建并启动CPU profiler。 ### OH_JSVM_StopCpuProfiler -停止CPU profiler并将结果输出到流。 +停止CPU profiler并输出结果到流。 ### OH_JSVM_TakeHeapSnapshot -获取当前堆快照并将其输出到流。 +获取当前堆快照并输出到流。 ### OH_JSVM_OpenInspector -在指定的主机和端口上激活inspector,将用来调试JS代码。 +在指定的主机和端口上激活inspector以调试JS代码。 ### OH_JSVM_CloseInspector -尝试关闭剩余的所有inspector连接。 +关闭剩余的所有inspector连接。 ### OH_JSVM_WaitForDebugger -等待主机与inspector建立socket连接,连接建立后程序将继续运行。发送Runtime.runIfWaitingForDebugger命令。 +等待主机与inspector建立socket连接,连接建立后程序继续运行。发送Runtime.runIfWaitingForDebugger命令。 diff --git a/zh-cn/application-dev/napi/use-jsvm-life-cycle.md b/zh-cn/application-dev/napi/use-jsvm-life-cycle.md index abdaaf25d7d..3eac996a3bf 100644 --- a/zh-cn/application-dev/napi/use-jsvm-life-cycle.md +++ b/zh-cn/application-dev/napi/use-jsvm-life-cycle.md @@ -2,27 +2,27 @@ ## 简介 -在JSVM-API中,JSVM_Value是一个表示JavaScript值的抽象类型,它可以表示任何JavaScript值,包括基本类型(如数字、字符串、布尔值)和对象类型(如数组、函数、对象等)。 -JSVM_Value的生命周期与其在JavaScript中的对应值的生命周期紧密相关。当JavaScript值被垃圾回收时,与之关联的JSVM_Value也将不再有效。重要的是不要在JavaScript值不再存在时尝试使用JSVM_Value。 +在JSVM-API中,JSVM_Value表示JavaScript值的抽象类型,它可以表示任何JavaScript值,包括基本类型(如数字、字符串、布尔值)和对象类型(如数组、函数、对象等)。 +JSVM_Value的生命周期与JavaScript值的生命周期相关。JavaScript值被垃圾回收时,JSVM_Value不再有效。不要在JavaScript值不再存在时使用JSVM_Value。 -框架层的scope通常用于管理JSVM_Value的生命周期。在JSVM-API中,可以使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope函数来创建和销毁scope。通过在scope内创建JSVM_Value,可以确保在scope结束时自动释放JSVM_Value,避免内存泄漏。 +框架层的scope用于管理JSVM_Value的生命周期。使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope创建和销毁scope。在scope内创建JSVM_Value,可以确保在scope结束时自动释放,避免内存泄漏。 -JSVM_Ref是一个JSVM-API类型,用于管理JSVM_Value的生命周期。JSVM_Ref允许您在JSVM_Value的生命周期内保持对其的引用,即使它已经超出了其原始上下文的范围。这使得您可以在不同的上下文中共享JSVM_Value,并确保在不再需要时正确释放其内存。 +JSVM_Ref是一个JSVM-API类型,用于管理JSVM_Value的生命周期。JSVM_Ref允许在JSVM_Value的生命周期内保持引用,即使它已经超出原始上下文范围。这使得您可以在不同的上下文中共享JSVM_Value,并确保在不再需要时正确释放其内存。 -合理使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope管理JSVM_Value的生命周期,做到生命周期最小化,避免发生内存泄漏问题。 +合理使用OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope管理JSVM_Value的生命周期,做到生命周期最小化,避免内存泄漏。 -每个JSVM_Value属于特定的HandleScope,HandleScope通过OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope来建立和关闭,HandleScope关闭后,所属的JSVM_Value就会自动释放。 +每个JSVM_Value属于特定的HandleScope,HandleScope通过OH_JSVM_OpenHandleScope和OH_JSVM_CloseHandleScope建立和关闭,HandleScope关闭后,所属的JSVM_Value会自动释放。 ## 基本概念 -JSVM-API提供了一组功能,使开发人员能够在JSVM-API模块中创建和操作JavaScript对象,管理引用和生命周期,并注册垃圾回收回调函数等。下面是一些基本概念: +JSVM-API提供创建和操作JavaScript对象、管理引用和生命周期、注册垃圾回收回调等功能。下面是一些基本概念: - **作用域**:用于创建一个范围,在范围内声明的引用在范围外部将不再生效。JSVM-API提供了创建、关闭普通和可逃逸的作用域的函数。 - **引用管理**:JSVM-API提供函数来创建、删除和管理对象的引用,以延长对象的生命周期,并避免在使用对象时发生内存泄漏。 -- **可逃逸的作用域**:允许在创建的作用域中声明的对象返回到父作用域,通过OH_JSVM_OpenEscapableHandleScope和OH_JSVM_CloseEscapableHandleScope进行管理。 +- **可逃逸的作用域**:允许在创建的作用域中声明的对象返回到父作用域,通过OH_JSVM_OpenEscapableHandleScope和OH_JSVM_CloseEscapableHandleScope来打开和关闭scope。。 - **垃圾回收回调**:允许注册回调函数,以便在JavaScript对象被垃圾回收时执行特定的清理操作。 -这些基本概念使开发人员能够在JSVM-API模块中安全且有效地操作JavaScript对象,并确保正确管理对象的生命周期。 +这些基本概念使开发人员在JSVM-API模块中安全且有效地操作JavaScript对象,正确管理对象的生命周期。 ## 接口说明 @@ -37,16 +37,16 @@ JSVM-API提供了一组功能,使开发人员能够在JSVM-API模块中创建 | OH_JSVM_DeleteReference | 释放由OH_JSVM_CreateReference创建的引用,确保对象在不再被使用时能够被正确地释放和回收,避免内存泄漏。 | | OH_JSVM_ReferenceRef | 增加由OH_JSVM_CreateReference创建的引用的引用计数,以确保对象在有引用时不会被提前释放。 | | OH_JSVM_ReferenceUnref | 减少引用计数,用于管理引用计数。| -| OH_JSVM_GetReferenceValue | 减少由OH_JSVM_CreateReference创建的引用的引用计数,以确保没有任何引用指向该对象时能正确地释放和回收。 | +| OH_JSVM_GetReferenceValue | 减少由OH_JSVM_CreateReference创建的引用的引用计数,以确保对象在不再被使用时能够被正确地释放和回收。 | | OH_JSVM_AddFinalizer | 为对象添加JSVM_Finalize回调,以便在JavaScript对象被垃圾回收时调用来释放原生对象。| ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 +JSVM-API接口开发流程可参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文展示接口对应的C++代码。 ### OH_JSVM_OpenHandleScope、OH_JSVM_CloseHandleScope -通过接口OH_JSVM_OpenHandleScope创建一个上下文环境使用。需要使用OH_JSVM_CloseHandleScope进行关闭。用于管理JavaScript对象的生命周期确保在JSVM-API模块代码处理JavaScript对象时能够正确地管理其句柄,以避免出现垃圾回收相关的问题。 +通过接口OH_JSVM_OpenHandleScope创建一个上下文环境。需要使用OH_JSVM_CloseHandleScope进行关闭。用于管理JavaScript对象的生命周期,确保在JSVM-API模块中处理JavaScript对象时能够正确管理其句柄,从而避免垃圾回收相关的问题。 cpp部分代码 @@ -99,8 +99,8 @@ JSVM HandleScopeFor: success ### OH_JSVM_OpenEscapableHandleScope、OH_JSVM_CloseEscapableHandleScope、OH_JSVM_EscapeHandle -通过接口 OH_JSVM_OpenEscapableHandleScope 创建出一个可逃逸的 handel scope,可将 1 个范围内声明的值返回到父作用域。创建的 scope 需使用 OH_JSVM_CloseEscapableHandleScope 进行关闭。OH_JSVM_EscapeHandle 将传入的 JavaScript 对象的生命周期提升到其父作用域。 -通过上述接口可以更灵活的使用管理传入的 JavaScript 对象,特别是在处理跨作用域的值传递时非常有用。 +通过接口OH_JSVM_OpenEscapableHandleScope创建一个可逃逸的handel scope,可将一个范围内声明的值返回到父作用域。创建的scope需使用OH_JSVM_CloseEscapableHandleScope进行关闭。OH_JSVM_EscapeHandle将传入的JavaScript对象的生命周期提升到其父作用域。 +通过上述接口可以更灵活的使用管理传入的JavaScript对象,特别是在处理跨作用域的值传递时非常有用。 cpp 部分代码 @@ -163,15 +163,15 @@ JSVM EscapableHandleScopeTest: success ### OH_JSVM_CreateReference、OH_JSVM_DeleteReference、OH_JSVM_GetReferenceValue -1. 调用 OH_JSVM_CreateReference 为 JavaScript 变量创建一个引用,以延长其生命周期。 -2. 调用 OH_JSVM_GetReferenceValue 获取与引用关联的 JavaScript 变量。 -3. 调用 OH_JSVM_DeleteReference 删除传入的引用。 +1. 调用OH_JSVM_CreateReference为JavaScript变量创建引用,延长其生命周期。 +2. 调用OH_JSVM_GetReferenceValue获取与引用关联的JavaScript变量。 +3. 调用OH_JSVM_DeleteReference删除传入的引用。 -调用者需要自己管理引用生命周期,引用有效期间 JavaScript 变量不会被垃圾回收处理。 +调用者需要自己管理引用生命周期,引用有效期间JavaScript变量不会被垃圾回收处理。 ### OH_JSVM_ReferenceRef、OH_JSVM_ReferenceUnref -增加/减少 传入的引用的引用计数,并获取新的计数。当引用计数被置为 0 后,对于可以被设置为弱引用的 JavaScript 类型(对象、函数、外部变量),引用将被置为弱引用,在垃圾回收机制认为必要的时候该变量会被回收,当变量被回收后,调用 OH_JSVM_GetReferenceValue 会获得 C NULL;对于不可被置为弱引用的 JavaScript 类型,该引用会被清除,调用 OH_JSVM_GetReferenceValue 会获得 C NULL。 +增加/减少传入引用的引用计数,并获取新的计数。当引用计数被置为0后,对于可以被设置为弱引用的 avaScript类型(对象、函数、外部变量),引用将变为弱引用,在垃圾回收机制认为必要的时候该变量会被回收,当变量被回收后,调用OH_JSVM_GetReferenceValue会获得C NULL;对于不可设为弱引用的JavaScript类型,该引用会被清除,调用OH_JSVM_GetReferenceValue也会返回C NULL。 cpp部分代码 @@ -252,8 +252,8 @@ JSVM UseReference success ``` ### OH_JSVM_AddFinalizer -为 JavaScript 对象添加 JSVM_Finalize 回调,当 JavaScript 对象被垃圾回收时执行函数回调,该接口通常被用于释放与 JavaScript 对象相关的原生对象。如果传入的参数类型不是 JavaScript 对象,该接口调用失败并返回错误码。 -Finalizer 方法被注册后无法取消,如果在调用 OH_JSVM_DestroyEnv 前均未被执行,则在 OH_JVSM_DestroyEnv 时执行。 +为JavaScript对象添加JSVM_Finalize回调,当JavaScript对象被垃圾回收时执行函数回调,该接口通常被用于释放与JavaScript对象相关的原生对象。如果传入的参数类型不是JavaScript对象,该接口调用失败并返回错误码。 +Finalizer方法被注册后无法取消,如果在调用OH_JSVM_DestroyEnv前均未被执行,则在OH_JVSM_DestroyEnv时执行。 cpp 部分代码 diff --git a/zh-cn/application-dev/napi/use-jsvm-memory-management.md b/zh-cn/application-dev/napi/use-jsvm-memory-management.md index f651067748b..f1bfcfc7245 100644 --- a/zh-cn/application-dev/napi/use-jsvm-memory-management.md +++ b/zh-cn/application-dev/napi/use-jsvm-memory-management.md @@ -2,26 +2,26 @@ ## 简介 -JSVM-API提供了一组用于管理JavaScript虚拟机内存的API,可以更好地控制JavaScript代码使用的内存,并优化内存管理和垃圾回收机制。 +JSVM-API提供了一组用于管理JavaScript虚拟机内存的API,可以更好地控制JavaScript代码使用的内存,优化内存管理和垃圾回收机制。 ## 基本概念 -在JavaScript中,内存管理和垃圾回收是自动进行的。JavaScript虚拟机负责跟踪对象的分配和释放,并在必要时回收不再使用的内存。但是,在某些情况下,JSVM可能会消耗大量的内存,这可能会导致内存不足的错误。为了避免这种情况,JSVM-API提供了一些接口,以便更好地控制内存管理和垃圾回收机制。 +在JavaScript中,内存管理和垃圾回收由虚拟机自动处理。JavaScript虚拟机负责跟踪对象的分配和释放,并在必要时回收不再使用的内存。但是,在某些情况下,JSVM可能会消耗大量的内存,这可能会导致内存不足的错误。为了避免这种情况,JSVM-API提供了一些接口,以便更好地控制内存管理和垃圾回收机制。 ## 接口说明 | 接口 | 功能说明 | |----------------------------|-------------------------------------| | OH_JSVM_AdjustExternalMemory | 用于管理由JavaScript对象持有的外部分配内存| -| OH_JSVM_MemoryPressureNotification | 通知虚拟机系统内存不足并有选择地触发垃圾回收| +| OH_JSVM_MemoryPressureNotification | 通知虚拟机系统内存不足并有选择地触发垃圾回收机制| ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++及ArkTS相关代码进行展示。 +JSVM-API接口开发流程可参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示C++及ArkTS相关代码。 ### OH_JSVM_AdjustExternalMemory -设置JavaScript对象保持活动状态的外部分配内存的数量 +设置JavaScript对象的外部分配内存大小以保持活动状态 cpp部分代码 @@ -71,7 +71,7 @@ JSVM Allocate memory size: 1048576 ### OH_JSVM_MemoryPressureNotification -通知虚拟机系统内存不足并有选择地触发垃圾回收 +通知虚拟机系统内存不足并有选择地触发垃圾回收机制 cpp部分代码 diff --git a/zh-cn/application-dev/napi/use-jsvm-strict-equals.md b/zh-cn/application-dev/napi/use-jsvm-strict-equals.md index 0bf8ca57aa0..903f8079635 100644 --- a/zh-cn/application-dev/napi/use-jsvm-strict-equals.md +++ b/zh-cn/application-dev/napi/use-jsvm-strict-equals.md @@ -2,11 +2,11 @@ ## 简介 -JSVM-API中用于判断给定的两个JavaScript值是否严格相等,类似于JavaScript中的===操作符。使用这个函数可以避免类型转换和松散相等性比较,确保两个值不仅在值上相等,而且在类型上也相等。 +JSVM-API中用于判断给定的两个JavaScript值是否严格相等,类似于JavaScript中的===操作符。使用该函数可以避免类型转换和松散相等性比较,确保两个值在值和类型上都相等。 ## 基本概念 -比较两个JavaScript值是否严格相等。严格相等比较不会进行类型转换,它要求两个值的类型和值完全相同才会返回true。 +比较两个JavaScript值是否严格相等。严格相等比较不会进行类型转换,要求两个值的类型和值完全相同才会返回true。 ## 接口说明 @@ -16,11 +16,11 @@ JSVM-API中用于判断给定的两个JavaScript值是否严格相等,类似 ## 使用示例 -JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 +JSVM-API接口开发流程可参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅展示接口对应的C++相关代码。 ### OH_JSVM_StrictEquals -判断给定的两个JS value是否严格相等。 +判断给定的两个JavaScript value是否严格相等。 cpp部分代码 diff --git a/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md b/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md index e2a4235f4fb..6b322fd3d89 100644 --- a/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md +++ b/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md @@ -2,29 +2,29 @@ ## 简介 -JSVM-API提供了一组用于处理JSVM异常的接口。用户可以通过这些接口,向JSVM中注册回调函数。当JSVM触发异常时,会触发对所注册的回调函数的回调。 -这些接口提供了对JS引擎中某些关键错误的定制化处理能力,可以帮助开发者在运行时更好地管理错误和异常情况。 +JSVM-API提供了一组用于处理JSVM异常的接口。开发者可以通过这些接口向JSVM注册回调函数。当JSVM触发异常时,会触发对已注册的回调函数。 +这些接口提供了对JS引擎中关键错误的定制化处理,帮助开发者在运行时管理错误和异常。 ## 基本概念 -当JS引擎遇到内存不足的问题时,系统会抛出一个OOM Error,如果开发者提前向JS引擎中注册了OOM-Error的处理函数,系统就会调用这个设置的处理函数,开发者可以在处理函数中执行一些清理或者日志记录操作。 -当JS引擎发生致命错误时,例如执行JavaScript代码时出现无法恢复的错误,系统会抛出一个Fatal Error,同时系统会调用用户提前设置的处理Fatal Error的函数。在这个处理函数中,用户可以输出额外的日志或者报告错误,而不是让程序直接崩溃。 -当JavaScript中的Promise被拒绝,而这个拒绝又没有被catch处理时,系统就会抛出一个Promise Reject,同时系统会调用用户提前设置的处理Promise Reject的函数。在这个处理函数中,用户可以处理未捕获的Promise拒绝。 +当JS引擎遇到内存不足时,系统会抛出OOM Error。如果提前注册了OOM Error处理函数,系统将调用此处理函数。开发者可以在处理函数中执行一些清理或者日志记录操作。 +当JS引擎发生致命错误时,如执行JavaScript代码时出现无法恢复的错误,系统会抛出一个Fatal Error,并调用用户预先设置的Fatal Error处理函数。在该处理函数中,可以输出额外日志或报告错误,避免程序直接崩溃。 +当JavaScript中的Promise被拒绝且未被catch处理时,系统会抛出一个未捕获的Promise Reject,并调用用户预设的Promise Reject处理函数。在该处理函数中,用户可以处理未捕获的Promise拒绝。 ## 接口说明 | 接口 | 功能说明 | |----------------------------|-------------------------------------| -| OH_JSVM_SetHandlerForOOMError | 用于在VM中设置处理OOM-Error的函数| -| OH_JSVM_SetHandlerForFatalError | 用于在VM中设置处理Fatal-Error的函数| -| OH_JSVM_SetHandlerForPromiseReject | 用于在VM中设置处理Promise-Reject的函数 | +| OH_JSVM_SetHandlerForOOMError | 用于在VM中设置处理OOM Error的函数| +| OH_JSVM_SetHandlerForFatalError | 用于在VM中设置处理Fatal Error的函数| +| OH_JSVM_SetHandlerForPromiseReject | 用于在VM中设置处理Promise Reject的函数 | ## 使用示例 JSVM-API接口开发流程参考[使用JSVM-API实现JS与C/C++语言交互开发流程](use-jsvm-process.md),本文仅对接口对应C++相关代码进行展示。 ### OH_JSVM_SetHandlerForOOMError -通过OH_JSVM_SetHandlerForOOMError,用户可以设置处理OOM Error的函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。当用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 +使用OH_JSVM_SetHandlerForOOMError,用户可以设置OOM Error的处理函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 #### cpp部分代码 @@ -62,9 +62,9 @@ static JSVM_Value TriggerOOMError(JSVM_Env env, JSVM_CallbackInfo info) } } if (oomHandlerFinished) { - OH_LOG_INFO(LOG_APP, "JSVM Trigger OOM-Error: success"); + OH_LOG_INFO(LOG_APP, "JSVM Trigger OOM Error: success"); } else { - OH_LOG_ERROR(LOG_APP, "JSVM Trigger OOM-Error: failed"); + OH_LOG_ERROR(LOG_APP, "JSVM Trigger OOM Error: failed"); } // 取消对OOM Error处理函数的设置 JSVM_CALL(OH_JSVM_SetHandlerForOOMError(vm, NULL)); @@ -88,10 +88,10 @@ const char *srcCallNative = R"JS(triggerOOMError();)JS"; #### 执行结果 -在LOG中输出: JSVM Trigger OOM-Error: success +在LOG中输出: JSVM Trigger OOM Error:success ### OH_JSVM_SetHandlerForFatalError -通过OH_JSVM_SetHandlerForFatalError,用户可以设置处理Fatal Error的函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。当用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 +使用OH_JSVM_SetHandlerForFatalError,用户可以设置Fatal Error的处理函数。当多次调用此API进行函数设置时,仅最后一次设置会生效。用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 #### cpp部分代码 ```cpp @@ -153,10 +153,10 @@ const char* srcCallNative = R"JS(triggerFatalError())JS"; #### 执行结果 -在LOG中输出: JSVM Trigger Fatal-Error: success +在LOG中输出: JSVM Trigger Fatal Error:success ### OH_JSVM_SetHandlerForPromiseReject -通过OH_JSVM_SetHandlerForPromiseReject,用户可以设置处理Promise Reject的函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。当用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 +通过OH_JSVM_SetHandlerForPromiseReject,用户可以设置Promise Reject的处理函数。多次调用此API进行函数设置时,仅最后一次设置会生效。用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 #### cpp部分代码 ```cpp @@ -227,4 +227,4 @@ const char* srcCallNative = R"JS(triggerPromiseReject())JS"; #### 执行结果 -在LOG中输出: JSVM Trigger PromiseReject: success \ No newline at end of file +在LOG中输出: JSVM Trigger Promise Reject:success \ No newline at end of file -- Gitee