Skip to content

[cache] Use WeakMap by default #30846

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

Draft
wants to merge 10 commits into
base: main
Choose a base branch
from
Draft

Conversation

eps1lon
Copy link
Collaborator

@eps1lon eps1lon commented Aug 29, 2024

Stacked on #30736

Summary

Instead of using Map.get(createCacheRoot).get(fn) we can just use rely on AsyncCache being a WeakMap.

How did you test this change?

  • existing tests

Copy link

vercel bot commented Aug 29, 2024

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
react-compiler-playground ✅ Ready (Inspect) Visit Preview 💬 Add feedback Sep 4, 2024 0:51am

@facebook-github-bot facebook-github-bot added CLA Signed React Core Team Opened by a member of the React Core Team labels Aug 29, 2024
@@ -470,7 +470,7 @@ function RequestInstance(
this.fatalError = null;
this.destination = null;
this.bundlerConfig = bundlerConfig;
this.cache = new Map();
this.cache = new WeakMap();
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 might have missed some instances since Flow didn't complain here since we silence errors later. Though I assume we only init this once when we create the request and not reassign it later?

@react-sizebot
Copy link

react-sizebot commented Aug 29, 2024

Comparing: d1afcb4...dd5ba66

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.js = 6.68 kB 6.68 kB +0.05% 1.82 kB 1.82 kB
oss-stable/react-dom/cjs/react-dom-client.production.js = 501.40 kB 501.18 kB = 89.99 kB 89.94 kB
oss-experimental/react-dom/cjs/react-dom.production.js = 6.69 kB 6.69 kB = 1.83 kB 1.83 kB
oss-experimental/react-dom/cjs/react-dom-client.production.js = 508.52 kB 508.31 kB = 91.16 kB 91.11 kB
facebook-www/ReactDOM-prod.classic.js = 596.16 kB 595.94 kB = 105.69 kB 105.64 kB
facebook-www/ReactDOM-prod.modern.js = 572.44 kB 572.23 kB = 101.88 kB 101.83 kB
oss-experimental/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable-rc/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable-semver/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 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.production.js +0.87% 17.97 kB 18.12 kB +1.01% 4.67 kB 4.71 kB
facebook-react-native/react/cjs/React-prod.js +0.83% 18.69 kB 18.85 kB +0.99% 4.86 kB 4.90 kB
facebook-react-native/react/cjs/React-profiling.js +0.82% 19.13 kB 19.28 kB +0.99% 4.94 kB 4.98 kB
oss-experimental/react/cjs/react.react-server.production.js +0.78% 18.66 kB 18.81 kB +0.38% 4.97 kB 4.99 kB
facebook-www/React-prod.modern.js +0.70% 22.32 kB 22.48 kB +0.77% 5.82 kB 5.86 kB
facebook-www/React-prod.classic.js +0.70% 22.33 kB 22.48 kB +0.79% 5.82 kB 5.86 kB
facebook-www/React-profiling.modern.js +0.69% 22.76 kB 22.91 kB +0.76% 5.90 kB 5.94 kB
facebook-www/React-profiling.classic.js +0.69% 22.76 kB 22.92 kB +0.76% 5.90 kB 5.94 kB
oss-stable-rc/react-server/cjs/react-server-flight.development.js +0.53% 92.12 kB 92.61 kB +0.22% 16.93 kB 16.97 kB
oss-stable-semver/react-server/cjs/react-server-flight.development.js +0.53% 92.12 kB 92.61 kB +0.22% 16.93 kB 16.97 kB
oss-stable/react-server/cjs/react-server-flight.development.js +0.53% 92.12 kB 92.61 kB +0.22% 16.93 kB 16.97 kB
oss-experimental/react-server/cjs/react-server-flight.development.js +0.46% 106.22 kB 106.71 kB +0.19% 19.11 kB 19.15 kB
oss-stable-rc/react-server/cjs/react-server-flight.production.js +0.42% 58.41 kB 58.65 kB +0.16% 11.59 kB 11.61 kB
oss-stable-semver/react-server/cjs/react-server-flight.production.js +0.42% 58.41 kB 58.65 kB +0.16% 11.59 kB 11.61 kB
oss-stable/react-server/cjs/react-server-flight.production.js +0.42% 58.41 kB 58.65 kB +0.16% 11.59 kB 11.61 kB
oss-experimental/react/cjs/react.react-server.development.js +0.38% 35.85 kB 35.99 kB +0.22% 8.48 kB 8.50 kB
oss-experimental/react-server/cjs/react-server-flight.production.js +0.38% 64.64 kB 64.89 kB +0.03% 12.54 kB 12.54 kB
oss-stable-rc/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.37% 131.86 kB 132.35 kB +0.17% 24.57 kB 24.61 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.37% 131.86 kB 132.35 kB +0.17% 24.57 kB 24.61 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.37% 131.86 kB 132.35 kB +0.17% 24.57 kB 24.61 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.36% 136.95 kB 137.44 kB +0.20% 25.42 kB 25.47 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.36% 136.95 kB 137.44 kB +0.20% 25.42 kB 25.47 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.36% 136.95 kB 137.44 kB +0.20% 25.42 kB 25.47 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.36% 136.98 kB 137.47 kB +0.20% 25.43 kB 25.48 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.36% 136.98 kB 137.47 kB +0.20% 25.43 kB 25.48 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.36% 136.98 kB 137.47 kB +0.20% 25.43 kB 25.48 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.35% 138.22 kB 138.71 kB +0.16% 25.53 kB 25.57 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.35% 138.22 kB 138.71 kB +0.16% 25.53 kB 25.57 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.35% 138.22 kB 138.71 kB +0.16% 25.53 kB 25.57 kB
oss-experimental/react/cjs/react.development.js +0.35% 45.32 kB 45.48 kB +0.46% 10.34 kB 10.39 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.35% 139.32 kB 139.81 kB +0.17% 25.82 kB 25.86 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.35% 139.32 kB 139.81 kB +0.17% 25.82 kB 25.86 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.35% 139.32 kB 139.81 kB +0.17% 25.82 kB 25.86 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.35% 139.35 kB 139.84 kB +0.16% 25.82 kB 25.86 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.35% 139.35 kB 139.84 kB +0.16% 25.82 kB 25.86 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.35% 139.35 kB 139.84 kB +0.16% 25.82 kB 25.86 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.34% 135.65 kB 136.12 kB +0.17% 25.21 kB 25.26 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.34% 135.65 kB 136.12 kB +0.17% 25.21 kB 25.26 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.34% 135.65 kB 136.12 kB +0.17% 25.21 kB 25.26 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.34% 136.09 kB 136.56 kB +0.17% 25.32 kB 25.37 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.34% 136.09 kB 136.56 kB +0.17% 25.32 kB 25.37 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.34% 136.09 kB 136.56 kB +0.17% 25.32 kB 25.37 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-server.node.development.js +0.33% 148.47 kB 148.96 kB +0.14% 27.10 kB 27.14 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.development.js +0.32% 154.34 kB 154.83 kB +0.10% 27.89 kB 27.92 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.development.js +0.32% 154.38 kB 154.87 kB +0.11% 27.90 kB 27.93 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js +0.32% 154.82 kB 155.31 kB +0.11% 28.08 kB 28.11 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.development.js +0.31% 155.92 kB 156.41 kB +0.13% 28.38 kB 28.41 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.development.js +0.31% 155.95 kB 156.44 kB +0.12% 28.39 kB 28.42 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.development.js +0.31% 151.36 kB 151.83 kB +0.13% 27.48 kB 27.51 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.development.js +0.31% 151.80 kB 152.27 kB +0.12% 27.58 kB 27.62 kB
facebook-react-native/react/cjs/React-dev.js +0.26% 62.58 kB 62.74 kB +0.33% 13.76 kB 13.81 kB
oss-stable-rc/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.25% 88.75 kB 88.97 kB +0.27% 18.40 kB 18.45 kB
oss-stable-semver/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.25% 88.75 kB 88.97 kB +0.27% 18.40 kB 18.45 kB
oss-stable/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.25% 88.75 kB 88.97 kB +0.27% 18.40 kB 18.45 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.24% 92.37 kB 92.59 kB +0.23% 18.92 kB 18.96 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.24% 92.37 kB 92.59 kB +0.23% 18.92 kB 18.96 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.24% 92.37 kB 92.59 kB +0.23% 18.92 kB 18.96 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.24% 92.40 kB 92.62 kB +0.25% 18.91 kB 18.96 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.24% 92.40 kB 92.62 kB +0.25% 18.91 kB 18.96 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.24% 92.40 kB 92.62 kB +0.25% 18.91 kB 18.96 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.24% 94.41 kB 94.63 kB +0.28% 19.27 kB 19.33 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.24% 94.41 kB 94.63 kB +0.28% 19.27 kB 19.33 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.24% 94.41 kB 94.63 kB +0.28% 19.27 kB 19.33 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.23% 91.88 kB 92.09 kB +0.22% 18.80 kB 18.85 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.23% 91.88 kB 92.09 kB +0.22% 18.80 kB 18.85 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.23% 91.88 kB 92.09 kB +0.22% 18.80 kB 18.85 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.23% 95.36 kB 95.59 kB +0.27% 19.48 kB 19.53 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.23% 95.36 kB 95.59 kB +0.27% 19.48 kB 19.53 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.23% 95.36 kB 95.59 kB +0.27% 19.48 kB 19.53 kB
oss-stable-rc/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.23% 95.39 kB 95.62 kB +0.27% 19.47 kB 19.53 kB
oss-stable-semver/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.23% 95.39 kB 95.62 kB +0.27% 19.47 kB 19.53 kB
oss-stable/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.23% 95.39 kB 95.62 kB +0.27% 19.47 kB 19.53 kB
oss-stable-rc/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.23% 92.20 kB 92.42 kB +0.22% 18.90 kB 18.94 kB
oss-stable-semver/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.23% 92.20 kB 92.42 kB +0.22% 18.90 kB 18.94 kB
oss-stable/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.23% 92.20 kB 92.42 kB +0.22% 18.90 kB 18.94 kB
oss-experimental/react-server-dom-esm/cjs/react-server-dom-esm-server.node.production.js +0.23% 95.87 kB 96.09 kB +0.21% 19.47 kB 19.51 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.edge.production.js +0.22% 99.59 kB 99.81 kB +0.21% 19.95 kB 19.99 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.edge.production.js +0.22% 99.62 kB 99.84 kB +0.21% 19.95 kB 19.99 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.production.js +0.22% 101.53 kB 101.75 kB +0.22% 20.35 kB 20.39 kB
facebook-www/React-dev.modern.js +0.22% 73.36 kB 73.52 kB +0.27% 16.09 kB 16.13 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.production.js +0.22% 102.48 kB 102.70 kB +0.22% 20.62 kB 20.67 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.node.production.js +0.22% 102.52 kB 102.74 kB +0.22% 20.62 kB 20.67 kB
oss-experimental/react-server-dom-turbopack/cjs/react-server-dom-turbopack-server.browser.production.js +0.22% 99.02 kB 99.23 kB +0.19% 19.83 kB 19.87 kB
facebook-www/React-dev.classic.js +0.22% 74.22 kB 74.38 kB +0.28% 16.22 kB 16.27 kB
oss-experimental/react-server-dom-webpack/cjs/react-server-dom-webpack-server.browser.production.js +0.22% 99.34 kB 99.55 kB +0.19% 19.93 kB 19.97 kB
oss-experimental/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable-rc/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable-semver/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB
oss-stable/react-suspense-test-utils/cjs/react-suspense-test-utils.js = 1.22 kB 1.06 kB = 0.60 kB 0.54 kB

Generated by 🚫 dangerJS against 649c219

Allows us to get rid of an indiretion in the Client implementation.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CLA Signed React Core Team Opened by a member of the React Core Team
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants