github PerryTS/perry v0.5.1116

latest releases: v0.5.1220, v0.5.1219, v0.5.1206...
one month ago

Highlights

42 commits since v0.5.1112 — a broad Node.js + TypeScript parity push: language-correctness fixes (assignment evaluation order, arrow binding, default-param TDZ, new.target), more Node built-in surface (Atomics, Intl, X509, child_process options, web stream adapters), and runtime prototype/reflection fixes.

Features

  • Atomics: basic operations + bitwise operations (#4247, #4253)
  • Expose core Intl constructors (#4254)
  • X509Certificate: publicKey, name checks, and extension metadata (#4249, #4252, #4241)
  • node stream → web stream adapters (#4237)
  • Complete Array.fromAsync mapFn semantics (#4238)

Fixes — runtime & Node compat

  • node:events module-level static helpers (once/on/listenerCount/…) now dispatch (#850)
  • Dispatch uncurried hasOwnProperty directly (#4279)
  • Uint8Array.of/from build the buffer-backed representation
  • isPrototypeOf + Reflect.set/getPrototypeOf/deleteProperty throw on non-object (#4265)
  • Install DataView.prototype accessors + get/set methods (#4256)
  • Convert asymmetric KeyObjects to CryptoKey (#4245)
  • Expose HTTP request abort signals (#4248)
  • Invoke registered loader hooks for dynamic imports (#4225)
  • String.matchAll iterator semantics (#4223)
  • Preserve CommonJS require function name (#4220)
  • Materialize array-like receivers for Array.prototype.*.call (#4231)
  • child_process: honor async buffered limits, argv0, and stdio: inherit (#4250, #4246, #4240)
  • Honor closure accessor properties (#4243)
  • Respect symbol enumerability in Object.assign (#4239)
  • Skip sparse array holes in iteration methods (#4236)

Fixes — codegen & language parity

  • Restore scalar method inlining for PutValueSet constructors (#945)
  • Cap pointer local type growth in codegen (#4235)
  • Cache tagged-template objects per call site (#4234)
  • Prototype & super assignment parity (#4233)
  • Assignment evaluation order (#4229)
  • Arrow special binding semantics (#4228)
  • Preserve with references for delete (#4227)
  • Default-parameter TDZ for later bindings (#4226)
  • Preserve lexical new.target for arrows (#4224)
  • Use generator closure prototypes for instances (#4222)
  • Avoid recursive constructor inlining (#4221)
  • Preserve CommonJS require name / honor well-known archives in no-auto links (#4242)
  • Native instance walk for fluent chains (#4219)

Infrastructure / tests

  • Parity: expected-exit=1 for intentional-throw expected-output tests
  • HTTP upgrade-websocket frame coverage (#4251)
  • Optional PTY parity runner for tty (#4232)

Don't miss a new perry release

NewReleases is sending notifications on new releases.