react / react/react-native

structuredClone accepts boxed Symbols as empty objects

Offen Anfängerfreundlich
#58,212 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 correctly rejects primitive Symbols but treats boxed Symbols as arbitrary objects. structuredClone(Object(Symbol())) therefore returns {} instead of throwing, even though boxed Symbols are also not structured-cloneable.

Expected behavior

Boxed Symbols should throw DataCloneError, matching native structuredClone. The error path should not string-coerce the wrapper because Hermes throws a separate TypeError for that coercion.

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 beim structuredClone-Polyfill von React Native und reproduziere das Problem mit Object(Symbol()). Vergleiche sein Verhalten mit dem nativen structuredClone und dem bestehenden Pfad für primitive Symbols. Als erledigt gilt, dass boxed Symbols DataCloneError auslösen, ohne den Wrapper in einen String zu konvertieren, während das bestehende Klonverhalten unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
javascript, react-native
Bereich
mobile-dev
Issue-Typ
Bug
Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Aktivitätsstatus
Aktiv
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
72/100

Neue Issues direkt in Ihr Postfach

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