Highlights
- Native TC39 Temporal API via
temporal_rs— 8 Temporal types plusTemporal.Now, and the full options-/fields-object method surface (round/total,with*, conversions) (#4716, #4727). - Major test262 parity gains across built-ins: String 60%→79%, Number 86%→97%, plus broad Array/Promise/Object/BigInt/TypedArray spec-compliance work.
- New compile target: aarch64-linux (linux-arm64) (#4737).
Features
- feat(compile): aarch64-linux target (#4737)
- feat(class): static accessors, JS-canonical numeric keys, default-aware method
.length(#4736) - feat(class): public class-element semantics — accessor keys, prototype-ref setters, static-method descriptors, grammar early errors (#4730)
- feat(temporal): native TC39 Temporal API — 8 types +
Temporal.Now(#4716) - feat(temporal): options-/fields-object methods — round/total, with*, conversions (#4727)
- feat(compile): embed comctl32 v6 manifest so Windows UI apps get themed controls (#4683)
Fixes
- fix(class): computed-key evaluation order + ToPropertyKey TypeError on null-proto key (#4744)
- fix(class): computed-key accessor setter + empty-string static accessor (#4738)
- fix(class): hide private members from reflection + exotic-private-name symbol collision (#4719)
- fix(runtime): built-ins/Object ToPropertyDescriptor field presence is HasProperty (#4743)
- fix(runtime): built-ins/Array generic array-like + stored-method semantics (#4742)
- fix(runtime): stop dereferencing Web-Fetch/native handles as heap objects — Hono response SIGSEGV (#4739)
- fix(object): ValidateAndApplyPropertyDescriptor for non-configurable redefines (#4722)
- fix(object): retain existing-property attributes in Object.defineProperty (#4697)
- fix(runtime): dispatch Reflect proxy descriptors (#4621)
- fix(string): generic-
thisfor all String.prototype methods + slice/substring index coercion — 60%→79% (#4720, #4713) - fix(number): boxed-method identity, toExponential rounding/Infinity, parseInt identity — 86%→97% (#4712)
- fix(bigint): brand check + radix coercion on toString, mixed BigInt/Number compare, ++/-- (#4714)
- fix(array): callback thisArg, array-like ToLength, op-order + 0-arg validation (#4721)
- fix(array): exotic length [[DefineOwnProperty]] (ArraySetLength) + OOB prototype reads (#4709)
- fix(array): spec-complete Array.of (#4708), Array.from (#4700), Array.isArray Proxy unwrap (#4707)
- fix(promise): spec-compliant all/allSettled/race/any combinators (#4521, #4701)
- fix(promise): thread
thisthrough Promise.{resolve,reject}.call + var-redeclare codegen (#4706) - fix(promise): assimilate object-literal thenables via own
thendata property (#4705) - fix(typedarray): brand-check %TypedArray%.prototype iterators + array-like/iterable constructor (#4702)
- fix(map): instance prototype-member reflection, live forEach, symbol-key delete (#4710)
- fix(json): JSON.stringify substantially closer to ECMA-262 (#4718)
- fix(async-generator): await .return() value, brand-check prototype this, wrap function-expression async generators (#4723)
- fix(codegen): zero-fill inline-allocated object field slots (#4717, #4726)
- fix(http): park async request handlers instead of synthesizing a premature empty response (#4728)
- fix(init): default tsconfig targets ES2023 for non-mutating array methods (#4731)
- fix(windows):
perry updateextracts the .zip artifact (#4715) - fix: eliminate test262 segfaults in Proxy / String / Object.create / Array (#4724)
Infrastructure
- test(runtime): regression unit test for is_closure_ptr small-handle floor (#4740)
- ci(test262): parallel --jobs, --shard i/N, and full failure reporting (#4711)
- fix(publish): never exit 0 without a build result when the hub WS drops (#4732)
- fix(link): make tier-3 (tvOS/watchOS) std-dedup actually work (#4725)