Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add cache() API #25506

Merged
merged 2 commits into from
Oct 18, 2022
Merged

Add cache() API #25506

merged 2 commits into from
Oct 18, 2022

Conversation

sebmarkbage
Copy link
Collaborator

Like memo() but longer lived and for any function.

This is implemented using getCacheForType internally right now but that will probably end up being the reverse in the future.

The implementation of the args is pretty basic but the idea is that you keep a path of WeakMap/Map for the arguments and pick off each nested node. If there's fewer arguments, you have to use the terminated value at that level.

I use a WeakMap so that objects that can't be reached again get their cache entries garbage collected. Expandos aren't appropriate here because we also can GC the cache itself.

There are unfortunate cases like cachedFn('a', 'b', 'c', 'd', {}) will get its value GC:ed but not the path of maps to it. A smarter implementation could put the weakmaps on the outer side but it has to be more clever to ensure that argument index is preserved. I added some tests to preserve this in case we try this.

Ofc, Maps are pretty heavy for simple functions that end up only being called with the same values. This could be optimized further for lightweight common cases.

Currently, I cache errored functions but I'm not sure that's the right call because it messes with stack traces and don't allow "throwing a promise". Cached async functions are going to mess with stack traces anyway though.

@sizebot
Copy link

sizebot commented Oct 18, 2022

Comparing: 71f2c8c...ecdf734

Critical size changes

Includes critical production bundles, as well as any change greater than 2%:

Name +/- Base Current +/- gzip Base gzip Current gzip
oss-stable/react-dom/cjs/react-dom.production.min.js = 135.65 kB 135.65 kB = 43.47 kB 43.47 kB
oss-experimental/react-dom/cjs/react-dom.production.min.js = 151.12 kB 151.12 kB = 48.14 kB 48.14 kB
facebook-www/ReactDOM-prod.classic.js = 492.47 kB 492.47 kB = 87.65 kB 87.65 kB
facebook-www/ReactDOM-prod.modern.js = 477.73 kB 477.73 kB = 85.45 kB 85.45 kB
facebook-www/ReactDOMForked-prod.classic.js = 492.47 kB 492.47 kB = 87.65 kB 87.65 kB
oss-experimental/react/cjs/react.shared-subset.production.min.js +10.21% 6.70 kB 7.39 kB +8.47% 2.76 kB 3.00 kB
facebook-react-native/react/cjs/React-prod.js +9.20% 17.83 kB 19.47 kB +8.04% 4.56 kB 4.93 kB
facebook-react-native/react/cjs/React-profiling.js +8.90% 18.44 kB 20.08 kB +7.79% 4.69 kB 5.05 kB
facebook-www/React-prod.modern.js +8.43% 19.45 kB 21.09 kB +7.50% 4.91 kB 5.27 kB
facebook-www/React-prod.classic.js +8.31% 19.74 kB 21.38 kB +7.28% 4.99 kB 5.35 kB
facebook-www/React-profiling.modern.js +8.18% 20.06 kB 21.70 kB +7.29% 5.04 kB 5.40 kB
oss-experimental/react/cjs/react.production.min.js +8.11% 8.41 kB 9.09 kB +7.54% 3.15 kB 3.38 kB
facebook-www/React-profiling.classic.js +8.06% 20.35 kB 21.99 kB +7.06% 5.12 kB 5.48 kB
oss-experimental/react/umd/react.profiling.min.js +5.53% 12.18 kB 12.86 kB +5.43% 4.70 kB 4.95 kB
oss-experimental/react/umd/react.production.min.js +5.53% 12.18 kB 12.86 kB +5.41% 4.70 kB 4.95 kB
oss-experimental/react/cjs/react.shared-subset.development.js +3.65% 77.34 kB 80.16 kB +3.19% 21.35 kB 22.03 kB
oss-experimental/react/cjs/react.development.js +3.03% 93.27 kB 96.09 kB +2.68% 25.16 kB 25.83 kB
facebook-react-native/react/cjs/React-dev.js +2.67% 106.56 kB 109.41 kB +2.40% 26.26 kB 26.89 kB
oss-experimental/react/umd/react.development.js +2.56% 116.93 kB 119.93 kB +2.28% 30.03 kB 30.71 kB
facebook-www/React-dev.modern.js +2.39% 119.27 kB 122.11 kB +2.17% 29.68 kB 30.32 kB
facebook-www/React-dev.classic.js +2.36% 120.36 kB 123.21 kB +2.23% 29.89 kB 30.56 kB

Significant size changes

Includes any change greater than 0.2%:

Expand to show
Name +/- Base Current +/- gzip Base gzip Current gzip
oss-experimental/react/cjs/react.shared-subset.production.min.js +10.21% 6.70 kB 7.39 kB +8.47% 2.76 kB 3.00 kB
facebook-react-native/react/cjs/React-prod.js +9.20% 17.83 kB 19.47 kB +8.04% 4.56 kB 4.93 kB
facebook-react-native/react/cjs/React-profiling.js +8.90% 18.44 kB 20.08 kB +7.79% 4.69 kB 5.05 kB
facebook-www/React-prod.modern.js +8.43% 19.45 kB 21.09 kB +7.50% 4.91 kB 5.27 kB
facebook-www/React-prod.classic.js +8.31% 19.74 kB 21.38 kB +7.28% 4.99 kB 5.35 kB
facebook-www/React-profiling.modern.js +8.18% 20.06 kB 21.70 kB +7.29% 5.04 kB 5.40 kB
oss-experimental/react/cjs/react.production.min.js +8.11% 8.41 kB 9.09 kB +7.54% 3.15 kB 3.38 kB
facebook-www/React-profiling.classic.js +8.06% 20.35 kB 21.99 kB +7.06% 5.12 kB 5.48 kB
oss-experimental/react/umd/react.profiling.min.js +5.53% 12.18 kB 12.86 kB +5.43% 4.70 kB 4.95 kB
oss-experimental/react/umd/react.production.min.js +5.53% 12.18 kB 12.86 kB +5.41% 4.70 kB 4.95 kB
oss-experimental/react/cjs/react.shared-subset.development.js +3.65% 77.34 kB 80.16 kB +3.19% 21.35 kB 22.03 kB
oss-experimental/react/cjs/react.development.js +3.03% 93.27 kB 96.09 kB +2.68% 25.16 kB 25.83 kB
facebook-react-native/react/cjs/React-dev.js +2.67% 106.56 kB 109.41 kB +2.40% 26.26 kB 26.89 kB
oss-experimental/react/umd/react.development.js +2.56% 116.93 kB 119.93 kB +2.28% 30.03 kB 30.71 kB
facebook-www/React-dev.modern.js +2.39% 119.27 kB 122.11 kB +2.17% 29.68 kB 30.32 kB
facebook-www/React-dev.classic.js +2.36% 120.36 kB 123.21 kB +2.23% 29.89 kB 30.56 kB

Generated by 🚫 dangerJS against ecdf734

Like memo() but longer lived.
const ERRORED = 2;

type UnterminatedCacheNode<T> = {
s: 0,
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we have some brief comments about what s v o p are?

Copy link
Collaborator

@acdlite acdlite Oct 18, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume you know and are just asking for Seb to add inline comments, but just in case:

  • v: value, either the cached result or an error, or a nested cache result if there are more arguments, depending on s
  • s: status, represents whether the cached computation returned a value or threw an error, or a nested cache result if there are more arguments
  • o: object cache, a WeakMap where non-primitive arguments are stored
  • p: primitive cache, a regular Map where primitive arguments are stored.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I low key thing we should rename the Fiber fields to single letters. Fight me.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or use Closure's advanced mode... somehow

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if it's really that infeasible now that DevTools is in the same repo.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Once we get rid of the event system and clean up the DOM parts it'll be much easier.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not use special identifiers like .$child and rename to letters at compile time. New letters on each release.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well my proposal was because the names are too long in development and don't really make much sense anyway. E.g. memoizedState

@sebmarkbage sebmarkbage merged commit 8e2bde6 into facebook:main Oct 18, 2022
poteto added a commit that referenced this pull request Oct 21, 2022
facebook-github-bot pushed a commit to facebook/react-native that referenced this pull request Nov 1, 2022
Summary:
This sync includes the following changes:
- **[ab075a232](facebook/react@ab075a232 )**: Do not unmount layout effects on initial Offscreen mount ([#25592](facebook/react#25592)) //<Samuel Susla>//
- **[765805bf8](facebook/react@765805bf8 )**: Fix type check for null ([#25595](facebook/react#25595)) //<Sebastian Markbåge>//
- **[2ac77aab9](facebook/react@2ac77aab9 )**: Clean up vestige of useOpaqueIdentifier ([#25587](facebook/react#25587)) //<Andrew Clark>//
- **[bdd3d0807](facebook/react@bdd3d0807 )**: Extract logic for detecting bad fallback to helper //<Andrew Clark>//
- **[952dfff3f](facebook/react@952dfff3f )**: Split suspended work loop logic into separate functions //<Andrew Clark>//
- **[d2c0ab10d](facebook/react@d2c0ab10d )**: In work loop, add enum of reasons for suspending //<Andrew Clark>//
- **[5450dd409](facebook/react@5450dd409 )**: Strict Mode: Reuse memoized result from first pass ([#25583](facebook/react#25583)) //<Andrew Clark>//
- **[d2a0176a1](facebook/react@d2a0176a1 )**: Detect and warn if use(promise) is wrapped with try/catch block ([#25543](facebook/react#25543)) //<Andrew Clark>//
- **[cf3932be5](facebook/react@cf3932be5 )**: Remove old react-fetch, react-fs and react-pg libraries ([#25577](facebook/react#25577)) //<Sebastian Markbåge>//
- **[28a574ea8](facebook/react@28a574ea8 )**: Try assigning fetch to globalThis if global assignment fails ([#25571](facebook/react#25571)) //<Sebastian Markbåge>//
- **[09def5990](facebook/react@09def5990 )**: [Float] handle noscript context for Resources ([#25559](facebook/react#25559)) //<Josh Story>//
- **[17204056d](facebook/react@17204056d )**: [Float] fix coordination of resource identity and hydration ([#25569](facebook/react#25569)) //<Josh Story>//
- **[d925a8d0b](facebook/react@d925a8d0b )**: Flight client error stack ([#25560](facebook/react#25560)) //<Josh Story>//
- **[996b00b78](facebook/react@996b00b78 )**: [Tiny] Fixed incorrect import in `react-server-dom-webpack` ([#25554](facebook/react#25554)) //<Leo Lamprecht>//
- **[e7c5af45c](facebook/react@e7c5af45c )**: Update cache() and use() to the canary aka next channel ([#25502](facebook/react#25502)) //<Sebastian Markbåge>//
- **[fa77f52e7](facebook/react@fa77f52e7 )**: Unify promise switch statements //<Andrew Clark>//
- **[7572e4931](facebook/react@7572e4931 )**: Track thenable state in work loop //<Andrew Clark>//
- **[7fc3eefd8](facebook/react@7fc3eefd8 )**: Revert yieldy behavior for non-use Suspense (in Flight, too) //<Andrew Clark>//
- **[61f9b5e97](facebook/react@61f9b5e97 )**: [Float] support <base> as Resource ([#25546](facebook/react#25546)) //<Josh Story>//
- **[1d3fc9c9c](facebook/react@1d3fc9c9c )**: Bug fix when resolving cache ([#25545](facebook/react#25545)) //<Sebastian Markbåge>//
- **[cce18e350](facebook/react@cce18e350 )**: [Flight] Use AsyncLocalStorage to extend the scope of the cache to micro tasks ([#25542](facebook/react#25542)) //<Sebastian Markbåge>//
- **[caa84c8da](facebook/react@caa84c8da )**: Revert fetch instrumentation to only RSC ([#25540](facebook/react#25540)) //<Sebastian Markbåge>//
- **[0c11baa6a](facebook/react@0c11baa6a )**: add warnings for non-resources rendered outside body or head ([#25532](facebook/react#25532)) //<Josh Story>//
- **[9236abdb5](facebook/react@9236abdb5 )**: when float is enabled only push title and script as a single unit ([#25536](facebook/react#25536)) //<Josh Story>//
- **[dd5c20825](facebook/react@dd5c20825 )**: Revert yieldy behavior for non-use Suspense ([#25537](facebook/react#25537)) //<Andrew Clark>//
- **[934177598](facebook/react@934177598 )**: fix transposed escape functions ([#25534](facebook/react#25534)) //<Josh Story>//
- **[d1ced9fd5](facebook/react@d1ced9fd5 )**: [Float] support all links as Resources ([#25515](facebook/react#25515)) //<Josh Story>//
- **[973b90bdf](facebook/react@973b90bdf )**: [Float] support meta tags as Resources ([#25514](facebook/react#25514)) //<Josh Story>//
- **[79c582981](facebook/react@79c582981 )**: Let ReactDOM initialize in RSC ([#25503](facebook/react#25503)) //<Sebastian Markbåge>//
- **[1f7a2f577](facebook/react@1f7a2f577 )**: [Float] support title tags as Resources ([#25508](facebook/react#25508)) //<Josh Story>//
- **[c63580787](facebook/react@c63580787 )**: Support `use` in `act` testing API ([#25523](facebook/react#25523)) //<Andrew Clark>//
- **[65e32e58b](facebook/react@65e32e58b )**: Add fetch Instrumentation to Dedupe Fetches ([#25516](facebook/react#25516)) //<Sebastian Markbåge>//
- **[9336e29d9](facebook/react@9336e29d9 )**: [useEvent] Lint for presence of useEvent functions in dependency lists ([#25512](facebook/react#25512)) //<lauren>//
- **[3cc792bfb](facebook/react@3cc792bfb )**: [useEvent] Non-stable function identity ([#25473](facebook/react#25473)) //<lauren>//
- **[987292815](facebook/react@987292815 )**: Remove feature flag enableStrictEffects ([#25387](facebook/react#25387)) //<Samuel Susla>//
- **[8e2bde6f2](facebook/react@8e2bde6f2 )**: Add cache() API ([#25506](facebook/react#25506)) //<Sebastian Markbåge>//
- **[9cdf8a99e](facebook/react@9cdf8a99e )**: [Codemod] Update copyright header to Meta ([#25315](facebook/react#25315)) //<Andrew Clark>//
- **[e54015e26](facebook/react@e54015e26 )**: Refactor: fill in the flow missing type ([#25496](facebook/react#25496)) //<c0dedance>//
- **[3b1fd5767](facebook/react@3b1fd5767 )**: refactor: Flow: typing of Scheduler ([#25485](facebook/react#25485)) //<bubucuo>//
- **[14072ce64](facebook/react@14072ce64 )**: Add detach to Offscreen component ([#25265](facebook/react#25265)) //<Samuel Susla>//
- **[3bb71dfd4](facebook/react@3bb71dfd4 )**: Rename react-server-dom-webpack entry points to /client and /server ([#25504](facebook/react#25504)) //<Sebastian Markbåge>//
- **[71f2c8cf1](facebook/react@71f2c8cf1 )**: move resource acquisition to mutation phase ([#25500](facebook/react#25500)) //<Josh Story>//
- **[500bea532](facebook/react@500bea532 )**: Add option to load Fizz runtime from external file ([#25499](facebook/react#25499)) //<Andrew Clark>//
- **[4494f2a86](facebook/react@4494f2a86 )**: [Float] add support for scripts and other enhancements ([#25480](facebook/react#25480)) //<Josh Story>//
- **[9ecf84ed7](facebook/react@9ecf84ed7 )**: Bugfix: Suspending in shell during discrete update ([#25495](facebook/react#25495)) //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 54f297a...ab075a2

jest_e2e[run_all_tests]

Reviewed By: kassens

Differential Revision: D40897093

fbshipit-source-id: 6a040315834dea5c0ab994ea94d91f5605b9d6b0
rickhanlonii pushed a commit that referenced this pull request Dec 3, 2022
Like memo() but longer lived.
OlimpiaZurek pushed a commit to OlimpiaZurek/react-native that referenced this pull request May 22, 2023
Summary:
This sync includes the following changes:
- **[ab075a232](facebook/react@ab075a232 )**: Do not unmount layout effects on initial Offscreen mount ([facebook#25592](facebook/react#25592)) //<Samuel Susla>//
- **[765805bf8](facebook/react@765805bf8 )**: Fix type check for null ([facebook#25595](facebook/react#25595)) //<Sebastian Markbåge>//
- **[2ac77aab9](facebook/react@2ac77aab9 )**: Clean up vestige of useOpaqueIdentifier ([facebook#25587](facebook/react#25587)) //<Andrew Clark>//
- **[bdd3d0807](facebook/react@bdd3d0807 )**: Extract logic for detecting bad fallback to helper //<Andrew Clark>//
- **[952dfff3f](facebook/react@952dfff3f )**: Split suspended work loop logic into separate functions //<Andrew Clark>//
- **[d2c0ab10d](facebook/react@d2c0ab10d )**: In work loop, add enum of reasons for suspending //<Andrew Clark>//
- **[5450dd409](facebook/react@5450dd409 )**: Strict Mode: Reuse memoized result from first pass ([facebook#25583](facebook/react#25583)) //<Andrew Clark>//
- **[d2a0176a1](facebook/react@d2a0176a1 )**: Detect and warn if use(promise) is wrapped with try/catch block ([facebook#25543](facebook/react#25543)) //<Andrew Clark>//
- **[cf3932be5](facebook/react@cf3932be5 )**: Remove old react-fetch, react-fs and react-pg libraries ([facebook#25577](facebook/react#25577)) //<Sebastian Markbåge>//
- **[28a574ea8](facebook/react@28a574ea8 )**: Try assigning fetch to globalThis if global assignment fails ([facebook#25571](facebook/react#25571)) //<Sebastian Markbåge>//
- **[09def5990](facebook/react@09def5990 )**: [Float] handle noscript context for Resources ([facebook#25559](facebook/react#25559)) //<Josh Story>//
- **[17204056d](facebook/react@17204056d )**: [Float] fix coordination of resource identity and hydration ([facebook#25569](facebook/react#25569)) //<Josh Story>//
- **[d925a8d0b](facebook/react@d925a8d0b )**: Flight client error stack ([facebook#25560](facebook/react#25560)) //<Josh Story>//
- **[996b00b78](facebook/react@996b00b78 )**: [Tiny] Fixed incorrect import in `react-server-dom-webpack` ([facebook#25554](facebook/react#25554)) //<Leo Lamprecht>//
- **[e7c5af45c](facebook/react@e7c5af45c )**: Update cache() and use() to the canary aka next channel ([facebook#25502](facebook/react#25502)) //<Sebastian Markbåge>//
- **[fa77f52e7](facebook/react@fa77f52e7 )**: Unify promise switch statements //<Andrew Clark>//
- **[7572e4931](facebook/react@7572e4931 )**: Track thenable state in work loop //<Andrew Clark>//
- **[7fc3eefd8](facebook/react@7fc3eefd8 )**: Revert yieldy behavior for non-use Suspense (in Flight, too) //<Andrew Clark>//
- **[61f9b5e97](facebook/react@61f9b5e97 )**: [Float] support <base> as Resource ([facebook#25546](facebook/react#25546)) //<Josh Story>//
- **[1d3fc9c9c](facebook/react@1d3fc9c9c )**: Bug fix when resolving cache ([facebook#25545](facebook/react#25545)) //<Sebastian Markbåge>//
- **[cce18e350](facebook/react@cce18e350 )**: [Flight] Use AsyncLocalStorage to extend the scope of the cache to micro tasks ([facebook#25542](facebook/react#25542)) //<Sebastian Markbåge>//
- **[caa84c8da](facebook/react@caa84c8da )**: Revert fetch instrumentation to only RSC ([facebook#25540](facebook/react#25540)) //<Sebastian Markbåge>//
- **[0c11baa6a](facebook/react@0c11baa6a )**: add warnings for non-resources rendered outside body or head ([facebook#25532](facebook/react#25532)) //<Josh Story>//
- **[9236abdb5](facebook/react@9236abdb5 )**: when float is enabled only push title and script as a single unit ([facebook#25536](facebook/react#25536)) //<Josh Story>//
- **[dd5c20825](facebook/react@dd5c20825 )**: Revert yieldy behavior for non-use Suspense ([facebook#25537](facebook/react#25537)) //<Andrew Clark>//
- **[934177598](facebook/react@934177598 )**: fix transposed escape functions ([facebook#25534](facebook/react#25534)) //<Josh Story>//
- **[d1ced9fd5](facebook/react@d1ced9fd5 )**: [Float] support all links as Resources ([facebook#25515](facebook/react#25515)) //<Josh Story>//
- **[973b90bdf](facebook/react@973b90bdf )**: [Float] support meta tags as Resources ([facebook#25514](facebook/react#25514)) //<Josh Story>//
- **[79c582981](facebook/react@79c582981 )**: Let ReactDOM initialize in RSC ([facebook#25503](facebook/react#25503)) //<Sebastian Markbåge>//
- **[1f7a2f577](facebook/react@1f7a2f577 )**: [Float] support title tags as Resources ([facebook#25508](facebook/react#25508)) //<Josh Story>//
- **[c63580787](facebook/react@c63580787 )**: Support `use` in `act` testing API ([facebook#25523](facebook/react#25523)) //<Andrew Clark>//
- **[65e32e58b](facebook/react@65e32e58b )**: Add fetch Instrumentation to Dedupe Fetches ([facebook#25516](facebook/react#25516)) //<Sebastian Markbåge>//
- **[9336e29d9](facebook/react@9336e29d9 )**: [useEvent] Lint for presence of useEvent functions in dependency lists ([facebook#25512](facebook/react#25512)) //<lauren>//
- **[3cc792bfb](facebook/react@3cc792bfb )**: [useEvent] Non-stable function identity ([facebook#25473](facebook/react#25473)) //<lauren>//
- **[987292815](facebook/react@987292815 )**: Remove feature flag enableStrictEffects ([facebook#25387](facebook/react#25387)) //<Samuel Susla>//
- **[8e2bde6f2](facebook/react@8e2bde6f2 )**: Add cache() API ([facebook#25506](facebook/react#25506)) //<Sebastian Markbåge>//
- **[9cdf8a99e](facebook/react@9cdf8a99e )**: [Codemod] Update copyright header to Meta ([facebook#25315](facebook/react#25315)) //<Andrew Clark>//
- **[e54015e26](facebook/react@e54015e26 )**: Refactor: fill in the flow missing type ([facebook#25496](facebook/react#25496)) //<c0dedance>//
- **[3b1fd5767](facebook/react@3b1fd5767 )**: refactor: Flow: typing of Scheduler ([facebook#25485](facebook/react#25485)) //<bubucuo>//
- **[14072ce64](facebook/react@14072ce64 )**: Add detach to Offscreen component ([facebook#25265](facebook/react#25265)) //<Samuel Susla>//
- **[3bb71dfd4](facebook/react@3bb71dfd4 )**: Rename react-server-dom-webpack entry points to /client and /server ([facebook#25504](facebook/react#25504)) //<Sebastian Markbåge>//
- **[71f2c8cf1](facebook/react@71f2c8cf1 )**: move resource acquisition to mutation phase ([facebook#25500](facebook/react#25500)) //<Josh Story>//
- **[500bea532](facebook/react@500bea532 )**: Add option to load Fizz runtime from external file ([facebook#25499](facebook/react#25499)) //<Andrew Clark>//
- **[4494f2a86](facebook/react@4494f2a86 )**: [Float] add support for scripts and other enhancements ([facebook#25480](facebook/react#25480)) //<Josh Story>//
- **[9ecf84ed7](facebook/react@9ecf84ed7 )**: Bugfix: Suspending in shell during discrete update ([facebook#25495](facebook/react#25495)) //<Andrew Clark>//

Changelog:
[General][Changed] - React Native sync for revisions 54f297a...ab075a2

jest_e2e[run_all_tests]

Reviewed By: kassens

Differential Revision: D40897093

fbshipit-source-id: 6a040315834dea5c0ab994ea94d91f5605b9d6b0
acdlite added a commit to acdlite/react that referenced this pull request Jan 16, 2024
Because we haven't decided on the client caching semantics of cache(),
we're going to remove the behavior for now and add it back later. So
we need to rewrite these client tests to not depend on cache(). This
essentially reverts the test suite back to what it was before facebook#25506.
acdlite added a commit to acdlite/react that referenced this pull request Jan 16, 2024
Because we haven't decided on the client caching semantics of cache(),
we're going to remove the behavior for now and add it back later. So
we need to rewrite these client tests to not depend on cache(). This
essentially reverts the test suite back to what it was before facebook#25506.

There were also some tests in the ReactUse-test module that depended
on cache() too, which I've also updated.
acdlite added a commit to acdlite/react that referenced this pull request Jan 16, 2024
Because we haven't decided on the client caching semantics of cache(),
we're going to remove the behavior for now and add it back later. So
we need to rewrite these client tests to not depend on cache(). This
essentially reverts the test suite back to what it was before facebook#25506.

There were also some tests in the ReactUse-test module that depended
on cache() too, which I've also updated.
acdlite added a commit to acdlite/react that referenced this pull request Jan 16, 2024
Because we haven't decided on the client caching semantics of cache(),
we're going to remove the behavior for now and add it back later. So
we need to rewrite these client tests to not depend on cache(). This
essentially reverts the test suite back to what it was before facebook#25506.

There were also some tests in the ReactUse-test module that depended
on cache() too, which I've also updated.
acdlite added a commit to acdlite/react that referenced this pull request Jan 17, 2024
Because we haven't decided on the client caching semantics of cache(),
we're going to remove the behavior for now and add it back later. So
we need to rewrite these client tests to not depend on cache(). This
essentially reverts the test suite back to what it was before facebook#25506.

There were also some tests in the ReactUse-test module that depended
on cache() too, which I've also updated.
pull bot pushed a commit to kkpan11/sapling that referenced this pull request Jan 19, 2024
Summary:
The 'Getting Started' documentation page has a section about replacing the GitHub PR URL with reviewstack, but the link in Markdown is parsed as GitHub flavored Markdown and shows just `facebook/react#25506` instead of `https://github.com/facebook/react/pull/25506` which is slightly confusing. This change fixes that to the full intended URL is displayed.

See: https://sapling-scm.com/docs/introduction/getting-started#browsing-pull-requests
![image](https://github.com/facebook/sapling/assets/132238190/89880bb4-b13f-4980-9e9c-c1a446dfbc4d)

Pull Request resolved: facebook#815

Reviewed By: evangrayk

Differential Revision: D52875007

Pulled By: quark-zju

fbshipit-source-id: 4c674ae6f18cb9664ac5c639d35e92cc0ab6c5ed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants