terminal
Weekly Digest // JS_FRAMEWORKS — Week 24-2026
codeWeekly Report

JavaScript — 2026 Week 24

JS frameworks, React/Vue/Svelte, and runtime updates

calendar_todaysummarizeWeek 24-2026
BROWSER

News from WWDC26: WebKit in Safari 27 Beta

Safari 27 beta ships 58 new features and 525 bug fixes — the largest fix count in any Safari release. Headline additions include customizable select with appearance: base-select and new pseudo-elements like ::picker-icon and ::checkmark, scroll anchoring via overflow-anchor, and WebAssembly JavaScript Promise Integration (JSPI) that lets synchronous-looking Wasm code suspend on JavaScript Promises. The JavaScript section delivers a full C++ rewrite of the ESM loader for top-level await correctness, validated against test262 and the Web Platform Tests. CSS gains the :heading pseudo-class, revert-rule keyword, stretch keyword for box sizing, and transform-aware anchor positioning. The ReadableStream API now supports async iteration with for await...of, a ReadableStream.from() static method, and cross-context transfer via postMessage().

News from WWDC26: WebKit in Safari 27 Beta
Read Articlearrow_forward
Video · JAVASCRIPT

11 New JS Features You Can Use Today

Kyle (Web Dev Simplified) walks through 11 recently shipped or near-shipped JavaScript features. The nine cross-browser features include: Set methods (union, intersection, difference, symmetricDifference, isSubsetOf), iterator helpers (map, filter, take, toArray on any iterator), Promise.try for unified sync/async error handling, import attributes with type: 'json', RegExp.escape for safe user-input patterns, Array.fromAsync for async iterables, Error.isError for cross-realm checks, Map.prototype.getOrInsert and getOrInsertComputed, and Math.sumPrecise for floating-point accuracy. Two bonus features not yet in Safari: explicit resource management via the using keyword with Symbol.dispose, and the Temporal API as a full Date replacement with time zone, duration, and formatting support.

AI_INFOGRAPHIC
11 New JS Features You Can Use Today — infographicWATCH_VIDEOarrow_forward
Article · TOOLINGREAD TIME: 4m

Tales from the Void: May 2026 Recap

VoidZero officially joined Cloudflare in May 2026, while Vite, Vitest, Rolldown, and Oxc remain open-source, MIT-licensed, and vendor-neutral under Evan You's leadership. The biggest technical milestone is Rolldown 1.0 — the Rust-based bundler powering Vite 8 — which delivers API and build-output stability, Rollup plugin compatibility, and build speeds 10-30x faster than Rollup (on par with esbuild). Early adopters like Ramp, Beehiiv, and Mercedes-Benz.io report up to 64% build time reductions. Oxfmt gained a 25% speed improvement and now formats Svelte files; Oxlint added an agent output mode for LLM guardrail use. Vite+ adds staged publishing, VS Code integration, and a built-in rule guarding against stale Vite imports.

READ_FULL_LOGarrow_forward
Article · BEST PRACTICESREAD TIME: 4m

The Quiet Problem with Unnecessary async

Adding async to a function that performs no actual I/O changes its return type from a value to a Promise, which propagates through every caller, test, and composition utility downstream — a phenomenon known as the function coloring problem. Matt Smith argues that the performance overhead is rarely the real concern; the cost is cognitive. Unnecessary async obscures where genuine I/O boundaries lie, making async function signatures misleading signals in modern systems already saturated with streaming SSR, React Server Components, edge runtimes, and Suspense-driven rendering. His rule of thumb: async should represent real async boundaries, not speculative future requirements, because the keyword changes not just the implementation but the shape of all surrounding code.

READ_FULL_LOGarrow_forward
Article · FRAMEWORKREAD TIME: 8m

Getting to Know Angular Resource Snapshots

Angular's Resource API exposes a snapshot property of type ResourceSnapshot<T> that captures every state transition — idle, loading, reloading, resolved, local, and error — including the previous value. This article by Fanis Prodromou shows how to use snapshot combined with linkedSignal and resourceFromSnapshots to retain prior data during loading states, avoiding the skeleton-loader flicker that appears when resource.value resets to null mid-fetch. For error states, the built-in ResourceSnapshot type cannot pair status: 'error' with a value (the framework throws ResourceValueError), so the article introduces a custom resilientResource function with a keepValueOnError flag that stores the prior value and exposes a hasError signal instead. The same function composes both behaviors through a handler pipeline.

READ_FULL_LOGarrow_forward
Article · LINTINGREAD TIME: 2m

ESLint v10.5.0 Released

ESLint v10.5.0 ships targeted diagnostic improvements across five core rules. The max-lines-per-function, max-nested-callbacks, and max-statements rules now highlight only the function header rather than the entire function body, reducing visual noise in editors. The max-depth and no-with rules now highlight only the offending keyword. Additionally, bug fixes correct stack tracking in max-nested-callbacks and handling of else-if chains in max-depth, which may surface new linting errors in existing codebases. Documentation updates clarify Node.js ICU prerequisites and the precedence of parserOptions over languageOptions.

READ_FULL_LOGarrow_forward
Article · TYPESCRIPTREAD TIME: 14m

TypeScript Performance in TanStack Table V9

TanStack Table V9 introduces a modular, per-table feature system driven by a new TFeatures generic, replacing V8's global declaration merging. The alpha reached 1.23 million TypeScript instantiations in table-core — 14.7x V8's 78k baseline — causing noticeable editor lag. By beta.12, the team cut that to 266k (a 78.3% reduction) and reduced instantiations 62-86% across every package. Key techniques: replacing 14-branch UnionToIntersection conditionals with a named ExtractFeatureMapTypes interface, rewriting Table_Internal to avoid feature-conditional expansion in internal call sites, adding in out invariance annotations to 166 type parameters to enable fast variance-based comparison, and passing explicit type arguments to construction helpers to bypass expensive inference. The Solid and Svelte adapters now check at 28k and 29k instantiations respectively.

READ_FULL_LOGarrow_forward
summarizeDigest_Summary

This week's JavaScript news was dominated by two landmark platform events. Safari 27 Beta, unveiled at WWDC26, ships 58 new features and a record 525 bug fixes — including a full C++ rewrite of the ESM loader for correct top-level await, WebAssembly JavaScript Promise Integration (JSPI), and a revamped ReadableStream API supporting async iteration with for await...of and cross-context transfer via postMessage(). Meanwhile, VoidZero officially joined Cloudflare while keeping Vite, Vitest, Rolldown, and Oxc open-source; the headline milestone is Rolldown 1.0, a Rust-based bundler delivering 10–30x faster builds than Rollup that is already cutting build times by up to 64% at early adopters like Ramp and Mercedes-Benz.io.

On the library and tooling front, TanStack Table V9 demonstrated serious TypeScript performance engineering: the team reduced instantiations from 1.23 million down to 266k (a 78.3% cut) by introducing the TFeatures generic, replacing UnionToIntersection conditionals with a named ExtractFeatureMapTypes interface, and adding in/out variance annotations. ESLint v10.5.0 shipped targeted diagnostic improvements — rules like max-lines-per-function now highlight only the function header rather than the entire body. Angular's Resource API snapshot property was also explored in depth, showing how linkedSignal and a custom resilientResource function prevent skeleton-loader flicker during data fetching.

A broader ecosystem roundup highlighted 11 cross-browser JavaScript features now ready to use, including Set methods (union, intersection, difference), iterator helpers, Promise.try, RegExp.escape, Array.fromAsync, Error.isError, Map.prototype.getOrInsert, and Math.sumPrecise. Two features still pending Safari support — explicit resource management via the using keyword with Symbol.dispose, and the Temporal API — round out the landscape, while a focused best-practices piece argued that unnecessary async keyword usage introduces hidden cognitive costs by propagating Promise return types across entire call chains.

Key Takeaways
  • Rolldown 1.0 (Rust bundler powering Vite 8) is production-ready, offering 10-30x build speed gains over Rollup with full Rollup plugin compatibility — early adopters report up to 64% build time reductions.
  • Safari 27 Beta's ESM loader rewrite and WebAssembly JSPI are the biggest browser-level JavaScript advances of the week, but the 11 cross-browser features (Set methods, Promise.try, Temporal, etc.) are usable today across all major engines.
  • TanStack Table V9 cut TypeScript instantiations 78% via variance annotations and named interfaces — a masterclass in TS performance tuning applicable to any large generic library.