mirror of
https://github.com/2234839/web-font.git
synced 2026-09-07 08:12:16 +08:00
subsetGSUB 对每个 supported lookup 预扫描所有子表是否都 coverage 全子集外 (isSubtableSkipableByCoverage)。全空 lookup 序列化结果必然是 N 个空 subtable (与逐子表 serializeSubtable 失败后 writeEmptySubtable 逐字节相同),直接在 lookup 级 批量写空,跳过 N 次 serializeSubtable 函数调用 + 预检 + rollback 开销。 初夏 lookup[5] type6 268 子表(小子集全不命中)是典型受益场景。 安全性:allEmpty 当且仅当所有子表 isSubtableSkipableByCoverage===true,而 serializeSubtable 内部对 skipable 子表直接 return false(→空 subtable),故输出逐字节相同(含 FiraCode 连字)。 format2 class 驱动子表不预检(返回 false),含 format2 的 lookup allEmpty 必为 false 走原路径。 subCount 不变、lookup 不删(区别于已证危险的 GSUB lookup 删除)。 subsetGSUB 初夏 0.215→0.178ms(-17%),全基准 SSIM 与输出字节完全不变(diff 验证 hash 一致)。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>