Repository navigation
v2.27.1
English
Fixes
- Fix false Hermes base rejections when
DefineOwnByIdchanges operand width and the pretty disassembly truncates property names, including non-ASCII names. Full property names remain checked by the binary/raw audit. (#85) - Compare
CacheNewObjectshapes by their ordered, fully decoded property keys instead of physical table indices. Registers and cache indices remain significant; undecodable references fail safely. (#85) - Use neutral account renewal notice prefixes in English and Chinese, without changing the message body or placeholders. (#85)
Test tooling
- Require all requested positive fuzz comparisons, zero compilation failures, and at least one effective planted difference before a run can succeed. Keep unsuccessful samples for diagnosis. (#85)
- Mutate actual JavaScript string tokens rather than quote-matching regex results, avoiding invalid source around escaped quotes. Reject missing, empty or invalid
--roundsvalues with exit code2before creating output or invoking the compiler. (#85)
Validation and compatibility
- The merged source commit passed all seven CI jobs, including HBC 96 and HBC 98 compiler regressions, 50 seeded fuzz rounds per compiler, Node.js 18.17 runtime checks, and the publish dry run. The compiler matrix uses
react-native@0.77.3,hermes-compiler@250829098.0.16andhermes-compiler@250829098.0.17. - Update-package formats, server protocols and the Node.js
>=18.17.0requirement are unchanged. Both verification passes and the plain-compilation fallback remain in place. The dedicatedCacheNewObjecttests use synthetic binary fixtures; broader unknown-opcode auditing remains a separate follow-up.
Full changelog: v2.27.0...v2.27.1
中文
修复
- 修复
DefineOwnById操作数宽度变化、pretty 反汇编截断属性名时错误拒绝正常 Hermes base 的问题,包括非 ASCII 属性名。完整属性名仍由二进制/raw 核对检查。 (#85) CacheNewObject按有序、完整解码的属性键比较 shape,不再直接比较物理表索引。寄存器和 cache 索引仍参与比较,无法解码的引用会安全失败。 (#85)- 英文和中文的账号续费提示使用中性通知前缀,不改变消息正文或占位符。 (#85)
测试工具
- fuzz 必须完成全部请求的正例比较、没有编译失败,并至少检查一个有效的植入差异,才能返回成功。保留未成功的样本用于诊断。 (#85)
- 按真实 JavaScript 字符串 token 进行变异,替代匹配引号的正则,避免在转义引号附近生成非法源码。
--rounds缺值、空值或非法值在创建输出或调用编译器前以退出码2拒绝。 (#85)
验证与兼容性
- 合并后的源码提交通过全部七项 CI 任务,包括 HBC 96 和 HBC 98 编译器回归、每种编译器 50 轮固定种子 fuzz、Node.js 18.17 运行时检查和发布预演。编译器矩阵使用
react-native@0.77.3、hermes-compiler@250829098.0.16和hermes-compiler@250829098.0.17。 - 更新包格式、服务端协议及 Node.js
>=18.17.0要求均未改变。保留两轮校验和普通编译回退。CacheNewObject专项测试使用合成二进制样本,更全面的未知 opcode 审计仍是独立的后续工作。
完整变更: v2.27.0...v2.27.1