v14.0.93
·
6348 commits
to main
since this release
14.0.93 (2026-09-08)
Bug Fixes
- ci: preserve active release validation on new pushes (73f7bc3)
- ci: preserve generated Intl sources in build artifacts (d2b33b3)
- declare duration formatter in root runtime dependencies (16dc0c8)
- prevent SafeJS release-test timeout cascades (414f42e)
- repair release regression assertions and retired report dependencies (0c9ad62)
- safe-bash: make default browser commands Node-free (12e9101)
- safe-bash: preserve archive errors and explicit native fixtures (62e9b81)
- safe-bash: preserve platform contracts and playground regex support (7ce365d)
- safe-bash: preserve portable POSIX path compatibility (98ceeb0)
- safe-bash: share portable runtime and simplify provider setup (777288b)
- safe-bash: support bounded portable expr matching (0b3e9f0), closes #670
- safe-bash: suppress late output from successful tests (af05a03)
- safe-bash: validate nested platform export prerequisites (aaea128)
- safe-js: accept Unicode space separators between tokens (edb71c5)
- safe-js: allow infinite endpoints in portable plural ranges (581a1af)
- safe-js: convert Object property keys before receivers (52df4a2)
- safe-js: correct committed delete handler placement (c7429cc)
- safe-js: count shared intrinsic state once (18bd223)
- safe-js: delete properties on primitive receivers (04b1bbd)
- safe-js: evaluate delete value operands (b400fda)
- safe-js: keep formatter bundle initialization synchronous (8ae4616)
- safe-js: parse legacy numbers in non-strict functions (370003d)
- safe-js: preserve exact number format unit patterns (a428535)
- safe-js: preserve Number method metadata and snapshot properties (5205d51)
- safe-js: preserve String method metadata and snapshot properties (3114940)
- safe-js: preserve symbol accessor snapshot state (ac0a003)
- safe-js: recognize Unicode line terminators and continuations (f1ad168)
- safe-js: reject mixed-case number format units (23e2712)
- safe-js: reject static imports in dynamic functions (0be58fe)
- safe-js: reject strict identifier deletion (5fb116b)
- safe-js: reject structured cloning of Intl private state (84d108b)
- safe-js: respect strictness for legacy string escapes (2ca4b78)
- safe-js: restore primitive conversion method properties (aa68fc9)
- safe-js: retain resolved rounding options in portable plural rules (e483145)
- safe-js: separate directional literals from number signs (09830c7)
- safe-js: support guest properties on host functions (2e21755)
- safe-js: track mutations on newer Intl intrinsics (5eb09ea)
- safe-js: validate decimal escapes in templates (74b385e)
- safe-js: validate strict function parameter directives (d7d986c)
Features
- safe-js: add guest prototype accessor (314bb34)
- safe-js: add identity-preserving string trim aliases (8708c47)
- safe-js: add Intl Collator objects (f5f9558)
- safe-js: add Intl DateTimeFormat with clock replay and snapshots (a3f3e25)
- safe-js: add Intl DisplayNames with snapshots (7528b7b)
- safe-js: add Intl ListFormat with snapshot support (71f8173)
- safe-js: add Intl Locale objects (87ebcce)
- safe-js: add Intl namespace methods (99b55d9)
- safe-js: add Intl RelativeTimeFormat with snapshots (59d480e)
- safe-js: add Intl Segmenter with resumable iterators (4d2f70d)
- safe-js: add legacy escape and unescape globals (e520de3)
- safe-js: add legacy Object accessor methods (108c3a6)
- safe-js: add legacy String HTML methods (7587264)
- safe-js: add portable Intl NumberFormat (ecf4cf2)
- safe-js: add portable Intl PluralRules with snapshots (d69afd3)
- safe-js: implement Object and Map groupBy (13b7acd)
- safe-js: implement portable Intl DurationFormat (8a548bb)
- safe-js: implement Set composition and relation methods (e77f1d1)
- safe-js: parse guest dynamic function source (db72de2)
- safe-js: support portable subsecond number units (1f3d568)
- safe-js: support RegExp recompilation (713e15d)
Performance Improvements
- safe-js: reduce snapshot descriptor validation allocations (555671f)