github PerryTS/perry v0.5.373

latest releases: v0.5.1182, v0.5.1181, v0.5.1180...
one month ago

Highlights

  • HarmonyOS Phase 1 complete — full toolchain from --target harmonyos[-simulator] scaffold through SDK detection, NAPI entry + ArkTS shim, HAP bundler, and the audit-driven emulator-validation fixes (#246, #247, #249, #250, #252, #253).
  • V8 interop landingJsLoadModule / JsGetExport / JsCallFunction / JsCallMethod / JsGetProperty / JsSetProperty / JsNew / JsNewFromHandle codegen arms; Phase 2B JsCreateCallback so Perry closures passed to JS-imported functions actually fire (#248, #254, #259).
  • Async correctness — spec-compliant microtask ordering for plain async functions via a CPS / state-machine transform that mirrors the existing generator transform (#256, #262).
  • Geisterhand Phase D — live apply_style dispatcher across iOS / tvOS / GTK4 / Windows; live screenshot preview in the inspector. Issue #185's three explicit asks (rich styling primitives, cross-platform parity, devtools) are now all shipped end-to-end.

Fixes

  • #240 cross-module interface dispatch silently dropped to undefined when the consumer module type-imported the interface
  • #241 declare @llvm.assume intrinsic in IR module prelude
  • #255 perry-jsruntime re-entrancy — Perry callbacks can read JS object props without RefCell already borrowed panic
  • #257 V8 interop link order on macOS
  • #258 typeof on JS handles
  • #260 perry.compilePackages ignored when invoking from a sub-dir of the package root
  • #261 class field closure init compile error (use of undefined value '@perry_closure_*')

Features

  • HarmonyOS: cross-compile target, NAPI bootstrapping, ArkTS entry shim, .hap bundler, ace_napi.z runtime link, native-object pickup for cc-rs C deps that don't survive the OHOS staticlib wrapper
  • Codegen: arr.push(...src) (ArrayPushSpread); V8 interop expression family (8 new HIR arms); generic-function method-call closure marshaling (JsCreateCallback)
  • Geisterhand: cross-platform apply_style (iOS / tvOS / GTK4 / Windows), live screenshot preview with selection-overlay highlighting, auto-refresh polling

Infrastructure

  • Conservative-scope guards in the new async/generator transform (skip when __perry_cap_* capture markers are present, or when the body has nested closures with non-empty captures) — both tracked as follow-up work, not regressions.

Don't miss a new perry release

NewReleases is sending notifications on new releases.