#7401 brought the file back under the cap, but only just: it is now at exactly 2000 of 2000 allowed lines. The next line anyone adds turns lint — a required check — red on main again.
It was at 1990 before 2026-08-04, so it has been one small change away from this for some time. #7401 bought roughly nothing in headroom; it unblocked the gate, it did not fix the problem.
Why this matters more than a style cap
While lint is red, it is a required context that everyone bypasses. That is the gate-theatre pattern in its purest form: the check is required, it is failing, and nothing stops. A file parked at 100% of the cap guarantees a recurrence.
Suggested split
js_object_set_field_by_name is the bulk of it and has several clearly separable concerns:
- the shape-transition cache fast path
- the
keys.is_null() / first-key creation path
- the overflow-map arms
- the class-static mirror interaction (eight call sites)
- the descriptor/frozen/sealed guards
Any two of those moving to a sibling module buys enough headroom that the cap stops being a tripwire.
Related
The eight refresh_roots_after_alloc!() sites came from #7381/#7383. Their rationale now lives once at the macro rather than at each call site, which is the right shape and should be preserved by any split.
#7401 brought the file back under the cap, but only just: it is now at exactly 2000 of 2000 allowed lines. The next line anyone adds turns
lint— a required check — red onmainagain.It was at 1990 before 2026-08-04, so it has been one small change away from this for some time. #7401 bought roughly nothing in headroom; it unblocked the gate, it did not fix the problem.
Why this matters more than a style cap
While
lintis red, it is a required context that everyone bypasses. That is the gate-theatre pattern in its purest form: the check is required, it is failing, and nothing stops. A file parked at 100% of the cap guarantees a recurrence.Suggested split
js_object_set_field_by_nameis the bulk of it and has several clearly separable concerns:keys.is_null()/ first-key creation pathAny two of those moving to a sibling module buys enough headroom that the cap stops being a tripwire.
Related
The eight
refresh_roots_after_alloc!()sites came from #7381/#7383. Their rationale now lives once at the macro rather than at each call site, which is the right shape and should be preserved by any split.