This release fixes issues for SREs watching stability and regressions.
✓ No known CVEs patched in this version
Topics
+5 more
Summary
AI summaryUpdates Known, Infrastructure, and props across a mixed release.
Full changelog
Highlights
Fix-forward release that unblocks the stuck v0.5.177 release-packages pipeline. Three distinct CI regressions fixed — UI doc-tests now link on all three host OSes, cargo-test no longer SIGABRTs on the HIR repro suite, and new Set([...]) without explicit type args stops returning undefined on .has().
Fixes
-
App({...})doc-tests on macOS/Ubuntu/Windows: everydocs/examples/ui/*.tsexample started failing with "App(...) requires a config object literal" because Phase 3 anon-class synthesis (v0.5.172) now wraps closed-shape literals intonew __AnonShape_N(...). Theperry/ui App()handler still hard-matchedExpr::Object(props). Swapped to the already-existingextract_options_fieldshelper that handles both Object and AnonShape-New paths (the same oneperry/thread spawnuses). 19/27 doc-tests → 27/27. -
just_factorySIGABRT in cargo-test: a repro test for a separate pre-existing stack overflow (top-levelconst x = fn()+ factory returning a nested object literal) wasn't marked#[ignore]— so the default 2 MB test stack blew on every CI run. Marked#[ignore]with matching rationale to its sibling; real fix tracked separately. -
new Set([1,2,3]).has(1)returned undefined:refine_type_from_initemittedHirType::Named("Set")forExpr::SetNewFromArray, butis_set_expronly matchesHirType::Generic { base: "Set" }. Without explicit<number>type args, every Set.has()/add()/delete() fell through to the undefined-dispatch path. Same shape in Phase 4'sinfer_type_from_expr. Both fixed; Map/Set/WeakMap/WeakSet/Array/Promise now always flow as Generic (intrinsic generics can't be Named).
Known
test_edge_map_setparity: the simple Set.has regression is fixed, but the specificsetA.forEach((v) => setB.has(v))pattern has a second, path-dependent bug — same MD5 file passes from /tmp/ but the intersection comes back empty from the project root. Added toknown_failures.jsonwith the repro; tracked as follow-up.
Infrastructure
release-packages.yml'sawait-testsgate correctly blocked the v0.5.177 publish once Tests turned red — working as designed.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About perry
A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM.
Related context
Beta — feedback welcome: [email protected]