From 5500140105d23e2d85cc2ed61f6fd662f7ea4882 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:43:00 +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: 王忠齐 --- ...use-jsvm-heapstatistics-debugger-cpuprofiler-heapsnapshot.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c98a9962c6c..c727a58625f 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 @@ -156,7 +156,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 8a3707a7d275a21d112f0d78a21b1e5c6ccc3c62 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 c20e1d83f4c..b103038746d 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-JSON.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-JSON.md @@ -87,8 +87,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 fe28e95de33..f21ff1fc561 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-class.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-class.md @@ -81,19 +81,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' 运算符被调用的。 @@ -180,15 +180,15 @@ static JSVM_PropertyDescriptor descriptor[] = { ``` #### 样例JS - +```ts const char *srcCallNative = R"JS( defineClass(); )JS"; - +``` #### 执行结果 在LOG中输出下面的结果: - +```ts Create Instance NAPI MyObject::New newTarget != nullptr @@ -200,7 +200,7 @@ Create Instance NAPI MyObject::New newTarget == nullptr NewInstance:{"name":"lilei"} - +``` ### OH_JSVM_Wrap 在JavaScript对象中封装原生实例。稍后可以使用OH_JSVM_Unwrap()解包原生实例 @@ -292,17 +292,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 @@ -491,9 +491,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 6946712393f..b93a0d7b433 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-string.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-string.md @@ -80,9 +80,9 @@ const char *srcCallNative = R"JS( ``` 预期输出结果 - +```ts ![GetValueStringUtf8](figures/jsvm_about_string_GetValueStringUtf8.png) - +``` **注意事项**:`getValueStringUtf8(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringUtf8 @@ -129,9 +129,9 @@ const char *srcCallNative = R"JS( ``` 预期输出结果 - +```ts ![CreateStringUtf8](figures/jsvm_about_string_CreateStringUtf8.png) - +``` ### OH_JSVM_GetValueStringUtf16 OH_JSVM_GetValueStringUtf16,将JavaScript的字符类型的数据转换为utf16编码的字符。 @@ -192,9 +192,9 @@ const char *srcCallNative = R"JS( ``` 预期输出结果 - +```ts ![GetValueStringUtf16](figures/jsvm_about_string_GetValueStringUtf16.png) - +``` **注意事项**:`getValueStringUtf16(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringUtf16 @@ -248,9 +248,9 @@ const char *srcCallNative = R"JS( ``` 预期输出结果 - +```ts ![CreateStringUtf16](figures/jsvm_about_string_CreateStringUtf16.png) - +``` ### OH_JSVM_GetValueStringLatin1 OH_JSVM_GetValueStringLatin1接口可以将JavaScript的字符类型的数据转换为ISO-8859-1编码的字符。 @@ -301,10 +301,10 @@ const char *srcCallNative = R"JS( ``` 预期输出结果 - +```ts *ISO-8859-1编码不支持中文,传入中文字符会乱码* ![GetValueStringLatin1](figures/jsvm_about_string_GetValueStringLatin1.png) - +``` **注意事项**:`getValueStringLatin1(arg)`入参`arg`非字符串型数据时接口会调用失败。 ### OH_JSVM_CreateStringLatin1 @@ -355,5 +355,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 ae36c5fe944..ce67d4c2898 100644 --- a/zh-cn/application-dev/napi/use-jsvm-memory-management.md +++ b/zh-cn/application-dev/napi/use-jsvm-memory-management.md @@ -65,9 +65,10 @@ const char *srcCallNative = R"JS(adjustExternalMemory())JS"; ``` 输出结果 在LOG中输出下面的信息: +```ts JSVM OH_JSVM_AdjustExternalMemory: success JSVM Allocate memory size: 1048576 - +``` ### OH_JSVM_MemoryPressureNotification 通知虚拟机系统内存不足并有选择地触发垃圾回收 @@ -110,5 +111,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 fe48045c8611990d12a43f662f0791fa143669b1 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 84d73fb38fb..76480229fce 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-primitive.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-primitive.md @@ -369,7 +369,7 @@ JSVM OH_JSVM_GetGlobal success ### OH_JSVM_GetNull -用于获取JavaScript null +调用 JSVM 接口获取 JavaScript 的 null 值 cpp 部分代码 @@ -409,7 +409,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 435e0c704ec..7bcefb405d9 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-property.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-property.md @@ -235,7 +235,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 595d273811d..448a392cbec 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 77e1cdb60a9332280e808fdbdbb92d441b266079 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:20:45 +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 | 1 + 1 file changed, 1 insertion(+) 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 f21ff1fc561..3c62cbe8ed5 100644 --- a/zh-cn/application-dev/napi/use-jsvm-about-class.md +++ b/zh-cn/application-dev/napi/use-jsvm-about-class.md @@ -314,6 +314,7 @@ JSVM removeWrap JSVM OH_JSVM_RemoveWrap success JSVM deref_item +``` ### OH_JSVM_DefineClassWithOptions **Note:** 传入的父类class必须是通过OH_JSVM_DefineClass系列接口创建出来的,不然会被视为无效参数,返回JSVM_INVALID_ARG错误码。 -- Gitee