RepoJournal
Meta

Meta

React, React Native, and Jest - the open source under what Meta ships

Keep up with Meta in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

One email a day. Unsubscribe in one click.

Pick a date

Topics: JavaScript AI / ML Full archive →

The Wire · Showcase

REACT COMPILER CUTS JSON SERIALIZATION OVERHEAD, NATIVE TEAMS CLEAN DEAD CODE

By RepoJournal · Filed · About Meta

1 person shipped this

The Rust compiler is ditching wasteful serialize-deserialize round-trips by passing typed ASTs directly to consumers instead of converting everything to JSON and back.

React's compiler pipeline just eliminated a performance tax that hit every compile [1][2]. The `compile_program` function used to serialize the transformed AST to JSON, then every in-process caller immediately deserialized it back, burning CPU on a round-trip nobody needed. Now `CompileResult::Success.ast` returns the typed AST directly; only the napi bridge serializes at the edge where it matters [1]. The oxc and swc frontends skip the penalty entirely and consume the typed AST straight from compilation. This stacks on top of yesterday's patch to carry unmodeled AST subtrees (type annotations, class bodies, unknown statements) as raw JSON without allocating individual nodes [3][4], cutting allocation pressure on pass-through subtrees that nobody inspects anyway. Over in React Native, the teams landed a cleanup blitz: `JSIndexedRAMBundle` [5], a deprecated legacy-architecture class with zero callers, is gone from cxxreact; `telemetryTimePointToSecondsSinceEpoch()` [6], a static helper with no callsites, removed; `ClearableSynchronizedPool` [7], an orphaned Kotlin sync wrapper never instantiated, deleted; and `simulateAttachForTesting()` [8], a test-only ReactRootView method with zero test callers, removed. Native layers are also documenting I18nManager behavior that's been silently misunderstood [9].

One email a day. Unsubscribe in one click.

Action items

References

  1. [1] [rust-compiler] Return the compiled AST by value instead of JSON ↗ facebook/react
  2. [2] [rust-compiler] Return the compiled AST by value instead of JSON (#36729) facebook/react
  3. [3] [rust-compiler] Carry uninspected AST subtrees as raw JSON text ↗ facebook/react
  4. [4] [rust-compiler] Carry uninspected AST subtrees as raw JSON text (#36730) facebook/react
  5. [5] Remove dead JSIndexedRAMBundle from cxxreact facebook/react-native
  6. [6] Remove dead telemetryTimePointToSecondsSinceEpoch helper facebook/react-native
  7. [7] Remove dead internal class ClearableSynchronizedPool facebook/react-native
  8. [8] Remove dead test-only method simulateAttachForTesting from ReactRootView facebook/react-native
  9. [9] Add comment to clarify how I18nManager works (#51661) facebook/react-native

Quick answers

What shipped in Meta on June 11, 2026?
The Rust compiler is ditching wasteful serialize-deserialize round-trips by passing typed ASTs directly to consumers instead of converting everything to JSON and back. In total, 21 commits and 2 pull requests landed.
Who contributed to Meta on June 11, 2026?
1 developer shipped this update, including poteto.
What were the notable Meta updates?
[rust-compiler] Return the compiled AST by value instead of JSON, [rust-compiler] Return the compiled AST by value instead of JSON (#36729), and [rust-compiler] Carry uninspected AST subtrees as raw JSON text.

More from Meta

Daily updates, in your inbox

Follow Meta

Keep up with Meta in about 3 minutes a day: what actually shipped — the commits, pull requests, releases, and security advisories that matter.

or

One email a day. Unsubscribe in one click. Read a past issue →

Elsewhere on the wire

Want every project, not just this one?

We use privacy-friendly analytics (Google Analytics, IP-anonymized) to see which pages help readers. No ads, and we never sell your data. See our Privacy Policy.