Skip to content

No Safari support for Promise.withResolvers until v17.3 make @defer and incremental hydration unusable across all browsers #63855

@chriswoodie

Description

@chriswoodie

Which @angular/* package(s) are the source of the bug?

core

Is this a regression?

No

Description

I haven't seen this reported anywhere but we just did a big release where we were using some @defer blocks, only to find out that they don't work on Safari until v17.3, meaning we had to remove them all again.

We're using Zoneless in our application and all the new fresh stuff released over the last major versions (we're on v20.2 currently), and this was very disappointing to find out.

It will be years until most users are above that version, leaving incremental hydration completely unusable to us and other devs who needs to have reasonable browser support for their applications.

Is there any way @defer can be reworked to not use Promise.withResolvers, or am I missing some sort of polyfill?

Please provide a link to a minimal reproduction of the bug

No response

Please provide the exception or error you saw

TypeError: Promise.withResolvers is not a function. (In 'Promise.withResolvers()', 'Promise.withResolvers' is undefined)

Please provide the environment you discovered this bug in (run ng version)

Angular CLI: 20.0.6
Node: 22.12.0
Package Manager: npm 10.9.0
OS: darwin x64

Angular: 20.2.0
... build, common, compiler, compiler-cli, core, forms
... language-service, localize, platform-browser
... platform-browser-dynamic, platform-server, router, ssr

Package                         Version
---------------------------------------------------------
@angular-devkit/architect       0.2002.0
@angular-devkit/build-angular   20.2.0
@angular-devkit/core            20.2.0
@angular-devkit/schematics      20.2.0
@angular/cli                    20.0.6
@schematics/angular             20.2.0
rxjs                            7.8.2
typescript                      5.8.3

Anything else?

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: coreIssues related to the framework runtime

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions