github PerryTS/perry v0.5.1129

latest releases: v0.5.1151, v0.5.1150
3 days ago

Highlights

  • Native TC39 Temporal API via temporal_rs — 8 Temporal types plus Temporal.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-this for 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 this through Promise.{resolve,reject}.call + var-redeclare codegen (#4706)
  • fix(promise): assimilate object-literal thenables via own then data 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 update extracts 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)

Don't miss a new perry release

NewReleases is sending notifications on new releases.