The Wire · Showcase
JEST SPEEDS UP AND RN PATCHES ANDROID CRASHES
By RepoJournal · Filed · About Meta
Overnight, Jest's resolver got 3x faster on warm paths and React Native fixed a pair of Android ViewManager crashers.
Jest is quietly getting faster where it hurts most: SimenB slashed the warm default-resolver path about 3x cheaper [1] by reusing an `unrs-resolver` factory per options shape, and `jest-haste-map` now caches the watchman socket path and drops the version probe [2] to cut startup overhead. That's on top of a `jest-runtime` cleanup [3] that removes dead accessors and collapses duplicated module-loading shapes, exposing one latent bug along the way. For snapshot-heavy suites, `jest-snapshot` now lazily loads babel, semver, and synckit [4], so `@swc/jest` and `ts-jest` users stop paying 162 `@babel/*` modules per worker when they have zero snapshots. Meanwhile, React Native moves on two crash fronts: Android ViewManagers implementing `DimensionValue` props [5] and nullable float props [6] both threw `RuntimeException: Unrecognized type` at startup, now fixed. iOS gets correct dotted and dashed outline rendering without border radii [7], fixing issue #57841. The SPM manifests now derive from shared name constants [8] to avoid clashing with built-in packages, and an umbrella header for `react/renderer/uimanager` [9] classifies the module as public. As SimenB notes, the resolver change is "a ~5µs NAPI call that dominated the warm path" [1]. Overall: upgrade both repos when you can, but prioritize the Android crash fixes if you ship Fabric components.
One email a day. Unsubscribe in one click.
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. Read a past issue →
Action items
- → Review Jest master for the resolver and haste-map perf wins, especially if you use Watchman facebook/jest [plan]
- → Pull the DimensionValue and nullable float ViewManager fixes if you ship Fabric components on Android facebook/react-native [immediate]
- → Test dotted/dashed outline rendering on iOS views without border radii facebook/react-native [monitor]
References
- [1] perf(jest-resolve): make the warm default-resolver path about 3x cheaper ↗ facebook/jest
- [2] perf(jest-haste-map): cache the watchman socket path and drop the version probe (#16386) facebook/jest
- [3] refactor(jest-runtime): remove dead accessors and collapse duplicated module-loading shapes ↗ facebook/jest
- [4] perf(jest-snapshot): load babel, semver and synckit lazily ↗ facebook/jest
- [5] Fix DimensionValue props crashing ViewManagers on Android (#58039) facebook/react-native
- [6] Fix nullable float props crashing ViewManagers on Android (#58038) facebook/react-native
- [7] fix: render dotted and dashed outlines on iOS views without border radii (#58028) facebook/react-native
- [8] Derive the generated SPM manifests from shared name constants (#58035) facebook/react-native
- [9] Add umbrella for `react/renderer/uimanager` subtree (#58025) facebook/react-native