Remove prototype overrides in `FirebaseError` and all subclasses
We override the prototype of this in all of the constructors for our custom error classes. This allowed us to adjust the prototype chain, so that we can perform instanceof checks on subclasses of Error.
Since ES2015, the built-in Error constructor uses new.target to adjust the prototype chain for us, so we no longer need to do it ourselves.
See https://github.com/Microsoft/TypeScript-wiki/blob/main/Breaking-Changes.md#extending-built-ins-like-error-array-and-map-may-no-longer-work (the link doesn't work well since the linked header is hidden behind a rolled up section that can be expanded by clicking "See Changes for Older Releases" at the bottom).
Since new.target does not exist in ES5, the prototype chain won't be adjusted if our bundle is transpiled down to ES5.
🦋 Changeset detected
Latest commit: 117527e1ca1c3649bf51019ee846babc8b04f7c8
The changes in this PR will be included in the next version bump.
This PR includes changesets to release 29 packages
| Name | Type |
|---|---|
| @firebase/vertexai | Patch |
| @firebase/storage | Patch |
| @firebase/auth | Patch |
| @firebase/util | Patch |
| firebase | Patch |
| @firebase/storage-compat | Patch |
| @firebase/auth-compat | Patch |
| @firebase/firestore | Patch |
| @firebase/analytics-compat | Patch |
| @firebase/analytics | Patch |
| @firebase/app-check-compat | Patch |
| @firebase/app-check | Patch |
| @firebase/app-compat | Patch |
| @firebase/app | Patch |
| @firebase/component | Patch |
| @firebase/database-compat | Patch |
| @firebase/database-types | Patch |
| @firebase/database | Patch |
| @firebase/firestore-compat | Patch |
| @firebase/functions-compat | Patch |
| @firebase/functions | Patch |
| @firebase/installations-compat | Patch |
| @firebase/installations | Patch |
| @firebase/messaging-compat | Patch |
| @firebase/messaging | Patch |
| @firebase/performance-compat | Patch |
| @firebase/performance | Patch |
| @firebase/remote-config-compat | Patch |
| @firebase/remote-config | Patch |
Not sure what this means? Click here to learn what changesets are.
Click here if you're a maintainer who wants to add another changeset to this PR
Size Report 1
Affected Products
@firebase/authType Base (98bbf53) Merge (355fcaa) Diff browser 182 kB 182 kB -55 B (-0.0%) cordova 161 kB 161 kB -55 B (-0.0%) main 142 kB 142 kB -55 B (-0.0%) module 182 kB 182 kB -55 B (-0.0%) react-native 157 kB 157 kB -55 B (-0.0%) @firebase/auth-cordovaType Base (98bbf53) Merge (355fcaa) Diff browser 161 kB 161 kB -55 B (-0.0%) module 161 kB 161 kB -55 B (-0.0%) @firebase/auth-web-extensionType Base (98bbf53) Merge (355fcaa) Diff browser 137 kB 137 kB -55 B (-0.0%) main 152 kB 152 kB -55 B (-0.0%) module 137 kB 137 kB -55 B (-0.0%) @firebase/auth/internalType Base (98bbf53) Merge (355fcaa) Diff browser 193 kB 193 kB -55 B (-0.0%) main 168 kB 168 kB -55 B (-0.0%) module 193 kB 193 kB -55 B (-0.0%) @firebase/storageType Base (98bbf53) Merge (355fcaa) Diff browser 57.8 kB 57.8 kB -51 B (-0.1%) main 59.3 kB 59.2 kB -51 B (-0.1%) module 57.8 kB 57.8 kB -51 B (-0.1%) @firebase/utilType Base (98bbf53) Merge (355fcaa) Diff browser 23.4 kB 23.3 kB -52 B (-0.2%) main 29.2 kB 29.2 kB -52 B (-0.2%) module 23.4 kB 23.3 kB -52 B (-0.2%) @firebase/vertexaiType Base (98bbf53) Merge (355fcaa) Diff browser 28.4 kB 28.3 kB -52 B (-0.2%) main 29.2 kB 29.2 kB -52 B (-0.2%) module 28.4 kB 28.3 kB -52 B (-0.2%) bundle46 size changes
Type Base (98bbf53) Merge (355fcaa) Diff analytics (logEvent) 44.5 kB 44.5 kB -40 B (-0.1%) app-check (CustomProvider) 37.4 kB 37.4 kB -40 B (-0.1%) app-check (ReCaptchaEnterpriseProvider) 39.9 kB 39.9 kB -40 B (-0.1%) app-check (ReCaptchaV3Provider) 39.9 kB 39.9 kB -40 B (-0.1%) auth (Anonymous) 76.2 kB 76.2 kB -40 B (-0.1%) auth (EmailAndPassword) 84.5 kB 84.4 kB -81 B (-0.1%) auth (GoogleFBTwitterGitHubPopup) 103 kB 103 kB -81 B (-0.1%) auth (GooglePopup) 100 kB 100 kB -81 B (-0.1%) auth (GoogleRedirect) 100 kB 100 kB -81 B (-0.1%) auth (Phone) 86.9 kB 86.8 kB -81 B (-0.1%) database (Append to a list of data) 149 kB 149 kB -40 B (-0.0%) database (Filtering data) 148 kB 148 kB -40 B (-0.0%) database (Listen for child events) 164 kB 164 kB -40 B (-0.0%) database (Listen for value events + Detach listeners) 164 kB 164 kB -40 B (-0.0%) database (Listen for value events) 164 kB 164 kB -40 B (-0.0%) database (Read data once) 164 kB 164 kB -40 B (-0.0%) database (Save data as transactions) 166 kB 166 kB -40 B (-0.0%) database (Sort data) 150 kB 150 kB -40 B (-0.0%) database (Write data) 148 kB 148 kB -40 B (-0.0%) firestore (CSI Auto Indexing Disable and Delete) 272 kB 272 kB -40 B (-0.0%) firestore (CSI Auto Indexing Enable) 272 kB 272 kB -40 B (-0.0%) firestore (Persistence) 303 kB 303 kB -40 B (-0.0%) firestore (Query Cursors) 249 kB 249 kB -40 B (-0.0%) firestore (Query) 246 kB 246 kB -40 B (-0.0%) firestore (Read data once) 234 kB 234 kB -40 B (-0.0%) firestore (Read Write w Persistence) 328 kB 328 kB -40 B (-0.0%) firestore (Realtime updates) 236 kB 236 kB -40 B (-0.0%) firestore (Transaction) 214 kB 213 kB -40 B (-0.0%) firestore (Write data) 213 kB 213 kB -40 B (-0.0%) firestore-lite (Query Cursors) 91.4 kB 91.3 kB -40 B (-0.0%) firestore-lite (Query) 87.5 kB 87.5 kB -40 B (-0.0%) firestore-lite (Read data once) 63.0 kB 63.0 kB -40 B (-0.1%) firestore-lite (Transaction) 88.2 kB 88.2 kB -40 B (-0.0%) firestore-lite (Write data) 72.6 kB 72.5 kB -40 B (-0.1%) functions (call) 31.9 kB 31.9 kB -40 B (-0.1%) messaging (send + receive) 46.9 kB 46.9 kB -40 B (-0.1%) performance (trace) 51.7 kB 51.7 kB -40 B (-0.1%) remote-config (getAndFetch) 46.3 kB 46.2 kB -40 B (-0.1%) storage (getBytes) 42.1 kB 42.0 kB -81 B (-0.2%) storage (getDownloadURL) 44.1 kB 44.1 kB -81 B (-0.2%) storage (getMetadata) 43.6 kB 43.5 kB -81 B (-0.2%) storage (list + listAll) 43.0 kB 42.9 kB -81 B (-0.2%) storage (updateMetadata) 43.8 kB 43.8 kB -81 B (-0.2%) storage (uploadBytes) 48.7 kB 48.6 kB -81 B (-0.2%) storage (uploadBytesResumable) 58.7 kB 58.6 kB -81 B (-0.1%) storage (uploadString) 48.9 kB 48.8 kB -81 B (-0.2%) firebase29 size changes
Type Base (98bbf53) Merge (355fcaa) Diff firebase-analytics-compat.js 26.5 kB 26.4 kB -40 B (-0.2%) firebase-analytics.js 29.7 kB 29.7 kB -52 B (-0.2%) firebase-app-check-compat.js 23.4 kB 23.3 kB -40 B (-0.2%) firebase-app-check.js 25.0 kB 25.0 kB -52 B (-0.2%) firebase-app-compat.js 31.7 kB 31.7 kB -40 B (-0.1%) firebase-app.js 103 kB 103 kB -484 B (-0.5%) firebase-auth-compat.js 139 kB 139 kB -81 B (-0.1%) firebase-auth-cordova.js 134 kB 134 kB -107 B (-0.1%) firebase-auth-web-extension.js 117 kB 117 kB -107 B (-0.1%) firebase-auth.js 151 kB 151 kB -107 B (-0.1%) firebase-compat.js 791 kB 790 kB -122 B (-0.0%) firebase-firestore-compat.js 346 kB 346 kB -40 B (-0.0%) firebase-firestore-lite.js 119 kB 119 kB -52 B (-0.0%) firebase-firestore.js 440 kB 440 kB -52 B (-0.0%) firebase-functions-compat.js 8.17 kB 8.13 kB -40 B (-0.5%) firebase-functions.js 11.9 kB 11.9 kB -52 B (-0.4%) firebase-installations-compat.js 13.3 kB 13.2 kB -40 B (-0.3%) firebase-installations.js 15.1 kB 15.1 kB -52 B (-0.3%) firebase-messaging-compat.js 38.4 kB 38.4 kB -40 B (-0.1%) firebase-messaging-sw.js 30.2 kB 30.1 kB -52 B (-0.2%) firebase-messaging.js 28.7 kB 28.7 kB -52 B (-0.2%) firebase-performance-compat.js 30.8 kB 30.8 kB -40 B (-0.1%) firebase-performance-standalone-compat.js 93.6 kB 93.6 kB -40 B (-0.0%) firebase-performance.js 35.0 kB 35.0 kB -52 B (-0.1%) firebase-remote-config-compat.js 27.3 kB 27.2 kB -40 B (-0.1%) firebase-remote-config.js 29.6 kB 29.5 kB -52 B (-0.2%) firebase-storage-compat.js 40.3 kB 40.3 kB -80 B (-0.2%) firebase-storage.js 46.2 kB 46.1 kB -103 B (-0.2%) firebase-vertexai.js 22.0 kB 21.9 kB -104 B (-0.5%)
Test Logs