AppRegistry mishandles keys inherited from Object.prototype
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C++
- Sterne
- 127k
- Forks
- 25.3k
- Ø Merge
- 1 T. 23 Std.
- Gemergte PRs (30 T.)
- 4
Beschreibung
Description
The public AppRegistry stores app and section keys in plain object literals. Looking up an unregistered key such as constructor returns an inherited Object member. Registering the valid string key __proto__ mutates the registry prototype rather than creating an own entry, so the app/section key lists omit it.
The defect is present in React Native 0.87.1 and current main.
Steps to reproduce
Call AppRegistry.getRunnable("constructor"), then register an app or section named __proto__ and inspect getAppKeys() / getSectionKeys().
Expected behavior
Only explicitly registered keys should resolve, and all string app/section keys should be stored as ordinary own entries.
React Native Version
0.87.1 and current main.
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne bei den im Bericht genannten öffentlichen AppRegistry-Einstiegspunkten: getRunnable(), registerApp oder der Abschnittsregistrierung sowie getAppKeys()/getSectionKeys(). Reproduziere die Fälle zur Konstruktorauflösung und zur proto-Registrierung und untersuche anschließend, wie Schlüssel gespeichert und aufgelöst werden. Erledigt ist die Aufgabe, wenn nicht registrierte geerbte Namen nicht aufgelöst werden und jeder registrierte String-Schlüssel in der entsprechenden Schlüsselliste erscheint.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- react-native
- Bereich
- mobile
- Issue-Typ
- Bug
- Schwierigkeit
- 3/5
- Geschätzter Aufwand
- 1-2 Tage
- Aktivitätsstatus
- Aktiv
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 68/100