# Browser support
Angular supports most recent browsers.
This includes the following specific versions:
| Browser | Supported versions |
|:--- |:--- |
| Chrome | 2 most recent versions |
| Firefox | latest and extended support release \(ESR\) |
| Edge | 2 most recent major versions |
| Safari | 2 most recent major versions |
| iOS | 2 most recent major versions |
| Android | 2 most recent major versions |
Angular's continuous integration process runs unit tests of the framework on all of these browsers for every pull request, using [Sauce Labs](https://saucelabs.com).
## Polyfills
The [Angular CLI](cli) provides support for polyfills.
When a new project is created, the CLI also creates an `src/polyfills.ts` file.
If your application requires any polyfills, you can add them to the `src/polyfills.ts` file.
If you are not using the CLI to create your projects, see [Polyfills for non-CLI users](#non-cli) section.
If you create a TypeScript file for a custom polyfill, make sure to include it in the `files` property of your `tsconfig` file.
{
"extends": "./tsconfig.json",
"compilerOptions": {
...
},
"files": [
"src/main.ts",
"src/polyfills.ts"
]
...
}
## Polyfills for non-CLI users
If you are not using the CLI, add your polyfill scripts directly to the host web page \(`index.html`\).
For example:
<!-- pre-zone polyfills -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script>
/**
* you can configure some zone flags which can disable zone interception for some
* asynchronous activities to improve startup performance - use these options only
* if you know what you are doing as it could result in hard to trace down bugs.
*/
// __Zone_disable_requestAnimationFrame = true; // disable patch requestAnimationFrame
// __Zone_disable_on_property = true; // disable patch onProperty such as onclick
// __zone_symbol__UNPATCHED_EVENTS = ['scroll', 'mousemove']; // disable patch specified eventNames
/*
* in Edge developer tools, the addEventListener will also be wrapped by zone.js
* with the following flag, it will bypass `zone.js` patch for Edge.
*/
// __Zone_enable_cross_context_check = true;
</script>
<!-- zone.js required by Angular -->
<script src="node_modules/zone.js/bundles/zone.umd.js"></script>
<!-- application polyfills -->
@reviewed 2022-11-04