JS frameworks, React/Vue/Svelte, and runtime updates Compiled for immediate developer deployment.
calendar_todaysummarizeWeek 24-2026
article
News from WWDC26: WebKit in Safari 27 Beta
TAG: BROWSER
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().
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.
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.
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.
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.
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.
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.
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().
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.
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.
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.
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.
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.
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.
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.