Skip to content

[DRAFT] Bump minimum browser versions#26677

Open
sbc100 wants to merge 2 commits intoemscripten-core:mainfrom
sbc100:browser_version_bump
Open

[DRAFT] Bump minimum browser versions#26677
sbc100 wants to merge 2 commits intoemscripten-core:mainfrom
sbc100:browser_version_bump

Conversation

@sbc100
Copy link
Copy Markdown
Collaborator

@sbc100 sbc100 commented Apr 14, 2026

This change bumps out minimum supported browser versions just enough so we can drop support for output transpilation via babel.

chrome: 74 -> 85
firefox: 68 -> 79
safari: 12.2 -> 14.0

This also means we always support the MUTABLE_GLOBALS and PROMISE_ANY features, since its no longer possible to target engines without them.

@sbc100
Copy link
Copy Markdown
Collaborator Author

sbc100 commented Apr 14, 2026

@dschuff @kripken @brendandahl @juj WDYT?

We could completely remove out babel dependency here..

@sbc100 sbc100 force-pushed the browser_version_bump branch from 04e2383 to aa6690f Compare April 14, 2026 16:55
@kripken
Copy link
Copy Markdown
Member

kripken commented Apr 14, 2026

If feedback from users is positive, sgtm. This still gives us over 5 years of backwards compatibility iiuc.

sbc100 added 2 commits April 14, 2026 16:06
This change bumps out minimum supported browser versions just enough
so we can drop support for output transpilation via babel.

chrome: 74 -> 85
firefox: 68 -> 79
safari: 12.2 -> 14.0

This also means we always support the MUTABLE_GLOBALS and PROMISE_ANY
features, since its no longer possible to target engines without out it.
For example, we can completely remove the sign extension lowering pass
now.
@sbc100 sbc100 force-pushed the browser_version_bump branch from aa6690f to 0eefcd3 Compare April 14, 2026 23:38
@juj
Copy link
Copy Markdown
Collaborator

juj commented Apr 17, 2026

I am all for bumping up the minimum browser versions, I think it is a due time.

However, whenever I read PRs like this, it does make me feel like we are erasing a lot of valuable information that we worked really hard to embed to the repository.

Like, presumably, here we have encoded the minimum browser versions that are required for ES6 support. Removing Chrome from the list could make a reader go "why is this check arbitrarily missing Chrome?"

And the feature matrix erases the version info from the many features, that are now given.

It seems like it would be valuable to keep carrying the information, e.g. in comments, so that when cross-referencing between features and versions, one can still positively confirm "ok, the authors have checked sign-ext/threads/etc. here and it can be assumed", rather than the reader possibly needing to go "this feature x/browser version y is not listed here at all, so by omission we should assume that they thought through it."

But we do have places in code where we haven't thought about minimum Node.js version for example, and we could not assume by omission that it must work since it is omitted.

Finally, I wonder if it is a good idea to drop Babel support? I mean, right now we would indeed evolve to a situation where Babel would not be needed.. but is that the case still in the future? E.g. two years from now, we might find some nice new syntax that we think we want to take advantage of, and Babel could have gained transpilation support to it - but we dropped the whole Babel thing, and would need to rebuild it from scratch again in order to enable transpilation?

I.e. do we think that we will never be using Babel again? Or even if after bumping versions now, we won't, but maybe we might be using it again in the future? LGTM either way, just wanted to think whether we are creating friction to reinstating Babel if necessary again in the future.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants