perf(gsub-reachable): 合并 lookupRelOffs 读取到 lookup parse 主循环

原实现先收集 lookupRelOffs 到中间数组,主循环再按下标回读。合并后直接在
主循环内读取偏移,省去中间数组分配与一次回读。FiraCode collectReachable
-2.3%(0.116→0.113ms),reachable 集合 sha256 不变

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
崮生(子虚) 2026-07-24 16:34:08 +08:00
parent a1fe4da1ce
commit 694364769e

View File

@ -104,19 +104,16 @@ export function collectReachableGsubTargets(
const lookupListOff = r.u16(8);
const lookupCount = r.u16(lookupListOff);
const lookupRelOffs: number[] = [];
for (let i = 0; i < lookupCount; i++) {
lookupRelOffs.push(r.u16(lookupListOff + 2 + i * 2));
}
/** 解析每个 lookup 的 (effectiveType, subtableAbsOffs) */
/** lookup (effectiveType, subtableAbsOffs)
* lookupRelOffs */
interface LookupParsed {
effectiveType: number;
subtableAbsOffs: number[];
}
const lookups: LookupParsed[] = [];
for (let i = 0; i < lookupCount; i++) {
const lOff = lookupListOff + lookupRelOffs[i];
const lOff = lookupListOff + r.u16(lookupListOff + 2 + i * 2);
const lookupType = r.u16(lOff);
const subTableCount = r.u16(lOff + 4);
const subtableAbsOffs: number[] = [];