From 5183f7718abaf7a4251af516e78f9bceccd24044 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=A0=E9=BD=90?= Date: Fri, 4 Jul 2025 14:40:10 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=96=87=E6=A1=A3=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/jsvm-debugger-cpuprofiler-heapsnapshot.md | 2 +- zh-cn/application-dev/napi/use-jsvm-about-v8-trace.md | 2 +- ...use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md b/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md index 0573616b31f..ca908dbb931 100644 --- a/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md +++ b/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md @@ -36,7 +36,7 @@ JSVM,即标准JS引擎,是严格遵守Ecmascript规范的JavaScript代码执 }] ``` -2. 为避免debugger过程中的暂停被误报为无响应异常,可以[开启DevEco Studio的Debug模式](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-debug-arkts-debug-V5)(无需设置断点),或者可以在非主线程的其他线程中运行JSVM。 +2. 为避免debugger过程中的暂停被误报为无响应异常,可以[debug启动调试](https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/ide-debug-arkts-debug-V5)(无需设置断点),或者可以在非主线程的其他线程中运行JSVM。 ```cpp // 在非主线程的其他线程中运行JSVM示例代码 static napi_value RunTest(napi_env env, napi_callback_info info) diff --git a/zh-cn/application-dev/napi/use-jsvm-about-v8-trace.md b/zh-cn/application-dev/napi/use-jsvm-about-v8-trace.md index 9e43e32cf97..343583d7dce 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-v8-trace.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-v8-trace.md @@ -19,7 +19,7 @@ hdc shell setenforce 0 hdc shell param set web.debug.rcs true ``` 2. 启动web场景,可以看到hilog中有“RCS is on”的日志打印输出 -3. 使用hitrace工具抓取对应场景的trace。hitrace使用方法可参考[hitrace使用指导文档](../dfx/hitrace.md)。 +3. 使用hitrace工具抓取对应场景的trace。hitrace使用方法可参考[hitrace](../dfx/hitrace.md)。 4. 使用HiSmartPerf工具解析抓取到的trace,可以看到有“RCS_”前缀的trace点,即为V8对接到HiSmartPerf中的trace点。 5. 要查看compile、runtime、builtin、JS_Execution不同类别的trace数据,可使用以下关键字进行过滤: - compile:RCS_v8.compile 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..8c412ff3311 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 @@ -163,7 +163,7 @@ JSVM API heap usedGlobalHandlesSize: 32 以下接口的示例代码可以参考链接: -[JSVM调试调优能力](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md) +[JSVM-API调试&定位](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/napi/jsvm-debugger-cpuprofiler-heapsnapshot.md) ### OH_JSVM_StartCpuProfiler -- Gitee From e1b28482517d0a32bc3d175f7d2bd7f823304e18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=A0=E9=BD=90?= Date: Fri, 4 Jul 2025 15:14:26 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=96=87=E6=A1=A3=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-JSON.md | 4 +-- .../napi/use-jsvm-about-class.md | 27 +++++++++-------- .../napi/use-jsvm-about-string.md | 23 ++++++++------- .../napi/use-jsvm-memory-management.md | 7 +++-- .../napi/use-jsvm-trigger-exceptions.md | 29 ++++++++++++------- .../napi/use-jsvm-trigger-gc.md | 5 +++- 6 files changed, 56 insertions(+), 39 deletions(-) diff --git a/zh-cn/application-dev/napi/use-jsvm-about-JSON.md b/zh-cn/application-dev/napi/use-jsvm-about-JSON.md index c18fa534bda..8f0df9bb43f 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-JSON.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-JSON.md @@ -88,8 +88,8 @@ JSVM_PropertyDescriptor descriptor[] = { ## 预期结果 - +```ts Test JSVM jsonParseNumber: 10.555000 Test JSVM jsonParseNumber: {"first":"one","second":"two","third":"three"} - +``` diff --git a/zh-cn/application-dev/napi/use-jsvm-about-class.md b/zh-cn/application-dev/napi/use-jsvm-about-class.md index 5f08ba3d6df..8dfe77a4e52 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-class.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-class.md @@ -82,19 +82,19 @@ static JSVM_PropertyDescriptor descriptor[] = { #### 样例JS - +```ts const char *srcCallNative = R"JS( function Fruit(name) { this.name = name; } newInstance(Fruit, "apple"); )JS"; - +``` #### 执行结果 - 在LOG中输出下面的结果: +```ts NewInstance:{"name":"apple"} - +``` ### OH_JSVM_GetNewTarget 用于获取函数的元属性new.target值。在JavaScript中,new.target是一个特殊的元属性,用于检测函数或构造函数是否是通过 'new' 运算符被调用的。 @@ -182,15 +182,15 @@ static JSVM_PropertyDescriptor descriptor[] = { #### 样例JS - +```ts const char *srcCallNative = R"JS( defineClass(); )JS"; - +``` #### 执行结果 在LOG中输出下面的结果: - +```ts Create Instance NAPI MyObject::New newTarget != nullptr @@ -202,7 +202,7 @@ Create Instance NAPI MyObject::New newTarget == nullptr NewInstance:{"name":"lilei"} - +``` ### OH_JSVM_Wrap 在JavaScript对象中封装原生实例。稍后可以使用OH_JSVM_Unwrap()解包原生实例 @@ -295,17 +295,17 @@ static JSVM_PropertyDescriptor descriptor[] = { #### 样例JS - +```ts const char *srcCallNative = R"JS( class Obj {}; wrapObject(new Obj()); removeWrap(new Obj()); )JS"; - +``` #### 执行结果 在LOG中输出下面的结果: - +```ts JSVM wrap JSVM name: lilei @@ -494,9 +494,12 @@ static JSVM_PropertyDescriptor descriptor[] = { ``` #### 样例JS - +```ts const char *srcCallNative = R"JS(testDefineClassWithOptions();)JS"; +``` #### 执行结果 在LOG中输出下面的结果: +```ts Run OH_JSVM_DefineClassWithOptions: Success +``` \ No newline at end of file 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..144049c3e3a 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-string.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-string.md @@ -81,9 +81,9 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts ![GetValueStringUtf8](figures/jsvm_about_string_GetValueStringUtf8.png) - +``` **注意事项**:`getValueStringUtf8(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringUtf8 @@ -131,9 +131,9 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts ![CreateStringUtf8](figures/jsvm_about_string_CreateStringUtf8.png) - +``` ### OH_JSVM_GetValueStringUtf16 OH_JSVM_GetValueStringUtf16,将JavaScript的字符类型的数据转换为utf16编码的字符。 @@ -195,9 +195,9 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts ![GetValueStringUtf16](figures/jsvm_about_string_GetValueStringUtf16.png) - +``` **注意事项**:`getValueStringUtf16(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringUtf16 @@ -252,9 +252,9 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts ![CreateStringUtf16](figures/jsvm_about_string_CreateStringUtf16.png) - +``` ### OH_JSVM_GetValueStringLatin1 OH_JSVM_GetValueStringLatin1接口可以将JavaScript的字符类型的数据转换为ISO-8859-1编码的字符。 @@ -306,10 +306,10 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts *ISO-8859-1编码不支持中文,传入中文字符会乱码* ![GetValueStringLatin1](figures/jsvm_about_string_GetValueStringLatin1.png) - +``` **注意事项**:`getValueStringLatin1(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringLatin1 @@ -361,5 +361,6 @@ const char *srcCallNative = R"JS( 预期输出结果 - +```ts ![CreateStringLatin1](figures/jsvm_about_string_CreateStringLatin1.png) +``` \ No newline at end of file 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..91b63cb59ee 100644 --- a/zh-cn/application-dev/napi/use-jsvm-memory-management.md +++ b/zh-cn/application-dev/napi/use-jsvm-memory-management.md @@ -66,9 +66,10 @@ const char *srcCallNative = R"JS(adjustExternalMemory())JS"; 输出结果 在LOG中输出下面的信息: +```ts JSVM OH_JSVM_AdjustExternalMemory: success JSVM Allocate memory size: 1048576 - +``` ### OH_JSVM_MemoryPressureNotification 通知虚拟机系统内存不足并有选择地触发垃圾回收 @@ -112,5 +113,7 @@ const char *srcCallNative = R"JS(memoryPressureNotification())JS"; 输出结果 在LOG中输出下面的信息: +```ts JSVM OH_JSVM_MemoryPressureNotification: success -JSVM Current JSVM memory pressure level: 2 \ No newline at end of file +JSVM Current JSVM memory pressure level: 2 +``` \ No newline at end of file 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..40335b63f00 100644 --- a/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md +++ b/zh-cn/application-dev/napi/use-jsvm-trigger-exceptions.md @@ -83,12 +83,15 @@ static JSVM_PropertyDescriptor descriptor[] = { }; ``` #### 样例测试JS - +```ts const char *srcCallNative = R"JS(triggerOOMError();)JS"; - +``` #### 执行结果 -在LOG中输出: JSVM Trigger OOM-Error: success +在LOG中输出:  +```ts +JSVM Trigger OOM-Error: success +``` ### OH_JSVM_SetHandlerForFatalError 通过OH_JSVM_SetHandlerForFatalError,用户可以设置处理Fatal Error的函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。当用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 @@ -148,13 +151,15 @@ static JSVM_PropertyDescriptor descriptor[] = { }; ``` #### 样例测试JS - +```ts const char* srcCallNative = R"JS(triggerFatalError())JS"; - +``` #### 执行结果 -在LOG中输出: JSVM Trigger Fatal-Error: success - +在LOG中输出:  +```ts +JSVM Trigger Fatal-Error: success +``` ### OH_JSVM_SetHandlerForPromiseReject 通过OH_JSVM_SetHandlerForPromiseReject,用户可以设置处理Promise Reject的函数。当多次调用这个API进行函数设置时,仅最后一次设置会生效。当用户传入的设置函数为NULL时,则表示取消之前设置的处理函数。 #### cpp部分代码 @@ -222,9 +227,11 @@ static JSVM_PropertyDescriptor descriptor[] = { }; ``` #### 样例测试JS - +```ts const char* srcCallNative = R"JS(triggerPromiseReject())JS"; - +``` #### 执行结果 - -在LOG中输出: JSVM Trigger PromiseReject: success \ No newline at end of file +在LOG中输出:  +```ts +JSVM Trigger PromiseReject: success +``` \ No newline at end of file diff --git a/zh-cn/application-dev/napi/use-jsvm-trigger-gc.md b/zh-cn/application-dev/napi/use-jsvm-trigger-gc.md index 5eb6b529b21..e97509e8bf0 100644 --- a/zh-cn/application-dev/napi/use-jsvm-trigger-gc.md +++ b/zh-cn/application-dev/napi/use-jsvm-trigger-gc.md @@ -131,10 +131,12 @@ static JSVM_PropertyDescriptor descriptor[] = { }; ``` #### 样例测试JS +```ts const char *srcCallNative = R"JS(triggerGC();)JS"; - +``` #### 执行结果 在LOG中输出下面结果: +```ts == before GC == gc type: 4 gc flag: 4 @@ -143,3 +145,4 @@ gc type: 4 gc flag: 4 data: 2024 JSVM Trigger GC: success +``` \ No newline at end of file -- Gitee From b9d1b5fd90fd0b8a4de8865ce1dcc2d156f56004 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=A0=E9=BD=90?= Date: Fri, 4 Jul 2025 16:58:38 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王忠齐 --- zh-cn/application-dev/napi/use-jsvm-about-primitive.md | 4 ++-- zh-cn/application-dev/napi/use-jsvm-about-property.md | 2 +- zh-cn/application-dev/napi/use-jsvm-about-version.md | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/zh-cn/application-dev/napi/use-jsvm-about-primitive.md b/zh-cn/application-dev/napi/use-jsvm-about-primitive.md index 125bd98caed..457a392099f 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-primitive.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-primitive.md @@ -376,7 +376,7 @@ JSVM OH_JSVM_GetGlobal success ### OH_JSVM_GetNull -用于获取JavaScript null +调用 JSVM 接口获取 JavaScript 的 null 值 cpp 部分代码 @@ -417,7 +417,7 @@ JSVM OH_JSVM_GetNull success ### OH_JSVM_GetUndefined -用于获取JavaScript undefined +调用 OH_JSVM_GetUndefined 获取 JavaScript 的 undefined 值并返回 cpp 部分代码 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..99ebabdfde1 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-property.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-property.md @@ -239,7 +239,7 @@ JSVM OH_JSVM_HasProperty success:0 ### OH_JSVM_DeleteProperty 尝试从给定的Object中删除由key指定的属性,并返回操作的结果。 -如果对象是一个不可扩展的对象,或者属性是不可配置的,则可能无法删除该属性。 +如果对象是一个不可扩展的对象,或者属性是不可配置的,则无法删除该属性。 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..5444a9e722f 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-version.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-version.md @@ -2,7 +2,7 @@ ## 简介 -用于获取当前版本信息。 +接口代码用于获取当前JSVM API的版本信息。 ## 接口说明 -- Gitee From 165942bdaeca7fcc232aac518c9256bfb71370e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BF=A0=E9=BD=90?= Date: Fri, 4 Jul 2025 17:21:43 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=96=87=E6=A1=A3=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 王忠齐 --- zh-cn/application-dev/napi/use-jsvm-about-class.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zh-cn/application-dev/napi/use-jsvm-about-class.md b/zh-cn/application-dev/napi/use-jsvm-about-class.md index 8dfe77a4e52..994452418a5 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-class.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-class.md @@ -317,7 +317,7 @@ JSVM removeWrap JSVM OH_JSVM_RemoveWrap success JSVM deref_item - +``` ### OH_JSVM_DefineClassWithOptions **Note:** 传入的父类class必须是通过OH_JSVM_DefineClass系列接口创建出来的,不然会被视为无效参数,返回JSVM_INVALID_ARG错误码。 目前支持以下的DefineClassOptions: -- Gitee