harmony 鸿蒙ArkCompiler子系统Changelog

  • 2025-06-16
  • 浏览 (7)

ArkCompiler子系统Changelog

cl.arkcompiler.1 JSON.parse解析非法字符串行为变更

访问级别

公开接口

变更原因

JSON.parse解析非法字符串未抛JS异常,表现与预期及ECMA规范不一致

变更影响

该变更为不兼容性变更。

const strData = `{"k1": "hello", "k2": 3}`;
const strErr = strData.substring(0, strData.length - 2); // `{"k1": "hello", "k2": `
JSON.parse(strErr);

变更前:JSON.parse解析非法字符串strErr能够正常解析,未抛出JS异常。

变更后:JSON.parse解析非法字符串strErr抛出JS异常。

起始API Level

12

变更发生版本

5.0 Beta3

变更的接口/组件

JSON.parse/ASON.parse/util.json.parse

适配指导

针对JSON.parse解析非法字符串的异常场景,开发者需要保证传入的字符串为合法字符串,或者使用try-catch捕获异常。

cl.arkcompiler.2 JSON.parse解析浮点数下溢或-0行为变更

访问级别

公开接口

变更原因

JSON.parse相关接口解析字符串含有浮点数下溢或-0的情况,表现与规范不一致。

变更影响

该变更为不兼容性变更。

变更前: JSON.parse('123.456e-789'); 返回 -Infinity,是错误结果。 1/JSON.parse('-0'); 返回 Infinity,是错误结果。

变更后: JSON.parse('123.456e-789'); 返回 0,是正确结果。 1/JSON.parse('-0'); 返回 -Infinity,是正确结果。

起始API Level

12

变更发生版本

5.0 Beta3

变更的接口/组件

JSON.parse/ASON.parse/util.json.parse

适配指导

对于开发者,排查代码中是否存在对JSON.parse相关接口传入下溢的浮点数字符串与-0的情况,如果存在该现象,则排查代码逻辑是否能适配正确的值。

cl.arkcompiler.3 TextEncoder.encodeInto()接口变更

访问级别

公开接口

变更原因

TextEncoder.encodeInto编码字符串,当字符串中每多一个’\0’字符,返回的数组长度会增加2,长度异常。

变更影响

该变更为不兼容性变更。

const arr = encoder.encodeInto('\0ab');
arr.length;

变更前:arr = [0x00, 0x61, 0x62, 0x00], arr.length 为4

变更后:arr = [0x00, 0x61, 0x62], arr.length 为3

起始API Level

9

变更发生版本

5.0 Beta3

变更的接口/组件

TextEncoder.encodeInto

适配指导

针对TextEncoder.encodeInto编码字符串时,注意返回的数组长度。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙无障碍子系统Changelog

harmony 鸿蒙ArkTS子系统变更说明

harmony 鸿蒙cl.arkui.1 Menu组件箭头离宿主节点默认安全边距变更

harmony 鸿蒙包管理子系统变更说明

harmony 鸿蒙窗口子系统变更说明

0  赞