react / react/react-native

structuredClone preserves Error cause references and drops falsy causes

Aperta
#58,206 1 commento 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Needs: Author Feedback Needs: Repro
Lingua principale
C++
Stelle
127k
Fork
25.3k
Merge medio
1g 23h
PR unite (30g)
4

Descrizione

Description

The React Native structuredClone polyfill passes Error.cause through by reference instead of cloning it, and only copies the property when its value is truthy. Object causes therefore remain shared with the input; a circular cause points back to the original Error; and valid falsy causes such as false disappear.

Expected behavior

An own cause property should be cloned recursively, retain its non-enumerable Error property descriptor, preserve circular/shared identity within the clone, and keep falsy values. Node's native structuredClone follows this behavior.

React Native Version

0.87.1 and current main

Affected Platforms

JavaScript runtime - All

Guida per i contributori

Apri la guida per i contributori

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Direzione di ricerca

Inizia individuando il polyfill di structuredClone di React Native e controlla come gestisce Error.cause. Confronta il suo comportamento con quello di structuredClone nativo di Node, quindi aggiungi una copertura che mostri la clonazione ricorsiva, l’identità circolare/condivisa preservata, il descrittore non enumerabile e le cause falsy.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
javascript, react-native
Ambito
mobile
Tipo di issue
Bug
Difficoltà
3/5
Tempo stimato
1-2 giorni
Stato di attività
Attiva
Chiarezza
Abbastanza chiara
Idoneità per principianti
55/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.