Patch Changes
-
ContentRangenow rejects ranges whose end precedes their start or reaches a known resource size, including ranges made invalid by field mutation. Initializers with an incomplete pair of bounds continue to serialize as unsatisfied ranges. (#12040) -
IfNoneMatch#matches()now treats strong and weak entity tags with the same opaque tag as equivalent, as required forIf-None-Matchcache validation by RFC 9110. (#12048) -
Fix
IfRange.matches()incorrectly matching dates againstETagor accepting malformed nonempty values as entity tags. HTTP dates now compare only againstLast-Modified, and ETags must be valid quoted strong tags. Empty and absent values retain their existing unconditional matching behavior. (#12049) -
Ignore malformed lines rejected by the Web
HeadersAPI while parsing raw header strings, preserving valid surrounding headers. (#12027) -
Preserve valid
Rangeheader serialization for decimal bounds above JavaScript's maximum safe integer while retaining equivalent range semantics for supported resource sizes. (#12025) -
Return only satisfiable byte ranges from
Range.normalize(), excluding zero-length suffixes and members outside the resource bounds. (#12023) -
Preserve backslashes in serialized header parameter values, such as
ContentDispositionfilenames, so they round-trip without data loss. (#12002) -
SuperHeadersnumeric accessors now returnnullinstead ofNaNwhen the raw header value has no parseable integer prefix. (#12046)