structuredClone loses specialized Error prototypes
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 127k
- Forks
- 25.3k
- Avg merge
- 1d 23h
- Merged PRs (30d)
- 4
Description
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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the React Native structuredClone polyfill and its Error deserialization entry point. Check how standard Error names are validated and constructed, then verify that each listed specialized error passes instanceof checks while invalid names still fall back to base Error.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- javascript, react-native
- Domain
- mobile-dev
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100