Files
ElyOffice/tasks/reviews/C14.5-r3.md
T

6 lines
1.5 KiB
Markdown

FAIL
apps/ely-mark/web/src/find.js:54 — 零宽正则命中后仅前进一个 UTF-16 单元;落到代理对中间时,Unicode 正则会再次返回前一个位置,循环持续收集同一命中,耗尽内存并使页面进程崩溃。复现:打开正文为 U+1F600 字符后接 ` alpha` 的文档,在可视模式开启正则并搜索 `(?=.)`;实际 CEF 探针停在 `before unicode seek`,随后报告 `TS_PROCESS_CRASHED`,V8 日志显示约 4 GB 堆分配失败。实际 docFinder 的 Node 探针也超时;副本按 Unicode 字符边界推进后,真窗口返回 7 个命中并完成。证据:`/tmp/ely-c145-r3-logs-v1e5g43e/native-baseline.out`、`native-baseline.err`、`native-patched.out`、`zero-width-node.log`。修复方向:让命中枚举始终向前推进并遵守 Unicode 字符边界,加入含代理对字符的零宽正则回归,验证查找完成与页面存活。
tests/scripts/comments.py:59 — 跨行块注释检测要求注释起点位于行首,仍漏过代码之后开始的 JavaScript 块注释。复现:在副本 find.js 末尾加入 `const marker = 1 /* A comment`,下一行为 `spanning lines. */`;运行 comments.py 返回 0,并声称全部注释均为单行,违反本轮单行注释规则。扩大起点检测的副本对同一变异返回 1;既有 comments-rules.sh 仅覆盖行首起点。证据:`/tmp/ely-c145-r3-logs-v1e5g43e/comments-inline.log`、`comments-inline-patched.log`。修复方向:识别代码行后的真实块注释起点,加入该跨行变异必须失败的回归检查。