react / react/react-native

structuredClone loses specialized Error prototypes

Offen
#58,214 1 Kommentar 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Needs: Author Feedback Needs: Repro
Vorherrschende Sprache
C++
Sterne
127k
Forks
25.3k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
4

Beschreibung

Description

The React Native structuredClone polyfill validates an Error's standard serialized name but always constructs a base Error, then overwrites only .name. A cloned EvalError, for example, reports name === 'EvalError' while failing instanceof EvalError. The same affects RangeError, ReferenceError, SyntaxError, TypeError, and URIError.

Expected behavior

Valid standard Error names should be cloned with their matching built-in constructor/prototype; invalid names should fall back to base Error. Native structuredClone follows this behavior.

React Native Version

0.87.1 and current main

Affected Platforms

JavaScript runtime - All

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das React Native structuredClone-Polyfill und seinen Einstiegspunkt für die Deserialisierung von Error zu finden. Prüfe, wie standardmäßige Error-Namen validiert und erstellt werden, und verifiziere anschließend, dass jeder aufgeführte spezialisierte Error die instanceof-Prüfungen besteht, während ungültige Namen weiterhin auf den Basis-Error zurückfallen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, react-native
Bereich
mobile-dev
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Aktiv
Klarheit
Klar beschrieben
Anfängerfreundlichkeit
70/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.