Skip to content

Delete obsolete MountingIntermediateCommits-itest.js#56628

Open
fkgozali wants to merge 1 commit intofacebook:mainfrom
fkgozali:export-D102661539
Open

Delete obsolete MountingIntermediateCommits-itest.js#56628
fkgozali wants to merge 1 commit intofacebook:mainfrom
fkgozali:export-D102661539

Conversation

@fkgozali
Copy link
Copy Markdown
Contributor

Summary:
This test file contains a single it.skip test guarded by the comment "Enable once synchronous C++ state updates are re-introduced." That feature was deleted entirely (not just disabled) since 2025-07-15, with the reason: *"The current design of enableSynchronousStateUpdates is not correct and breaks <Modal /> on Android. let's delete it.

Findings: A scan of packages/react-native/src/private/featureflags, scripts/featureflags, and ReactCommon/react/featureflags returns no replacement flag for synchronous C++ state updates. The enableSynchronousStateUpdates flag was removed from every layer (JS config, C++, Android Kotlin/JNI, iOS overrides, MC schemas) and the guarded code path in EventQueue.cpp was deleted as well.

Empirical confirmation: Removed the it.skip and ran the test 10x via stress runs. All 10 runs failed deterministically. The test is asserting the presence of the bug — i.e., that an intermediate state mutation leaks through when a UI-thread commit pulls transactions from an in-flight JS commit. Without the synchronous-state-updates codepath, that leak no longer occurs, so the test's expected log never matches the actual output:

Expected: [Update ScrollView, Update intermediate-state-should-not-be-visible, Update view]
Actual: [Update view, Update ScrollView]

The test cannot be un-skipped (the bug it documents is no longer reproducible), and rewriting the assertion would defeat the purpose of the test. Deleting it.

Changelog: [Internal]

Differential Revision: D102661539

Summary:
This test file contains a single `it.skip` test guarded by the comment "Enable once synchronous C++ state updates are re-introduced." That feature was deleted entirely (not just disabled) since 2025-07-15, with the reason: *"The current design of enableSynchronousStateUpdates is not correct and breaks `<Modal />` on Android. let's delete it.

Findings: A scan of `packages/react-native/src/private/featureflags`, `scripts/featureflags`, and `ReactCommon/react/featureflags` returns no replacement flag for synchronous C++ state updates. The `enableSynchronousStateUpdates` flag was removed from every layer (JS config, C++, Android Kotlin/JNI, iOS overrides, MC schemas) and the guarded code path in `EventQueue.cpp` was deleted as well.

Empirical confirmation: Removed the `it.skip` and ran the test 10x via stress runs. All 10 runs failed deterministically. The test is asserting the *presence* of the bug — i.e., that an intermediate state mutation leaks through when a UI-thread commit pulls transactions from an in-flight JS commit. Without the synchronous-state-updates codepath, that leak no longer occurs, so the test's expected log never matches the actual output:

  Expected: [Update ScrollView, Update intermediate-state-should-not-be-visible, Update view]
  Actual:   [Update view, Update ScrollView]

The test cannot be un-skipped (the bug it documents is no longer reproducible), and rewriting the assertion would defeat the purpose of the test. Deleting it.

Changelog: [Internal]

Differential Revision: D102661539
@meta-codesync
Copy link
Copy Markdown

meta-codesync Bot commented Apr 27, 2026

@fkgozali has exported this pull request. If you are a Meta employee, you can view the originating Diff in D102661539.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Apr 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. fb-exported meta-exported p: Facebook Partner: Facebook Partner

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant