react / react/react-native

structuredClone coerces boxed primitives and flips false Boolean

Ouverte
#58,226 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Needs: Author Feedback Needs: Repro
Langage dominant
C++
Étoiles
127k
Forks
25.3k
Merge moyen
1 j 23 h
PR mergées (30 j)
4

Description

Description

The React Native structuredClone polyfill reconstructs Number, String, Boolean, and Date wrappers by passing the source object to a constructor. Number/String cloning invokes user coercion hooks, and new Boolean(new Boolean(false)) uses object truthiness and silently changes the internal value to true.

Expected behavior

Cloning should read each wrapper's internal primitive through the built-in valueOf intrinsic, create a distinct wrapper with the same value, and never execute user coercion. Native structuredClone follows this behavior.

React Native Version

0.87.1 and current main

Affected Platforms

JavaScript runtime - All

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez au point d’entrée du polyfill structuredClone de React Native et reproduisez le comportement avec des valeurs boxed Number, String, Boolean et Date. Vérifiez que le clonage lit le primitif interne sans exécuter de hooks de coercition définis par l’utilisateur, préserve les valeurs Boolean false et crée des wrappers distincts ; comparez le résultat avec structuredClone natif.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
javascript, react-native
Domaine
mobile
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
Active
Clarté
Plutôt claire
Accessibilité débutants
68/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.