Skip to content

Conversation

CraigMacomber
Copy link
Contributor

Description

Update client to ES2022.

ES2022 saves over 2% (7309 bytes) on bundle size (measured using SharedTree bundles which includes all of the runtime shared tree uses as well).

Also building targeting ES2022 provides a better debug experience for JS private properties by not polyfilling them to weak map lookups.

Note that Fluid Framework has no validation that our dependencies don't already have dependencies on newer things, and no compatibility testing for older or less supported runtimes.

Tracked by AB#34388.

Breaking Changes

See changeset

Reviewer Guidance

The review process is outlined on this wiki page.

This needs special review based on potential impact on customers and our current lack of process for how to handle such updates.

@github-actions github-actions bot added area: build Build related issues area: dds: propertydds changeset-present base: main PRs targeted against main branch labels Sep 4, 2025

Fluid Framework has not officially supported targets older than ES2022 since before 2.0: this is documented in [ClientRequirements.md](https://github.com/microsoft/FluidFramework/blob/main/ClientRequirements.md) as well as the ReadMe for every client package.
This change does not involve any change to what is officially supported.
It is possible this change could impact users of less up to date JavaScript runtimes:
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'runtimes'?

Fluid Framework has not officially supported targets older than ES2022 since before 2.0: this is documented in [ClientRequirements.md](https://github.com/microsoft/FluidFramework/blob/main/ClientRequirements.md) as well as the ReadMe for every client package.
This change does not involve any change to what is officially supported.
It is possible this change could impact users of less up to date JavaScript runtimes:
such users can use a tool like [babel](https://babeljs.io/) to transpile out unsupported language features.
Copy link
Contributor

Choose a reason for hiding this comment

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

🚫 [vale] reported by reviewdog 🐶
[Vale.Spelling] Did you really mean 'transpile'?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: build Build related issues area: dds: propertydds base: main PRs targeted against main branch changeset-present
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant